diff options
Diffstat (limited to 'indra/newview')
323 files changed, 12958 insertions, 7337 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 622949a140..b5a6912da0 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -268,6 +268,7 @@ set(viewer_SOURCE_FILES llfloaterland.cpp llfloaterlandholdings.cpp llfloaterloadprefpreset.cpp + llfloatermarketplacelistings.cpp llfloatermap.cpp llfloatermediasettings.cpp llfloatermemleak.cpp @@ -892,6 +893,7 @@ set(viewer_HEADER_FILES llfloaterlandholdings.h llfloaterloadprefpreset.h llfloatermap.h + llfloatermarketplacelistings.h llfloatermediasettings.h llfloatermemleak.h llfloatermodelpreview.h diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index a08ffae0ca..269aa9c86d 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -3.8.2 +3.8.3 diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml index 7b329e2092..2cd6638042 100755 --- a/indra/newview/app_settings/commands.xml +++ b/indra/newview/app_settings/commands.xml @@ -118,6 +118,18 @@ tooltip_ref="Command_Marketplace_Tooltip" execute_function="Avatar.OpenMarketplace" /> + <command name="marketplacelistings" + available_in_toybox="true" + icon="Command_MktListings_Icon" + label_ref="Command_MarketplaceListings_Label" + tooltip_ref="Command_MarketplaceListings_Tooltip" + execute_function="Marketplace.Toggle" + execute_parameters="marketplace" + is_enabled_function="Marketplace.Enabled" + is_enabled_parameters="marketplace" + is_running_function="Floater.IsOpen" + is_running_parameters="marketplace_listings" + /> <command name="minimap" available_in_toybox="true" icon="Command_MiniMap_Icon" diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 272b609d9d..07a7dbdfc2 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4680,17 +4680,6 @@ <key>Value</key> <integer>0</integer> </map> - <key>InventoryDisplayOutbox</key> - <map> - <key>Comment</key> - <string>Override merchant inventory outbox display</string> - <key>Persist</key> - <integer>0</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>0</integer> - </map> <key>InventoryInboxToggleState</key> <map> <key>Comment</key> @@ -4713,6 +4702,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>InventoryOutboxDisplayBoth</key> + <map> + <key>Comment</key> + <string>Show the legacy Merchant Outbox UI as well as the Marketplace Listings UI</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>InventoryOutboxLogging</key> <map> <key>Comment</key> @@ -4744,7 +4744,7 @@ <key>Type</key> <string>U32</string> <key>Value</key> - <integer>21</integer> + <integer>20</integer> </map> <key>InventoryOutboxMaxFolderDepth</key> <map> @@ -4768,6 +4768,17 @@ <key>Value</key> <integer>200</integer> </map> + <key>InventoryOutboxMaxStockItemCount</key> + <map> + <key>Comment</key> + <string>Maximum number of items allowed in a stock folder.</string> + <key>Persist</key> + <integer>0</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <integer>200</integer> + </map> <key>InventorySortOrder</key> <map> <key>Comment</key> @@ -4779,6 +4790,17 @@ <key>Value</key> <integer>7</integer> </map> + <key>MarketplaceListingsSortOrder</key> + <map> + <key>Comment</key> + <string>Specifies sort for marketplace listings</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <integer>2</integer> + </map> <key>InvertMouse</key> <map> <key>Comment</key> @@ -5628,6 +5650,17 @@ <key>Value</key> <string /> </map> + <key>MarketplaceListingsLogging</key> + <map> + <key>Comment</key> + <string>Enable debug output associated with the Marketplace Listings (SLM) API.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>MarketplaceURL</key> <map> <key>Comment</key> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 359171c5bd..092d868bb9 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3873,6 +3873,12 @@ void LLAgent::handleTeleportFinished() LLNotificationsUtil::add("PreferredMaturityChanged", args); mIsMaturityRatingChangingDuringTeleport = false; } + + // Init SLM Marketplace connection so we know which UI should be used for the user as a merchant + // Note: Eventually, all merchant will be migrated to the new SLM system and there will be no reason to show the old UI at all. + // Note: Some regions will not support the SLM cap for a while so we need to do that check for each teleport. + // *TODO : Suppress that line from here once the whole grid migrated to SLM and move it to idle_startup() (llstartup.cpp) + check_merchant_status(); } void LLAgent::handleTeleportFailed() diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h index deff94ea16..af7b50802c 100644 --- a/indra/newview/llconversationmodel.h +++ b/indra/newview/llconversationmodel.h @@ -86,7 +86,7 @@ public: virtual void move( LLFolderViewModelItem* parent_listener ) { } virtual BOOL isItemCopyable() const { return FALSE; } virtual BOOL copyToClipboard() const { return FALSE; } - virtual BOOL cutToClipboard() const { return FALSE; } + virtual BOOL cutToClipboard() { return FALSE; } virtual BOOL isClipboardPasteable() const { return FALSE; } virtual void pasteFromClipboard() { } virtual void pasteLinkFromClipboard() { } diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp new file mode 100755 index 0000000000..b2d36479cd --- /dev/null +++ b/indra/newview/llfloatermarketplacelistings.cpp @@ -0,0 +1,949 @@ +/** + * @file llfloatermarketplacelistings.cpp + * @brief Implementation of the marketplace listings floater and panels + * @author merov@lindenlab.com + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloatermarketplacelistings.h" + +#include "llfloaterreg.h" +#include "llfiltereditor.h" +#include "llfolderview.h" +#include "llinventorybridge.h" +#include "llinventorymodelbackgroundfetch.h" +#include "llinventoryobserver.h" +#include "llinventoryfunctions.h" +#include "llmarketplacefunctions.h" +#include "llnotificationhandler.h" +#include "llnotificationmanager.h" +#include "llnotificationsutil.h" +#include "llsidepaneliteminfo.h" +#include "lltextbox.h" +#include "lltrans.h" + +///---------------------------------------------------------------------------- +/// LLPanelMarketplaceListings +///---------------------------------------------------------------------------- + +static LLPanelInjector<LLPanelMarketplaceListings> t_panel_status("llpanelmarketplacelistings"); + +LLPanelMarketplaceListings::LLPanelMarketplaceListings() +: mRootFolder(NULL) +, mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME) +, mFilterListingFoldersOnly(false) +{ + mCommitCallbackRegistrar.add("Marketplace.ViewSort.Action", boost::bind(&LLPanelMarketplaceListings::onViewSortMenuItemClicked, this, _2)); + mEnableCallbackRegistrar.add("Marketplace.ViewSort.CheckItem", boost::bind(&LLPanelMarketplaceListings::onViewSortMenuItemCheck, this, _2)); +} + +BOOL LLPanelMarketplaceListings::postBuild() +{ + childSetAction("add_btn", boost::bind(&LLPanelMarketplaceListings::onAddButtonClicked, this)); + childSetAction("audit_btn", boost::bind(&LLPanelMarketplaceListings::onAuditButtonClicked, this)); + + mFilterEditor = getChild<LLFilterEditor>("filter_editor"); + mFilterEditor->setCommitCallback(boost::bind(&LLPanelMarketplaceListings::onFilterEdit, this, _2)); + + mAuditBtn = getChild<LLButton>("audit_btn"); + mAuditBtn->setEnabled(FALSE); + + return LLPanel::postBuild(); +} + +BOOL LLPanelMarketplaceListings::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg) +{ + LLView * handled_view = childrenHandleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); + BOOL handled = (handled_view != NULL); + // Special case the drop zone + if (handled && (handled_view->getName() == "marketplace_drop_zone")) + { + LLFolderView* root_folder = getRootFolder(); + handled = root_folder->handleDragAndDropToThisFolder(mask, drop, cargo_type, cargo_data, accept, tooltip_msg); + } + return handled; +} + +void LLPanelMarketplaceListings::buildAllPanels() +{ + // Build the All panel first + LLInventoryPanel* panel_all_items; + panel_all_items = buildInventoryPanel("All Items", "panel_marketplace_listings_inventory.xml"); + panel_all_items->getFilter().setEmptyLookupMessage("MarketplaceNoMatchingItems"); + panel_all_items->getFilter().markDefault(); + + // Build the other panels + LLInventoryPanel* panel; + panel = buildInventoryPanel("Active Items", "panel_marketplace_listings_listed.xml"); + panel->getFilter().setFilterMarketplaceActiveFolders(); + panel->getFilter().setEmptyLookupMessage("MarketplaceNoMatchingItems"); + panel->getFilter().markDefault(); + panel = buildInventoryPanel("Inactive Items", "panel_marketplace_listings_unlisted.xml"); + panel->getFilter().setFilterMarketplaceInactiveFolders(); + panel->getFilter().setEmptyLookupMessage("MarketplaceNoMatchingItems"); + panel->getFilter().markDefault(); + panel = buildInventoryPanel("Unassociated Items", "panel_marketplace_listings_unassociated.xml"); + panel->getFilter().setFilterMarketplaceUnassociatedFolders(); + panel->getFilter().setEmptyLookupMessage("MarketplaceNoMatchingItems"); + panel->getFilter().markDefault(); + + // Set the tab panel + LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs"); + tabs_panel->setCommitCallback(boost::bind(&LLPanelMarketplaceListings::onTabChange, this)); + tabs_panel->selectTabPanel(panel_all_items); // All panel selected by default + mRootFolder = panel_all_items->getRootFolder(); // Keep the root of the all panel + + // Set the default sort order + setSortOrder(gSavedSettings.getU32("MarketplaceListingsSortOrder")); +} + +LLInventoryPanel* LLPanelMarketplaceListings::buildInventoryPanel(const std::string& childname, const std::string& filename) +{ + LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs"); + LLInventoryPanel* panel = LLUICtrlFactory::createFromFile<LLInventoryPanel>(filename, tabs_panel, LLInventoryPanel::child_registry_t::instance()); + llassert(panel != NULL); + + // Set sort order and callbacks + panel = getChild<LLInventoryPanel>(childname); + panel->getFolderViewModel()->setSorter(LLInventoryFilter::SO_FOLDERS_BY_NAME); + panel->setSelectCallback(boost::bind(&LLPanelMarketplaceListings::onSelectionChange, this, panel, _1, _2)); + + return panel; +} + +void LLPanelMarketplaceListings::setSortOrder(U32 sort_order) +{ + mSortOrder = sort_order; + gSavedSettings.setU32("MarketplaceListingsSortOrder", sort_order); + + // Set each panel with that sort order + LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs"); + LLInventoryPanel* panel = (LLInventoryPanel*)tabs_panel->getPanelByName("All Items"); + panel->setSortOrder(mSortOrder); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Active Items"); + panel->setSortOrder(mSortOrder); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Inactive Items"); + panel->setSortOrder(mSortOrder); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items"); + panel->setSortOrder(mSortOrder); +} + +void LLPanelMarketplaceListings::onFilterEdit(const std::string& search_string) +{ + // Find active panel + LLInventoryPanel* panel = (LLInventoryPanel*)getChild<LLTabContainer>("marketplace_filter_tabs")->getCurrentPanel(); + if (panel) + { + // Save filter string (needed when switching tabs) + mFilterSubString = search_string; + // Set filter string on active panel + panel->setFilterSubString(mFilterSubString); + } +} + +void LLPanelMarketplaceListings::draw() +{ + if (LLMarketplaceData::instance().checkDirtyCount()) + { + update_all_marketplace_count(); + } + + // Get the audit button enabled only after the whole inventory is fetched + if (!mAuditBtn->getEnabled()) + { + mAuditBtn->setEnabled(LLInventoryModelBackgroundFetch::instance().isEverythingFetched()); + } + + LLPanel::draw(); +} + +void LLPanelMarketplaceListings::onSelectionChange(LLInventoryPanel *panel, const std::deque<LLFolderViewItem*>& items, BOOL user_action) +{ + panel->onSelectionChange(items, user_action); +} + +bool LLPanelMarketplaceListings::allowDropOnRoot() +{ + LLInventoryPanel* panel = (LLInventoryPanel*)getChild<LLTabContainer>("marketplace_filter_tabs")->getCurrentPanel(); + return (panel ? panel->getAllowDropOnRoot() : false); +} + +void LLPanelMarketplaceListings::onTabChange() +{ + // Find active panel + LLInventoryPanel* panel = (LLInventoryPanel*)getChild<LLTabContainer>("marketplace_filter_tabs")->getCurrentPanel(); + if (panel) + { + // If the panel doesn't allow drop on root, it doesn't allow the creation of new folder on root either + LLButton* add_btn = getChild<LLButton>("add_btn"); + add_btn->setEnabled(panel->getAllowDropOnRoot()); + + // Set filter string on active panel + panel->setFilterSubString(mFilterSubString); + + // Show/hide the drop zone and resize the inventory tabs panel accordingly + LLPanel* drop_zone = (LLPanel*)getChild<LLPanel>("marketplace_drop_zone"); + bool drop_zone_visible = drop_zone->getVisible(); + if (drop_zone_visible != panel->getAllowDropOnRoot()) + { + LLPanel* tabs = (LLPanel*)getChild<LLPanel>("tab_container_panel"); + S32 delta_height = drop_zone->getRect().getHeight(); + delta_height = (drop_zone_visible ? delta_height : -delta_height); + tabs->reshape(tabs->getRect().getWidth(),tabs->getRect().getHeight() + delta_height); + tabs->translate(0,-delta_height); + } + drop_zone->setVisible(panel->getAllowDropOnRoot()); + } +} + +void LLPanelMarketplaceListings::onAddButtonClicked() +{ + // Find active panel + LLInventoryPanel* panel = (LLInventoryPanel*)getChild<LLTabContainer>("marketplace_filter_tabs")->getCurrentPanel(); + if (panel) + { + LLUUID marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + llassert(marketplacelistings_id.notNull()); + LLFolderType::EType preferred_type = LLFolderType::lookup("category"); + LLUUID category = gInventory.createNewCategory(marketplacelistings_id, preferred_type, LLStringUtil::null); + gInventory.notifyObservers(); + panel->setSelectionByID(category, TRUE); + panel->getRootFolder()->setNeedsAutoRename(TRUE); + } +} + +void LLPanelMarketplaceListings::onAuditButtonClicked() +{ + LLSD data(LLSD::emptyMap()); + LLFloaterReg::showInstance("marketplace_validation", data); +} + +void LLPanelMarketplaceListings::onViewSortMenuItemClicked(const LLSD& userdata) +{ + std::string chosen_item = userdata.asString(); + + // Sort options + if ((chosen_item == "sort_by_stock_amount") || (chosen_item == "sort_by_name") || (chosen_item == "sort_by_recent")) + { + // We're making sort options exclusive, default is SO_FOLDERS_BY_NAME + if (chosen_item == "sort_by_stock_amount") + { + setSortOrder(LLInventoryFilter::SO_FOLDERS_BY_WEIGHT); + } + else if (chosen_item == "sort_by_name") + { + setSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME); + } + else if (chosen_item == "sort_by_recent") + { + setSortOrder(LLInventoryFilter::SO_DATE); + } + } + // Filter option + else if (chosen_item == "show_only_listing_folders") + { + mFilterListingFoldersOnly = !mFilterListingFoldersOnly; + // Set each panel with that filter flag + LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs"); + LLInventoryPanel* panel = (LLInventoryPanel*)tabs_panel->getPanelByName("All Items"); + panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Active Items"); + panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Inactive Items"); + panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly); + panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items"); + panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly); + } +} + +bool LLPanelMarketplaceListings::onViewSortMenuItemCheck(const LLSD& userdata) +{ + std::string chosen_item = userdata.asString(); + + if ((chosen_item == "sort_by_stock_amount") || (chosen_item == "sort_by_name") || (chosen_item == "sort_by_recent")) + { + if (chosen_item == "sort_by_stock_amount") + { + return (mSortOrder & LLInventoryFilter::SO_FOLDERS_BY_WEIGHT); + } + else if (chosen_item == "sort_by_name") + { + return (mSortOrder & LLInventoryFilter::SO_FOLDERS_BY_NAME); + } + else if (chosen_item == "sort_by_recent") + { + return (mSortOrder & LLInventoryFilter::SO_DATE); + } + } + else if (chosen_item == "show_only_listing_folders") + { + return mFilterListingFoldersOnly; + } + return false; +} + +///---------------------------------------------------------------------------- +/// LLMarketplaceListingsAddedObserver helper class +///---------------------------------------------------------------------------- + +class LLMarketplaceListingsAddedObserver : public LLInventoryCategoryAddedObserver +{ +public: + LLMarketplaceListingsAddedObserver(LLFloaterMarketplaceListings * marketplace_listings_floater) + : LLInventoryCategoryAddedObserver() + , mMarketplaceListingsFloater(marketplace_listings_floater) + { + } + + void done() + { + for (cat_vec_t::iterator it = mAddedCategories.begin(); it != mAddedCategories.end(); ++it) + { + LLViewerInventoryCategory* added_category = *it; + + LLFolderType::EType added_category_type = added_category->getPreferredType(); + + if (added_category_type == LLFolderType::FT_MARKETPLACE_LISTINGS) + { + mMarketplaceListingsFloater->initializeMarketPlace(); + } + } + } + +private: + LLFloaterMarketplaceListings * mMarketplaceListingsFloater; +}; + +///---------------------------------------------------------------------------- +/// LLFloaterMarketplaceListings +///---------------------------------------------------------------------------- + +LLFloaterMarketplaceListings::LLFloaterMarketplaceListings(const LLSD& key) +: LLFloater(key) +, mCategoriesObserver(NULL) +, mCategoryAddedObserver(NULL) +, mRootFolderId(LLUUID::null) +, mInventoryStatus(NULL) +, mInventoryInitializationInProgress(NULL) +, mInventoryPlaceholder(NULL) +, mInventoryText(NULL) +, mInventoryTitle(NULL) +, mPanelListings(NULL) +, mPanelListingsSet(false) +{ +} + +LLFloaterMarketplaceListings::~LLFloaterMarketplaceListings() +{ + if (mCategoriesObserver && gInventory.containsObserver(mCategoriesObserver)) + { + gInventory.removeObserver(mCategoriesObserver); + } + delete mCategoriesObserver; + + if (mCategoryAddedObserver && gInventory.containsObserver(mCategoryAddedObserver)) + { + gInventory.removeObserver(mCategoryAddedObserver); + } + delete mCategoryAddedObserver; +} + +BOOL LLFloaterMarketplaceListings::postBuild() +{ + mInventoryStatus = getChild<LLTextBox>("marketplace_status"); + mInventoryInitializationInProgress = getChild<LLView>("initialization_progress_indicator"); + mInventoryPlaceholder = getChild<LLView>("marketplace_listings_inventory_placeholder_panel"); + mInventoryText = mInventoryPlaceholder->getChild<LLTextBox>("marketplace_listings_inventory_placeholder_text"); + mInventoryTitle = mInventoryPlaceholder->getChild<LLTextBox>("marketplace_listings_inventory_placeholder_title"); + + mPanelListings = static_cast<LLPanelMarketplaceListings*>(getChild<LLUICtrl>("panel_marketplace_listing")); + + LLFocusableElement::setFocusReceivedCallback(boost::bind(&LLFloaterMarketplaceListings::onFocusReceived, this)); + + // Observe category creation to catch marketplace listings creation (moot if already existing) + mCategoryAddedObserver = new LLMarketplaceListingsAddedObserver(this); + gInventory.addObserver(mCategoryAddedObserver); + + // Fetch aggressively so we can interact with listings right onOpen() + fetchContents(); + + return TRUE; +} + +void LLFloaterMarketplaceListings::onClose(bool app_quitting) +{ +} + +void LLFloaterMarketplaceListings::onOpen(const LLSD& key) +{ + // + // Initialize the Market Place or go update the marketplace listings + // + if (LLMarketplaceData::instance().getSLMStatus() <= MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE) + { + initializeMarketPlace(); + } + else + { + updateView(); + } +} + +void LLFloaterMarketplaceListings::onFocusReceived() +{ + updateView(); +} + +void LLFloaterMarketplaceListings::fetchContents() +{ + if (mRootFolderId.notNull() && + (LLMarketplaceData::instance().getSLMDataFetched() != MarketplaceFetchCodes::MARKET_FETCH_LOADING) && + (LLMarketplaceData::instance().getSLMDataFetched() != MarketplaceFetchCodes::MARKET_FETCH_DONE)) + { + LLMarketplaceData::instance().setDataFetchedSignal(boost::bind(&LLFloaterMarketplaceListings::updateView, this)); + LLMarketplaceData::instance().setSLMDataFetched(MarketplaceFetchCodes::MARKET_FETCH_LOADING); + LLInventoryModelBackgroundFetch::instance().start(mRootFolderId); + LLMarketplaceData::instance().getSLMListings(); + } +} + +void LLFloaterMarketplaceListings::setRootFolder() +{ + if ((LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) && + (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_MIGRATED_MERCHANT)) + { + // If we are *not* a merchant or we have no market place connection established yet, do nothing + return; + } + + // We are a merchant. Get the Marketplace listings folder, create it if needs be. + LLUUID marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, true); + if (marketplacelistings_id.isNull()) + { + // We should never get there unless the inventory fails badly + LL_ERRS("SLM") << "Inventory problem: failure to create the marketplace listings folder for a merchant!" << LL_ENDL; + return; + } + + // No longer need to observe new category creation + if (mCategoryAddedObserver && gInventory.containsObserver(mCategoryAddedObserver)) + { + gInventory.removeObserver(mCategoryAddedObserver); + delete mCategoryAddedObserver; + mCategoryAddedObserver = NULL; + } + llassert(!mCategoryAddedObserver); + + if (marketplacelistings_id == mRootFolderId) + { + LL_WARNS("SLM") << "Inventory warning: Marketplace listings folder already set" << LL_ENDL; + return; + } + + mRootFolderId = marketplacelistings_id; +} + +void LLFloaterMarketplaceListings::setPanels() +{ + if (mRootFolderId.isNull()) + { + return; + } + + // Consolidate Marketplace listings + // We shouldn't have to do that but with a client/server system relying on a "well known folder" convention, + // things get messy and conventions get broken down eventually + gInventory.consolidateForType(mRootFolderId, LLFolderType::FT_MARKETPLACE_LISTINGS); + + // Now that we do have a non NULL root, we can build the inventory panels + mPanelListings->buildAllPanels(); + + // Create observer for marketplace listings modifications + if (!mCategoriesObserver) + { + mCategoriesObserver = new LLInventoryCategoriesObserver(); + llassert(mCategoriesObserver); + gInventory.addObserver(mCategoriesObserver); + mCategoriesObserver->addCategory(mRootFolderId, boost::bind(&LLFloaterMarketplaceListings::onChanged, this)); + } + + // Get the content of the marketplace listings folder + fetchContents(); + + // Flag that this is done + mPanelListingsSet = true; +} + +void LLFloaterMarketplaceListings::initializeMarketPlace() +{ + LLMarketplaceData::instance().initializeSLM(boost::bind(&LLFloaterMarketplaceListings::updateView, this)); +} + +S32 LLFloaterMarketplaceListings::getFolderCount() +{ + if (mPanelListings && mRootFolderId.notNull()) + { + LLInventoryModel::cat_array_t * cats; + LLInventoryModel::item_array_t * items; + gInventory.getDirectDescendentsOf(mRootFolderId, cats, items); + + return (cats->size() + items->size()); + } + else + { + return 0; + } +} + +void LLFloaterMarketplaceListings::setStatusString(const std::string& statusString) +{ + mInventoryStatus->setText(statusString); +} + +void LLFloaterMarketplaceListings::updateView() +{ + U32 mkt_status = LLMarketplaceData::instance().getSLMStatus(); + bool is_merchant = (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) || (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_MIGRATED_MERCHANT); + U32 data_fetched = LLMarketplaceData::instance().getSLMDataFetched(); + + // Get or create the root folder if we are a merchant and it hasn't been done already + if (mRootFolderId.isNull() && is_merchant) + { + setRootFolder(); + } + + // Update the bottom initializing status and progress dial if we are initializing or if we're a merchant and still loading + if ((mkt_status <= MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING) || (is_merchant && (data_fetched <= MarketplaceFetchCodes::MARKET_FETCH_LOADING)) ) + { + // Just show the loading indicator in that case and fetch the data (fetch will be skipped if it's already loading) + mInventoryInitializationInProgress->setVisible(true); + mPanelListings->setVisible(FALSE); + fetchContents(); + return; + } + else + { + mInventoryInitializationInProgress->setVisible(false); + } + + // Update the middle portion : tabs or messages + if (getFolderCount() > 0) + { + if (!mPanelListingsSet) + { + // We need to rebuild the tabs cleanly the first time we make them visible + setPanels(); + } + mPanelListings->setVisible(TRUE); + mInventoryPlaceholder->setVisible(FALSE); + } + else + { + mPanelListings->setVisible(FALSE); + mInventoryPlaceholder->setVisible(TRUE); + + std::string text; + std::string title; + std::string tooltip; + + const LLSD& subs = getMarketplaceStringSubstitutions(); + + // Update the top message or flip to the tabs and folders view + // *TODO : check those messages and create better appropriate ones in strings.xml + if (mRootFolderId.notNull()) + { + // "Marketplace listings is empty!" message strings + text = LLTrans::getString("InventoryMarketplaceListingsNoItems", subs); + title = LLTrans::getString("InventoryMarketplaceListingsNoItemsTitle"); + tooltip = LLTrans::getString("InventoryMarketplaceListingsNoItemsTooltip"); + } + else if (mkt_status <= MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING) + { + // "Initializing!" message strings + text = LLTrans::getString("InventoryOutboxInitializing", subs); + title = LLTrans::getString("InventoryOutboxInitializingTitle"); + tooltip = LLTrans::getString("InventoryOutboxInitializingTooltip"); + } + else if (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT) + { + // "Not a merchant!" message strings + text = LLTrans::getString("InventoryOutboxNotMerchant", subs); + title = LLTrans::getString("InventoryOutboxNotMerchantTitle"); + tooltip = LLTrans::getString("InventoryOutboxNotMerchantTooltip"); + } + else + { + // "Errors!" message strings + text = LLTrans::getString("InventoryMarketplaceError", subs); + title = LLTrans::getString("InventoryOutboxErrorTitle"); + tooltip = LLTrans::getString("InventoryOutboxErrorTooltip"); + } + + mInventoryText->setValue(text); + mInventoryTitle->setValue(title); + mInventoryPlaceholder->getParent()->setToolTip(tooltip); + } +} + +bool LLFloaterMarketplaceListings::isAccepted(EAcceptance accept) +{ + return (accept >= ACCEPT_YES_COPY_SINGLE); +} + +BOOL LLFloaterMarketplaceListings::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg) +{ + // If there's no panel to accept drops or no existing marketplace listings folder, we refuse all drop + if (!mPanelListings || mRootFolderId.isNull()) + { + return FALSE; + } + + tooltip_msg = ""; + + // Pass to the children + LLView * handled_view = childrenHandleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); + BOOL handled = (handled_view != NULL); + + // If no one handled it or it was not accepted and we drop on an empty panel, we try to accept it at the floater level + // as if it was dropped on the marketplace listings root folder + if ((!handled || !isAccepted(*accept)) && !mPanelListings->getVisible() && mRootFolderId.notNull()) + { + if (!mPanelListingsSet) + { + setPanels(); + } + LLFolderView* root_folder = mPanelListings->getRootFolder(); + handled = root_folder->handleDragAndDropToThisFolder(mask, drop, cargo_type, cargo_data, accept, tooltip_msg); + } + + return handled; +} + +BOOL LLFloaterMarketplaceListings::handleHover(S32 x, S32 y, MASK mask) +{ + return LLFloater::handleHover(x, y, mask); +} + +void LLFloaterMarketplaceListings::onMouseLeave(S32 x, S32 y, MASK mask) +{ + LLFloater::onMouseLeave(x, y, mask); +} + +void LLFloaterMarketplaceListings::onChanged() +{ + LLViewerInventoryCategory* category = gInventory.getCategory(mRootFolderId); + if (mRootFolderId.notNull() && category) + { + updateView(); + } + else + { + // Invalidate the marketplace listings data + mRootFolderId.setNull(); + } +} + +//----------------------------------------------------------------------------- +// LLFloaterAssociateListing +//----------------------------------------------------------------------------- + +// Tell if a listing has one only version folder +bool hasUniqueVersionFolder(const LLUUID& folder_id) +{ + LLInventoryModel::cat_array_t* categories; + LLInventoryModel::item_array_t* items; + gInventory.getDirectDescendentsOf(folder_id, categories, items); + return (categories->size() == 1); +} + +LLFloaterAssociateListing::LLFloaterAssociateListing(const LLSD& key) +: LLFloater(key) +, mUUID() +{ +} + +LLFloaterAssociateListing::~LLFloaterAssociateListing() +{ + gFocusMgr.releaseFocusIfNeeded( this ); +} + +BOOL LLFloaterAssociateListing::postBuild() +{ + getChild<LLButton>("OK")->setCommitCallback(boost::bind(&LLFloaterAssociateListing::apply, this, TRUE)); + getChild<LLButton>("Cancel")->setCommitCallback(boost::bind(&LLFloaterAssociateListing::cancel, this)); + getChild<LLLineEditor>("listing_id")->setPrevalidate(&LLTextValidate::validateNonNegativeS32); + center(); + + return LLFloater::postBuild(); +} + +BOOL LLFloaterAssociateListing::handleKeyHere(KEY key, MASK mask) +{ + if (key == KEY_RETURN && mask == MASK_NONE) + { + apply(); + return TRUE; + } + else if (key == KEY_ESCAPE && mask == MASK_NONE) + { + cancel(); + return TRUE; + } + + return LLFloater::handleKeyHere(key, mask); +} + +// static +LLFloaterAssociateListing* LLFloaterAssociateListing::show(const LLUUID& folder_id) +{ + LLFloaterAssociateListing* floater = LLFloaterReg::showTypedInstance<LLFloaterAssociateListing>("associate_listing"); + + floater->mUUID = folder_id; + + return floater; +} + +// Callback for apply if DAMA required... +void LLFloaterAssociateListing::callback_apply(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + apply(FALSE); + } +} + +void LLFloaterAssociateListing::apply(BOOL user_confirm) +{ + if (mUUID.notNull()) + { + S32 id = (S32)getChild<LLUICtrl>("listing_id")->getValue().asInteger(); + if (id > 0) + { + // Check if the id exists in the merchant SLM DB: note that this record might exist in the LLMarketplaceData + // structure even if unseen in the UI, for instance, if its listing_uuid doesn't exist in the merchant inventory + LLUUID listing_uuid = LLMarketplaceData::instance().getListingFolder(id); + if (listing_uuid.notNull() && user_confirm && LLMarketplaceData::instance().getActivationState(listing_uuid) && !hasUniqueVersionFolder(mUUID)) + { + // Look for user confirmation before unlisting + LLNotificationsUtil::add("ConfirmMerchantUnlist", LLSD(), LLSD(), boost::bind(&LLFloaterAssociateListing::callback_apply, this, _1, _2)); + return; + } + // Associate the id with the user chosen folder + LLMarketplaceData::instance().associateListing(mUUID,listing_uuid,id); + } + else + { + LLNotificationsUtil::add("AlertMerchantListingInvalidID"); + } + } + closeFloater(); +} + +void LLFloaterAssociateListing::cancel() +{ + closeFloater(); +} + +//----------------------------------------------------------------------------- +// LLFloaterMarketplaceValidation +//----------------------------------------------------------------------------- + +// Note: The key is the UUID of the folder to validate. +// Validates the whole marketplace listings content if UUID is null. + +LLFloaterMarketplaceValidation::LLFloaterMarketplaceValidation(const LLSD& key) +: LLFloater(key), +mEditor(NULL) +{ +} + +BOOL LLFloaterMarketplaceValidation::postBuild() +{ + childSetAction("OK", onOK, this); + + // This widget displays the validation messages + mEditor = getChild<LLTextEditor>("validation_text"); + mEditor->setEnabled(FALSE); + mEditor->setFocus(TRUE); + mEditor->setValue(LLSD()); + + return TRUE; +} + +LLFloaterMarketplaceValidation::~LLFloaterMarketplaceValidation() +{ +} + +// virtual +void LLFloaterMarketplaceValidation::draw() +{ + // draw children + LLFloater::draw(); +} + +void LLFloaterMarketplaceValidation::onOpen(const LLSD& key) +{ + // Clear the messages + clearMessages(); + + // Get the folder UUID to validate. Use the whole marketplace listing if none provided. + LLUUID cat_id(key.asUUID()); + if (cat_id.isNull()) + { + cat_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + } + + // Validates the folder + if (cat_id.notNull()) + { + LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id); + validate_marketplacelistings(cat, boost::bind(&LLFloaterMarketplaceValidation::appendMessage, this, _1, _2, _3), false); + } + + // Handle the listing folder being processed + handleCurrentListing(); + + // Dump result to the editor panel + if (mEditor) + { + mEditor->setValue(LLSD()); + if (mMessages.empty()) + { + // Display a no error message + mEditor->appendText(LLTrans::getString("Marketplace Validation No Error"), false); + } + else + { + // Print out all the messages to the panel + message_list_t::iterator mCurrentLine = mMessages.begin(); + bool new_line = false; + while (mCurrentLine != mMessages.end()) + { + // Errors are printed in bold, other messages in normal font + LLStyle::Params style; + LLFontDescriptor new_desc(mEditor->getFont()->getFontDesc()); + new_desc.setStyle(mCurrentLine->mErrorLevel == LLError::LEVEL_ERROR ? LLFontGL::BOLD : LLFontGL::NORMAL); + LLFontGL* new_font = LLFontGL::getFont(new_desc); + style.font = new_font; + mEditor->appendText(mCurrentLine->mMessage, new_line, style); + new_line = true; + mCurrentLine++; + } + } + } + // We don't need the messages anymore + clearMessages(); +} + +// static +void LLFloaterMarketplaceValidation::onOK( void* userdata ) +{ + // destroys this object + LLFloaterMarketplaceValidation* self = (LLFloaterMarketplaceValidation*) userdata; + self->clearMessages(); + self->closeFloater(); +} + +void LLFloaterMarketplaceValidation::appendMessage(std::string& message, S32 depth, LLError::ELevel log_level) +{ + // Dump previous listing messages if we're starting a new listing + if (depth == 1) + { + handleCurrentListing(); + } + + // Store the message in the current listing message list + Message current_message; + current_message.mErrorLevel = log_level; + current_message.mMessage = message; + mCurrentListingMessages.push_back(current_message); + mCurrentListingErrorLevel = (mCurrentListingErrorLevel < log_level ? log_level : mCurrentListingErrorLevel); +} + +// Move the current listing messages to the general list if needs be and reset the current listing data +void LLFloaterMarketplaceValidation::handleCurrentListing() +{ + // Dump the current folder messages to the general message list if level warrants it + if (mCurrentListingErrorLevel > LLError::LEVEL_INFO) + { + message_list_t::iterator mCurrentLine = mCurrentListingMessages.begin(); + while (mCurrentLine != mCurrentListingMessages.end()) + { + mMessages.push_back(*mCurrentLine); + mCurrentLine++; + } + } + + // Reset the current listing + mCurrentListingMessages.clear(); + mCurrentListingErrorLevel = LLError::LEVEL_INFO; +} + +void LLFloaterMarketplaceValidation::clearMessages() +{ + mMessages.clear(); + mCurrentListingMessages.clear(); + mCurrentListingErrorLevel = LLError::LEVEL_INFO; +} + +//----------------------------------------------------------------------------- +// LLFloaterItemProperties +//----------------------------------------------------------------------------- + +LLFloaterItemProperties::LLFloaterItemProperties(const LLSD& key) +: LLFloater(key) +{ +} + +LLFloaterItemProperties::~LLFloaterItemProperties() +{ +} + +BOOL LLFloaterItemProperties::postBuild() +{ + // On the standalone properties floater, we have no need for a back button... + LLSidepanelItemInfo* panel = getChild<LLSidepanelItemInfo>("item_panel"); + LLButton* back_btn = panel->getChild<LLButton>("back_btn"); + back_btn->setVisible(FALSE); + + return LLFloater::postBuild(); +} + +void LLFloaterItemProperties::onOpen(const LLSD& key) +{ + // Tell the panel which item it needs to visualize + LLSidepanelItemInfo* panel = getChild<LLSidepanelItemInfo>("item_panel"); + panel->setItemID(key["id"].asUUID()); +} + diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h new file mode 100755 index 0000000000..ffc098e28a --- /dev/null +++ b/indra/newview/llfloatermarketplacelistings.h @@ -0,0 +1,226 @@ +/** + * @file llfloatermarketplacelistings.h + * @brief Implementation of the marketplace listings floater and panels + * @author merov@lindenlab.com + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_LLFLOATERMARKETPLACELISTINGS_H +#define LL_LLFLOATERMARKETPLACELISTINGS_H + +#include "llfloater.h" +#include "llinventoryfilter.h" +#include "llinventorypanel.h" +#include "llnotificationptr.h" +#include "llmodaldialog.h" +#include "lltexteditor.h" + +class LLInventoryCategoriesObserver; +class LLInventoryCategoryAddedObserver; +class LLTextBox; +class LLView; +class LLFilterEditor; + +class LLFloaterMarketplaceListings; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLPanelMarketplaceListings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +class LLPanelMarketplaceListings : public LLPanel +{ +public: + LLPanelMarketplaceListings(); + BOOL postBuild(); + BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg); + void draw(); + LLFolderView* getRootFolder() { return mRootFolder; } + bool allowDropOnRoot(); + + void buildAllPanels(); + +private: + LLInventoryPanel* buildInventoryPanel(const std::string& childname, const std::string& filename); + + // UI callbacks + void onViewSortMenuItemClicked(const LLSD& userdata); + bool onViewSortMenuItemCheck(const LLSD& userdata); + void onAddButtonClicked(); + void onAuditButtonClicked(); + void onSelectionChange(LLInventoryPanel *panel, const std::deque<LLFolderViewItem*>& items, BOOL user_action); + void onTabChange(); + void onFilterEdit(const std::string& search_string); + + void setSortOrder(U32 sort_order); + + LLFolderView* mRootFolder; + LLButton* mAuditBtn; + LLFilterEditor* mFilterEditor; + std::string mFilterSubString; + bool mFilterListingFoldersOnly; + U32 mSortOrder; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLFloaterMarketplaceListings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +class LLFloaterMarketplaceListings : public LLFloater +{ +public: + LLFloaterMarketplaceListings(const LLSD& key); + ~LLFloaterMarketplaceListings(); + + void initializeMarketPlace(); + + // virtuals + BOOL postBuild(); + BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg); + + void showNotification(const LLNotificationPtr& notification); + + BOOL handleHover(S32 x, S32 y, MASK mask); + void onMouseLeave(S32 x, S32 y, MASK mask); + +protected: + void setRootFolder(); + void setPanels(); + void fetchContents(); + + void setStatusString(const std::string& statusString); + + void onClose(bool app_quitting); + void onOpen(const LLSD& key); + void onFocusReceived(); + void onChanged(); + + bool isAccepted(EAcceptance accept); + + void updateView(); + +private: + S32 getFolderCount(); + + LLInventoryCategoriesObserver * mCategoriesObserver; + LLInventoryCategoryAddedObserver * mCategoryAddedObserver; + + LLTextBox * mInventoryStatus; + LLView * mInventoryInitializationInProgress; + LLView * mInventoryPlaceholder; + LLTextBox * mInventoryText; + LLTextBox * mInventoryTitle; + + LLUUID mRootFolderId; + LLPanelMarketplaceListings * mPanelListings; + bool mPanelListingsSet; +}; + +//----------------------------------------------------------------------------- +// LLFloaterAssociateListing +//----------------------------------------------------------------------------- +class LLFloaterAssociateListing : public LLFloater +{ + friend class LLFloaterReg; +public: + virtual BOOL postBuild(); + virtual BOOL handleKeyHere(KEY key, MASK mask); + + static LLFloaterAssociateListing* show(const LLUUID& folder_id); + +private: + LLFloaterAssociateListing(const LLSD& key); + virtual ~LLFloaterAssociateListing(); + + // UI Callbacks + void apply(BOOL user_confirm = TRUE); + void cancel(); + void callback_apply(const LLSD& notification, const LLSD& response); + + LLUUID mUUID; +}; + +//----------------------------------------------------------------------------- +// LLFloaterMarketplaceValidation +//----------------------------------------------------------------------------- +// Note: The key is the UUID of the folder to validate. Validates the whole +// marketplace listings content if UUID is null. +// Note: For the moment, we just display the validation text. Eventually, we should +// get the validation triggered on the server and display the html report. +// *TODO : morph into an html/text window using the pattern in llfloatertos + +class LLFloaterMarketplaceValidation : public LLFloater +{ +public: + LLFloaterMarketplaceValidation(const LLSD& key); + virtual ~LLFloaterMarketplaceValidation(); + + virtual BOOL postBuild(); + virtual void draw(); + virtual void onOpen(const LLSD& key); + + void clearMessages(); + void appendMessage(std::string& message, S32 depth, LLError::ELevel log_level); + static void onOK( void* userdata ); + +private: + struct Message { + LLError::ELevel mErrorLevel; + std::string mMessage; + }; + typedef std::vector<Message> message_list_t; + + void handleCurrentListing(); + + message_list_t mCurrentListingMessages; + LLError::ELevel mCurrentListingErrorLevel; + + message_list_t mMessages; + + LLTextEditor* mEditor; +}; + +//----------------------------------------------------------------------------- +// LLFloaterItemProperties +//----------------------------------------------------------------------------- + +class LLFloaterItemProperties : public LLFloater +{ +public: + LLFloaterItemProperties(const LLSD& key); + virtual ~LLFloaterItemProperties(); + + BOOL postBuild(); + virtual void onOpen(const LLSD& key); + +private: +}; + +#endif // LL_LLFLOATERMARKETPLACELISTINGS_H diff --git a/indra/newview/llfloateroutbox.cpp b/indra/newview/llfloateroutbox.cpp index e5efca1102..b7b1634a5f 100755 --- a/indra/newview/llfloateroutbox.cpp +++ b/indra/newview/llfloateroutbox.cpp @@ -160,6 +160,12 @@ BOOL LLFloaterOutbox::postBuild() mCategoryAddedObserver = new LLOutboxAddedObserver(this); gInventory.addObserver(mCategoryAddedObserver); + // Setup callbacks for importer + LLMarketplaceInventoryImporter& importer = LLMarketplaceInventoryImporter::instance(); + importer.setInitializationErrorCallback(boost::bind(&LLFloaterOutbox::initializationReportError, this, _1, _2)); + importer.setStatusChangedCallback(boost::bind(&LLFloaterOutbox::importStatusChanged, this, _1)); + importer.setStatusReportCallback(boost::bind(&LLFloaterOutbox::importReportResults, this, _1, _2)); + return TRUE; } @@ -298,12 +304,8 @@ void LLFloaterOutbox::initializeMarketPlace() // Initialize the marketplace import API // LLMarketplaceInventoryImporter& importer = LLMarketplaceInventoryImporter::instance(); - if (!importer.isInitialized()) { - importer.setInitializationErrorCallback(boost::bind(&LLFloaterOutbox::initializationReportError, this, _1, _2)); - importer.setStatusChangedCallback(boost::bind(&LLFloaterOutbox::importStatusChanged, this, _1)); - importer.setStatusReportCallback(boost::bind(&LLFloaterOutbox::importReportResults, this, _1, _2)); importer.initialize(); } } @@ -516,7 +518,7 @@ void LLFloaterOutbox::onImportButtonClicked() { mOutboxInventoryPanel.get()->clearSelection(); } - + mImportBusy = LLMarketplaceInventoryImporter::instance().triggerImport(); } @@ -617,3 +619,5 @@ void LLFloaterOutbox::showNotification(const LLNotificationPtr& notification) notification_handler->processNotification(notification); } + + diff --git a/indra/newview/llfloateroutbox.h b/indra/newview/llfloateroutbox.h index 40519c8fd2..2cf69fc3cc 100755 --- a/indra/newview/llfloateroutbox.h +++ b/indra/newview/llfloateroutbox.h @@ -1,7 +1,6 @@ /** * @file llfloateroutbox.h - * @brief LLFloaterOutbox - * class definition + * @brief Implementation of the merchant outbox window * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code @@ -30,6 +29,7 @@ #include "llfloater.h" #include "llfoldertype.h" +#include "llinventoryfilter.h" #include "llnotificationptr.h" diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index 3271a40ea0..44eda4d6c0 100755 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -27,6 +27,7 @@ #include "llviewerprecompiledheaders.h" #include "llfolderviewmodelinventory.h" #include "llinventorymodelbackgroundfetch.h" +#include "llinventoryfunctions.h" #include "llinventorypanel.h" #include "lltooldraganddrop.h" #include "llfavoritesbar.h" @@ -277,7 +278,7 @@ bool LLInventorySort::operator()(const LLFolderViewModelItemInventory* const& a, // We sort by name if we aren't sorting by date // OR if these are folders and we are sorting folders by name. - bool by_name = (!mByDate || (mFoldersByName && (a->getSortGroup() != SG_ITEM))); + bool by_name = ((!mByDate || (mFoldersByName && (a->getSortGroup() != SG_ITEM))) && !mFoldersByWeight); if (a->getSortGroup() != b->getSortGroup()) { @@ -309,6 +310,31 @@ bool LLInventorySort::operator()(const LLFolderViewModelItemInventory* const& a, return (compare < 0); } } + else if (mFoldersByWeight) + { + S32 weight_a = compute_stock_count(a->getUUID()); + S32 weight_b = compute_stock_count(b->getUUID()); + if (weight_a == weight_b) + { + // Equal weight -> use alphabetical order + return (LLStringUtil::compareDict(a->getDisplayName(), b->getDisplayName()) < 0); + } + else if (weight_a == COMPUTE_STOCK_INFINITE) + { + // No stock -> move a at the end of the list + return false; + } + else if (weight_b == COMPUTE_STOCK_INFINITE) + { + // No stock -> move b at the end of the list + return true; + } + else + { + // Lighter is first (sorted in increasing order of weight) + return (weight_a < weight_b); + } + } else { time_t first_create = a->getCreationDate(); diff --git a/indra/newview/llfolderviewmodelinventory.h b/indra/newview/llfolderviewmodelinventory.h index 8772185ad0..0516fc3b4b 100755 --- a/indra/newview/llfolderviewmodelinventory.h +++ b/indra/newview/llfolderviewmodelinventory.h @@ -89,6 +89,7 @@ public: mByDate = (mSortOrder & LLInventoryFilter::SO_DATE); mSystemToTop = (mSortOrder & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP); mFoldersByName = (mSortOrder & LLInventoryFilter::SO_FOLDERS_BY_NAME); + mFoldersByWeight = (mSortOrder & LLInventoryFilter::SO_FOLDERS_BY_WEIGHT); } bool operator()(const LLFolderViewModelItemInventory* const& a, const LLFolderViewModelItemInventory* const& b) const; @@ -97,6 +98,7 @@ private: bool mByDate; bool mSystemToTop; bool mFoldersByName; + bool mFoldersByWeight; }; class LLFolderViewModelInventory diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 84f88e38ba..605f71f412 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -40,6 +40,7 @@ #include "llfavoritesbar.h" // management of favorites folder #include "llfloateropenobject.h" #include "llfloaterreg.h" +#include "llfloatermarketplacelistings.h" #include "llfloatersidepanelcontainer.h" #include "llfloaterworldmap.h" #include "llfolderview.h" @@ -65,6 +66,7 @@ #include "llsidepanelappearance.h" #include "lltooldraganddrop.h" #include "lltrans.h" +#include "llurlaction.h" #include "llviewerassettype.h" #include "llviewerfoldertype.h" #include "llviewermenu.h" @@ -80,11 +82,6 @@ void copy_slurl_to_clipboard_callback_inv(const std::string& slurl); -// Marketplace outbox current disabled -#define ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU 1 -#define ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU 0 -#define BLOCK_WORN_ITEMS_IN_OUTBOX 1 - typedef std::pair<LLUUID, LLUUID> two_uuids_t; typedef std::list<two_uuids_t> two_uuids_list_t; @@ -206,7 +203,6 @@ const std::string& LLInvFVBridge::getDisplayName() const { buildDisplayName(); } - return mDisplayName; } @@ -270,13 +266,49 @@ BOOL LLInvFVBridge::isLibraryItem() const /** * @brief Adds this item into clipboard storage */ -BOOL LLInvFVBridge::cutToClipboard() const +BOOL LLInvFVBridge::cutToClipboard() +{ + const LLInventoryObject* obj = gInventory.getObject(mUUID); + if (obj && isItemMovable() && isItemRemovable()) + { + const LLUUID &marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + const BOOL cut_from_marketplacelistings = gInventory.isObjectDescendentOf(mUUID, marketplacelistings_id); + + if (cut_from_marketplacelistings && (LLMarketplaceData::instance().isInActiveFolder(mUUID) || + LLMarketplaceData::instance().isListedAndActive(mUUID))) + { + // Prompt the user if cutting from a marketplace active listing + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLInvFVBridge::callback_cutToClipboard, this, _1, _2)); + } + else + { + // Otherwise just perform the cut + return perform_cutToClipboard(); + } + } + return FALSE; +} + +// Callback for cutToClipboard if DAMA required... +BOOL LLInvFVBridge::callback_cutToClipboard(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + return perform_cutToClipboard(); + } + return FALSE; +} + +BOOL LLInvFVBridge::perform_cutToClipboard() { const LLInventoryObject* obj = gInventory.getObject(mUUID); if (obj && isItemMovable() && isItemRemovable()) { LLClipboard::instance().setCutMode(true); - return LLClipboard::instance().addToClipboard(mUUID); + BOOL added_to_clipboard = LLClipboard::instance().addToClipboard(mUUID); + removeObject(&gInventory, mUUID); // Always perform the remove even if the object couldn't make it to the clipboard + return added_to_clipboard; } return FALSE; } @@ -291,15 +323,22 @@ BOOL LLInvFVBridge::copyToClipboard() const return FALSE; } -// *TODO: make sure this does the right thing void LLInvFVBridge::showProperties() { - show_item_profile(mUUID); - - // Disable old properties floater; this is replaced by the sidepanel. - /* - LLFloaterReg::showInstance("properties", mUUID); - */ + if (isMarketplaceListingsFolder()) + { + LLFloaterReg::showInstance("item_properties", LLSD().with("id",mUUID),TRUE); + // Force it to show on top as this floater has a tendency to hide when confirmation dialog shows up + LLFloater* floater_properties = LLFloaterReg::findInstance("item_properties", LLSD().with("id",mUUID)); + if (floater_properties) + { + floater_properties->setVisibleAndFrontmost(); + } + } + else + { + show_item_profile(mUUID); + } } void LLInvFVBridge::removeBatch(std::vector<LLFolderViewModelItem*>& batch) @@ -696,7 +735,7 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id, if (!isInboxFolder()) { items.push_back(std::string("Rename")); - if (!isItemRenameable() || (flags & FIRST_SELECTED_ITEM) == 0) + if (!isItemRenameable() || ((flags & FIRST_SELECTED_ITEM) == 0)) { disabled_items.push_back(std::string("Rename")); } @@ -734,15 +773,28 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id, disabled_items.push_back(std::string("Cut")); } - if (canListOnMarketplace()) + if (canListOnMarketplace() && !isMarketplaceListingsFolder() && !isInboxFolder()) { items.push_back(std::string("Marketplace Separator")); - items.push_back(std::string("Merchant Copy")); - if (!canListOnMarketplaceNow()) - { - disabled_items.push_back(std::string("Merchant Copy")); - } + if (gMenuHolder->getChild<LLView>("MerchantOutbox")->getVisible()) + { + items.push_back(std::string("Merchant Copy")); + if (!canListOnOutboxNow()) + { + disabled_items.push_back(std::string("Merchant Copy")); + } + } + if (gMenuHolder->getChild<LLView>("MarketplaceListings")->getVisible()) + { + items.push_back(std::string("Marketplace Copy")); + items.push_back(std::string("Marketplace Move")); + if (!canListOnMarketplaceNow()) + { + disabled_items.push_back(std::string("Marketplace Copy")); + disabled_items.push_back(std::string("Marketplace Move")); + } + } } } } @@ -901,21 +953,130 @@ void LLInvFVBridge::addOutboxContextMenuOptions(U32 flags, { disabled_items.push_back(std::string("Rename")); } - -#if ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU - if (isOutboxFolderDirectParent()) - { - items.push_back(std::string("Marketplace Separator")); - items.push_back(std::string("Marketplace Send")); - - if ((flags & FIRST_SELECTED_ITEM) == 0) - { - disabled_items.push_back(std::string("Marketplace Send")); - } - } -#endif // ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU } +void LLInvFVBridge::addMarketplaceContextMenuOptions(U32 flags, + menuentry_vec_t &items, + menuentry_vec_t &disabled_items) +{ + S32 depth = depth_nesting_in_marketplace(mUUID); + if (depth == 1) + { + // Options available at the Listing Folder level + items.push_back(std::string("Marketplace Create Listing")); + items.push_back(std::string("Marketplace Associate Listing")); + items.push_back(std::string("Marketplace Check Listing")); + items.push_back(std::string("Marketplace List")); + items.push_back(std::string("Marketplace Unlist")); + if (LLMarketplaceData::instance().isUpdating(mUUID,depth) || ((flags & FIRST_SELECTED_ITEM) == 0)) + { + // During SLM update, disable all marketplace related options + // Also disable all if multiple selected items + disabled_items.push_back(std::string("Marketplace Create Listing")); + disabled_items.push_back(std::string("Marketplace Associate Listing")); + disabled_items.push_back(std::string("Marketplace Check Listing")); + disabled_items.push_back(std::string("Marketplace List")); + disabled_items.push_back(std::string("Marketplace Unlist")); + } + else + { + if (gSavedSettings.getBOOL("MarketplaceListingsLogging")) + { + items.push_back(std::string("Marketplace Get Listing")); + } + if (LLMarketplaceData::instance().isListed(mUUID)) + { + disabled_items.push_back(std::string("Marketplace Create Listing")); + disabled_items.push_back(std::string("Marketplace Associate Listing")); + if (LLMarketplaceData::instance().getVersionFolder(mUUID).isNull()) + { + disabled_items.push_back(std::string("Marketplace List")); + disabled_items.push_back(std::string("Marketplace Unlist")); + } + else + { + if (LLMarketplaceData::instance().getActivationState(mUUID)) + { + disabled_items.push_back(std::string("Marketplace List")); + } + else + { + disabled_items.push_back(std::string("Marketplace Unlist")); + } + } + } + else + { + disabled_items.push_back(std::string("Marketplace List")); + disabled_items.push_back(std::string("Marketplace Unlist")); + if (gSavedSettings.getBOOL("MarketplaceListingsLogging")) + { + disabled_items.push_back(std::string("Marketplace Get Listing")); + } + } + } + } + if (depth == 2) + { + // Options available at the Version Folder levels and only for folders + LLInventoryCategory* cat = gInventory.getCategory(mUUID); + if (cat && LLMarketplaceData::instance().isListed(cat->getParentUUID())) + { + items.push_back(std::string("Marketplace Activate")); + items.push_back(std::string("Marketplace Deactivate")); + if (LLMarketplaceData::instance().isUpdating(mUUID,depth) || ((flags & FIRST_SELECTED_ITEM) == 0)) + { + // During SLM update, disable all marketplace related options + // Also disable all if multiple selected items + disabled_items.push_back(std::string("Marketplace Activate")); + disabled_items.push_back(std::string("Marketplace Deactivate")); + } + else + { + if (LLMarketplaceData::instance().isVersionFolder(mUUID)) + { + disabled_items.push_back(std::string("Marketplace Activate")); + if (LLMarketplaceData::instance().getActivationState(mUUID)) + { + disabled_items.push_back(std::string("Marketplace Deactivate")); + } + } + else + { + disabled_items.push_back(std::string("Marketplace Deactivate")); + } + } + } + } + + items.push_back(std::string("Marketplace Edit Listing")); + LLUUID listing_folder_id = nested_parent_id(mUUID,depth); + LLUUID version_folder_id = LLMarketplaceData::instance().getVersionFolder(listing_folder_id); + + if (depth >= 2) + { + // Prevent creation of new folders if the max count has been reached on this version folder (active or not) + LLUUID local_version_folder_id = nested_parent_id(mUUID,depth-1); + LLInventoryModel::cat_array_t categories; + LLInventoryModel::item_array_t items; + gInventory.collectDescendents(local_version_folder_id, categories, items, FALSE); + if (categories.size() >= gSavedSettings.getU32("InventoryOutboxMaxFolderCount")) + { + disabled_items.push_back(std::string("New Folder")); + } + } + + // Options available at all levels on items and categories + if (!LLMarketplaceData::instance().isListed(listing_folder_id) || version_folder_id.isNull()) + { + disabled_items.push_back(std::string("Marketplace Edit Listing")); + } + + // Separator + items.push_back(std::string("Marketplace Listings Separator")); +} + + // *TODO: remove this BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id) const { @@ -1018,6 +1179,7 @@ BOOL LLInvFVBridge::isCOFFolder() const return LLAppearanceMgr::instance().getIsInCOF(mUUID); } +// *TODO : Suppress isInboxFolder() once Merchant Outbox is fully deprecated BOOL LLInvFVBridge::isInboxFolder() const { const LLUUID inbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_INBOX, false); @@ -1030,6 +1192,18 @@ BOOL LLInvFVBridge::isInboxFolder() const return gInventory.isObjectDescendentOf(mUUID, inbox_id); } +BOOL LLInvFVBridge::isMarketplaceListingsFolder() const +{ + const LLUUID folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + + if (folder_id.isNull()) + { + return FALSE; + } + + return gInventory.isObjectDescendentOf(mUUID, folder_id); +} + BOOL LLInvFVBridge::isOutboxFolder() const { const LLUUID outbox_id = getOutboxFolder(); @@ -1191,11 +1365,18 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_CATEGORY: if (actual_asset_type == LLAssetType::AT_LINK_FOLDER) { - // Create a link folder handler instead. + // Create a link folder handler instead new_listener = new LLLinkFolderBridge(inventory, root, uuid); - break; } - new_listener = new LLFolderBridge(inventory, root, uuid); + else if (actual_asset_type == LLAssetType::AT_MARKETPLACE_FOLDER) + { + // Create a marketplace folder handler + new_listener = new LLMarketplaceFolderBridge(inventory, root, uuid); + } + else + { + new_listener = new LLFolderBridge(inventory, root, uuid); + } break; case LLAssetType::AT_LINK: case LLAssetType::AT_LINK_FOLDER: @@ -1238,6 +1419,22 @@ void LLInvFVBridge::purgeItem(LLInventoryModel *model, const LLUUID &uuid) } } +void LLInvFVBridge::removeObject(LLInventoryModel *model, const LLUUID &uuid) +{ + // Keep track of the parent + LLInventoryItem* itemp = model->getItem(uuid); + LLUUID parent_id = (itemp ? itemp->getParentUUID() : LLUUID::null); + // Remove the object + model->removeObject(uuid); + // Get the parent updated + if (parent_id.notNull()) + { + LLViewerInventoryCategory* parent_cat = model->getCategory(parent_id); + model->updateCategory(parent_cat); + model->notifyObservers(); + } +} + bool LLInvFVBridge::canShare() const { bool can_share = false; @@ -1268,11 +1465,9 @@ bool LLInvFVBridge::canShare() const bool LLInvFVBridge::canListOnMarketplace() const { -#if ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU - LLInventoryModel * model = getInventoryModel(); - const LLViewerInventoryCategory * cat = model->getCategory(mUUID); + LLViewerInventoryCategory * cat = model->getCategory(mUUID); if (cat && LLFolderType::lookupIsProtectedType(cat->getPreferredType())) { return false; @@ -1283,16 +1478,6 @@ bool LLInvFVBridge::canListOnMarketplace() const return false; } - if (getOutboxFolder().isNull()) - { - return false; - } - - if (isInboxFolder() || isOutboxFolder()) - { - return false; - } - LLViewerInventoryItem * item = model->getItem(mUUID); if (item) { @@ -1308,16 +1493,11 @@ bool LLInvFVBridge::canListOnMarketplace() const } return true; - -#else - return false; -#endif } -bool LLInvFVBridge::canListOnMarketplaceNow() const +// *TODO : Suppress canListOnOutboxNow() once we deprecate Merchant Outbox completely +bool LLInvFVBridge::canListOnOutboxNow() const { -#if ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU - bool can_list = true; // Do not allow listing while import is in progress @@ -1363,10 +1543,56 @@ bool LLInvFVBridge::canListOnMarketplaceNow() const } return can_list; +} -#else - return false; -#endif +bool LLInvFVBridge::canListOnMarketplaceNow() const +{ + bool can_list = true; + + const LLInventoryObject* obj = getInventoryObject(); + can_list &= (obj != NULL); + + if (can_list) + { + const LLUUID& object_id = obj->getLinkedUUID(); + can_list = object_id.notNull(); + + if (can_list) + { + LLFolderViewFolder * object_folderp = mInventoryPanel.get() ? mInventoryPanel.get()->getFolderByID(object_id) : NULL; + if (object_folderp) + { + can_list = !static_cast<LLFolderBridge*>(object_folderp->getViewModelItem())->isLoading(); + } + } + + if (can_list) + { + std::string error_msg; + LLInventoryModel* model = getInventoryModel(); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (marketplacelistings_id.notNull()) + { + LLViewerInventoryCategory * master_folder = model->getCategory(marketplacelistings_id); + LLInventoryCategory *cat = model->getCategory(mUUID); + if (cat) + { + can_list = can_move_folder_to_marketplace(master_folder, master_folder, cat, error_msg); + } + else + { + LLInventoryItem *item = model->getItem(mUUID); + can_list = (item ? can_move_item_to_marketplace(master_folder, master_folder, item, error_msg) : false); + } + } + else + { + can_list = false; + } + } + } + + return can_list; } LLToolDragAndDrop::ESource LLInvFVBridge::getDragSource() const @@ -1458,7 +1684,6 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action) else if ("cut" == action) { cutToClipboard(); - gInventory.removeObject(mUUID); return; } else if ("copy" == action) @@ -1499,6 +1724,14 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action) const LLUUID outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); copy_item_to_outbox(itemp, outbox_id, LLUUID::null, LLToolDragAndDrop::getOperationId()); } + else if (("move_to_marketplace_listings" == action) || ("copy_to_marketplace_listings" == action) || ("copy_or_move_to_marketplace_listings" == action)) + { + LLInventoryItem* itemp = model->getItem(mUUID); + if (!itemp) return; + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + // Note: For a single item, if it's not a copy, then it's a move + move_item_to_marketplacelistings(itemp, marketplacelistings_id, ("copy_to_marketplace_listings" == action)); + } else if ("copy_slurl" == action) { LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem()); @@ -1518,6 +1751,11 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action) { doActionOnCurSelectedLandmark(boost::bind(&LLItemBridge::doShowOnMap, this, _1)); } + else if ("marketplace_edit_listing" == action) + { + std::string url = LLMarketplaceData::instance().getListingURL(mUUID); + LLUrlAction::openURL(url); + } } void LLItemBridge::doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb) @@ -1983,6 +2221,22 @@ void LLFolderBridge::buildDisplayName() const } } +std::string LLFolderBridge::getLabelSuffix() const +{ + static LLCachedControl<F32> folder_loading_message_delay(gSavedSettings, "FolderLoadingMessageWaitTime", 0.5f); + + if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= folder_loading_message_delay()) + { + return llformat(" ( %s ) ", LLTrans::getString("LoadingData").c_str()); + } + + return LLInvFVBridge::getLabelSuffix(); +} + +LLFontGL::StyleFlags LLFolderBridge::getLabelStyle() const +{ + return LLFontGL::NORMAL; +} void LLFolderBridge::update() { @@ -2039,6 +2293,11 @@ BOOL LLFolderBridge::isItemRemovable() const return FALSE; } } + + if (isMarketplaceListingsFolder() && LLMarketplaceData::instance().getActivationState(mUUID)) + { + return FALSE; + } return TRUE; } @@ -2174,88 +2433,11 @@ BOOL LLFolderBridge::isClipboardPasteableAsLink() const } -static BOOL can_move_to_outbox(LLInventoryItem* inv_item, std::string& tooltip_msg) -{ - // Collapse links directly to items/folders - LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; - LLViewerInventoryItem * linked_item = viewer_inv_item->getLinkedItem(); - if (linked_item != NULL) - { - inv_item = linked_item; - } - - bool allow_transfer = inv_item->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID()); - if (!allow_transfer) - { - tooltip_msg = LLTrans::getString("TooltipOutboxNoTransfer"); - return false; - } - -#if BLOCK_WORN_ITEMS_IN_OUTBOX - bool worn = get_is_item_worn(inv_item->getUUID()); - if (worn) - { - tooltip_msg = LLTrans::getString("TooltipOutboxWorn"); - return false; - } -#endif - - bool calling_card = (LLAssetType::AT_CALLINGCARD == inv_item->getType()); - if (calling_card) - { - tooltip_msg = LLTrans::getString("TooltipOutboxCallingCard"); - return false; - } - - return true; -} - - -int get_folder_levels(LLInventoryCategory* inv_cat) -{ - LLInventoryModel::cat_array_t* cats; - LLInventoryModel::item_array_t* items; - gInventory.getDirectDescendentsOf(inv_cat->getUUID(), cats, items); - - int max_child_levels = 0; - - for (S32 i=0; i < cats->size(); ++i) - { - LLInventoryCategory* category = cats->at(i); - max_child_levels = llmax(max_child_levels, get_folder_levels(category)); - } - - return 1 + max_child_levels; -} - -int get_folder_path_length(const LLUUID& ancestor_id, const LLUUID& descendant_id) -{ - int depth = 0; - - if (ancestor_id == descendant_id) return depth; - - const LLInventoryCategory* category = gInventory.getCategory(descendant_id); - - while(category) - { - LLUUID parent_id = category->getParentUUID(); - - if (parent_id.isNull()) break; - - depth++; - - if (parent_id == ancestor_id) return depth; - - category = gInventory.getCategory(parent_id); - } - - LL_WARNS() << "get_folder_path_length() couldn't trace a path from the descendant to the ancestor" << LL_ENDL; - return -1; -} BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, BOOL drop, - std::string& tooltip_msg) + std::string& tooltip_msg, + BOOL user_confirm) { LLInventoryModel* model = getInventoryModel(); @@ -2274,10 +2456,14 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, const LLUUID &cat_id = inv_cat->getUUID(); const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + const LLUUID from_folder_uuid = inv_cat->getParentUUID(); const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id); const BOOL move_is_from_outbox = model->isObjectDescendentOf(cat_id, outbox_id); + const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); + const BOOL move_is_from_marketplacelistings = model->isObjectDescendentOf(cat_id, marketplacelistings_id); // check to make sure source is agent inventory, and is represented there. LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource(); @@ -2305,6 +2491,18 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, BOOL is_movable = TRUE; + if (is_movable && (marketplacelistings_id == cat_id)) + { + is_movable = FALSE; + tooltip_msg = LLTrans::getString("TooltipOutboxCannotMoveRoot"); + } + if (is_movable && move_is_from_marketplacelistings && LLMarketplaceData::instance().getActivationState(cat_id)) + { + // If the incoming folder is listed and active (and is therefore either the listing or the version folder), + // then moving is *not* allowed + is_movable = FALSE; + tooltip_msg = LLTrans::getString("TooltipOutboxDragActive"); + } if (is_movable && (mUUID == cat_id)) { is_movable = FALSE; @@ -2330,6 +2528,12 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, is_movable = FALSE; // tooltip? } + if (is_movable && (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK)) + { + // One cannot move a folder into a stock folder + is_movable = FALSE; + // tooltip? + } LLInventoryModel::cat_array_t descendent_categories; LLInventoryModel::item_array_t descendent_items; @@ -2397,93 +2601,13 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, } } } - if (is_movable && move_is_into_outbox) + + if (is_movable && (move_is_into_outbox || move_is_into_marketplacelistings)) { - const int nested_folder_levels = get_folder_path_length(outbox_id, mUUID) + get_folder_levels(inv_cat); - - if (nested_folder_levels > gSavedSettings.getU32("InventoryOutboxMaxFolderDepth")) - { - tooltip_msg = LLTrans::getString("TooltipOutboxFolderLevels"); - is_movable = FALSE; - } - else - { - int dragged_folder_count = descendent_categories.size(); - int existing_item_count = 0; - int existing_folder_count = 0; - - const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(outbox_id, mUUID); - - if (master_folder != NULL) - { - if (model->isObjectDescendentOf(cat_id, master_folder->getUUID())) - { - // Don't use count because we're already inside the same category anyway - dragged_folder_count = 0; - } - else - { - existing_folder_count = 1; // Include the master folder in the count! - - // If we're in the drop operation as opposed to the drag without drop, we are doing a - // single category at a time so don't block based on the total amount of cargo data items - if (drop) - { - dragged_folder_count += 1; - } - else - { - // NOTE: The cargo id's count is a total of categories AND items but we err on the side of - // prevention rather than letting too many folders into the hierarchy of the outbox, - // when we're dragging the item to a new parent - dragged_folder_count += LLToolDragAndDrop::instance().getCargoCount(); - } - } - - // Tally the total number of categories and items inside the master folder - - LLInventoryModel::cat_array_t existing_categories; - LLInventoryModel::item_array_t existing_items; - - model->collectDescendents(master_folder->getUUID(), existing_categories, existing_items, FALSE); - - existing_folder_count += existing_categories.size(); - existing_item_count += existing_items.size(); - } - else - { - // Assume a single category is being dragged to the outbox since we evaluate one at a time - // when not putting them under a parent item. - dragged_folder_count += 1; - } - - const int nested_folder_count = existing_folder_count + dragged_folder_count; - const int nested_item_count = existing_item_count + descendent_items.size(); - - if (nested_folder_count > gSavedSettings.getU32("InventoryOutboxMaxFolderCount")) - { - tooltip_msg = LLTrans::getString("TooltipOutboxTooManyFolders"); - is_movable = FALSE; - } - else if (nested_item_count > gSavedSettings.getU32("InventoryOutboxMaxItemCount")) - { - tooltip_msg = LLTrans::getString("TooltipOutboxTooManyObjects"); - is_movable = FALSE; - } - - if (is_movable == TRUE) - { - for (S32 i=0; i < descendent_items.size(); ++i) - { - LLInventoryItem* item = descendent_items[i]; - if (!can_move_to_outbox(item, tooltip_msg)) - { - is_movable = FALSE; - break; - } - } - } - } + const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); + LLViewerInventoryCategory * dest_folder = getCategory(); + S32 bundle_size = (drop ? 1 : LLToolDragAndDrop::instance().getCargoCount()); + is_movable = can_move_folder_to_marketplace(master_folder, dest_folder, inv_cat, tooltip_msg, bundle_size); } if (is_movable) @@ -2526,6 +2650,48 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, if (accept && drop) { + // Dropping in or out of marketplace needs (sometimes) confirmation + if (user_confirm && (move_is_from_marketplacelistings || move_is_into_marketplacelistings)) + { + if (move_is_from_marketplacelistings && (LLMarketplaceData::instance().isInActiveFolder(cat_id) || + LLMarketplaceData::instance().isListedAndActive(cat_id))) + { + if (LLMarketplaceData::instance().isListed(cat_id) || LLMarketplaceData::instance().isVersionFolder(cat_id)) + { + // Move the active version folder or listing folder itself outside marketplace listings will unlist the listing so ask that question specifically + LLNotificationsUtil::add("ConfirmMerchantUnlist", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + } + else + { + // Any other case will simply modify but not unlist an active listed listing + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + } + return true; + } + if (move_is_from_marketplacelistings && LLMarketplaceData::instance().isVersionFolder(cat_id)) + { + // Moving the version folder from its location will deactivate it. Ask confirmation. + LLNotificationsUtil::add("ConfirmMerchantClearVersion", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + return true; + } + if (move_is_into_marketplacelistings && LLMarketplaceData::instance().isInActiveFolder(mUUID)) + { + // Moving something in an active listed listing will modify it. Ask confirmation. + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + return true; + } + if (move_is_from_marketplacelistings && LLMarketplaceData::instance().isListed(cat_id)) + { + // Moving a whole listing folder will result in archival of SLM data. Ask confirmation. + LLNotificationsUtil::add("ConfirmListingCutOrDelete", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + return true; + } + if (move_is_into_marketplacelistings && !move_is_from_marketplacelistings) + { + LLNotificationsUtil::add("ConfirmMerchantMoveInventory", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropCategoryIntoFolder, this, _1, _2, inv_cat)); + return true; + } + } // Look for any gestures and deactivate them if (move_is_into_trash) { @@ -2551,6 +2717,10 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, { copy_folder_to_outbox(inv_cat, mUUID, cat_id, LLToolDragAndDrop::getOperationId()); } + else if (move_is_into_marketplacelistings) + { + move_folder_to_marketplacelistings(inv_cat, mUUID); + } else { if (model->isObjectDescendentOf(cat_id, model->findCategoryUUIDForType(LLFolderType::FT_INBOX, false))) @@ -2566,11 +2736,38 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, mUUID, move_is_into_trash); } + if (move_is_from_marketplacelistings) + { + // If we are moving a folder at the listing folder level (i.e. its parent is the marketplace listings folder) + if (from_folder_uuid == marketplacelistings_id) + { + // Clear the folder from the marketplace in case it is a listing folder + if (LLMarketplaceData::instance().isListed(cat_id)) + { + LLMarketplaceData::instance().clearListing(cat_id); + } + } + else + { + // If we move from within an active (listed) listing, checks that it's still valid, if not, unlist + LLUUID version_folder_id = LLMarketplaceData::instance().getActiveFolder(from_folder_uuid); + if (version_folder_id.notNull()) + { + LLViewerInventoryCategory* cat = gInventory.getCategory(version_folder_id); + if (!validate_marketplacelistings(cat,NULL)) + { + LLMarketplaceData::instance().activateListing(version_folder_id,false); + } + } + // In all cases, update the listing we moved from so suffix are updated + update_marketplace_category(from_folder_uuid); + } + } } } else if (LLToolDragAndDrop::SOURCE_WORLD == source) { - if (move_is_into_outbox) + if (move_is_into_outbox || move_is_into_marketplacelistings) { tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); accept = FALSE; @@ -2582,7 +2779,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, } else if (LLToolDragAndDrop::SOURCE_LIBRARY == source) { - if (move_is_into_outbox) + if (move_is_into_outbox || move_is_into_marketplacelistings) { tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); accept = FALSE; @@ -2952,7 +3149,6 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action) else if ("cut" == action) { cutToClipboard(); - gInventory.removeObject(mUUID); return; } else if ("copy" == action) @@ -2980,6 +3176,120 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action) restoreItem(); return; } + else if ("marketplace_list" == action) + { + if (depth_nesting_in_marketplace(mUUID) == 1) + { + LLUUID version_folder_id = LLMarketplaceData::instance().getVersionFolder(mUUID); + LLViewerInventoryCategory* cat = gInventory.getCategory(version_folder_id); + mMessage = ""; + if (!validate_marketplacelistings(cat,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2, _3))) + { + LLSD subs; + subs["[ERROR_CODE]"] = mMessage; + LLNotificationsUtil::add("MerchantListingFailed", subs); + } + else + { + LLMarketplaceData::instance().activateListing(mUUID,true); + } + } + return; + } + else if ("marketplace_activate" == action) + { + if (depth_nesting_in_marketplace(mUUID) == 2) + { + LLInventoryCategory* category = gInventory.getCategory(mUUID); + mMessage = ""; + if (!validate_marketplacelistings(category,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2, _3),false,2)) + { + LLSD subs; + subs["[ERROR_CODE]"] = mMessage; + LLNotificationsUtil::add("MerchantFolderActivationFailed", subs); + } + else + { + LLMarketplaceData::instance().setVersionFolder(category->getParentUUID(), mUUID); + } + } + return; + } + else if ("marketplace_unlist" == action) + { + if (depth_nesting_in_marketplace(mUUID) == 1) + { + LLMarketplaceData::instance().activateListing(mUUID,false,1); + } + return; + } + else if ("marketplace_deactivate" == action) + { + if (depth_nesting_in_marketplace(mUUID) == 2) + { + LLInventoryCategory* category = gInventory.getCategory(mUUID); + LLMarketplaceData::instance().setVersionFolder(category->getParentUUID(), LLUUID::null, 1); + } + return; + } + else if ("marketplace_create_listing" == action) + { + LLViewerInventoryCategory* cat = gInventory.getCategory(mUUID); + mMessage = ""; + bool validates = validate_marketplacelistings(cat,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2, _3),false); + if (!validates) + { + mMessage = ""; + validates = validate_marketplacelistings(cat,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2, _3),true); + if (validates) + { + LLNotificationsUtil::add("MerchantForceValidateListing"); + } + } + + if (!validates) + { + LLSD subs; + subs["[ERROR_CODE]"] = mMessage; + LLNotificationsUtil::add("MerchantListingFailed", subs); + } + else + { + LLMarketplaceData::instance().createListing(mUUID); + } + return; + } + else if ("marketplace_disassociate_listing" == action) + { + LLMarketplaceData::instance().clearListing(mUUID); + return; + } + else if ("marketplace_get_listing" == action) + { + // This is used only to exercise the SLM API but won't be shown to end users + LLMarketplaceData::instance().getListing(mUUID); + return; + } + else if ("marketplace_associate_listing" == action) + { + LLFloaterAssociateListing::show(mUUID); + return; + } + else if ("marketplace_check_listing" == action) + { + LLSD data(mUUID); + LLFloaterReg::showInstance("marketplace_validation", data); + return; + } + else if ("marketplace_edit_listing" == action) + { + std::string url = LLMarketplaceData::instance().getListingURL(mUUID); + if (!url.empty()) + { + LLUrlAction::openURL(url); + } + return; + } #ifndef LL_RELEASE_FOR_DOWNLOAD else if ("delete_system_folder" == action) { @@ -2996,17 +3306,31 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action) const LLUUID outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); copy_folder_to_outbox(cat, outbox_id, cat->getUUID(), LLToolDragAndDrop::getOperationId()); } -#if ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU - else if (isMarketplaceSendAction(action)) + else if (("move_to_marketplace_listings" == action) || ("copy_to_marketplace_listings" == action) || ("copy_or_move_to_marketplace_listings" == action)) { - LL_INFOS() << "Send to marketplace action!" << LL_ENDL; - LLInventoryCategory * cat = gInventory.getCategory(mUUID); if (!cat) return; - - send_to_marketplace(cat); - } -#endif // ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + move_folder_to_marketplacelistings(cat, marketplacelistings_id, ("move_to_marketplace_listings" != action), (("copy_or_move_to_marketplace_listings" == action))); + } +} + +void LLFolderBridge::gatherMessage(std::string& message, S32 depth, LLError::ELevel log_level) +{ + if (log_level >= LLError::LEVEL_ERROR) + { + if (!mMessage.empty()) + { + // Currently, we do not gather all messages as it creates very long alerts + // Users can get to the whole list of errors on a listing using the "Check for Errors" audit button or "Check listing" right click menu + //mMessage += "\n"; + return; + } + // Take the leading spaces out... + std::string::size_type start = message.find_first_not_of(" "); + // Append the message + mMessage += message.substr(start, message.length() - start); + } } void LLFolderBridge::openItem() @@ -3076,25 +3400,24 @@ LLFolderType::EType LLFolderBridge::getPreferredType() const // Icons for folders are based on the preferred type LLUIImagePtr LLFolderBridge::getIcon() const { - LLFolderType::EType preferred_type = LLFolderType::FT_NONE; - LLViewerInventoryCategory* cat = getCategory(); - if(cat) - { - preferred_type = cat->getPreferredType(); - } - return getIcon(preferred_type); + return getFolderIcon(FALSE); } -// static -LLUIImagePtr LLFolderBridge::getIcon(LLFolderType::EType preferred_type) +LLUIImagePtr LLFolderBridge::getIconOpen() const { - return LLUI::getUIImage(LLViewerFolderType::lookupIconName(preferred_type, FALSE)); + return getFolderIcon(TRUE); } -LLUIImagePtr LLFolderBridge::getIconOpen() const +LLUIImagePtr LLFolderBridge::getFolderIcon(BOOL is_open) const { - return LLUI::getUIImage(LLViewerFolderType::lookupIconName(getPreferredType(), TRUE)); + LLFolderType::EType preferred_type = getPreferredType(); + return LLUI::getUIImage(LLViewerFolderType::lookupIconName(preferred_type, is_open)); +} +// static : use by LLLinkFolderBridge to get the closed type icons +LLUIImagePtr LLFolderBridge::getIcon(LLFolderType::EType preferred_type) +{ + return LLUI::getUIImage(LLViewerFolderType::lookupIconName(preferred_type, FALSE)); } LLUIImagePtr LLFolderBridge::getIconOverlay() const @@ -3106,14 +3429,6 @@ LLUIImagePtr LLFolderBridge::getIconOverlay() const return NULL; } -std::string LLFolderBridge::getLabelSuffix() const -{ - static LLCachedControl<F32> folder_loading_message_delay(gSavedSettings, "FolderLoadingMessageWaitTime", 0.5f); - return mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= folder_loading_message_delay() - ? llformat(" ( %s ) ", LLTrans::getString("LoadingData").c_str()) - : LLStringUtil::null; -} - BOOL LLFolderBridge::renameItem(const std::string& new_name) { @@ -3197,10 +3512,42 @@ void LLFolderBridge::updateHierarchyCreationDate(time_t date) void LLFolderBridge::pasteFromClipboard() { LLInventoryModel* model = getInventoryModel(); - if(model && isClipboardPasteable()) + if (model && isClipboardPasteable()) { - const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + const BOOL paste_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); + + if (paste_into_marketplacelistings && !LLMarketplaceData::instance().isListed(mUUID) && LLMarketplaceData::instance().isInActiveFolder(mUUID)) + { + // Prompt the user if pasting in a marketplace active version listing (note that pasting right under the listing folder root doesn't need a prompt) + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_pasteFromClipboard, this, _1, _2)); + } + else + { + // Otherwise just do the paste + perform_pasteFromClipboard(); + } + } +} + +// Callback for pasteFromClipboard if DAMA required... +void LLFolderBridge::callback_pasteFromClipboard(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + perform_pasteFromClipboard(); + } +} + +void LLFolderBridge::perform_pasteFromClipboard() +{ + LLInventoryModel* model = getInventoryModel(); + if (model && isClipboardPasteable()) + { + const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false); const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false); @@ -3208,58 +3555,70 @@ void LLFolderBridge::pasteFromClipboard() const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id); const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id); + const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); const BOOL move_is_into_favorites = (mUUID == favorites_id); std::vector<LLUUID> objects; LLClipboard::instance().pasteFromClipboard(objects); - - if (move_is_into_outbox) - { - LLFolderViewItem * outbox_itemp = mInventoryPanel.get()->getItemByID(mUUID); - - if (outbox_itemp) - { - LLToolDragAndDrop::instance().setCargoCount(objects.size()); - - BOOL can_list = TRUE; - - for (std::vector<LLUUID>::const_iterator iter = objects.begin(); - (iter != objects.end()) && (can_list == TRUE); - ++iter) - { - const LLUUID& item_id = (*iter); - LLInventoryItem *item = model->getItem(item_id); - - if (item) - { - MASK mask = 0x0; - BOOL drop = FALSE; - EDragAndDropType cargo_type = LLViewerAssetType::lookupDragAndDropType(item->getActualType()); - void * cargo_data = (void *) item; - std::string tooltip_msg; - - can_list = outbox_itemp->getViewModelItem()->dragOrDrop(mask, drop, cargo_type, cargo_data, tooltip_msg); - } - } - - LLToolDragAndDrop::instance().resetCargoCount(); - - if (can_list == FALSE) - { - // Notify user of failure somehow -- play error sound? modal dialog? - return; - } + + LLViewerInventoryCategory * dest_folder = getCategory(); + if (move_is_into_outbox || move_is_into_marketplacelistings) + { + std::string error_msg; + const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); + int index = 0; + for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter) + { + const LLUUID& item_id = (*iter); + LLInventoryItem *item = model->getItem(item_id); + LLInventoryCategory *cat = model->getCategory(item_id); + + if (item && !can_move_item_to_marketplace(master_folder, dest_folder, item, error_msg, objects.size() - index, true)) + { + break; + } + if (cat && !can_move_folder_to_marketplace(master_folder, dest_folder, cat, error_msg, objects.size() - index, true, true)) + { + break; + } + ++index; } + if (!error_msg.empty()) + { + LLSD subs; + subs["[ERROR_CODE]"] = error_msg; + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return; + } } - + else + { + // Check that all items can be moved into that folder : for the moment, only stock folder mismatch is checked + for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter) + { + const LLUUID& item_id = (*iter); + LLInventoryItem *item = model->getItem(item_id); + LLInventoryCategory *cat = model->getCategory(item_id); + + if ((item && !dest_folder->acceptItem(item)) || (cat && (dest_folder->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK))) + { + std::string error_msg = LLTrans::getString("TooltipOutboxMixedStock"); + LLSD subs; + subs["[ERROR_CODE]"] = error_msg; + LLNotificationsUtil::add("StockPasteFailed", subs); + return; + } + } + } + const LLUUID parent_id(mUUID); - + for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter) { const LLUUID& item_id = (*iter); - + LLInventoryItem *item = model->getItem(item_id); LLInventoryObject *obj = model->getObject(item_id); if (obj) @@ -3287,21 +3646,44 @@ void LLFolderBridge::pasteFromClipboard() LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *) model->getCategory(item_id); llassert(vicat); if (vicat) - { - //changeCategoryParent() implicity calls dirtyFilter - changeCategoryParent(model, vicat, parent_id, FALSE); + { + // Clear the cut folder from the marketplace if it is a listing folder + if (LLMarketplaceData::instance().isListed(item_id)) + { + LLMarketplaceData::instance().clearListing(item_id); + } + if (move_is_into_marketplacelistings) + { + move_folder_to_marketplacelistings(vicat, parent_id); + } + else + { + //changeCategoryParent() implicity calls dirtyFilter + changeCategoryParent(model, vicat, parent_id, FALSE); + } } } else - { - LLViewerInventoryItem* viitem = dynamic_cast<LLViewerInventoryItem*>(item); - llassert(viitem); - if (viitem) - { - //changeItemParent() implicity calls dirtyFilter - changeItemParent(model, viitem, parent_id, FALSE); - } - } + { + LLViewerInventoryItem* viitem = dynamic_cast<LLViewerInventoryItem*>(item); + llassert(viitem); + if (viitem) + { + if (move_is_into_marketplacelistings) + { + if (!move_item_to_marketplacelistings(viitem, parent_id)) + { + // Stop pasting into the marketplace as soon as we get an error + break; + } + } + else + { + //changeItemParent() implicity calls dirtyFilter + changeItemParent(model, viitem, parent_id, FALSE); + } + } + } } else { @@ -3312,22 +3694,45 @@ void LLFolderBridge::pasteFromClipboard() llassert(vicat); if (vicat) { - copy_inventory_category(model, vicat, parent_id); + if (move_is_into_marketplacelistings) + { + move_folder_to_marketplacelistings(vicat, parent_id, true); + } + else + { + copy_inventory_category(model, vicat, parent_id); + } } } - else - { - copy_inventory_item( - gAgent.getID(), - item->getPermissions().getOwner(), - item->getUUID(), - parent_id, - std::string(), - LLPointer<LLInventoryCallback>(NULL)); - } - } - } - } + else + { + LLViewerInventoryItem* viitem = dynamic_cast<LLViewerInventoryItem*>(item); + llassert(viitem); + if (viitem) + { + if (move_is_into_marketplacelistings) + { + if (!move_item_to_marketplacelistings(viitem, parent_id, true)) + { + // Stop pasting into the marketplace as soon as we get an error + break; + } + } + else + { + copy_inventory_item( + gAgent.getID(), + item->getPermissions().getOwner(), + item->getUUID(), + parent_id, + std::string(), + LLPointer<LLInventoryCallback>(NULL)); + } + } + } + } + } + } // Change mode to paste for next paste LLClipboard::instance().setCutMode(false); } @@ -3340,14 +3745,16 @@ void LLFolderBridge::pasteLinkFromClipboard() { const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false); const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id); const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id); + const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); - if (move_is_into_outbox) + if (move_is_into_outbox || move_is_into_marketplacelistings) { // Notify user of failure somehow -- play error sound? modal dialog? return; @@ -3407,9 +3814,10 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items LLInventoryModel* model = getInventoryModel(); llassert(model != NULL); - const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); - const LLUUID lost_and_found_id = model->findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); - const LLUUID favorites = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE); + const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); + const LLUUID &lost_and_found_id = model->findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); + const LLUUID &favorites = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE); + const LLUUID &marketplace_listings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); if (lost_and_found_id == mUUID) { @@ -3427,6 +3835,35 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items { disabled_items.push_back(std::string("New Folder")); } + if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + if (LLMarketplaceData::instance().isUpdating(mUUID)) + { + disabled_items.push_back(std::string("New Folder")); + disabled_items.push_back(std::string("Rename")); + disabled_items.push_back(std::string("Cut")); + disabled_items.push_back(std::string("Copy")); + disabled_items.push_back(std::string("Paste")); + disabled_items.push_back(std::string("Delete")); + } + } + if (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + disabled_items.push_back(std::string("New Folder")); + disabled_items.push_back(std::string("New Script")); + disabled_items.push_back(std::string("New Note")); + disabled_items.push_back(std::string("New Gesture")); + disabled_items.push_back(std::string("New Clothes")); + disabled_items.push_back(std::string("New Body Parts")); + } + if (marketplace_listings_id == mUUID) + { + disabled_items.push_back(std::string("New Folder")); + disabled_items.push_back(std::string("Rename")); + disabled_items.push_back(std::string("Cut")); + disabled_items.push_back(std::string("Delete")); + } if(trash_id == mUUID) { // This is the trash. @@ -3456,12 +3893,14 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items { items.push_back(std::string("New Folder")); } - - items.push_back(std::string("New Script")); - items.push_back(std::string("New Note")); - items.push_back(std::string("New Gesture")); - items.push_back(std::string("New Clothes")); - items.push_back(std::string("New Body Parts")); + if (!isMarketplaceListingsFolder()) + { + items.push_back(std::string("New Script")); + items.push_back(std::string("New Note")); + items.push_back(std::string("New Gesture")); + items.push_back(std::string("New Clothes")); + items.push_back(std::string("New Body Parts")); + } } getClipboardEntries(false, items, disabled_items, flags); } @@ -3495,9 +3934,9 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items LLIsType is_object( LLAssetType::AT_OBJECT ); LLIsType is_gesture( LLAssetType::AT_GESTURE ); - if (checkFolderForContentsOfType(model, is_wearable) || - checkFolderForContentsOfType(model, is_object) || - checkFolderForContentsOfType(model, is_gesture) ) + if (checkFolderForContentsOfType(model, is_wearable) || + checkFolderForContentsOfType(model, is_object) || + checkFolderForContentsOfType(model, is_gesture) ) { mWearables=TRUE; } @@ -3509,7 +3948,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items disabled_items.push_back(std::string("Delete System Folder")); } - if (!isOutboxFolder()) + if (!isOutboxFolder() && !isMarketplaceListingsFolder()) { items.push_back(std::string("Share")); if (!canShare()) @@ -3519,7 +3958,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items } // Add menu items that are dependent on the contents of the folder. LLViewerInventoryCategory* category = (LLViewerInventoryCategory *) model->getCategory(mUUID); - if (category) + if (category && (marketplace_listings_id != mUUID)) { uuid_vec_t folders; folders.push_back(category->getUUID()); @@ -3538,8 +3977,8 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items { // it's all on its way - add an observer, and the inventory will call done for us when everything is here. gInventory.addObserver(fetch); - } -} + } + } } void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t& items, menuentry_vec_t& disabled_items) @@ -3556,6 +3995,12 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t& if (isItemInTrash()) return; if (!isAgentInventory()) return; if (isOutboxFolder()) return; + + if (!isItemRemovable()) + { + disabled_items.push_back(std::string("Delete")); + } + if (isMarketplaceListingsFolder()) return; LLFolderType::EType type = category->getPreferredType(); const bool is_system_folder = LLFolderType::lookupIsProtectedType(type); @@ -3575,11 +4020,6 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t& } } - if (!isItemRemovable()) - { - disabled_items.push_back(std::string("Delete")); - } - #ifndef LL_RELEASE_FOR_DOWNLOAD if (LLFolderType::lookupIsProtectedType(type)) { @@ -3868,6 +4308,121 @@ void LLFolderBridge::modifyOutfit(BOOL append) LLAppearanceMgr::instance().wearInventoryCategory( cat, FALSE, append ); } +// +=================================================+ +// | LLMarketplaceFolderBridge | +// +=================================================+ + +// LLMarketplaceFolderBridge is a specialized LLFolderBridge for use in Marketplace Inventory panels +LLMarketplaceFolderBridge::LLMarketplaceFolderBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : +LLFolderBridge(inventory, root, uuid) +{ + m_depth = depth_nesting_in_marketplace(mUUID); + m_stockCountCache = COMPUTE_STOCK_NOT_EVALUATED; +} + +LLUIImagePtr LLMarketplaceFolderBridge::getIcon() const +{ + return getMarketplaceFolderIcon(FALSE); +} + +LLUIImagePtr LLMarketplaceFolderBridge::getIconOpen() const +{ + return getMarketplaceFolderIcon(TRUE); +} + +LLUIImagePtr LLMarketplaceFolderBridge::getMarketplaceFolderIcon(BOOL is_open) const +{ + LLFolderType::EType preferred_type = getPreferredType(); + if (!LLMarketplaceData::instance().isUpdating(getUUID())) + { + // Skip computation (expensive) if we're waiting for updates. Use the old value in that case. + m_depth = depth_nesting_in_marketplace(mUUID); + } + if ((preferred_type == LLFolderType::FT_NONE) && (m_depth == 2)) + { + // We override the type when in the marketplace listings folder and only for version folder + preferred_type = LLFolderType::FT_MARKETPLACE_VERSION; + } + return LLUI::getUIImage(LLViewerFolderType::lookupIconName(preferred_type, is_open)); +} + +std::string LLMarketplaceFolderBridge::getLabelSuffix() const +{ + static LLCachedControl<F32> folder_loading_message_delay(gSavedSettings, "FolderLoadingMessageWaitTime", 0.5f); + + if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= folder_loading_message_delay()) + { + return llformat(" ( %s ) ", LLTrans::getString("LoadingData").c_str()); + } + + std::string suffix = ""; + // Listing folder case + if (LLMarketplaceData::instance().isListed(getUUID())) + { + suffix = llformat("%d",LLMarketplaceData::instance().getListingID(getUUID())); + if (suffix.empty()) + { + suffix = LLTrans::getString("MarketplaceNoID"); + } + suffix = " (" + suffix + ")"; + if (LLMarketplaceData::instance().getActivationState(getUUID())) + { + suffix += " (" + LLTrans::getString("MarketplaceLive") + ")"; + } + } + // Version folder case + else if (LLMarketplaceData::instance().isVersionFolder(getUUID())) + { + suffix += " (" + LLTrans::getString("MarketplaceActive") + ")"; + } + // Add stock amount + bool updating = LLMarketplaceData::instance().isUpdating(getUUID()); + if (!updating) + { + // Skip computation (expensive) if we're waiting for update anyway. Use the old value in that case. + m_stockCountCache = compute_stock_count(getUUID()); + } + if (m_stockCountCache == 0) + { + suffix += " (" + LLTrans::getString("MarketplaceNoStock") + ")"; + } + else if (m_stockCountCache != COMPUTE_STOCK_INFINITE) + { + if (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + suffix += " (" + LLTrans::getString("MarketplaceStock"); + } + else + { + suffix += " (" + LLTrans::getString("MarketplaceMax"); + } + if (m_stockCountCache == COMPUTE_STOCK_NOT_EVALUATED) + { + suffix += "=" + LLTrans::getString("MarketplaceUpdating") + ")"; + } + else + { + suffix += "=" + llformat("%d", m_stockCountCache) + ")"; + } + } + // Add updating suffix + if (updating) + { + suffix += " (" + LLTrans::getString("MarketplaceUpdating") + ")"; + } + return LLInvFVBridge::getLabelSuffix() + suffix; +} + +LLFontGL::StyleFlags LLMarketplaceFolderBridge::getLabelStyle() const +{ + return (LLMarketplaceData::instance().getActivationState(getUUID()) ? LLFontGL::BOLD : LLFontGL::NORMAL); +} + + + + // helper stuff bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, LLMoveInv* move_inv) { @@ -3988,12 +4543,35 @@ void LLFolderBridge::dropToOutfit(LLInventoryItem* inv_item, BOOL move_is_into_c } } +// Callback for drop item if DAMA required... +void LLFolderBridge::callback_dropItemIntoFolder(const LLSD& notification, const LLSD& response, LLInventoryItem* inv_item) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + std::string tooltip_msg; + dragItemIntoFolder(inv_item, TRUE, tooltip_msg, FALSE); + } +} + +// Callback for drop category if DAMA required... +void LLFolderBridge::callback_dropCategoryIntoFolder(const LLSD& notification, const LLSD& response, LLInventoryCategory* inv_category) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + std::string tooltip_msg; + dragCategoryIntoFolder(inv_category, TRUE, tooltip_msg, FALSE); + } +} + // This is used both for testing whether an item can be dropped // into the folder, as well as performing the actual drop, depending // if drop == TRUE. BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop, - std::string& tooltip_msg) + std::string& tooltip_msg, + BOOL user_confirm) { LLInventoryModel* model = getInventoryModel(); @@ -4011,7 +4589,9 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false); const LLUUID &landmarks_id = model->findCategoryUUIDForType(LLFolderType::FT_LANDMARK, false); const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); + const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false); + const LLUUID from_folder_uuid = inv_item->getParentUUID(); const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); const BOOL move_is_into_favorites = (mUUID == favorites_id); @@ -4020,6 +4600,8 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, const BOOL move_is_into_landmarks = (mUUID == landmarks_id) || model->isObjectDescendentOf(mUUID, landmarks_id); const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id); const BOOL move_is_from_outbox = model->isObjectDescendentOf(inv_item->getUUID(), outbox_id); + const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); + const BOOL move_is_from_marketplacelistings = model->isObjectDescendentOf(inv_item->getUUID(), marketplacelistings_id); LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource(); BOOL accept = FALSE; @@ -4073,59 +4655,45 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, //-------------------------------------------------------------------------------- // Determine if item can be moved & dropped - // + // Note: if user_confirm is false, we already went through those accept logic test and can skip them accept = TRUE; - if (!is_movable) + if (user_confirm && !is_movable) { accept = FALSE; } - else if ((mUUID == inv_item->getParentUUID()) && !move_is_into_favorites) + else if (user_confirm && (mUUID == inv_item->getParentUUID()) && !move_is_into_favorites) { accept = FALSE; } - else if (move_is_into_current_outfit || move_is_into_outfit) + else if (user_confirm && (move_is_into_current_outfit || move_is_into_outfit)) { accept = can_move_to_outfit(inv_item, move_is_into_current_outfit); } - else if (move_is_into_favorites || move_is_into_landmarks) + else if (user_confirm && (move_is_into_favorites || move_is_into_landmarks)) { accept = can_move_to_landmarks(inv_item); } - else if (move_is_into_outbox) + else if (user_confirm && (move_is_into_outbox || move_is_into_marketplacelistings)) { - accept = can_move_to_outbox(inv_item, tooltip_msg); - - if (accept) - { - const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(outbox_id, mUUID); - - int existing_item_count = LLToolDragAndDrop::instance().getCargoCount(); - - if (master_folder != NULL) - { - LLInventoryModel::cat_array_t existing_categories; - LLInventoryModel::item_array_t existing_items; - - gInventory.collectDescendents(master_folder->getUUID(), existing_categories, existing_items, FALSE); - - existing_item_count += existing_items.size(); - } - - if (existing_item_count > gSavedSettings.getU32("InventoryOutboxMaxItemCount")) - { - tooltip_msg = LLTrans::getString("TooltipOutboxTooManyObjects"); - accept = FALSE; - } - } + const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); + LLViewerInventoryCategory * dest_folder = getCategory(); + accept = can_move_item_to_marketplace(master_folder, dest_folder, inv_item, tooltip_msg, LLToolDragAndDrop::instance().getCargoCount() - LLToolDragAndDrop::instance().getCargoIndex()); } + // Check that the folder can accept this item based on folder/item type compatibility (e.g. stock folder compatibility) + if (user_confirm && accept) + { + LLViewerInventoryCategory * dest_folder = getCategory(); + accept = dest_folder->acceptItem(inv_item); + } + LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE); // Check whether the item being dragged from active inventory panel // passes the filter of the destination panel. - if (accept && active_panel && use_filter) + if (user_confirm && accept && active_panel && use_filter) { LLFolderViewItem* fv_item = active_panel->getItemByID(inv_item->getUUID()); if (!fv_item) return false; @@ -4145,9 +4713,25 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, // RN: a better solution would be to deselect automatically when an item is moved // and then select any item that is dropped only in the panel that it is dropped in if (active_panel && (destination_panel != active_panel)) - { - active_panel->unSelectAll(); - } + { + active_panel->unSelectAll(); + } + // Dropping in or out of marketplace needs (sometimes) confirmation + if (user_confirm && (move_is_from_marketplacelistings || move_is_into_marketplacelistings)) + { + if ((move_is_from_marketplacelistings && (LLMarketplaceData::instance().isInActiveFolder(inv_item->getUUID()) + || LLMarketplaceData::instance().isListedAndActive(inv_item->getUUID()))) || + (move_is_into_marketplacelistings && LLMarketplaceData::instance().isInActiveFolder(mUUID))) + { + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropItemIntoFolder, this, _1, _2, inv_item)); + return true; + } + if (move_is_into_marketplacelistings && !move_is_from_marketplacelistings) + { + LLNotificationsUtil::add("ConfirmMerchantMoveInventory", LLSD(), LLSD(), boost::bind(&LLFolderBridge::callback_dropItemIntoFolder, this, _1, _2, inv_item)); + return true; + } + } //-------------------------------------------------------------------------------- // Destination folder logic @@ -4160,7 +4744,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, LLFolderViewItem* itemp = destination_panel->getRootFolder()->getDraggingOverItem(); if (itemp) { - LLUUID srcItemId = inv_item->getUUID(); + LLUUID srcItemId = inv_item->getUUID(); LLUUID destItemId = static_cast<LLFolderViewModelItemInventory*>(itemp->getViewModelItem())->getUUID(); LLFavoritesOrderStorage::instance().rearrangeFavoriteLandmarks(srcItemId, destItemId); } @@ -4178,6 +4762,8 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, { dropToOutfit(inv_item, move_is_into_current_outfit); } + // MERCHANT OUTBOX folder + // Move the item else if (move_is_into_outbox) { if (move_is_from_outbox) @@ -4189,6 +4775,12 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, copy_item_to_outbox(inv_item, mUUID, LLUUID::null, LLToolDragAndDrop::getOperationId()); } } + // MARKETPLACE LISTINGS folder + // Move the item + else if (move_is_into_marketplacelistings) + { + move_item_to_marketplacelistings(inv_item, mUUID); + } // NORMAL or TRASH folder // (move the item, restamp if into trash) else @@ -4205,8 +4797,22 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, mUUID, move_is_into_trash); } - - // + + if (move_is_from_marketplacelistings) + { + // If we move from an active (listed) listing, checks that it's still valid, if not, unlist + LLUUID version_folder_id = LLMarketplaceData::instance().getActiveFolder(from_folder_uuid); + if (version_folder_id.notNull()) + { + LLViewerInventoryCategory* cat = gInventory.getCategory(version_folder_id); + if (!validate_marketplacelistings(cat,NULL)) + { + LLMarketplaceData::instance().activateListing(version_folder_id,false); + } + } + } + + // //-------------------------------------------------------------------------------- } } @@ -4255,7 +4861,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, { accept = FALSE; } - else if (move_is_into_outbox) + else if (move_is_into_outbox || move_is_into_marketplacelistings) { tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); accept = FALSE; @@ -4293,7 +4899,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, } else if(LLToolDragAndDrop::SOURCE_NOTECARD == source) { - if (move_is_into_outbox) + if (move_is_into_outbox || move_is_into_marketplacelistings) { tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); accept = FALSE; @@ -4327,7 +4933,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, { accept = TRUE; - if (move_is_into_outbox) + if (move_is_into_outbox || move_is_into_marketplacelistings) { tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); accept = FALSE; @@ -4500,6 +5106,12 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { addOutboxContextMenuOptions(flags, items, disabled_items); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { items.push_back(std::string("Share")); @@ -4567,6 +5179,12 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { addOutboxContextMenuOptions(flags, items, disabled_items); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { if (isItemInTrash()) @@ -4642,6 +5260,12 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { addOutboxContextMenuOptions(flags, items, disabled_items); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { if(isItemInTrash()) @@ -4934,6 +5558,12 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Delete")); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { items.push_back(std::string("Share")); @@ -5066,6 +5696,25 @@ void LLNotecardBridge::openItem() } } +void LLNotecardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) +{ + LL_DEBUGS() << "LLNotecardBridge::buildContextMenu()" << LL_ENDL; + + if (isMarketplaceListingsFolder()) + { + menuentry_vec_t items; + menuentry_vec_t disabled_items; + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + hide_context_entries(menu, items, disabled_items); + } + else + { + LLItemBridge::buildContextMenu(menu, flags); + } +} + // +=================================================+ // | LLGestureBridge | // +=================================================+ @@ -5201,6 +5850,12 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Delete")); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { items.push_back(std::string("Share")); @@ -5255,6 +5910,12 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Delete")); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { if(isItemInTrash()) @@ -5514,6 +6175,12 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Delete")); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { items.push_back(std::string("Share")); @@ -5736,6 +6403,12 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { items.push_back(std::string("Delete")); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { // FWIW, it looks like SUPPRESS_OPEN_ITEM is not set anywhere BOOL can_open = ((flags & SUPPRESS_OPEN_ITEM) != SUPPRESS_OPEN_ITEM); @@ -6036,6 +6709,12 @@ void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { addOutboxContextMenuOptions(flags, items, disabled_items); } + else if (isMarketplaceListingsFolder()) + { + addMarketplaceContextMenuOptions(flags, items, disabled_items); + items.push_back(std::string("Properties")); + getClipboardEntries(false, items, disabled_items, flags); + } else { items.push_back(std::string("Properties")); diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index da33e8e680..7e7cf9c7dd 100755 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -77,6 +77,7 @@ public: bool canShare() const; bool canListOnMarketplace() const; + bool canListOnOutboxNow() const; bool canListOnMarketplaceNow() const; //-------------------------------------------------------------------- @@ -115,7 +116,7 @@ public: virtual void move(LLFolderViewModelItem* new_parent_bridge) {} virtual BOOL isItemCopyable() const { return FALSE; } virtual BOOL copyToClipboard() const; - virtual BOOL cutToClipboard() const; + virtual BOOL cutToClipboard(); virtual BOOL isClipboardPasteable() const; virtual BOOL isClipboardPasteableAsLink() const; virtual void pasteFromClipboard() {} @@ -147,6 +148,9 @@ protected: virtual void addOutboxContextMenuOptions(U32 flags, menuentry_vec_t &items, menuentry_vec_t &disabled_items); + virtual void addMarketplaceContextMenuOptions(U32 flags, + menuentry_vec_t &items, + menuentry_vec_t &disabled_items); protected: LLInvFVBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid); @@ -161,6 +165,7 @@ protected: BOOL isInboxFolder() const; // true if COF or descendant of marketplace inbox BOOL isOutboxFolderDirectParent() const; + BOOL isMarketplaceListingsFolder() const; // true if descendant of Marketplace listings folder const LLUUID getOutboxFolder() const; virtual BOOL isItemPermissive() const; @@ -173,6 +178,9 @@ protected: const LLUUID& new_parent, BOOL restamp); void removeBatchNoCheck(std::vector<LLFolderViewModelItem*>& batch); + + BOOL callback_cutToClipboard(const LLSD& notification, const LLSD& response); + BOOL perform_cutToClipboard(); public: BOOL isOutboxFolder() const; // true if COF or descendant of marketplace outbox @@ -188,6 +196,7 @@ protected: mutable std::string mSearchableName; void purgeItem(LLInventoryModel *model, const LLUUID &uuid); + void removeObject(LLInventoryModel *model, const LLUUID &uuid); virtual void buildDisplayName() const {} }; @@ -264,8 +273,10 @@ public: mIsLoading(false) {} - BOOL dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop, std::string& tooltip_msg); - BOOL dragCategoryIntoFolder(LLInventoryCategory* inv_category, BOOL drop, std::string& tooltip_msg); + BOOL dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop, std::string& tooltip_msg, BOOL user_confirm = TRUE); + BOOL dragCategoryIntoFolder(LLInventoryCategory* inv_category, BOOL drop, std::string& tooltip_msg, BOOL user_confirm = TRUE); + void callback_dropItemIntoFolder(const LLSD& notification, const LLSD& response, LLInventoryItem* inv_item); + void callback_dropCategoryIntoFolder(const LLSD& notification, const LLSD& response, LLInventoryCategory* inv_category); virtual void buildDisplayName() const; @@ -280,10 +291,9 @@ public: virtual LLUIImagePtr getIcon() const; virtual LLUIImagePtr getIconOpen() const; virtual LLUIImagePtr getIconOverlay() const; - static LLUIImagePtr getIcon(LLFolderType::EType preferred_type); - virtual std::string getLabelSuffix() const; + virtual LLFontGL::StyleFlags getLabelStyle() const; virtual BOOL renameItem(const std::string& new_name); @@ -355,12 +365,17 @@ public: static LLHandle<LLFolderBridge> sSelf; static void staticFolderOptionsMenu(); -private: +protected: + void callback_pasteFromClipboard(const LLSD& notification, const LLSD& response); + void perform_pasteFromClipboard(); + void gatherMessage(std::string& message, S32 depth, LLError::ELevel log_level); + LLUIImagePtr getFolderIcon(BOOL is_open) const; bool mCallingCards; bool mWearables; bool mIsLoading; LLTimer mTimeSinceRequestStart; + std::string mMessage; LLRootHandle<LLFolderBridge> mHandle; }; @@ -441,6 +456,7 @@ public: const LLUUID& uuid) : LLItemBridge(inventory, root, uuid) {} virtual void openItem(); + virtual void buildContextMenu(LLMenuGL& menu, U32 flags); }; class LLGestureBridge : public LLItemBridge @@ -484,6 +500,7 @@ public: virtual LLUIImagePtr getIcon() const; virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); + virtual BOOL isItemWearable() const { return TRUE; } virtual std::string getLabelSuffix() const; virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual BOOL renameItem(const std::string& new_name); @@ -516,6 +533,7 @@ public: virtual LLUIImagePtr getIcon() const; virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); + virtual BOOL isItemWearable() const { return TRUE; } virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual std::string getLabelSuffix() const; virtual BOOL renameItem(const std::string& new_name); @@ -669,6 +687,31 @@ public: U32 flags = 0x00) const; }; +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Marketplace Inventory Panel related classes +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +class LLMarketplaceFolderBridge : public LLFolderBridge +{ +public: + // Overloads some display related methods specific to folders in a marketplace floater context + LLMarketplaceFolderBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid); + + virtual LLUIImagePtr getIcon() const; + virtual LLUIImagePtr getIconOpen() const; + virtual std::string getLabelSuffix() const; + virtual LLFontGL::StyleFlags getLabelStyle() const; + +private: + LLUIImagePtr getMarketplaceFolderIcon(BOOL is_open) const; + // Those members are mutable because they are cached variablse to speed up display, not a state variables + mutable S32 m_depth; + mutable S32 m_stockCountCache; +}; + + void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment, bool replace = false); diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index c66e9da4a9..3ed876af87 100755 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -33,6 +33,8 @@ #include "llfolderviewitem.h" #include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" +#include "llinventoryfunctions.h" +#include "llmarketplacefunctions.h" #include "llviewercontrol.h" #include "llfolderview.h" #include "llinventorybridge.h" @@ -136,12 +138,64 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const } // when applying a filter, matching folders get their contents downloaded first - if (mFilterSubString.size() + if (isNotDefault() && !gInventory.isCategoryComplete(folder_id)) { LLInventoryModelBackgroundFetch::instance().start(folder_id); } + // Marketplace folder filtering + const U32 filterTypes = mFilterOps.mFilterTypes; + const U32 marketplace_filter = FILTERTYPE_MARKETPLACE_ACTIVE | FILTERTYPE_MARKETPLACE_INACTIVE | + FILTERTYPE_MARKETPLACE_UNASSOCIATED | FILTERTYPE_MARKETPLACE_LISTING_FOLDER | + FILTERTYPE_NO_MARKETPLACE_ITEMS; + if (filterTypes & marketplace_filter) + { + S32 depth = depth_nesting_in_marketplace(folder_id); + + if (filterTypes & FILTERTYPE_NO_MARKETPLACE_ITEMS) + { + if (depth >= 0) + { + return false; + } + } + + if (filterTypes & FILTERTYPE_MARKETPLACE_LISTING_FOLDER) + { + if (depth > 1) + { + return false; + } + } + + if (depth > 0) + { + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + if (filterTypes & FILTERTYPE_MARKETPLACE_ACTIVE) + { + if (!LLMarketplaceData::instance().getActivationState(listing_uuid)) + { + return false; + } + } + else if (filterTypes & FILTERTYPE_MARKETPLACE_INACTIVE) + { + if (!LLMarketplaceData::instance().isListed(listing_uuid) || LLMarketplaceData::instance().getActivationState(listing_uuid)) + { + return false; + } + } + else if (filterTypes & FILTERTYPE_MARKETPLACE_UNASSOCIATED) + { + if (LLMarketplaceData::instance().isListed(listing_uuid)) + { + return false; + } + } + } + } + // show folder links LLViewerInventoryItem* item = gInventory.getItem(folder_id); if (item && item->getActualType() == LLAssetType::AT_LINK_FOLDER) @@ -501,6 +555,40 @@ void LLInventoryFilter::setFilterEmptySystemFolders() mFilterOps.mFilterTypes |= FILTERTYPE_EMPTYFOLDERS; } +void LLInventoryFilter::setFilterMarketplaceActiveFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_ACTIVE; +} + +void LLInventoryFilter::setFilterMarketplaceInactiveFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_INACTIVE; +} + +void LLInventoryFilter::setFilterMarketplaceUnassociatedFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_UNASSOCIATED; +} + +void LLInventoryFilter::setFilterMarketplaceListingFolders(bool select_only_listing_folders) +{ + if (select_only_listing_folders) + { + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_LISTING_FOLDER; + setModified(FILTER_MORE_RESTRICTIVE); + } + else + { + mFilterOps.mFilterTypes &= ~FILTERTYPE_MARKETPLACE_LISTING_FOLDER; + setModified(FILTER_LESS_RESTRICTIVE); + } +} + +void LLInventoryFilter::setFilterNoMarketplaceFolder() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_NO_MARKETPLACE_ITEMS; +} + void LLInventoryFilter::setFilterUUID(const LLUUID& object_id) { if (mFilterOps.mFilterUUID == LLUUID::null) diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h index 5e18ad4d20..abc4ae347c 100755 --- a/indra/newview/llinventoryfilter.h +++ b/indra/newview/llinventoryfilter.h @@ -52,7 +52,12 @@ public: FILTERTYPE_UUID = 0x1 << 2, // find the object with UUID and any links to it FILTERTYPE_DATE = 0x1 << 3, // search by date range FILTERTYPE_WEARABLE = 0x1 << 4, // search by wearable type - FILTERTYPE_EMPTYFOLDERS = 0x1 << 5 // pass if folder is not a system folder to be hidden if + FILTERTYPE_EMPTYFOLDERS = 0x1 << 5, // pass if folder is not a system folder to be hidden if empty + FILTERTYPE_MARKETPLACE_ACTIVE = 0x1 << 6, // pass if folder is a marketplace active folder + FILTERTYPE_MARKETPLACE_INACTIVE = 0x1 << 7, // pass if folder is a marketplace inactive folder + FILTERTYPE_MARKETPLACE_UNASSOCIATED = 0x1 << 8, // pass if folder is a marketplace non associated (no market ID) folder + FILTERTYPE_MARKETPLACE_LISTING_FOLDER = 0x1 << 9, // pass iff folder is a listing folder + FILTERTYPE_NO_MARKETPLACE_ITEMS = 0x1 << 10 // pass iff folder is not under the marketplace }; enum EFilterDateDirection @@ -73,7 +78,8 @@ public: SO_NAME = 0, // Sort inventory by name SO_DATE = 0x1, // Sort inventory by date SO_FOLDERS_BY_NAME = 0x1 << 1, // Force folder sort by name - SO_SYSTEM_FOLDERS_TO_TOP = 0x1 << 2 // Force system folders to be on top + SO_SYSTEM_FOLDERS_TO_TOP = 0x1 << 2,// Force system folders to be on top + SO_FOLDERS_BY_WEIGHT = 0x1 << 3, // Force folder sort by weight, usually, amount of some elements in their descendents }; struct FilterOps @@ -170,6 +176,11 @@ public: void setFilterUUID(const LLUUID &object_id); void setFilterWearableTypes(U64 types); void setFilterEmptySystemFolders(); + void setFilterMarketplaceActiveFolders(); + void setFilterMarketplaceInactiveFolders(); + void setFilterMarketplaceUnassociatedFolders(); + void setFilterMarketplaceListingFolders(bool select_only_listing_folders); + void setFilterNoMarketplaceFolder(); void updateFilterTypes(U64 types, U64& current_types); void setFilterSubString(const std::string& string); diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 605a63aa33..218590e5c3 100755 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -60,6 +60,7 @@ #include "llinventorypanel.h" #include "lllineeditor.h" #include "llmarketplacenotifications.h" +#include "llmarketplacefunctions.h" #include "llmenugl.h" #include "llnotificationsutil.h" #include "llpanelmaininventory.h" @@ -90,6 +91,126 @@ BOOL LLInventoryState::sWearNewClothing = FALSE; LLUUID LLInventoryState::sWearNewClothingTransactionID; +std::list<LLUUID> LLInventoryAction::sMarketplaceFolders; + +// Helper function : callback to update a folder after inventory action happened in the background +void update_folder_cb(const LLUUID& dest_folder) +{ + LLViewerInventoryCategory* dest_cat = gInventory.getCategory(dest_folder); + gInventory.updateCategory(dest_cat); + gInventory.notifyObservers(); +} + +// Helper function : Count only the copyable items, i.e. skip the stock items (which are no copy) +S32 count_copyable_items(LLInventoryModel::item_array_t& items) +{ + S32 count = 0; + for (LLInventoryModel::item_array_t::const_iterator it = items.begin(); it != items.end(); ++it) + { + LLViewerInventoryItem* item = *it; + if (item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + count++; + } + } + return count; +} + +// Helper function : Count only the non-copyable items, i.e. the stock items, skip the others +S32 count_stock_items(LLInventoryModel::item_array_t& items) +{ + S32 count = 0; + for (LLInventoryModel::item_array_t::const_iterator it = items.begin(); it != items.end(); ++it) + { + LLViewerInventoryItem* item = *it; + if (!item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + count++; + } + } + return count; +} + +// Helper function : Count the number of stock folders +S32 count_stock_folders(LLInventoryModel::cat_array_t& categories) +{ + S32 count = 0; + for (LLInventoryModel::cat_array_t::const_iterator it = categories.begin(); it != categories.end(); ++it) + { + LLInventoryCategory* cat = *it; + if (cat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + count++; + } + } + return count; +} + +// Helper funtion : Count the number of items (not folders) in the descending hierarchy +S32 count_descendants_items(const LLUUID& cat_id) +{ + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat_id,cat_array,item_array); + + S32 count = item_array->size(); + + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLViewerInventoryCategory* category = *iter; + count += count_descendants_items(category->getUUID()); + } + + return count; +} + +// Helper function : Returns true if the hierarchy contains nocopy items +bool contains_nocopy_items(const LLUUID& id) +{ + LLInventoryCategory* cat = gInventory.getCategory(id); + + if (cat) + { + // Get the content + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(id,cat_array,item_array); + + // Check all the items: returns true upon encountering a nocopy item + for (LLInventoryModel::item_array_t::iterator iter = item_array->begin(); iter != item_array->end(); iter++) + { + LLInventoryItem* item = *iter; + LLViewerInventoryItem * inv_item = (LLViewerInventoryItem *) item; + if (!inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + return true; + } + } + + // Check all the sub folders recursively + for (LLInventoryModel::cat_array_t::iterator iter = cat_array->begin(); iter != cat_array->end(); iter++) + { + LLViewerInventoryCategory* cat = *iter; + if (contains_nocopy_items(cat->getUUID())) + { + return true; + } + } + } + else + { + LLInventoryItem* item = gInventory.getItem(id); + LLViewerInventoryItem * inv_item = (LLViewerInventoryItem *) item; + if (!inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + return true; + } + } + + // Exit without meeting a nocopy item + return false; +} // Generates a string containing the path to the item specified by // item_id. @@ -112,6 +233,139 @@ void append_path(const LLUUID& id, std::string& path) path.append(temp); } +void update_marketplace_folder_hierarchy(const LLUUID cat_id) +{ + // When changing the marketplace status of a folder, the only thing that needs to happen is + // for all observers of the folder to, possibly, change the display label of the folder + // so that's the only thing we change on the update mask. + gInventory.addChangedMask(LLInventoryObserver::LABEL, cat_id); + + // Update all descendent folders down + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat_id,cat_array,item_array); + + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLInventoryCategory* category = *iter; + update_marketplace_folder_hierarchy(category->getUUID()); + } + return; +} + +void update_marketplace_category(const LLUUID& cur_uuid, bool perform_consistency_enforcement) +{ + // When changing the marketplace status of an item, we usually have to change the status of all + // folders in the same listing. This is because the display of each folder is affected by the + // overall status of the whole listing. + // Consequently, the only way to correctly update an item anywhere in the marketplace is to + // update the whole listing from its listing root. + // This is not as bad as it seems as we only update folders, not items, and the folder nesting depth + // is limited to 4. + // We also take care of degenerated cases so we don't update all folders in the inventory by mistake. + + if (cur_uuid.isNull()) + { + return; + } + + // Grab marketplace listing data for this item + S32 depth = depth_nesting_in_marketplace(cur_uuid); + if (depth > 0) + { + // Retrieve the listing uuid this object is in + LLUUID listing_uuid = nested_parent_id(cur_uuid, depth); + + // Verify marketplace data consistency for this listing + if (perform_consistency_enforcement && LLMarketplaceData::instance().isListed(listing_uuid)) + { + LLUUID version_folder_uuid = LLMarketplaceData::instance().getVersionFolder(listing_uuid); + S32 version_depth = depth_nesting_in_marketplace(version_folder_uuid); + if (version_folder_uuid.notNull() && (!gInventory.isObjectDescendentOf(version_folder_uuid, listing_uuid) || (version_depth != 2))) + { + LL_INFOS("SLM") << "Unlist and clear version folder as the version folder is not at the right place anymore!!" << LL_ENDL; + LLMarketplaceData::instance().setVersionFolder(listing_uuid, LLUUID::null,1); + } + else if (version_folder_uuid.notNull() && LLMarketplaceData::instance().getActivationState(version_folder_uuid) && (count_descendants_items(version_folder_uuid) == 0) && !LLMarketplaceData::instance().isUpdating(version_folder_uuid,version_depth)) + { + LL_INFOS("SLM") << "Unlist as the version folder is empty of any item!!" << LL_ENDL; + LLNotificationsUtil::add("AlertMerchantVersionFolderEmpty"); + LLMarketplaceData::instance().activateListing(listing_uuid, false,1); + } + } + + // Check if the count on hand needs to be updated on SLM + if (perform_consistency_enforcement && (compute_stock_count(listing_uuid) != LLMarketplaceData::instance().getCountOnHand(listing_uuid))) + { + LLMarketplaceData::instance().updateCountOnHand(listing_uuid,1); + } + // Update all descendents starting from the listing root + update_marketplace_folder_hierarchy(listing_uuid); + } + else if (depth == 0) + { + // If this is the marketplace listings root itself, update all descendents + if (gInventory.getCategory(cur_uuid)) + { + update_marketplace_folder_hierarchy(cur_uuid); + } + } + else + { + // If the folder is outside the marketplace listings root, clear its SLM data if needs be + if (perform_consistency_enforcement && LLMarketplaceData::instance().isListed(cur_uuid)) + { + LL_INFOS("SLM") << "Disassociate as the listing folder is not under the marketplace folder anymore!!" << LL_ENDL; + LLMarketplaceData::instance().clearListing(cur_uuid); + } + // Update all descendents if this is a category + if (gInventory.getCategory(cur_uuid)) + { + update_marketplace_folder_hierarchy(cur_uuid); + } + } + + return; +} + +// Iterate through the marketplace and flag for label change all categories that countain a stock folder (i.e. stock folders and embedding folders up the hierarchy) +void update_all_marketplace_count(const LLUUID& cat_id) +{ + // Get all descendent folders down + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat_id,cat_array,item_array); + + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLInventoryCategory* category = *iter; + if (category->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + // Listing containing stock folders needs to be updated but not others + // Note: we take advantage of the fact that stock folder *do not* contain sub folders to avoid a recursive call here + update_marketplace_category(category->getUUID()); + } + else + { + // Explore the contained folders recursively + update_all_marketplace_count(category->getUUID()); + } + } +} + +void update_all_marketplace_count() +{ + // Get the marketplace root and launch the recursive exploration + const LLUUID marketplace_listings_uuid = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (!marketplace_listings_uuid.isNull()) + { + update_all_marketplace_count(marketplace_listings_uuid); + } + return; +} + void rename_category(LLInventoryModel* model, const LLUUID& cat_id, const std::string& new_name) { LLViewerInventoryCategory* cat; @@ -132,7 +386,8 @@ void rename_category(LLInventoryModel* model, const LLUUID& cat_id, const std::s void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory* cat, const LLUUID& parent_id, - const LLUUID& root_copy_id) + const LLUUID& root_copy_id, + bool move_no_copy_items ) { // Create the initial folder LLUUID new_cat_uuid = gInventory.createNewCategory(parent_id, LLFolderType::FT_NONE, cat->getName()); @@ -145,19 +400,42 @@ void copy_inventory_category(LLInventoryModel* model, LLInventoryModel::cat_array_t* cat_array; LLInventoryModel::item_array_t* item_array; gInventory.getDirectDescendentsOf(cat->getUUID(),cat_array,item_array); + + // If root_copy_id is null, tell the marketplace model we'll be waiting for new items to be copied over for this folder + if (root_copy_id.isNull()) + { + LLMarketplaceData::instance().setValidationWaiting(root_id,count_descendants_items(cat->getUUID())); + } // Copy all the items LLInventoryModel::item_array_t item_array_copy = *item_array; for (LLInventoryModel::item_array_t::iterator iter = item_array_copy.begin(); iter != item_array_copy.end(); iter++) { LLInventoryItem* item = *iter; - copy_inventory_item( - gAgent.getID(), - item->getPermissions().getOwner(), - item->getUUID(), - new_cat_uuid, - std::string(), - LLPointer<LLInventoryCallback>(NULL)); + LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(update_folder_cb, new_cat_uuid)); + + if (!item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + // If the item is nocopy, we do nothing or, optionally, move it + if (move_no_copy_items) + { + // Reparent the item + LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) item; + gInventory.changeItemParent(viewer_inv_item, new_cat_uuid, true); + } + // Decrement the count in root_id since that one item won't be copied over + LLMarketplaceData::instance().decrementValidationWaiting(root_id); + } + else + { + copy_inventory_item( + gAgent.getID(), + item->getPermissions().getOwner(), + item->getUUID(), + new_cat_uuid, + std::string(), + cb); + } } // Copy all the folders @@ -167,7 +445,7 @@ void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory* category = *iter; if (category->getUUID() != root_id) { - copy_inventory_category(model, category, new_cat_uuid, root_id); + copy_inventory_category(model, category, new_cat_uuid, root_id, move_no_copy_items); } } } @@ -509,14 +787,22 @@ void open_outbox() LLFloaterReg::showInstance("outbox"); } -LLUUID create_folder_in_outbox_for_item(LLInventoryItem* item, const LLUUID& destFolderId, S32 operation_id) +void open_marketplace_listings() +{ + LLFloaterReg::showInstance("marketplace_listings"); +} + +// Create a new folder in destFolderId with the same name as the item name and return the uuid of the new folder +// Note: this is used locally in various situation where we need to wrap an item into a special folder +LLUUID create_folder_for_item(LLInventoryItem* item, const LLUUID& destFolderId) { llassert(item); llassert(destFolderId.notNull()); LLUUID created_folder_id = gInventory.createNewCategory(destFolderId, LLFolderType::FT_NONE, item->getName()); gInventory.notifyObservers(); - + + // *TODO : Create different notifications for the various cases LLNotificationsUtil::add("OutboxFolderCreated"); return created_folder_id; @@ -532,8 +818,7 @@ void move_to_outbox_cb_action(const LLSD& payload) // when moving item directly into outbox create folder with that name if (dest_folder_id == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) { - S32 operation_id = payload["operation_id"].asInteger(); - dest_folder_id = create_folder_in_outbox_for_item(viitem, dest_folder_id, operation_id); + dest_folder_id = create_folder_for_item(viitem, dest_folder_id); } LLUUID parent = viitem->getParentUUID(); @@ -604,7 +889,7 @@ void copy_item_to_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, const LL // when moving item directly into outbox create folder with that name if (dest_folder == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) { - dest_folder = create_folder_in_outbox_for_item(inv_item, dest_folder, operation_id); + dest_folder = create_folder_for_item(inv_item, dest_folder); } copy_inventory_item(gAgent.getID(), @@ -634,7 +919,7 @@ void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32 // when moving item directly into outbox create folder with that name if (dest_folder == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) { - dest_folder = create_folder_in_outbox_for_item(inv_item, dest_folder, operation_id); + dest_folder = create_folder_for_item(inv_item, dest_folder); } LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; @@ -675,6 +960,1003 @@ void copy_folder_to_outbox(LLInventoryCategory* inv_cat, const LLUUID& dest_fold } ///---------------------------------------------------------------------------- +// Marketplace functions +// +// Handles Copy and Move to or within the Marketplace listings folder. +// Handles creation of stock folders, nesting of listings and version folders, +// permission checking and listings validation. +///---------------------------------------------------------------------------- + +S32 depth_nesting_in_marketplace(LLUUID cur_uuid) +{ + // Get the marketplace listings root, exit with -1 (i.e. not under the marketplace listings root) if none + const LLUUID marketplace_listings_uuid = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (marketplace_listings_uuid.isNull()) + { + return -1; + } + // If not a descendent of the marketplace listings root, then the nesting depth is -1 by definition + if (!gInventory.isObjectDescendentOf(cur_uuid, marketplace_listings_uuid)) + { + return -1; + } + + // Iterate through the parents till we hit the marketplace listings root + // Note that the marketplace listings root itself will return 0 + S32 depth = 0; + LLInventoryObject* cur_object = gInventory.getObject(cur_uuid); + while (cur_uuid != marketplace_listings_uuid) + { + depth++; + cur_uuid = cur_object->getParentUUID(); + cur_object = gInventory.getCategory(cur_uuid); + } + return depth; +} + +// Returns the UUID of the marketplace listing this object is in +LLUUID nested_parent_id(LLUUID cur_uuid, S32 depth) +{ + if (depth < 1) + { + // For objects outside the marketplace listings root (or root itself), we return a NULL UUID + return LLUUID::null; + } + else if (depth == 1) + { + // Just under the root, we return the passed UUID itself if it's a folder, NULL otherwise (not a listing) + LLViewerInventoryCategory* cat = gInventory.getCategory(cur_uuid); + return (cat ? cur_uuid : LLUUID::null); + } + + // depth > 1 + LLInventoryObject* cur_object = gInventory.getObject(cur_uuid); + while (depth > 1) + { + depth--; + cur_uuid = cur_object->getParentUUID(); + cur_object = gInventory.getCategory(cur_uuid); + } + return cur_uuid; +} + +S32 compute_stock_count(LLUUID cat_uuid, bool force_count /* false */) +{ + // Handle the case of the folder being a stock folder immediately + LLViewerInventoryCategory* cat = gInventory.getCategory(cat_uuid); + if (!cat) + { + // Not a category so no stock count to speak of + return COMPUTE_STOCK_INFINITE; + } + if (cat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN) + { + // If the folder is not completely fetched, we do not want to return any confusing value that could lead to unlisting + // "COMPUTE_STOCK_NOT_EVALUATED" denotes that a stock folder has a count that cannot be evaluated at this time (folder not up to date) + return COMPUTE_STOCK_NOT_EVALUATED; + } + // Note: stock folders are *not* supposed to have nested subfolders so we stop recursion here but we count only items (subfolders will be ignored) + // Note: we *always* give a stock count for stock folders, it's useful even if the listing is unassociated + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat_uuid,cat_array,item_array); + return item_array->size(); + } + + // When force_count is true, we do not do any verification of the marketplace status and simply compute + // the stock amount based on the descendent hierarchy. This is used specifically when creating a listing. + if (!force_count) + { + // Grab marketplace data for this folder + S32 depth = depth_nesting_in_marketplace(cat_uuid); + LLUUID listing_uuid = nested_parent_id(cat_uuid, depth); + if (!LLMarketplaceData::instance().isListed(listing_uuid)) + { + // If not listed, the notion of stock is meaningless so it won't be computed for any level + return COMPUTE_STOCK_INFINITE; + } + + LLUUID version_folder_uuid = LLMarketplaceData::instance().getVersionFolder(listing_uuid); + // Handle the case of the first 2 levels : listing and version folders + if (depth == 1) + { + if (version_folder_uuid.notNull()) + { + // If there is a version folder, the stock value for the listing is the version folder stock + return compute_stock_count(version_folder_uuid, true); + } + else + { + // If there's no version folder associated, the notion of stock count has no meaning + return COMPUTE_STOCK_INFINITE; + } + } + else if (depth == 2) + { + if (version_folder_uuid.notNull() && (version_folder_uuid != cat_uuid)) + { + // If there is a version folder but we're not it, our stock count is meaningless + return COMPUTE_STOCK_INFINITE; + } + } + } + + // In all other cases, the stock count is the min of stock folders count found in the descendents + // "COMPUTE_STOCK_NOT_EVALUATED" denotes that a stock folder in the hierarchy has a count that cannot be evaluated at this time (folder not up to date) + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat_uuid,cat_array,item_array); + + // "COMPUTE_STOCK_INFINITE" denotes a folder that doesn't countain any stock folders in its descendents + S32 curr_count = COMPUTE_STOCK_INFINITE; + + // Note: marketplace listings have a maximum depth nesting of 4 + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLInventoryCategory* category = *iter; + S32 count = compute_stock_count(category->getUUID(), true); + if ((curr_count == COMPUTE_STOCK_INFINITE) || ((count != COMPUTE_STOCK_INFINITE) && (count < curr_count))) + { + curr_count = count; + } + } + + return curr_count; +} + +// local helper +bool can_move_to_marketplace(LLInventoryItem* inv_item, std::string& tooltip_msg, bool resolve_links) +{ + // Collapse links directly to items/folders + LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; + LLViewerInventoryItem * linked_item = viewer_inv_item->getLinkedItem(); + LLViewerInventoryCategory * linked_category = viewer_inv_item->getLinkedCategory(); + + // Linked items and folders cannot be put for sale + if (linked_category || linked_item) + { + tooltip_msg = LLTrans::getString("TooltipOutboxLinked"); + return false; + } + + // A category is always considered as passing... + if (linked_category != NULL) + { + return true; + } + + // Take the linked item if necessary + if (linked_item != NULL) + { + inv_item = linked_item; + } + + // Check that the agent has transfer permission on the item: this is required as a resident cannot + // put on sale items she cannot transfer. Proceed with move if we have permission. + bool allow_transfer = inv_item->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID()); + if (!allow_transfer) + { + tooltip_msg = LLTrans::getString("TooltipOutboxNoTransfer"); + return false; + } + + // Check worn/not worn status: worn items cannot be put on the marketplace + bool worn = get_is_item_worn(inv_item->getUUID()); + if (worn) + { + tooltip_msg = LLTrans::getString("TooltipOutboxWorn"); + return false; + } + + // Check library status: library items cannot be put on the marketplace + if (!gInventory.isObjectDescendentOf(inv_item->getUUID(), gInventory.getRootFolderID())) + { + tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory"); + return false; + } + + // Check type: for the moment, calling cards cannot be put on the marketplace + bool calling_card = (LLAssetType::AT_CALLINGCARD == inv_item->getType()); + if (calling_card) + { + tooltip_msg = LLTrans::getString("TooltipOutboxCallingCard"); + return false; + } + + return true; +} + +// local helper +// Returns the max tree length (in folder nodes) down from the argument folder +int get_folder_levels(LLInventoryCategory* inv_cat) +{ + LLInventoryModel::cat_array_t* cats; + LLInventoryModel::item_array_t* items; + gInventory.getDirectDescendentsOf(inv_cat->getUUID(), cats, items); + + int max_child_levels = 0; + + for (S32 i=0; i < cats->size(); ++i) + { + LLInventoryCategory* category = cats->at(i); + max_child_levels = llmax(max_child_levels, get_folder_levels(category)); + } + + return 1 + max_child_levels; +} + +// local helper +// Returns the distance (in folder nodes) between the ancestor and its descendant. Returns -1 if not related. +int get_folder_path_length(const LLUUID& ancestor_id, const LLUUID& descendant_id) +{ + int depth = 0; + + if (ancestor_id == descendant_id) return depth; + + const LLInventoryCategory* category = gInventory.getCategory(descendant_id); + + while (category) + { + LLUUID parent_id = category->getParentUUID(); + + if (parent_id.isNull()) break; + + depth++; + + if (parent_id == ancestor_id) return depth; + + category = gInventory.getCategory(parent_id); + } + + LL_WARNS("SLM") << "get_folder_path_length() couldn't trace a path from the descendant to the ancestor" << LL_ENDL; + return -1; +} + +// local helper +// Returns true if all items within the argument folder are fit for sale, false otherwise +bool has_correct_permissions_for_sale(LLInventoryCategory* cat, std::string& error_msg) +{ + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat->getUUID(),cat_array,item_array); + + LLInventoryModel::item_array_t item_array_copy = *item_array; + + for (LLInventoryModel::item_array_t::iterator iter = item_array_copy.begin(); iter != item_array_copy.end(); iter++) + { + LLInventoryItem* item = *iter; + if (!can_move_to_marketplace(item, error_msg, false)) + { + return false; + } + } + + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLInventoryCategory* category = *iter; + if (!has_correct_permissions_for_sale(category, error_msg)) + { + return false; + } + } + return true; +} + +// Returns true if inv_item can be dropped in dest_folder, a folder nested in marketplace listings (or merchant inventory) under the root_folder root +// If returns is false, tooltip_msg contains an error message to display to the user (localized and all). +// bundle_size is the amount of sibling items that are getting moved to the marketplace at the same time. +bool can_move_item_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryItem* inv_item, std::string& tooltip_msg, S32 bundle_size, bool from_paste) +{ + // Check stock folder type matches item type in marketplace listings or merchant outbox (even if of no use there for the moment) + LLViewerInventoryCategory* view_folder = dynamic_cast<LLViewerInventoryCategory*>(dest_folder); + bool move_in_stock = (view_folder && (view_folder->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK)); + bool accept = (view_folder && view_folder->acceptItem(inv_item)); + if (!accept) + { + tooltip_msg = LLTrans::getString("TooltipOutboxMixedStock"); + } + + // Check that the item has the right type and permissions to be sold on the marketplace + if (accept) + { + accept = can_move_to_marketplace(inv_item, tooltip_msg, true); + } + + // Check that the total amount of items won't violate the max limit on the marketplace + if (accept) + { + // If the dest folder is a stock folder, we do not count the incoming items toward the total (stock items are seen as one) + int existing_item_count = (move_in_stock ? 0 : bundle_size); + + // If the dest folder is a stock folder, we do assume that the incoming items are also stock items (they should anyway) + int existing_stock_count = (move_in_stock ? bundle_size : 0); + + int existing_folder_count = 0; + + // Get the version folder: that's where the counts start from + const LLViewerInventoryCategory * version_folder = ((root_folder && (root_folder != dest_folder)) ? gInventory.getFirstDescendantOf(root_folder->getUUID(), dest_folder->getUUID()) : NULL); + + if (version_folder) + { + if (!from_paste && gInventory.isObjectDescendentOf(inv_item->getUUID(), version_folder->getUUID())) + { + // Clear those counts or they will be counted twice because we're already inside the version category + existing_item_count = 0; + } + + LLInventoryModel::cat_array_t existing_categories; + LLInventoryModel::item_array_t existing_items; + + gInventory.collectDescendents(version_folder->getUUID(), existing_categories, existing_items, FALSE); + + existing_item_count += count_copyable_items(existing_items) + count_stock_folders(existing_categories); + existing_stock_count += count_stock_items(existing_items); + existing_folder_count += existing_categories.size(); + + // If the incoming item is a nocopy (stock) item, we need to consider that it will create a stock folder + if (!inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID()) && !move_in_stock) + { + // Note : we do not assume that all incoming items are nocopy of different kinds... + existing_folder_count += 1; + } + } + + if (existing_item_count > gSavedSettings.getU32("InventoryOutboxMaxItemCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxItemCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyObjects", args); + accept = false; + } + else if (existing_stock_count > gSavedSettings.getU32("InventoryOutboxMaxStockItemCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxStockItemCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyStockItems", args); + accept = false; + } + else if (existing_folder_count > gSavedSettings.getU32("InventoryOutboxMaxFolderCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxFolderCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyFolders", args); + accept = false; + } + } + + return accept; +} + +// Returns true if inv_cat can be dropped in dest_folder, a folder nested in marketplace listings (or merchant inventory) under the root_folder root +// If returns is false, tooltip_msg contains an error message to display to the user (localized and all). +// bundle_size is the amount of sibling items that are getting moved to the marketplace at the same time. +bool can_move_folder_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryCategory* inv_cat, std::string& tooltip_msg, S32 bundle_size, bool check_items, bool from_paste) +{ + bool accept = true; + + // Compute the nested folders level we'll add into with that incoming folder + int incoming_folder_depth = get_folder_levels(inv_cat); + // Compute the nested folders level we're inserting ourselves in + // Note: add 1 when inserting under a listing folder as we need to take the root listing folder in the count + int insertion_point_folder_depth = (root_folder ? get_folder_path_length(root_folder->getUUID(), dest_folder->getUUID()) + 1 : 0); + + // Get the version folder: that's where the folders and items counts start from + const LLViewerInventoryCategory * version_folder = (insertion_point_folder_depth >= 2 ? gInventory.getFirstDescendantOf(root_folder->getUUID(), dest_folder->getUUID()) : NULL); + + // Compare the whole with the nested folders depth limit + // Note: substract 2 as we leave root and version folder out of the count threshold + if ((incoming_folder_depth + insertion_point_folder_depth - 2) > (S32)(gSavedSettings.getU32("InventoryOutboxMaxFolderDepth"))) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxFolderDepth"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxFolderLevels", args); + accept = false; + } + + if (accept) + { + LLInventoryModel::cat_array_t descendent_categories; + LLInventoryModel::item_array_t descendent_items; + gInventory.collectDescendents(inv_cat->getUUID(), descendent_categories, descendent_items, FALSE); + + int dragged_folder_count = descendent_categories.size() + bundle_size; // Note: We assume that we're moving a bunch of folders in. That might be wrong... + int dragged_item_count = count_copyable_items(descendent_items) + count_stock_folders(descendent_categories); + int dragged_stock_count = count_stock_items(descendent_items); + int existing_item_count = 0; + int existing_stock_count = 0; + int existing_folder_count = 0; + + if (version_folder) + { + if (!from_paste && gInventory.isObjectDescendentOf(inv_cat->getUUID(), version_folder->getUUID())) + { + // Clear those counts or they will be counted twice because we're already inside the version category + dragged_folder_count = 0; + dragged_item_count = 0; + dragged_stock_count = 0; + } + + // Tally the total number of categories and items inside the root folder + LLInventoryModel::cat_array_t existing_categories; + LLInventoryModel::item_array_t existing_items; + gInventory.collectDescendents(version_folder->getUUID(), existing_categories, existing_items, FALSE); + + existing_folder_count += existing_categories.size(); + existing_item_count += count_copyable_items(existing_items) + count_stock_folders(existing_categories); + existing_stock_count += count_stock_items(existing_items); + } + + const int total_folder_count = existing_folder_count + dragged_folder_count; + const int total_item_count = existing_item_count + dragged_item_count; + const int total_stock_count = existing_stock_count + dragged_stock_count; + + if (total_folder_count > gSavedSettings.getU32("InventoryOutboxMaxFolderCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxFolderCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyFolders", args); + accept = false; + } + else if (total_item_count > gSavedSettings.getU32("InventoryOutboxMaxItemCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxItemCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyObjects", args); + accept = false; + } + else if (total_stock_count > gSavedSettings.getU32("InventoryOutboxMaxStockItemCount")) + { + LLStringUtil::format_map_t args; + U32 amount = gSavedSettings.getU32("InventoryOutboxMaxStockItemCount"); + args["[AMOUNT]"] = llformat("%d",amount); + tooltip_msg = LLTrans::getString("TooltipOutboxTooManyStockItems", args); + accept = false; + } + + // Now check that each item in the folder can be moved in the marketplace + if (accept && check_items) + { + for (S32 i=0; i < descendent_items.size(); ++i) + { + LLInventoryItem* item = descendent_items[i]; + if (!can_move_to_marketplace(item, tooltip_msg, false)) + { + accept = false; + break; + } + } + } + } + + return accept; +} + +bool move_item_to_marketplacelistings(LLInventoryItem* inv_item, LLUUID dest_folder, bool copy) +{ + // Get the marketplace listings depth of the destination folder, exit with error if not under marketplace + S32 depth = depth_nesting_in_marketplace(dest_folder); + if (depth < 0) + { + LLSD subs; + subs["[ERROR_CODE]"] = LLTrans::getString("Marketplace Error Prefix") + LLTrans::getString("Marketplace Error Not Merchant"); + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return false; + } + + // We will collapse links into items/folders + LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; + LLViewerInventoryCategory * linked_category = viewer_inv_item->getLinkedCategory(); + + if (linked_category != NULL) + { + // Move the linked folder directly + return move_folder_to_marketplacelistings(linked_category, dest_folder, copy); + } + else + { + // Grab the linked item if any + LLViewerInventoryItem * linked_item = viewer_inv_item->getLinkedItem(); + viewer_inv_item = (linked_item != NULL ? linked_item : viewer_inv_item); + + // If we want to copy but the item is no copy, fail silently (this is a common case that doesn't warrant notification) + if (copy && !viewer_inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + return false; + } + + // Check that the agent has transfer permission on the item: this is required as a resident cannot + // put on sale items she cannot transfer. Proceed with move if we have permission. + std::string error_msg; + if (can_move_to_marketplace(inv_item, error_msg, true)) + { + // When moving an isolated item, we might need to create the folder structure to support it + if (depth == 0) + { + // We need a listing folder + dest_folder = gInventory.createNewCategory(dest_folder, LLFolderType::FT_NONE, viewer_inv_item->getName()); + depth++; + } + if (depth == 1) + { + // We need a version folder + dest_folder = gInventory.createNewCategory(dest_folder, LLFolderType::FT_NONE, viewer_inv_item->getName()); + depth++; + } + LLViewerInventoryCategory* dest_cat = gInventory.getCategory(dest_folder); + if (!viewer_inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID()) && + (dest_cat->getPreferredType() != LLFolderType::FT_MARKETPLACE_STOCK)) + { + // We need to create a stock folder to move a no copy item + dest_folder = gInventory.createNewCategory(dest_folder, LLFolderType::FT_MARKETPLACE_STOCK, viewer_inv_item->getName()); + dest_cat = gInventory.getCategory(dest_folder); + depth++; + } + + // Verify we can have this item in that destination category + if (!dest_cat->acceptItem(viewer_inv_item)) + { + LLSD subs; + subs["[ERROR_CODE]"] = LLTrans::getString("Marketplace Error Prefix") + LLTrans::getString("Marketplace Error Not Accepted"); + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return false; + } + + // Get the parent folder of the moved item : we may have to update it + LLUUID src_folder = viewer_inv_item->getParentUUID(); + + if (copy) + { + // Copy the item + LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(update_folder_cb, dest_folder)); + copy_inventory_item( + gAgent.getID(), + viewer_inv_item->getPermissions().getOwner(), + viewer_inv_item->getUUID(), + dest_folder, + std::string(), + cb); + } + else + { + // Reparent the item + gInventory.changeItemParent(viewer_inv_item, dest_folder, true); + } + } + else + { + LLSD subs; + subs["[ERROR_CODE]"] = LLTrans::getString("Marketplace Error Prefix") + error_msg; + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return false; + } + } + + open_marketplace_listings(); + return true; +} + +bool move_folder_to_marketplacelistings(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, bool copy, bool move_no_copy_items) +{ + // Check that we have adequate permission on all items being moved. Proceed if we do. + std::string error_msg; + if (has_correct_permissions_for_sale(inv_cat, error_msg)) + { + // Get the destination folder + LLViewerInventoryCategory* dest_cat = gInventory.getCategory(dest_folder); + + // Check it's not a stock folder + if (dest_cat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + LLSD subs; + subs["[ERROR_CODE]"] = LLTrans::getString("Marketplace Error Prefix") + LLTrans::getString("Marketplace Error Not Accepted"); + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return false; + } + + // Get the parent folder of the moved item : we may have to update it + LLUUID src_folder = inv_cat->getParentUUID(); + + LLViewerInventoryCategory * viewer_inv_cat = (LLViewerInventoryCategory *) inv_cat; + if (copy) + { + // Copy the folder + copy_inventory_category(&gInventory, viewer_inv_cat, dest_folder, LLUUID::null, move_no_copy_items); + } + else + { + // Reparent the folder + gInventory.changeCategoryParent(viewer_inv_cat, dest_folder, false); + // Check the destination folder recursively for no copy items and promote the including folders if any + validate_marketplacelistings(dest_cat); + } + + // Update the modified folders + update_marketplace_category(src_folder); + update_marketplace_category(dest_folder); + gInventory.notifyObservers(); + } + else + { + LLSD subs; + subs["[ERROR_CODE]"] = LLTrans::getString("Marketplace Error Prefix") + error_msg; + LLNotificationsUtil::add("MerchantPasteFailed", subs); + return false; + } + + open_marketplace_listings(); + return true; +} + +bool sort_alpha(const LLViewerInventoryCategory* cat1, const LLViewerInventoryCategory* cat2) +{ + return cat1->getName().compare(cat2->getName()) < 0; +} + +void dump_trace(std::string& message, S32 depth, LLError::ELevel log_level) +{ + llinfos << "validate_marketplacelistings : error = "<< log_level << ", depth = " << depth << ", message = " << message << llendl; +} + +// Make all relevant business logic checks on the marketplace listings starting with the folder as argument. +// This function does no deletion of listings but a mere audit and raises issues to the user (through the +// optional callback cb). It also returns a boolean, true if things validate, false if issues are raised. +// The only inventory changes that are done is to move and sort folders containing no-copy items to stock folders. +bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_t cb, bool fix_hierarchy, S32 depth) +{ +#if 0 + // Used only for debug + if (!cb) + { + cb = boost::bind(&dump_trace, _1, _2, _3); + } +#endif + // Folder is valid unless issue is raised + bool result = true; + + // Get the type and the depth of the folder + LLViewerInventoryCategory * viewer_cat = (LLViewerInventoryCategory *) (cat); + const LLFolderType::EType folder_type = cat->getPreferredType(); + if (depth < 0) + { + // If the depth argument was not provided, evaluate the depth directly + depth = depth_nesting_in_marketplace(cat->getUUID()); + } + if (depth < 0) + { + // If the folder is not under the marketplace listings root, we run validation as if it was a listing folder and prevent any hierarchy fix + // This allows the function to be used to pre-validate a folder anywhere in the inventory + depth = 1; + fix_hierarchy = false; + } + + // Set the indentation for print output (typically, audit button in marketplace folder floater) + std::string indent; + for (int i = 1; i < depth; i++) + { + indent += " "; + } + + // Check out that version folders are marketplace ready + if (depth == 2) + { + std::string message; + // Note: if we fix the hierarchy, we want to check the items individually, hence the last argument here + if (!can_move_folder_to_marketplace(cat, cat, cat, message, 0, fix_hierarchy)) + { + result = false; + if (cb) + { + message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error") + " " + message; + cb(message,depth,LLError::LEVEL_ERROR); + } + } + } + + // Check out that stock folders are at the right level + if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (depth <= 2)) + { + if (fix_hierarchy) + { + if (cb) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Warning") + " " + LLTrans::getString("Marketplace Validation Warning Stock"); + cb(message,depth,LLError::LEVEL_WARN); + } + // Nest the stock folder one level deeper in a normal folder and restart from there + LLUUID parent_uuid = cat->getParentUUID(); + LLUUID folder_uuid = gInventory.createNewCategory(parent_uuid, LLFolderType::FT_NONE, cat->getName()); + LLInventoryCategory* new_cat = gInventory.getCategory(folder_uuid); + gInventory.changeCategoryParent(viewer_cat, folder_uuid, false); + result &= validate_marketplacelistings(new_cat, cb, fix_hierarchy, depth + 1); + return result; + } + else + { + result = false; + if (cb) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error") + " " + LLTrans::getString("Marketplace Validation Warning Stock"); + cb(message,depth,LLError::LEVEL_ERROR); + } + } + } + + // Item sorting and validation : sorting and moving the various stock items is complicated as the set of constraints is high + // We need to: + // * separate non stock items, stock items per types in different folders + // * have stock items nested at depth 2 at least + // * never ever move the non-stock items + + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(cat->getUUID(),cat_array,item_array); + + // We use a composite (type,permission) key on that map to store UUIDs of items of same (type,permissions) + std::map<U32, std::vector<LLUUID> > items_vector; + + // Parse the items and create vectors of item UUIDs sorting copyable items and stock items of various types + bool has_bad_items = false; + LLInventoryModel::item_array_t item_array_copy = *item_array; + for (LLInventoryModel::item_array_t::iterator iter = item_array_copy.begin(); iter != item_array_copy.end(); iter++) + { + LLInventoryItem* item = *iter; + LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) item; + + // Test but skip items that shouldn't be there to start with, raise an error message for those + std::string error_msg; + if (!can_move_to_marketplace(item, error_msg, false)) + { + has_bad_items = true; + if (cb && fix_hierarchy) + { + std::string message = indent + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error") + " " + error_msg; + cb(message,depth,LLError::LEVEL_ERROR); + } + continue; + } + // Update the appropriate vector item for that type + LLInventoryType::EType type = LLInventoryType::IT_COUNT; // Default value for non stock items + U32 perms = 0; + if (!viewer_inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + // Get the item type for stock items + type = viewer_inv_item->getInventoryType(); + perms = viewer_inv_item->getPermissions().getMaskNextOwner(); + } + U32 key = (((U32)(type) & 0xFF) << 24) | (perms & 0xFFFFFF); + items_vector[key].push_back(viewer_inv_item->getUUID()); + } + + // How many types of items? Which type is it if only one? + S32 count = items_vector.size(); + U32 default_key = (U32)(LLInventoryType::IT_COUNT) << 24; // This is the key for any normal copyable item + U32 unique_key = (count == 1 ? items_vector.begin()->first : default_key); // The key in the case of one item type only + + // If we have no items in there (only folders or empty), analyze a bit further + if ((count == 0) && !has_bad_items) + { + if (cat_array->size() == 0) + { + // So we have no item and no folder. That's at least a warning. + if (depth == 2) + { + // If this is an empty version folder, warn only (listing won't be delivered by AIS, but only AIS should unlist) + if (cb) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Empty Version"); + cb(message,depth,LLError::LEVEL_WARN); + } + } + else if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (depth > 2)) + { + // If this is a legit but empty stock folder, warn only (listing must stay searchable when out of stock) + if (cb) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Empty Stock"); + cb(message,depth,LLError::LEVEL_WARN); + } + } + else if (cb) + { + // We warn if there's nothing in a regular folder (may be it's an under construction listing) + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Warning Empty"); + cb(message,depth,LLError::LEVEL_WARN); + } + } + else + { + // Done with that folder : Print out the folder name unless we already found an error here + if (cb && result && (depth >= 1)) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log"); + cb(message,depth,LLError::LEVEL_INFO); + } + } + } + // If we have a single type of items of the right type in the right place, we're done + else if ((count == 1) && !has_bad_items && (((unique_key == default_key) && (depth > 1)) || ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (depth > 2) && (cat_array->size() == 0)))) + { + // Done with that folder : Print out the folder name unless we already found an error here + if (cb && result && (depth >= 1)) + { + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log"); + cb(message,depth,LLError::LEVEL_INFO); + } + } + else + { + if (fix_hierarchy && !has_bad_items) + { + // Alert the user when an existing stock folder has to be split + if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && ((count >= 2) || (cat_array->size() > 0))) + { + LLNotificationsUtil::add("AlertMerchantStockFolderSplit"); + } + // If we have more than 1 type of items or we are at the listing level or we have stock/no stock type mismatch, wrap the items in subfolders + if ((count > 1) || (depth == 1) || + ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (unique_key == default_key)) || + ((folder_type != LLFolderType::FT_MARKETPLACE_STOCK) && (unique_key != default_key))) + { + // Create one folder per vector at the right depth and of the right type + std::map<U32, std::vector<LLUUID> >::iterator items_vector_it = items_vector.begin(); + while (items_vector_it != items_vector.end()) + { + // Create a new folder + LLUUID parent_uuid = (depth > 2 ? viewer_cat->getParentUUID() : viewer_cat->getUUID()); + LLViewerInventoryItem* viewer_inv_item = gInventory.getItem(items_vector_it->second.back()); + std::string folder_name = (depth >= 1 ? viewer_cat->getName() : viewer_inv_item->getName()); + LLFolderType::EType new_folder_type = (items_vector_it->first == default_key ? LLFolderType::FT_NONE : LLFolderType::FT_MARKETPLACE_STOCK); + if (cb) + { + std::string message = ""; + if (new_folder_type == LLFolderType::FT_MARKETPLACE_STOCK) + { + message = indent + folder_name + LLTrans::getString("Marketplace Validation Warning Create Stock"); + } + else + { + message = indent + folder_name + LLTrans::getString("Marketplace Validation Warning Create Version"); + } + cb(message,depth,LLError::LEVEL_WARN); + } + LLUUID folder_uuid = gInventory.createNewCategory(parent_uuid, new_folder_type, folder_name); + + // Move each item to the new folder + while (!items_vector_it->second.empty()) + { + LLViewerInventoryItem* viewer_inv_item = gInventory.getItem(items_vector_it->second.back()); + if (cb) + { + std::string message = indent + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Warning Move"); + cb(message,depth,LLError::LEVEL_WARN); + } + gInventory.changeItemParent(viewer_inv_item, folder_uuid, true); + items_vector_it->second.pop_back(); + } + + // Next type + update_marketplace_category(parent_uuid); + update_marketplace_category(folder_uuid); + gInventory.notifyObservers(); + items_vector_it++; + } + } + // Stock folder should have no sub folder so reparent those up + if (folder_type == LLFolderType::FT_MARKETPLACE_STOCK) + { + LLUUID parent_uuid = cat->getParentUUID(); + gInventory.getDirectDescendentsOf(cat->getUUID(),cat_array,item_array); + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLViewerInventoryCategory * viewer_cat = (LLViewerInventoryCategory *) (*iter); + gInventory.changeCategoryParent(viewer_cat, parent_uuid, false); + result &= validate_marketplacelistings(viewer_cat, cb, fix_hierarchy, depth); + } + } + } + else if (cb) + { + // We are not fixing the hierarchy but reporting problems, report everything we can find + // Print the folder name + if (result && (depth >= 1)) + { + if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (count >= 2)) + { + // Report if a stock folder contains a mix of items + result = false; + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Mixed Stock"); + cb(message,depth,LLError::LEVEL_ERROR); + } + else if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (cat_array->size() != 0)) + { + // Report if a stock folder contains subfolders + result = false; + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Subfolder In Stock"); + cb(message,depth,LLError::LEVEL_ERROR); + } + else + { + // Simply print the folder name + std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log"); + cb(message,depth,LLError::LEVEL_INFO); + } + } + // Scan each item and report if there's a problem + LLInventoryModel::item_array_t item_array_copy = *item_array; + for (LLInventoryModel::item_array_t::iterator iter = item_array_copy.begin(); iter != item_array_copy.end(); iter++) + { + LLInventoryItem* item = *iter; + LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) item; + std::string error_msg; + if (!can_move_to_marketplace(item, error_msg, false)) + { + // Report items that shouldn't be there to start with + result = false; + std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error") + " " + error_msg; + cb(message,depth,LLError::LEVEL_ERROR); + } + else if ((!viewer_inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) && (folder_type != LLFolderType::FT_MARKETPLACE_STOCK)) + { + // Report stock items that are misplaced + result = false; + std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error Stock Item"); + cb(message,depth,LLError::LEVEL_ERROR); + } + else if (depth == 1) + { + // Report items not wrapped in version folder + result = false; + std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Warning Unwrapped Item"); + cb(message,depth,LLError::LEVEL_ERROR); + } + } + } + + // Clean up + if (viewer_cat->getDescendentCount() == 0) + { + // Remove the current folder if it ends up empty + if (cb) + { + std::string message = indent + viewer_cat->getName() + LLTrans::getString("Marketplace Validation Warning Delete"); + cb(message,depth,LLError::LEVEL_WARN); + } + gInventory.removeCategory(cat->getUUID()); + gInventory.notifyObservers(); + return result && !has_bad_items; + } + } + + // Recursion : Perform the same validation on each nested folder + gInventory.getDirectDescendentsOf(cat->getUUID(),cat_array,item_array); + LLInventoryModel::cat_array_t cat_array_copy = *cat_array; + // Sort the folders in alphabetical order first + std::sort(cat_array_copy.begin(), cat_array_copy.end(), sort_alpha); + + for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) + { + LLInventoryCategory* category = *iter; + result &= validate_marketplacelistings(category, cb, fix_hierarchy, depth + 1); + } + + update_marketplace_category(cat->getUUID()); + gInventory.notifyObservers(); + return result && !has_bad_items; +} + +///---------------------------------------------------------------------------- /// LLInventoryCollectFunctor implementations ///---------------------------------------------------------------------------- @@ -1061,6 +2343,29 @@ void LLOpenFoldersWithSelection::doFolder(LLFolderViewFolder* folder) } } +// Callback for doToSelected if DAMA required... +void LLInventoryAction::callback_doToSelected(const LLSD& notification, const LLSD& response, class LLInventoryModel* model, class LLFolderView* root, const std::string& action) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES + { + doToSelected(model, root, action, FALSE); + } +} + +void LLInventoryAction::callback_copySelected(const LLSD& notification, const LLSD& response, class LLInventoryModel* model, class LLFolderView* root, const std::string& action) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) // YES, Move no copy item(s) + { + doToSelected(model, root, "copy_or_move_to_marketplace_listings", FALSE); + } + else if (option == 1) // NO, Don't move no copy item(s) (leave them behind) + { + doToSelected(model, root, "copy_to_marketplace_listings", FALSE); + } +} + // Succeeds iff all selected items are bridges to objects, in which // case returns their corresponding uuids. bool get_selection_object_uuids(LLFolderView *root, uuid_vec_t& ids) @@ -1089,18 +2394,87 @@ bool get_selection_object_uuids(LLFolderView *root, uuid_vec_t& ids) return false; } -void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root, const std::string& action) + +void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root, const std::string& action, BOOL user_confirm) { + std::set<LLFolderViewItem*> selected_items = root->getSelectionList(); + + // Prompt the user and check for authorization for some marketplace active listing edits + if (user_confirm && (("delete" == action) || ("cut" == action) || ("rename" == action) || ("properties" == action) || ("task_properties" == action) || ("open" == action))) + { + std::set<LLFolderViewItem*>::iterator set_iter = selected_items.begin(); + LLFolderViewModelItemInventory * viewModel = NULL; + for (; set_iter != selected_items.end(); ++set_iter) + { + viewModel = dynamic_cast<LLFolderViewModelItemInventory *>((*set_iter)->getViewModelItem()); + if (viewModel && (depth_nesting_in_marketplace(viewModel->getUUID()) >= 0)) + { + break; + } + } + if (set_iter != selected_items.end()) + { + if ("open" == action) + { + if (get_can_item_be_worn(viewModel->getUUID())) + { + // Wearing an object from any listing, active or not, is verbotten + LLNotificationsUtil::add("AlertMerchantListingCannotWear"); + return; + } + // Note: we do not prompt for change when opening items (e.g. textures or note cards) on the marketplace... + } + else if (LLMarketplaceData::instance().isInActiveFolder(viewModel->getUUID()) || + LLMarketplaceData::instance().isListedAndActive(viewModel->getUUID())) + { + // If item is in active listing, further confirmation is required + if ((("cut" == action) || ("delete" == action)) && (LLMarketplaceData::instance().isListed(viewModel->getUUID()) || LLMarketplaceData::instance().isVersionFolder(viewModel->getUUID()))) + { + // Cut or delete of the active version folder or listing folder itself will unlist the listing so ask that question specifically + LLNotificationsUtil::add("ConfirmMerchantUnlist", LLSD(), LLSD(), boost::bind(&LLInventoryAction::callback_doToSelected, _1, _2, model, root, action)); + return; + } + // Any other case will simply modify but not unlist a listing + LLNotificationsUtil::add("ConfirmMerchantActiveChange", LLSD(), LLSD(), boost::bind(&LLInventoryAction::callback_doToSelected, _1, _2, model, root, action)); + return; + } + // Cutting or deleting a whole listing needs confirmation as SLM will be archived and inaccessible to the user + else if (LLMarketplaceData::instance().isListed(viewModel->getUUID()) && (("cut" == action) || ("delete" == action))) + { + LLNotificationsUtil::add("ConfirmListingCutOrDelete", LLSD(), LLSD(), boost::bind(&LLInventoryAction::callback_doToSelected, _1, _2, model, root, action)); + return; + } + } + } + // Copying to the marketplace needs confirmation if nocopy items are involved + if (user_confirm && ("copy_to_marketplace_listings" == action)) + { + std::set<LLFolderViewItem*>::iterator set_iter = selected_items.begin(); + LLFolderViewModelItemInventory * viewModel = dynamic_cast<LLFolderViewModelItemInventory *>((*set_iter)->getViewModelItem()); + if (contains_nocopy_items(viewModel->getUUID())) + { + LLNotificationsUtil::add("ConfirmCopyToMarketplace", LLSD(), LLSD(), boost::bind(&LLInventoryAction::callback_copySelected, _1, _2, model, root, action)); + return; + } + } + + // Keep track of the marketplace folders that will need update of their status/name after the operation is performed + buildMarketplaceFolders(root); + if ("rename" == action) { root->startRenamingSelectedItem(); + // Update the marketplace listings that have been affected by the operation + updateMarketplaceFolders(); return; } + if ("delete" == action) { LLSD args; args["QUESTION"] = LLTrans::getString(root->getSelectedCount() > 1 ? "DeleteItems" : "DeleteItem"); LLNotificationsUtil::add("DeleteItems", args, LLSD(), boost::bind(&LLInventoryAction::onItemsRemovalConfirmation, _1, _2, root)); + // Note: marketplace listings will be updated in the callback if delete confirmed return; } if (("copy" == action) || ("cut" == action)) @@ -1118,12 +2492,12 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root LLViewerInventoryCategory *cat = model->getCategory(inventory_item->getUUID()); if (!cat) return; cat->changeType(new_folder_type); + // Update the marketplace listings that have been affected by the operation + updateMarketplaceFolders(); return; } - std::set<LLFolderViewItem*> selected_items = root->getSelectionList(); - LLMultiPreview* multi_previewp = NULL; LLMultiProperties* multi_propertiesp = NULL; @@ -1172,6 +2546,9 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root } } + // Update the marketplace listings that have been affected by the operation + updateMarketplaceFolders(); + LLFloater::setFloaterHost(NULL); if (multi_previewp) { @@ -1215,5 +2592,62 @@ void LLInventoryAction::onItemsRemovalConfirmation( const LLSD& notification, co //because once removed from root folder view the item is no longer a selected item removeItemFromDND(root); root->removeSelectedItems(); + + // Update the marketplace listings that have been affected by the operation + updateMarketplaceFolders(); } } + +void LLInventoryAction::buildMarketplaceFolders(LLFolderView* root) +{ + // Make a list of all marketplace folders containing the elements in the selected list + // as well as the elements themselves. + // Once those elements are updated (cut, delete in particular but potentially any action), their + // containing folder will need to be updated as well as their initially containing folder. For + // instance, moving a stock folder from a listed folder to another will require an update of the + // target listing *and* the original listing. So we need to keep track of both. + // Note: do not however put the marketplace listings root itself in this list or the whole marketplace data will be rebuilt. + sMarketplaceFolders.clear(); + const LLUUID &marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (marketplacelistings_id.isNull()) + { + return; + } + + std::set<LLFolderViewItem*> selected_items = root->getSelectionList(); + std::set<LLFolderViewItem*>::iterator set_iter = selected_items.begin(); + LLFolderViewModelItemInventory * viewModel = NULL; + for (; set_iter != selected_items.end(); ++set_iter) + { + viewModel = dynamic_cast<LLFolderViewModelItemInventory *>((*set_iter)->getViewModelItem()); + if (!viewModel || !viewModel->getInventoryObject()) continue; + if (gInventory.isObjectDescendentOf(viewModel->getInventoryObject()->getParentUUID(), marketplacelistings_id)) + { + const LLUUID &parent_id = viewModel->getInventoryObject()->getParentUUID(); + if (parent_id != marketplacelistings_id) + { + sMarketplaceFolders.push_back(parent_id); + } + const LLUUID &curr_id = viewModel->getInventoryObject()->getUUID(); + if (curr_id != marketplacelistings_id) + { + sMarketplaceFolders.push_back(curr_id); + } + } + } + // Suppress dupes in the list so we won't update listings twice + sMarketplaceFolders.sort(); + sMarketplaceFolders.unique(); +} + +void LLInventoryAction::updateMarketplaceFolders() +{ + while (!sMarketplaceFolders.empty()) + { + update_marketplace_category(sMarketplaceFolders.back()); + sMarketplaceFolders.pop_back(); + } +} + + + diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index 6b3861aa79..687aa57d7f 100755 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -32,6 +32,10 @@ #include "llinventory.h" #include "llwearabletype.h" +// compute_stock_count() return error code +const S32 COMPUTE_STOCK_INFINITE = -1; +const S32 COMPUTE_STOCK_NOT_EVALUATED = -2; + /******************************************************************************** ** ** ** MISCELLANEOUS GLOBAL FUNCTIONS @@ -58,18 +62,33 @@ void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id); void show_item_original(const LLUUID& item_uuid); void reset_inventory_filter(); +// Nudge the listing categories in the inventory to signal that their marketplace status changed +void update_marketplace_category(const LLUUID& cat_id, bool perform_consistency_enforcement = true); +// Nudge all listing categories to signal that their marketplace status changed +void update_all_marketplace_count(); + void rename_category(LLInventoryModel* model, const LLUUID& cat_id, const std::string& new_name); -void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory* cat, const LLUUID& parent_id, const LLUUID& root_copy_id = LLUUID::null); +void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory* cat, const LLUUID& parent_id, const LLUUID& root_copy_id = LLUUID::null, bool move_no_copy_items = false); // Generates a string containing the path to the item specified by item_id. void append_path(const LLUUID& id, std::string& path); void copy_item_to_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, const LLUUID& top_level_folder, S32 operation_id); void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32 operation_id); - void copy_folder_to_outbox(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, const LLUUID& top_level_folder, S32 operation_id); +typedef boost::function<void(std::string& validation_message, S32 depth, LLError::ELevel log_level)> validation_callback_t; + +bool can_move_item_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryItem* inv_item, std::string& tooltip_msg, S32 bundle_size = 1, bool from_paste = false); +bool can_move_folder_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryCategory* inv_cat, std::string& tooltip_msg, S32 bundle_size = 1, bool check_items = true, bool from_paste = false); +bool move_item_to_marketplacelistings(LLInventoryItem* inv_item, LLUUID dest_folder, bool copy = false); +bool move_folder_to_marketplacelistings(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, bool copy = false, bool move_no_copy_items = false); +bool validate_marketplacelistings(LLInventoryCategory* inv_cat, validation_callback_t cb = NULL, bool fix_hierarchy = true, S32 depth = -1); +S32 depth_nesting_in_marketplace(LLUUID cur_uuid); +LLUUID nested_parent_id(LLUUID cur_uuid, S32 depth); +S32 compute_stock_count(LLUUID cat_uuid, bool force_count = false); + /** Miscellaneous global functions ** ** *******************************************************************************/ @@ -437,10 +456,17 @@ public: struct LLInventoryAction { - static void doToSelected(class LLInventoryModel* model, class LLFolderView* root, const std::string& action); + static void doToSelected(class LLInventoryModel* model, class LLFolderView* root, const std::string& action, BOOL user_confirm = TRUE); + static void callback_doToSelected(const LLSD& notification, const LLSD& response, class LLInventoryModel* model, class LLFolderView* root, const std::string& action); + static void callback_copySelected(const LLSD& notification, const LLSD& response, class LLInventoryModel* model, class LLFolderView* root, const std::string& action); static void onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response, LLFolderView* root); static void removeItemFromDND(LLFolderView* root); + +private: + static void buildMarketplaceFolders(LLFolderView* root); + static void updateMarketplaceFolders(); + static std::list<LLUUID> sMarketplaceFolders; // Marketplace folders that will need update once the action is completed }; diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index f92332dea5..0bad4702e0 100755 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -41,6 +41,7 @@ #include "llinventoryobserver.h" #include "llinventorypanel.h" #include "llnotificationsutil.h" +#include "llmarketplacefunctions.h" #include "llwindow.h" #include "llviewercontrol.h" #include "llpreview.h" @@ -1023,7 +1024,7 @@ LLInventoryModel::item_array_t* LLInventoryModel::getUnlockedItemArray(const LLU // an existing item with the matching id, or it will add the category. void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat, U32 mask) { - if(cat->getUUID().isNull()) + if(!cat || cat->getUUID().isNull()) { return; } @@ -1037,7 +1038,8 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat, U32 LLPointer<LLViewerInventoryCategory> old_cat = getCategory(cat->getUUID()); if(old_cat) { - // We already have an old category, modify it's values + // We already have an old category, modify its values + U32 mask = LLInventoryObserver::NONE; LLUUID old_parent_id = old_cat->getParentUUID(); LLUUID new_parent_id = cat->getParentUUID(); if(old_parent_id != new_parent_id) @@ -1061,7 +1063,13 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat, U32 { mask |= LLInventoryObserver::LABEL; } - old_cat->copyViewerCategory(cat); + // Under marketplace, category labels are quite complex and need extra upate + const LLUUID marketplace_id = findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (marketplace_id.notNull() && isObjectDescendentOf(cat->getUUID(), marketplace_id)) + { + mask |= LLInventoryObserver::LABEL; + } + old_cat->copyViewerCategory(cat); addChangedMask(mask, cat->getUUID()); } else @@ -1411,6 +1419,11 @@ void LLInventoryModel::deleteObject(const LLUUID& id, bool fix_broken_links, boo LLPointer<LLViewerInventoryCategory> cat = (LLViewerInventoryCategory*)((LLInventoryObject*)obj); vector_replace_with_last(*cat_list, cat); } + + // Note : We need to tell the inventory observers that those things are going to be deleted *before* the tree is cleared or they won't know what to delete (in views and view models) + addChangedMask(LLInventoryObserver::REMOVE, id); + gInventory.notifyObservers(); + item_list = getUnlockedItemArray(id); if(item_list) { @@ -1558,10 +1571,11 @@ void LLInventoryModel::addChangedMask(U32 mask, const LLUUID& referent) } } - mModifyMask |= mask; - if (referent.notNull()) + mModifyMask |= mask; + if (referent.notNull() && (mChangedItemIDs.find(referent) == mChangedItemIDs.end())) { mChangedItemIDs.insert(referent); + update_marketplace_category(referent, false); if (mask & LLInventoryObserver::ADD) { @@ -1981,17 +1995,22 @@ bool LLInventoryModel::loadSkeleton( // we can safely ignore anything loaded from file, but // not sent down in the skeleton. Must have been removed from inventory. - if(cit == not_cached) + if (cit == not_cached) { continue; } - if(cat->getVersion() != tcat->getVersion()) + else if (cat->getVersion() != tcat->getVersion()) { // if the cached version does not match the server version, // throw away the version we have so we can fetch the // correct contents the next time the viewer opens the folder. tcat->setVersion(NO_VERSION); } + else if (tcat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + // Do not trust stock folders being updated + tcat->setVersion(NO_VERSION); + } else { cached_ids.insert(tcat->getUUID()); @@ -3046,7 +3065,18 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**) LL_DEBUGS("Inventory") << "unpacked folder '" << tfolder->getName() << "' (" << tfolder->getUUID() << ") in " << tfolder->getParentUUID() << LL_ENDL; - if(tfolder->getUUID().notNull()) + + // If the folder is a listing or a version folder, all we need to do is update the SLM data + int depth_folder = depth_nesting_in_marketplace(tfolder->getUUID()); + if ((depth_folder == 1) || (depth_folder == 2)) + { + // Trigger an SLM listing update + LLUUID listing_uuid = (depth_folder == 1 ? tfolder->getUUID() : tfolder->getParentUUID()); + S32 listing_id = LLMarketplaceData::instance().getListingID(listing_uuid); + LLMarketplaceData::instance().getListing(listing_id); + // In that case, there is no item to update so no callback -> we skip the rest of the update + } + else if(tfolder->getUUID().notNull()) { folders.push_back(tfolder); LLViewerInventoryCategory* folderp = gInventory.getCategory(tfolder->getUUID()); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 4a230accb6..5194cba891 100755 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -193,6 +193,7 @@ LLFolderView * LLInventoryPanel::createFolderRoot(LLUUID root_id ) p.show_empty_message = mShowEmptyMessage; p.show_item_link_overlays = mShowItemLinkOverlays; p.root = NULL; + p.allow_drop = mParams.allow_drop_on_root; p.options_menu = "menu_inventory.xml"; return LLUICtrlFactory::create<LLFolderView>(p); @@ -292,7 +293,12 @@ void LLInventoryPanel::initFromParams(const LLInventoryPanel::Params& params) getFilter().setFilterCategoryTypes(getFilter().getFilterCategoryTypes() & ~(1ULL << LLFolderType::FT_INBOX)); getFilter().setFilterCategoryTypes(getFilter().getFilterCategoryTypes() & ~(1ULL << LLFolderType::FT_OUTBOX)); } - + // hide marketplace listing box, unless we are a marketplace panel + if (!gSavedSettings.getBOOL("InventoryOutboxMakeVisible") && !mParams.use_marketplace_folders) + { + getFilter().setFilterCategoryTypes(getFilter().getFilterCategoryTypes() & ~(1ULL << LLFolderType::FT_MARKETPLACE_LISTINGS)); + } + // set the filter for the empty folder if the debug setting is on if (gSavedSettings.getBOOL("DebugHideEmptySystemFolders")) { @@ -601,13 +607,13 @@ void LLInventoryPanel::modelChanged(U32 mask) LLUUID LLInventoryPanel::getRootFolderID() { + LLUUID root_id; if (mFolderRoot.get() && mFolderRoot.get()->getViewModelItem()) { - return static_cast<LLFolderViewModelItemInventory*>(mFolderRoot.get()->getViewModelItem())->getUUID(); + root_id = static_cast<LLFolderViewModelItemInventory*>(mFolderRoot.get()->getViewModelItem())->getUUID(); } else { - LLUUID root_id; if (mParams.start_folder.id.isChosen()) { root_id = mParams.start_folder.id; @@ -635,8 +641,8 @@ LLUUID LLInventoryPanel::getRootFolderID() } } } - return root_id; } + return root_id; } // static @@ -758,7 +764,7 @@ void LLInventoryPanel::initializeViews() } -LLFolderViewFolder * LLInventoryPanel::createFolderViewFolder(LLInvFVBridge * bridge) +LLFolderViewFolder * LLInventoryPanel::createFolderViewFolder(LLInvFVBridge * bridge, bool allow_drop) { LLFolderViewFolder::Params params(mParams.folder); @@ -766,6 +772,7 @@ LLFolderViewFolder * LLInventoryPanel::createFolderViewFolder(LLInvFVBridge * br params.root = mFolderRoot.get(); params.listener = bridge; params.tool_tip = params.name; + params.allow_drop = allow_drop; params.font_color = (bridge->isLibraryItem() ? sLibraryColor : (bridge->isLink() ? sLinkColor : sDefaultColor)); params.font_highlight_color = (bridge->isLibraryItem() ? sLibraryColor : (bridge->isLink() ? sLinkColor : sDefaultHighlightColor)); @@ -794,37 +801,56 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id) { LLInventoryObject const* objectp = gInventory.getObject(id); - if (!objectp) return NULL; + if (!objectp) + { + return NULL; + } LLFolderViewItem* folder_view_item = getItemByID(id); - const LLUUID &parent_id = objectp->getParentUUID(); + const LLUUID &parent_id = objectp->getParentUUID(); LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)getItemByID(parent_id); + // Force the creation of an extra root level folder item if required by the inventory panel (default is "false") + bool allow_drop = true; + bool create_root = false; + if (mParams.show_root_folder) + { + LLUUID root_id = getRootFolderID(); + if (root_id == id) + { + // We insert an extra level that's seen by the UI but has no influence on the model + parent_folder = dynamic_cast<LLFolderViewFolder*>(folder_view_item); + folder_view_item = NULL; + allow_drop = mParams.allow_drop_on_root; + create_root = true; + } + } + if (!folder_view_item && parent_folder) { if (objectp->getType() <= LLAssetType::AT_NONE || objectp->getType() >= LLAssetType::AT_COUNT) { LL_WARNS() << "LLInventoryPanel::buildNewViews called with invalid objectp->mType : " - << ((S32) objectp->getType()) << " name " << objectp->getName() << " UUID " << objectp->getUUID() - << LL_ENDL; + << ((S32) objectp->getType()) << " name " << objectp->getName() << " UUID " << objectp->getUUID() + << LL_ENDL; return NULL; } if ((objectp->getType() == LLAssetType::AT_CATEGORY) && (objectp->getActualType() != LLAssetType::AT_LINK_FOLDER)) { - LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(objectp->getType(), - objectp->getType(), + LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(LLAssetType::AT_CATEGORY, + (mParams.use_marketplace_folders ? LLAssetType::AT_MARKETPLACE_FOLDER : LLAssetType::AT_CATEGORY), LLInventoryType::IT_CATEGORY, this, - &mInventoryViewModel, + &mInventoryViewModel, mFolderRoot.get(), objectp->getUUID()); if (new_listener) { - folder_view_item = createFolderViewFolder(new_listener); + folder_view_item = createFolderViewFolder(new_listener,allow_drop); } } else @@ -847,11 +873,16 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id) } if (folder_view_item) - { + { llassert(parent_folder != NULL); folder_view_item->addToFolder(parent_folder); addItemID(id, folder_view_item); - } + // In the case of the root folder been shown, open that folder by default once the widget is created + if (create_root) + { + folder_view_item->setOpen(TRUE); + } + } } // If this is a folder, add the children of the folder and recursively add any @@ -960,7 +991,7 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, // If folder view is empty the (x, y) point won't be in its rect // so the handler must be called explicitly. // but only if was not handled before. See EXT-6746. - if (!handled && !mFolderRoot.get()->hasVisibleChildren()) + if (!handled && mParams.allow_drop_on_root && !mFolderRoot.get()->hasVisibleChildren()) { handled = mFolderRoot.get()->handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); } @@ -1482,6 +1513,8 @@ public: LLInventoryPanel::initFromParams(p); // turn on inbox for recent items getFilter().setFilterCategoryTypes(getFilter().getFilterCategoryTypes() | (1ULL << LLFolderType::FT_INBOX)); + // turn off marketplace for recent items + getFilter().setFilterNoMarketplaceFolder(); } protected: @@ -1525,5 +1558,8 @@ namespace LLInitParam declare(LLFolderType::lookup(LLFolderType::FT_INBOX) , LLFolderType::FT_INBOX); declare(LLFolderType::lookup(LLFolderType::FT_OUTBOX) , LLFolderType::FT_OUTBOX); declare(LLFolderType::lookup(LLFolderType::FT_BASIC_ROOT) , LLFolderType::FT_BASIC_ROOT); + declare(LLFolderType::lookup(LLFolderType::FT_MARKETPLACE_LISTINGS) , LLFolderType::FT_MARKETPLACE_LISTINGS); + declare(LLFolderType::lookup(LLFolderType::FT_MARKETPLACE_STOCK), LLFolderType::FT_MARKETPLACE_STOCK); + declare(LLFolderType::lookup(LLFolderType::FT_MARKETPLACE_VERSION), LLFolderType::FT_MARKETPLACE_VERSION); } } diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index bc4c10e441..b69edd8b93 100755 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -97,6 +97,9 @@ public: Optional<StartFolder> start_folder; Optional<bool> use_label_suffix; Optional<bool> show_empty_message; + Optional<bool> show_root_folder; + Optional<bool> allow_drop_on_root; + Optional<bool> use_marketplace_folders; Optional<LLScrollContainer::Params> scroll; Optional<bool> accepts_drag_and_drop; Optional<LLFolderView::Params> folder_view; @@ -111,7 +114,10 @@ public: filter("filter"), start_folder("start_folder"), use_label_suffix("use_label_suffix", true), - show_empty_message("show_empty_message", true), + show_empty_message("show_empty_message", true), + show_root_folder("show_root_folder", false), + allow_drop_on_root("allow_drop_on_root", true), + use_marketplace_folders("use_marketplace_folders", false), scroll("scroll"), accepts_drag_and_drop("accepts_drag_and_drop"), folder_view("folder_view"), @@ -185,6 +191,7 @@ public: LLFolderView* getRootFolder() { return mFolderRoot.get(); } LLUUID getRootFolderID(); LLScrollContainer* getScrollableContainer() { return mScroller; } + bool getAllowDropOnRoot() { return mParams.allow_drop_on_root; } void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action); @@ -293,7 +300,7 @@ protected: BOOL getIsHiddenFolderType(LLFolderType::EType folder_type) const; virtual LLFolderView * createFolderRoot(LLUUID root_id ); - virtual LLFolderViewFolder* createFolderViewFolder(LLInvFVBridge * bridge); + virtual LLFolderViewFolder* createFolderViewFolder(LLInvFVBridge * bridge, bool allow_drop); virtual LLFolderViewItem* createFolderViewItem(LLInvFVBridge * bridge); private: bool mBuildDefaultHierarchy; // default inventory hierarchy should be created in postBuild() diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index 4a7a4e268d..d5bfe1df4a 100755 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -29,14 +29,22 @@ #include "llmarketplacefunctions.h" #include "llagent.h" +#include "llbufferstream.h" #include "llhttpclient.h" +#include "llinventoryfunctions.h" +#include "llinventoryobserver.h" +#include "llnotificationsutil.h" #include "llsdserialize.h" #include "lltimer.h" #include "lltrans.h" #include "llviewercontrol.h" +#include "llviewerinventory.h" #include "llviewermedia.h" #include "llviewernetwork.h" +#include "llviewerregion.h" +#include "reader.h" // JSON +#include "writer.h" // JSON // // Helpers @@ -93,6 +101,550 @@ LLSD getMarketplaceStringSubstitutions() return marketplace_sub_map; } +// Get the version folder: if there is only one subfolder, we will use it as a version folder +LLUUID getVersionFolderIfUnique(const LLUUID& folder_id) +{ + LLUUID version_id = LLUUID::null; + LLInventoryModel::cat_array_t* categories; + LLInventoryModel::item_array_t* items; + gInventory.getDirectDescendentsOf(folder_id, categories, items); + if (categories->size() == 1) + { + version_id = categories->begin()->get()->getUUID(); + } + else + { + LLNotificationsUtil::add("AlertMerchantListingActivateRequired"); + } + return version_id; +} + +/////////////////////////////////////////////////////////////////////////////// +// SLM Responders +void log_SLM_warning(const std::string& request, U32 status, const std::string& reason, const std::string& code, const std::string& description) +{ + LL_WARNS("SLM") << "SLM API : Responder to " << request << ". status : " << status << ", reason : " << reason << ", code : " << code << ", description : " << description << LL_ENDL; + if ((status == 422) && (description == "[\"You must have an English description to list the product\", \"You must choose a category for your product before it can be listed\", \"Listing could not change state.\", \"Price can't be blank\"]")) + { + // Unprocessable Entity : Special case that error as it is a frequent answer when trying to list an incomplete listing + LLNotificationsUtil::add("MerchantUnprocessableEntity"); + } + else + { + // Prompt the user with the warning (so they know why things are failing) + LLSD subs; + subs["[ERROR_REASON]"] = reason; + // We do show long descriptions in the alert (unlikely to be readable). The description string will be in the log though. + subs["[ERROR_DESCRIPTION]"] = (description.length() <= 512 ? description : ""); + LLNotificationsUtil::add("MerchantTransactionFailed", subs); + } +} +void log_SLM_infos(const std::string& request, U32 status, const std::string& body) +{ + if (gSavedSettings.getBOOL("MarketplaceListingsLogging")) + { + LL_INFOS("SLM") << "SLM API : Responder to " << request << ". status : " << status << ", body or description : " << body << LL_ENDL; + } +} +void log_SLM_infos(const std::string& request, const std::string& url, const std::string& body) +{ + if (gSavedSettings.getBOOL("MarketplaceListingsLogging")) + { + LL_INFOS("SLM") << "SLM API : Sending " << request << ". url : " << url << ", body : " << body << LL_ENDL; + } +} + +class LLSLMGetMerchantResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMGetMerchantResponder); +public: + + LLSLMGetMerchantResponder() {} + +protected: + virtual void httpFailure() + { + if (HTTP_NOT_FOUND == getStatus()) + { + log_SLM_infos("Get /merchant", getStatus(), "User is not a merchant"); + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT); + } + else if (HTTP_SERVICE_UNAVAILABLE == getStatus()) + { + log_SLM_infos("Get /merchant", getStatus(), "Merchant is not migrated"); + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT); + } + else + { + log_SLM_warning("Get /merchant", getStatus(), getReason(), getContent().get("error_code"), getContent().get("error_description")); + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE); + } + } + + virtual void httpSuccess() + { + log_SLM_infos("Get /merchant", getStatus(), "User is a merchant"); + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_MERCHANT); + } + +}; + +class LLSLMGetListingsResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMGetListingsResponder); +public: + + LLSLMGetListingsResponder(const LLUUID& folder_id) + { + mExpectedFolderId = folder_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + log_SLM_warning("Get /listings", getStatus(), getReason(), "", body); + LLMarketplaceData::instance().setSLMDataFetched(MarketplaceFetchCodes::MARKET_FETCH_FAILED); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Get /listings", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + LLMarketplaceData::instance().setSLMDataFetched(MarketplaceFetchCodes::MARKET_FETCH_FAILED); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Get /listings", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + bool is_listed = listing["is_listed"].asBool(); + std::string edit_url = listing["edit_url"].asString(); + std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); + std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); + int count = listing["inventory_info"]["count_on_hand"].asInt(); + + LLUUID folder_id(folder_uuid_string); + LLUUID version_id(version_uuid_string); + if (folder_id.notNull()) + { + LLMarketplaceData::instance().addListing(folder_id,listing_id,version_id,is_listed,edit_url,count); + } + it++; + } + + // Update all folders under the root + LLMarketplaceData::instance().setSLMDataFetched(MarketplaceFetchCodes::MARKET_FETCH_DONE); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + } +private: + LLUUID mExpectedFolderId; +}; + +class LLSLMCreateListingsResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMCreateListingsResponder); +public: + + LLSLMCreateListingsResponder(const LLUUID& folder_id) + { + mExpectedFolderId = folder_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + log_SLM_warning("Post /listings", getStatus(), getReason(), "", body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Post /listings", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Post /listings", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + bool is_listed = listing["is_listed"].asBool(); + std::string edit_url = listing["edit_url"].asString(); + std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); + std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); + int count = listing["inventory_info"]["count_on_hand"].asInt(); + + LLUUID folder_id(folder_uuid_string); + LLUUID version_id(version_uuid_string); + LLMarketplaceData::instance().addListing(folder_id,listing_id,version_id,is_listed,edit_url,count); + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + it++; + } + } +private: + LLUUID mExpectedFolderId; +}; + +class LLSLMGetListingResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMGetListingResponder); +public: + + LLSLMGetListingResponder(const LLUUID& folder_id) + { + mExpectedFolderId = folder_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + if (getStatus() == 404) + { + // That listing does not exist -> delete its record from the local SLM data store + LLMarketplaceData::instance().deleteListing(mExpectedFolderId, false); + } + else + { + log_SLM_warning("Get /listing", getStatus(), getReason(), "", body); + } + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Get /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Get /listing", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + bool is_listed = listing["is_listed"].asBool(); + std::string edit_url = listing["edit_url"].asString(); + std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); + std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); + int count = listing["inventory_info"]["count_on_hand"].asInt(); + + LLUUID folder_id(folder_uuid_string); + LLUUID version_id(version_uuid_string); + + // Update that listing + LLMarketplaceData::instance().setListingID(folder_id, listing_id, false); + LLMarketplaceData::instance().setVersionFolderID(folder_id, version_id, false); + LLMarketplaceData::instance().setActivationState(folder_id, is_listed, false); + LLMarketplaceData::instance().setListingURL(folder_id, edit_url, false); + LLMarketplaceData::instance().setCountOnHand(folder_id,count,false); + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + + it++; + } + } +private: + LLUUID mExpectedFolderId; +}; + +class LLSLMUpdateListingsResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMUpdateListingsResponder); +public: + + LLSLMUpdateListingsResponder(const LLUUID& folder_id, bool expected_listed_state, const LLUUID& expected_version_id) + { + mExpectedFolderId = folder_id; + mExpectedListedState = expected_listed_state; + mExpectedVersionUUID = expected_version_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + log_SLM_warning("Put /listing", getStatus(), getReason(), "", body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Put /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Put /listing", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + bool is_listed = listing["is_listed"].asBool(); + std::string edit_url = listing["edit_url"].asString(); + std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); + std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); + int count = listing["inventory_info"]["count_on_hand"].asInt(); + + LLUUID folder_id(folder_uuid_string); + LLUUID version_id(version_uuid_string); + + // Update that listing + LLMarketplaceData::instance().setListingID(folder_id, listing_id, false); + LLMarketplaceData::instance().setVersionFolderID(folder_id, version_id, false); + LLMarketplaceData::instance().setActivationState(folder_id, is_listed, false); + LLMarketplaceData::instance().setListingURL(folder_id, edit_url, false); + LLMarketplaceData::instance().setCountOnHand(folder_id,count,false); + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + + // Show a notification alert if what we got is not what we expected + // (this actually doesn't result in an error status from the SLM API protocol) + if ((mExpectedListedState != is_listed) || (mExpectedVersionUUID != version_id)) + { + LLSD subs; + subs["[URL]"] = edit_url; + LLNotificationsUtil::add("AlertMerchantListingNotUpdated", subs); + } + + it++; + } + } +private: + LLUUID mExpectedFolderId; + bool mExpectedListedState; + LLUUID mExpectedVersionUUID; +}; + +class LLSLMAssociateListingsResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMAssociateListingsResponder); +public: + + LLSLMAssociateListingsResponder(const LLUUID& folder_id, const LLUUID& source_folder_id) + { + mExpectedFolderId = folder_id; + mSourceFolderId = source_folder_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + LLMarketplaceData::instance().setUpdating(mSourceFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + log_SLM_warning("Put /associate_inventory", getStatus(), getReason(), "", body); + update_marketplace_category(mExpectedFolderId, false); + update_marketplace_category(mSourceFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Put /associate_inventory", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + update_marketplace_category(mExpectedFolderId, false); + update_marketplace_category(mSourceFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Put /associate_inventory", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + bool is_listed = listing["is_listed"].asBool(); + std::string edit_url = listing["edit_url"].asString(); + std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); + std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); + int count = listing["inventory_info"]["count_on_hand"].asInt(); + + LLUUID folder_id(folder_uuid_string); + LLUUID version_id(version_uuid_string); + + // Check that the listing ID is not already associated to some other record + LLUUID old_listing = LLMarketplaceData::instance().getListingFolder(listing_id); + if (old_listing.notNull()) + { + // If it is already used, unlist the old record (we can't have 2 listings with the same listing ID) + LLMarketplaceData::instance().deleteListing(old_listing); + } + + // Add the new association + LLMarketplaceData::instance().addListing(folder_id,listing_id,version_id,is_listed,edit_url,count); + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + + // The stock count needs to be updated with the new local count now + LLMarketplaceData::instance().updateCountOnHand(folder_id,1); + + it++; + } + + // Always update the source folder so its widget updates + update_marketplace_category(mSourceFolderId, false); + } +private: + LLUUID mExpectedFolderId; // This is the folder now associated with the id. + LLUUID mSourceFolderId; // This is the folder initially associated with the id. Can be LLUUI::null +}; + +class LLSLMDeleteListingsResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLSLMDeleteListingsResponder); +public: + + LLSLMDeleteListingsResponder(const LLUUID& folder_id) + { + mExpectedFolderId = folder_id; + } + + virtual void completedRaw(const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + LLMarketplaceData::instance().setUpdating(mExpectedFolderId,false); + + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + const std::string body = strstrm.str(); + + if (!isGoodStatus()) + { + log_SLM_warning("Delete /listing", getStatus(), getReason(), "", body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + Json::Value root; + Json::Reader reader; + if (!reader.parse(body,root)) + { + log_SLM_warning("Delete /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + update_marketplace_category(mExpectedFolderId, false); + gInventory.notifyObservers(); + return; + } + + log_SLM_infos("Delete /listing", getStatus(), body); + + // Extract the info from the Json string + Json::ValueIterator it = root["listings"].begin(); + + while (it != root["listings"].end()) + { + Json::Value listing = *it; + + int listing_id = listing["id"].asInt(); + LLUUID folder_id = LLMarketplaceData::instance().getListingFolder(listing_id); + LLMarketplaceData::instance().deleteListing(folder_id); + + it++; + } + } +private: + LLUUID mExpectedFolderId; +}; + +// SLM Responders End +/////////////////////////////////////////////////////////////////////////////// + namespace LLMarketplaceImport { // Basic interface for this namespace @@ -156,7 +708,7 @@ namespace LLMarketplaceImport { if (gSavedSettings.getBOOL("InventoryOutboxLogging")) { - LL_INFOS() << " SLM POST clearing marketplace cookie due to client or server error" << LL_ENDL; + LL_INFOS() << " SLM POST : Clearing marketplace cookie due to client or server error" << LL_ENDL; } sMarketplaceCookie.clear(); } @@ -236,7 +788,7 @@ namespace LLMarketplaceImport S32 getResultStatus() { - return sImportResultStatus; + return sImportResultStatus; } const LLSD& getResults() @@ -427,15 +979,15 @@ void LLMarketplaceInventoryImporter::initialize() return; } - if (!LLMarketplaceImport::hasSessionCookie()) - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; - LLMarketplaceImport::establishMarketplaceSessionCookie(); - } - else - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; - } + if (!LLMarketplaceImport::hasSessionCookie()) + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; + LLMarketplaceImport::establishMarketplaceSessionCookie(); + } + else + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; + } } void LLMarketplaceInventoryImporter::reinitializeAndTriggerImport() @@ -479,54 +1031,957 @@ void LLMarketplaceInventoryImporter::updateImport() // If we are no longer in progress if (!mImportInProgress) { - if (mInitialized) - { - // Report results - if (mStatusReportSignal) - { - (*mStatusReportSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults()); - } - } - else - { - // Look for results success - mInitialized = LLMarketplaceImport::hasSessionCookie(); - - if (mInitialized) - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; - // Follow up with auto trigger of import - if (mAutoTriggerImport) - { - mAutoTriggerImport = false; - mImportInProgress = triggerImport(); - } - } - else - { - U32 status = LLMarketplaceImport::getResultStatus(); - if ((status == MarketplaceErrorCodes::IMPORT_FORBIDDEN) || - (status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR)) - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT; - } - else - { - mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE; - } - if (mErrorInitSignal && (mMarketPlaceStatus == MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE)) - { - (*mErrorInitSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults()); - } - } - } - } + // Look for results success + mInitialized = LLMarketplaceImport::hasSessionCookie(); - // Make sure we trigger the status change with the final state (in case of auto trigger after initialize) - if (mStatusChangedSignal) - { - (*mStatusChangedSignal)(mImportInProgress); + // Report results + if (mStatusReportSignal) + { + (*mStatusReportSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults()); + } + + if (mInitialized) + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT; + // Follow up with auto trigger of import + if (mAutoTriggerImport) + { + mAutoTriggerImport = false; + mImportInProgress = triggerImport(); + } + } + else + { + U32 status = LLMarketplaceImport::getResultStatus(); + if ((status == MarketplaceErrorCodes::IMPORT_FORBIDDEN) || + (status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR)) + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT; + } + else if (status == MarketplaceErrorCodes::IMPORT_SERVER_API_DISABLED) + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MIGRATED_MERCHANT; + } + else + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE; + } + if (mErrorInitSignal && (mMarketPlaceStatus == MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE)) + { + (*mErrorInitSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults()); + } + } } } + + // Make sure we trigger the status change with the final state (in case of auto trigger after initialize) + if (mStatusChangedSignal) + { + (*mStatusChangedSignal)(mImportInProgress); + } +} + +// +// Direct Delivery : Marketplace tuples and data +// +class LLMarketplaceInventoryObserver : public LLInventoryObserver +{ +public: + LLMarketplaceInventoryObserver() {} + virtual ~LLMarketplaceInventoryObserver() {} + virtual void changed(U32 mask); +}; + +void LLMarketplaceInventoryObserver::changed(U32 mask) +{ + // When things are added to the marketplace, we might need to re-validate and fix the containing listings + if (mask & LLInventoryObserver::ADD) + { + const std::set<LLUUID>& changed_items = gInventory.getChangedIDs(); + + std::set<LLUUID>::const_iterator id_it = changed_items.begin(); + std::set<LLUUID>::const_iterator id_end = changed_items.end(); + // First, count the number of items in this list... + S32 count = 0; + for (;id_it != id_end; ++id_it) + { + LLInventoryObject* obj = gInventory.getObject(*id_it); + if (obj && (LLAssetType::AT_CATEGORY != obj->getType())) + { + count++; + } + } + // Then, decrement the folders of that amount + // Note that of all of those, only one folder will be a listing folder (if at all). + // The other will be ignored by the decrement method. + id_it = changed_items.begin(); + for (;id_it != id_end; ++id_it) + { + LLInventoryObject* obj = gInventory.getObject(*id_it); + if (obj && (LLAssetType::AT_CATEGORY == obj->getType())) + { + LLMarketplaceData::instance().decrementValidationWaiting(obj->getUUID(),count); + } + } + } + + // When things are changed in the inventory, this can trigger a host of changes in the marketplace listings folder: + // * stock counts changing : no copy items coming in and out will change the stock count on folders + // * version and listing folders : moving those might invalidate the marketplace data itself + // Since we should cannot raise inventory change while the observer is called (the list will be cleared + // once observers are called) we need to raise a flag in the inventory to signal that things have been dirtied. + + if (mask & (LLInventoryObserver::INTERNAL | LLInventoryObserver::STRUCTURE)) + { + const std::set<LLUUID>& changed_items = gInventory.getChangedIDs(); + + std::set<LLUUID>::const_iterator id_it = changed_items.begin(); + std::set<LLUUID>::const_iterator id_end = changed_items.end(); + for (;id_it != id_end; ++id_it) + { + LLInventoryObject* obj = gInventory.getObject(*id_it); + if (obj) + { + if (LLAssetType::AT_CATEGORY == obj->getType()) + { + // If it's a folder known to the marketplace, let's check it's in proper shape + if (LLMarketplaceData::instance().isListed(*id_it) || LLMarketplaceData::instance().isVersionFolder(*id_it)) + { + LLInventoryCategory* cat = (LLInventoryCategory*)(obj); + validate_marketplacelistings(cat); + } + } + else + { + // If it's not a category, it's an item... + LLInventoryItem* item = (LLInventoryItem*)(obj); + // If it's a no copy item, we may need to update the label count of marketplace listings + if (!item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + LLMarketplaceData::instance().setDirtyCount(); + } + } + } + } + } +} + +// Tuple == Item +LLMarketplaceTuple::LLMarketplaceTuple() : + mListingFolderId(), + mListingId(0), + mVersionFolderId(), + mIsActive(false), + mEditURL("") +{ +} + +LLMarketplaceTuple::LLMarketplaceTuple(const LLUUID& folder_id) : + mListingFolderId(folder_id), + mListingId(0), + mVersionFolderId(), + mIsActive(false), + mEditURL("") +{ +} + +LLMarketplaceTuple::LLMarketplaceTuple(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed) : + mListingFolderId(folder_id), + mListingId(listing_id), + mVersionFolderId(version_id), + mIsActive(is_listed), + mEditURL("") +{ +} + + +// Data map +LLMarketplaceData::LLMarketplaceData() : + mMarketPlaceStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED), + mMarketPlaceDataFetched(MarketplaceFetchCodes::MARKET_FETCH_NOT_DONE), + mStatusUpdatedSignal(NULL), + mDataFetchedSignal(NULL), + mDirtyCount(false) +{ + mInventoryObserver = new LLMarketplaceInventoryObserver; + gInventory.addObserver(mInventoryObserver); +} + +LLMarketplaceData::~LLMarketplaceData() +{ + gInventory.removeObserver(mInventoryObserver); +} + +void LLMarketplaceData::initializeSLM(const status_updated_signal_t::slot_type& cb) +{ + if (mStatusUpdatedSignal == NULL) + { + mStatusUpdatedSignal = new status_updated_signal_t(); + } + mStatusUpdatedSignal->connect(cb); + + if (mMarketPlaceStatus != MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) + { + // If already initialized, just confirm the status so the callback gets called + setSLMStatus(mMarketPlaceStatus); + } + else + { + // Initiate SLM connection and set responder + std::string url = getSLMConnectURL("/merchant"); + if (url != "") + { + mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING; + log_SLM_infos("LLHTTPClient::get", url, ""); + LLHTTPClient::get(url, new LLSLMGetMerchantResponder(), LLSD()); + } + } +} + +void LLMarketplaceData::setDataFetchedSignal(const status_updated_signal_t::slot_type& cb) +{ + if (mDataFetchedSignal == NULL) + { + mDataFetchedSignal = new status_updated_signal_t(); + } + mDataFetchedSignal->connect(cb); +} + +// Get/Post/Put requests to the SLM Server using the SLM API +void LLMarketplaceData::getSLMListings() +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + // Send request + std::string url = getSLMConnectURL("/listings"); + log_SLM_infos("LLHTTPClient::get", url, ""); + const LLUUID marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + setUpdating(marketplacelistings_id,true); + LLHTTPClient::get(url, new LLSLMGetListingsResponder(marketplacelistings_id), headers); +} + +void LLMarketplaceData::getSLMListing(S32 listing_id) +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + // Send request + std::string url = getSLMConnectURL("/listing/") + llformat("%d",listing_id); + log_SLM_infos("LLHTTPClient::get", url, ""); + LLUUID folder_id = LLMarketplaceData::instance().getListingFolder(listing_id); + setUpdating(folder_id,true); + LLHTTPClient::get(url, new LLSLMGetListingResponder(folder_id), headers); +} + +void LLMarketplaceData::createSLMListing(const LLUUID& folder_id, const LLUUID& version_id, S32 count) +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + // Build the json message + Json::Value root; + Json::FastWriter writer; + + LLViewerInventoryCategory* category = gInventory.getCategory(folder_id); + root["listing"]["name"] = category->getName(); + root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); + root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); + root["listing"]["inventory_info"]["count_on_hand"] = count; + + std::string json_str = writer.write(root); + + // postRaw() takes ownership of the buffer and releases it later. + size_t size = json_str.size(); + U8 *data = new U8[size]; + memcpy(data, (U8*)(json_str.c_str()), size); + + // Send request + std::string url = getSLMConnectURL("/listings"); + log_SLM_infos("LLHTTPClient::postRaw", url, json_str); + setUpdating(folder_id,true); + LLHTTPClient::postRaw(url, data, size, new LLSLMCreateListingsResponder(folder_id), headers); +} + +void LLMarketplaceData::updateSLMListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed, S32 count) +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + Json::Value root; + Json::FastWriter writer; + + // Note : auto unlist if the count is 0 (out of stock) + if (is_listed && (count == 0)) + { + is_listed = false; + LLNotificationsUtil::add("AlertMerchantStockFolderEmpty"); + } + + // Note : we're assuming that sending unchanged info won't break anything server side... + root["listing"]["id"] = listing_id; + root["listing"]["is_listed"] = is_listed; + root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); + root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); + root["listing"]["inventory_info"]["count_on_hand"] = count; + + std::string json_str = writer.write(root); + + // postRaw() takes ownership of the buffer and releases it later. + size_t size = json_str.size(); + U8 *data = new U8[size]; + memcpy(data, (U8*)(json_str.c_str()), size); + + // Send request + std::string url = getSLMConnectURL("/listing/") + llformat("%d",listing_id); + log_SLM_infos("LLHTTPClient::putRaw", url, json_str); + setUpdating(folder_id,true); + LLHTTPClient::putRaw(url, data, size, new LLSLMUpdateListingsResponder(folder_id, is_listed, version_id), headers); +} + +void LLMarketplaceData::associateSLMListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, const LLUUID& source_folder_id) +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + Json::Value root; + Json::FastWriter writer; + + // Note : we're assuming that sending unchanged info won't break anything server side... + root["listing"]["id"] = listing_id; + root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); + root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); + + std::string json_str = writer.write(root); + + // postRaw() takes ownership of the buffer and releases it later. + size_t size = json_str.size(); + U8 *data = new U8[size]; + memcpy(data, (U8*)(json_str.c_str()), size); + + // Send request + std::string url = getSLMConnectURL("/associate_inventory/") + llformat("%d",listing_id); + log_SLM_infos("LLHTTPClient::putRaw", url, json_str); + setUpdating(folder_id,true); + setUpdating(source_folder_id,true); + LLHTTPClient::putRaw(url, data, size, new LLSLMAssociateListingsResponder(folder_id,source_folder_id), headers); +} + +void LLMarketplaceData::deleteSLMListing(S32 listing_id) +{ + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "application/json"; + headers["Content-Type"] = "application/json"; + + // Send request + std::string url = getSLMConnectURL("/listing/") + llformat("%d",listing_id); + log_SLM_infos("LLHTTPClient::del", url, ""); + LLUUID folder_id = LLMarketplaceData::instance().getListingFolder(listing_id); + setUpdating(folder_id,true); + LLHTTPClient::del(url, new LLSLMDeleteListingsResponder(folder_id), headers); +} + +std::string LLMarketplaceData::getSLMConnectURL(const std::string& route) +{ + std::string url(""); + LLViewerRegion *regionp = gAgent.getRegion(); + if (regionp) + { + // Get DirectDelivery cap + url = regionp->getCapability("DirectDelivery"); + if (url != "") + { + url += route; + } + } + return url; +} + +void LLMarketplaceData::setSLMStatus(U32 status) +{ + mMarketPlaceStatus = status; + if (mStatusUpdatedSignal) + { + (*mStatusUpdatedSignal)(); + } +} + +void LLMarketplaceData::setSLMDataFetched(U32 status) +{ + mMarketPlaceDataFetched = status; + if (mDataFetchedSignal) + { + (*mDataFetchedSignal)(); + } +} + +// Creation / Deletion / Update +// Methods publicly called +bool LLMarketplaceData::createListing(const LLUUID& folder_id) +{ + if (isListed(folder_id)) + { + // Listing already exists -> exit with error + return false; + } + + // Get the version folder: if there is only one subfolder, we will set it as a version folder immediately + S32 count = -1; + LLUUID version_id = getVersionFolderIfUnique(folder_id); + if (version_id.notNull()) + { + count = compute_stock_count(version_id, true); + } + + // Validate the count on hand + if (count == COMPUTE_STOCK_NOT_EVALUATED) + { + // If the count on hand cannot be evaluated, we will consider it empty (out of stock) at creation time + // It will get reevaluated and updated once the items are fetched + count = 0; + } + + // Post the listing creation request to SLM + createSLMListing(folder_id, version_id, count); + + return true; +} + +bool LLMarketplaceData::clearListing(const LLUUID& folder_id, S32 depth) +{ + if (folder_id.isNull()) + { + // Folder doesn't exists -> exit with error + return false; + } + + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + // Folder id can be the root of the listing or not so we need to retrieve the root first + LLUUID listing_uuid = (isListed(folder_id) ? folder_id : nested_parent_id(folder_id, depth)); + S32 listing_id = getListingID(listing_uuid); + + if (listing_id == 0) + { + // Listing doesn't exists -> exit with error + return false; + } + + // Update the SLM Server so that this listing is deleted (actually, archived...) + deleteSLMListing(listing_id); + + return true; +} + +bool LLMarketplaceData::getListing(const LLUUID& folder_id, S32 depth) +{ + if (folder_id.isNull()) + { + // Folder doesn't exists -> exit with error + return false; + } + + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + // Folder id can be the root of the listing or not so we need to retrieve the root first + LLUUID listing_uuid = (isListed(folder_id) ? folder_id : nested_parent_id(folder_id, depth)); + S32 listing_id = getListingID(listing_uuid); + + if (listing_id == 0) + { + // Listing doesn't exists -> exit with error + return false; + } + + // Get listing data from SLM + getSLMListing(listing_id); + + return true; +} + +bool LLMarketplaceData::getListing(S32 listing_id) +{ + if (listing_id == 0) + { + return false; + } + + // Get listing data from SLM + getSLMListing(listing_id); + return true; +} + +bool LLMarketplaceData::activateListing(const LLUUID& folder_id, bool activate, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + // Folder id can be the root of the listing or not so we need to retrieve the root first + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + S32 listing_id = getListingID(listing_uuid); + if (listing_id == 0) + { + // Listing doesn't exists -> exit with error + return false; + } + + if (getActivationState(listing_uuid) == activate) + { + // If activation state is unchanged, no point spamming SLM with an update + return true; + } + + LLUUID version_uuid = getVersionFolder(listing_uuid); + + // Also update the count on hand + S32 count = compute_stock_count(folder_id); + if (count == COMPUTE_STOCK_NOT_EVALUATED) + { + // If the count on hand cannot be evaluated locally, we should not change that SLM value + // We are assuming that this issue is local and should not modify server side values + count = getCountOnHand(listing_uuid); + } + + // Post the listing update request to SLM + updateSLMListing(listing_uuid, listing_id, version_uuid, activate, count); + + return true; +} + +bool LLMarketplaceData::setVersionFolder(const LLUUID& folder_id, const LLUUID& version_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + // Folder id can be the root of the listing or not so we need to retrieve the root first + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + S32 listing_id = getListingID(listing_uuid); + if (listing_id == 0) + { + // Listing doesn't exists -> exit with error + return false; + } + + if (getVersionFolder(listing_uuid) == version_id) + { + // If version folder is unchanged, no point spamming SLM with an update + return true; + } + + // Note: if the version_id is cleared, we need to unlist the listing, otherwise, state unchanged + bool is_listed = (version_id.isNull() ? false : getActivationState(listing_uuid)); + + // Also update the count on hand + S32 count = compute_stock_count(version_id); + if (count == COMPUTE_STOCK_NOT_EVALUATED) + { + // If the count on hand cannot be evaluated, we will consider it empty (out of stock) when resetting the version folder + // It will get reevaluated and updated once the items are fetched + count = 0; + } + + // Post the listing update request to SLM + updateSLMListing(listing_uuid, listing_id, version_id, is_listed, count); + + return true; +} + +bool LLMarketplaceData::updateCountOnHand(const LLUUID& folder_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + // Folder id can be the root of the listing or not so we need to retrieve the root first + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + S32 listing_id = getListingID(listing_uuid); + if (listing_id == 0) + { + // Listing doesn't exists -> exit with error + return false; + } + + // Compute the new count on hand + S32 count = compute_stock_count(folder_id); + + if (count == getCountOnHand(listing_uuid)) + { + // If count on hand is unchanged, no point spamming SLM with an update + return true; + } + else if (count == COMPUTE_STOCK_NOT_EVALUATED) + { + // If local count on hand is not known at that point, do *not* force an update to SLM + return false; + } + + // Get the unchanged values + bool is_listed = getActivationState(listing_uuid); + LLUUID version_uuid = getVersionFolder(listing_uuid); + + + // Post the listing update request to SLM + updateSLMListing(listing_uuid, listing_id, version_uuid, is_listed, count); + + // Force the local value as it prevents spamming (count update may occur in burst when restocking) + // Note that if SLM has a good reason to return a different value, it'll be updated by the responder + setCountOnHand(listing_uuid, count, false); + + return true; +} + +bool LLMarketplaceData::associateListing(const LLUUID& folder_id, const LLUUID& source_folder_id, S32 listing_id) +{ + if (isListed(folder_id)) + { + // Listing already exists -> exit with error + return false; + } + + // Get the version folder: if there is only one subfolder, we will set it as a version folder immediately + LLUUID version_id = getVersionFolderIfUnique(folder_id); + + // Post the listing associate request to SLM + associateSLMListing(folder_id, listing_id, version_id, source_folder_id); + + return true; +} + +// Methods privately called or called by SLM responders to perform changes +bool LLMarketplaceData::addListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed, const std::string& edit_url, S32 count) +{ + mMarketplaceItems[folder_id] = LLMarketplaceTuple(folder_id, listing_id, version_id, is_listed); + mMarketplaceItems[folder_id].mEditURL = edit_url; + mMarketplaceItems[folder_id].mCountOnHand = count; + if (version_id.notNull()) + { + mVersionFolders[version_id] = folder_id; + } + return true; +} + +bool LLMarketplaceData::deleteListing(const LLUUID& folder_id, bool update) +{ + LLUUID version_folder = getVersionFolder(folder_id); + + if (mMarketplaceItems.erase(folder_id) != 1) + { + return false; + } + mVersionFolders.erase(version_folder); + + if (update) + { + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + } + return true; +} + +bool LLMarketplaceData::deleteListing(S32 listing_id, bool update) +{ + if (listing_id == 0) + { + return false; + } + + LLUUID folder_id = getListingFolder(listing_id); + return deleteListing(folder_id, update); +} + +// Accessors +bool LLMarketplaceData::getActivationState(const LLUUID& folder_id) +{ + // Listing folder case + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it != mMarketplaceItems.end()) + { + return (it->second).mIsActive; + } + // Version folder case + version_folders_list_t::iterator it_version = mVersionFolders.find(folder_id); + if (it_version != mVersionFolders.end()) + { + marketplace_items_list_t::iterator it = mMarketplaceItems.find(it_version->second); + if (it != mMarketplaceItems.end()) + { + return (it->second).mIsActive; + } + } + return false; +} + +S32 LLMarketplaceData::getListingID(const LLUUID& folder_id) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + return (it == mMarketplaceItems.end() ? 0 : (it->second).mListingId); +} + +S32 LLMarketplaceData::getCountOnHand(const LLUUID& folder_id) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + return (it == mMarketplaceItems.end() ? -1 : (it->second).mCountOnHand); +} + +LLUUID LLMarketplaceData::getVersionFolder(const LLUUID& folder_id) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + return (it == mMarketplaceItems.end() ? LLUUID::null : (it->second).mVersionFolderId); } +// Reverse lookup : find the listing folder id from the listing id +LLUUID LLMarketplaceData::getListingFolder(S32 listing_id) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.begin(); + while (it != mMarketplaceItems.end()) + { + if ((it->second).mListingId == listing_id) + { + return (it->second).mListingFolderId; + } + it++; + } + return LLUUID::null; +} + +std::string LLMarketplaceData::getListingURL(const LLUUID& folder_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + + } + + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + + marketplace_items_list_t::iterator it = mMarketplaceItems.find(listing_uuid); + return (it == mMarketplaceItems.end() ? "" : (it->second).mEditURL); +} + +bool LLMarketplaceData::isListed(const LLUUID& folder_id) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + return (it != mMarketplaceItems.end()); +} + +bool LLMarketplaceData::isListedAndActive(const LLUUID& folder_id) +{ + return (isListed(folder_id) && getActivationState(folder_id)); +} + +bool LLMarketplaceData::isVersionFolder(const LLUUID& folder_id) +{ + version_folders_list_t::iterator it = mVersionFolders.find(folder_id); + return (it != mVersionFolders.end()); +} + +bool LLMarketplaceData::isInActiveFolder(const LLUUID& obj_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(obj_id); + + } + + LLUUID listing_uuid = nested_parent_id(obj_id, depth); + bool active = getActivationState(listing_uuid); + LLUUID version_uuid = getVersionFolder(listing_uuid); + return (active && ((obj_id == version_uuid) || gInventory.isObjectDescendentOf(obj_id, version_uuid))); +} + +LLUUID LLMarketplaceData::getActiveFolder(const LLUUID& obj_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(obj_id); + + } + + LLUUID listing_uuid = nested_parent_id(obj_id, depth); + return (getActivationState(listing_uuid) ? getVersionFolder(listing_uuid) : LLUUID::null); +} + +bool LLMarketplaceData::isUpdating(const LLUUID& folder_id, S32 depth) +{ + // Evaluate the depth if it wasn't passed as a parameter + if (depth < 0) + { + depth = depth_nesting_in_marketplace(folder_id); + } + if ((depth <= 0) || (depth > 2)) + { + // Only listing and version folders though are concerned by that status + return false; + } + else + { + const LLUUID marketplace_listings_uuid = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + std::set<LLUUID>::iterator it = mPendingUpdateSet.find(marketplace_listings_uuid); + if (it != mPendingUpdateSet.end()) + { + // If we're waiting for data for the marketplace listings root, we are in the updating process for all + return true; + } + else + { + // Check if the listing folder is waiting or data + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + it = mPendingUpdateSet.find(listing_uuid); + return (it != mPendingUpdateSet.end()); + } + } +} + +void LLMarketplaceData::setUpdating(const LLUUID& folder_id, bool isUpdating) +{ + std::set<LLUUID>::iterator it = mPendingUpdateSet.find(folder_id); + if (it != mPendingUpdateSet.end()) + { + mPendingUpdateSet.erase(it); + } + if (isUpdating) + { + mPendingUpdateSet.insert(folder_id); + } +} + +void LLMarketplaceData::setValidationWaiting(const LLUUID& folder_id, S32 count) +{ + mValidationWaitingList[folder_id] = count; +} + +void LLMarketplaceData::decrementValidationWaiting(const LLUUID& folder_id, S32 count) +{ + waiting_list_t::iterator found = mValidationWaitingList.find(folder_id); + if (found != mValidationWaitingList.end()) + { + found->second -= count; + if (found->second <= 0) + { + mValidationWaitingList.erase(found); + LLInventoryCategory *cat = gInventory.getCategory(folder_id); + validate_marketplacelistings(cat); + update_marketplace_category(folder_id); + gInventory.notifyObservers(); + } + } +} + +// Private Modifiers +bool LLMarketplaceData::setListingID(const LLUUID& folder_id, S32 listing_id, bool update) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it == mMarketplaceItems.end()) + { + return false; + } + + (it->second).mListingId = listing_id; + + if (update) + { + update_marketplace_category(folder_id, false); + gInventory.notifyObservers(); + } + return true; +} + +bool LLMarketplaceData::setCountOnHand(const LLUUID& folder_id, S32 count, bool update) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it == mMarketplaceItems.end()) + { + return false; + } + + (it->second).mCountOnHand = count; + + return true; +} + +bool LLMarketplaceData::setVersionFolderID(const LLUUID& folder_id, const LLUUID& version_id, bool update) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it == mMarketplaceItems.end()) + { + return false; + } + + LLUUID old_version_id = (it->second).mVersionFolderId; + if (old_version_id == version_id) + { + return false; + } + + (it->second).mVersionFolderId = version_id; + mVersionFolders.erase(old_version_id); + if (version_id.notNull()) + { + mVersionFolders[version_id] = folder_id; + } + + if (update) + { + update_marketplace_category(old_version_id, false); + update_marketplace_category(version_id, false); + gInventory.notifyObservers(); + } + return true; +} + +bool LLMarketplaceData::setActivationState(const LLUUID& folder_id, bool activate, bool update) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it == mMarketplaceItems.end()) + { + return false; + } + + (it->second).mIsActive = activate; + + if (update) + { + update_marketplace_category((it->second).mListingFolderId, false); + gInventory.notifyObservers(); + } + return true; +} + +bool LLMarketplaceData::setListingURL(const LLUUID& folder_id, const std::string& edit_url, bool update) +{ + marketplace_items_list_t::iterator it = mMarketplaceItems.find(folder_id); + if (it == mMarketplaceItems.end()) + { + return false; + } + + (it->second).mEditURL = edit_url; + return true; +} + + + diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h index abe60890a3..f8e7ed4364 100755 --- a/indra/newview/llmarketplacefunctions.h +++ b/indra/newview/llmarketplacefunctions.h @@ -66,8 +66,21 @@ namespace MarketplaceStatusCodes MARKET_PLACE_NOT_INITIALIZED = 0, MARKET_PLACE_INITIALIZING = 1, MARKET_PLACE_CONNECTION_FAILURE = 2, - MARKET_PLACE_MERCHANT = 3, - MARKET_PLACE_NOT_MERCHANT = 4, + MARKET_PLACE_NOT_MERCHANT = 3, + MARKET_PLACE_MERCHANT = 4, + MARKET_PLACE_NOT_MIGRATED_MERCHANT = 5, + MARKET_PLACE_MIGRATED_MERCHANT = 6 + }; +} + +namespace MarketplaceFetchCodes +{ + enum sCode + { + MARKET_FETCH_NOT_DONE = 0, + MARKET_FETCH_LOADING = 1, + MARKET_FETCH_FAILED = 2, + MARKET_FETCH_DONE = 3 }; } @@ -109,6 +122,166 @@ private: }; +// Classes handling the data coming from and going to the Marketplace SLM Server DB: +// * implement the Marketplace API +// * cache the current Marketplace data (tuples) +// * provide methods to get Marketplace data on any inventory item +// * set Marketplace data +// * signal Marketplace updates to inventory +namespace SLMErrorCodes +{ + enum eCode + { + SLM_SUCCESS = 200, + SLM_RECORD_CREATED = 201, + SLM_MALFORMED_PAYLOAD = 400, + SLM_NOT_FOUND = 404, + }; +} + +class LLMarketplaceData; +class LLInventoryObserver; + +// A Marketplace item is known by its tuple +class LLMarketplaceTuple +{ +public: + friend class LLMarketplaceData; + + LLMarketplaceTuple(); + LLMarketplaceTuple(const LLUUID& folder_id); + LLMarketplaceTuple(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed = false); + +private: + // Representation of a marketplace item in the Marketplace DB (well, what we know of it...) + LLUUID mListingFolderId; + S32 mListingId; + LLUUID mVersionFolderId; + bool mIsActive; + S32 mCountOnHand; + std::string mEditURL; +}; +// Notes: +// * The mListingFolderId is used as a key to this map. It could therefore be taken off the LLMarketplaceTuple objects themselves. +// * The SLM DB however uses mListingId as its primary key and it shows in its API. In the viewer though, the mListingFolderId is what we use to grab an inventory record. +typedef std::map<LLUUID, LLMarketplaceTuple> marketplace_items_list_t; +typedef std::map<LLUUID, LLUUID> version_folders_list_t; + +// Session cache of all Marketplace tuples +// Notes: +// * There's one and only one possible set of Marketplace dataset per agent and per session thus making it an LLSingleton +// * Some of those records might correspond to folders that do not exist in the inventory anymore. We do not clear them out though. They just won't show up in the UI. + +class LLSLMGetMerchantResponder; +class LLSLMGetListingsResponder; +class LLSLMCreateListingsResponder; +class LLSLMGetListingResponder; +class LLSLMUpdateListingsResponder; +class LLSLMAssociateListingsResponder; +class LLSLMDeleteListingsResponder; + +class LLMarketplaceData + : public LLSingleton<LLMarketplaceData> +{ +public: + friend class LLSLMGetMerchantResponder; + friend class LLSLMGetListingsResponder; + friend class LLSLMCreateListingsResponder; + friend class LLSLMGetListingResponder; + friend class LLSLMUpdateListingsResponder; + friend class LLSLMAssociateListingsResponder; + friend class LLSLMDeleteListingsResponder; + + LLMarketplaceData(); + virtual ~LLMarketplaceData(); + + // Public SLM API : Initialization and status + typedef boost::signals2::signal<void ()> status_updated_signal_t; + void initializeSLM(const status_updated_signal_t::slot_type& cb); + U32 getSLMStatus() const { return mMarketPlaceStatus; } + void setSLMStatus(U32 status); + void getSLMListings(); + bool isEmpty() { return (mMarketplaceItems.size() == 0); } + void setDataFetchedSignal(const status_updated_signal_t::slot_type& cb); + void setSLMDataFetched(U32 status); + U32 getSLMDataFetched() { return mMarketPlaceDataFetched; } + + // High level create/delete/set Marketplace data: each method returns true if the function succeeds, false if error + bool createListing(const LLUUID& folder_id); + bool activateListing(const LLUUID& folder_id, bool activate, S32 depth = -1); + bool clearListing(const LLUUID& folder_id, S32 depth = -1); + bool setVersionFolder(const LLUUID& folder_id, const LLUUID& version_id, S32 depth = -1); + bool associateListing(const LLUUID& folder_id, const LLUUID& source_folder_id, S32 listing_id); + bool updateCountOnHand(const LLUUID& folder_id, S32 depth = -1); + bool getListing(const LLUUID& folder_id, S32 depth = -1); + bool getListing(S32 listing_id); + bool deleteListing(S32 listing_id, bool update = true); + + // Probe the Marketplace data set to identify folders + bool isListed(const LLUUID& folder_id); // returns true if folder_id is a Listing folder + bool isListedAndActive(const LLUUID& folder_id); // returns true if folder_id is an active (listed) Listing folder + bool isVersionFolder(const LLUUID& folder_id); // returns true if folder_id is a Version folder + bool isInActiveFolder(const LLUUID& obj_id, S32 depth = -1); // returns true if the obj_id is buried in an active version folder + LLUUID getActiveFolder(const LLUUID& obj_id, S32 depth = -1); // returns the UUID of the active version folder obj_id is in + bool isUpdating(const LLUUID& folder_id, S32 depth = -1); // returns true if we're waiting from SLM incoming data for folder_id + + // Access Marketplace data set : each method returns a default value if the argument can't be found + bool getActivationState(const LLUUID& folder_id); + S32 getListingID(const LLUUID& folder_id); + LLUUID getVersionFolder(const LLUUID& folder_id); + std::string getListingURL(const LLUUID& folder_id, S32 depth = -1); + LLUUID getListingFolder(S32 listing_id); + S32 getCountOnHand(const LLUUID& folder_id); + + // Used to flag if stock count values for Marketplace have to be updated + bool checkDirtyCount() { if (mDirtyCount) { mDirtyCount = false; return true; } else { return false; } } + void setDirtyCount() { mDirtyCount = true; } + void setUpdating(const LLUUID& folder_id, bool isUpdating); + + // Used to decide when to run a validation on listing folders + void setValidationWaiting(const LLUUID& folder_id, S32 count); + void decrementValidationWaiting(const LLUUID& folder_id, S32 count = 1); + +private: + // Modify Marketplace data set : each method returns true if the function succeeds, false if error + // Used internally only by SLM Responders when data are received from the SLM Server + bool addListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed, const std::string& edit_url, S32 count); + bool deleteListing(const LLUUID& folder_id, bool update = true); + bool setListingID(const LLUUID& folder_id, S32 listing_id, bool update = true); + bool setVersionFolderID(const LLUUID& folder_id, const LLUUID& version_id, bool update = true); + bool setActivationState(const LLUUID& folder_id, bool activate, bool update = true); + bool setListingURL(const LLUUID& folder_id, const std::string& edit_url, bool update = true); + bool setCountOnHand(const LLUUID& folder_id, S32 count, bool update = true); + + // Private SLM API : package data and get/post/put requests to the SLM Server through the SLM API + void createSLMListing(const LLUUID& folder_id, const LLUUID& version_id, S32 count); + void getSLMListing(S32 listing_id); + void updateSLMListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, bool is_listed, S32 count); + void associateSLMListing(const LLUUID& folder_id, S32 listing_id, const LLUUID& version_id, const LLUUID& source_folder_id); + void deleteSLMListing(S32 listing_id); + std::string getSLMConnectURL(const std::string& route); + + // Handling Marketplace connection and inventory connection + U32 mMarketPlaceStatus; + status_updated_signal_t* mStatusUpdatedSignal; + LLInventoryObserver* mInventoryObserver; + bool mDirtyCount; // If true, stock count value need to be updated at the next check + + // Update data + U32 mMarketPlaceDataFetched; + status_updated_signal_t* mDataFetchedSignal; + std::set<LLUUID> mPendingUpdateSet; + + // Listing folders waiting for validation + typedef std::map<LLUUID,S32> waiting_list_t; + waiting_list_t mValidationWaitingList; + + // The cache of SLM data (at last...) + marketplace_items_list_t mMarketplaceItems; + // We need a list (version folder -> listing folder) because such reverse lookups are frequent + version_folders_list_t mVersionFolders; +}; + #endif // LL_LLMARKETPLACEFUNCTIONS_H diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp index f7c2f629ec..c5fda3c136 100755 --- a/indra/newview/llpanelmarketplaceinboxinventory.cpp +++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp @@ -62,7 +62,7 @@ LLInboxInventoryPanel::LLInboxInventoryPanel(const LLInboxInventoryPanel::Params LLInboxInventoryPanel::~LLInboxInventoryPanel() {} -LLFolderViewFolder * LLInboxInventoryPanel::createFolderViewFolder(LLInvFVBridge * bridge) +LLFolderViewFolder * LLInboxInventoryPanel::createFolderViewFolder(LLInvFVBridge * bridge, bool allow_drop) { LLUIColor item_color = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE); @@ -74,6 +74,7 @@ LLFolderViewFolder * LLInboxInventoryPanel::createFolderViewFolder(LLInvFVBridge params.tool_tip = params.name; params.font_color = item_color; params.font_highlight_color = item_color; + params.allow_drop = allow_drop; return LLUICtrlFactory::create<LLInboxFolderViewFolder>(params); } diff --git a/indra/newview/llpanelmarketplaceinboxinventory.h b/indra/newview/llpanelmarketplaceinboxinventory.h index c05e18c300..66aafe83d1 100755 --- a/indra/newview/llpanelmarketplaceinboxinventory.h +++ b/indra/newview/llpanelmarketplaceinboxinventory.h @@ -46,7 +46,7 @@ public: ~LLInboxInventoryPanel(); // virtual - LLFolderViewFolder * createFolderViewFolder(LLInvFVBridge * bridge); + LLFolderViewFolder* createFolderViewFolder(LLInvFVBridge * bridge, bool allow_drop); LLFolderViewItem * createFolderViewItem(LLInvFVBridge * bridge); }; diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index bf15f56b44..39cf7d4222 100755 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -130,7 +130,7 @@ public: virtual void move(LLFolderViewModelItem* parent_listener); virtual BOOL isItemCopyable() const; virtual BOOL copyToClipboard() const; - virtual BOOL cutToClipboard() const; + virtual BOOL cutToClipboard(); virtual BOOL isClipboardPasteable() const; virtual void pasteFromClipboard(); virtual void pasteLinkFromClipboard(); @@ -542,7 +542,7 @@ BOOL LLTaskInvFVBridge::copyToClipboard() const return FALSE; } -BOOL LLTaskInvFVBridge::cutToClipboard() const +BOOL LLTaskInvFVBridge::cutToClipboard() { return FALSE; } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index d7bfd22cc9..6622fa7d9c 100755 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1880,6 +1880,11 @@ bool idle_startup() } display_startup(); + + // *TODO : Uncomment that line once the whole grid migrated to SLM and suppress it from LLAgent::handleTeleportFinished() (llagent.cpp) + //check_merchant_status(); + + display_startup(); if (gSavedSettings.getBOOL("HelpFloaterOpen")) { diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 0a9453534b..530bd9a18f 100755 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -67,19 +67,19 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal mLabel(notification->getName()), mLineEditor(NULL) { - // EXP-1822 - // save currently focused view, so that return focus to it - // on destroying this toast. - LLView* current_selection = dynamic_cast<LLView*>(gFocusMgr.getKeyboardFocus()); - while(current_selection) - { - if (current_selection->isFocusRoot()) - { - mPreviouslyFocusedView = current_selection->getHandle(); - break; - } - current_selection = current_selection->getParent(); - } + // EXP-1822 + // save currently focused view, so that return focus to it + // on destroying this toast. + LLView* current_selection = dynamic_cast<LLView*>(gFocusMgr.getKeyboardFocus()); + while(current_selection) + { + if (current_selection->isFocusRoot()) + { + mPreviouslyFocusedView = current_selection->getHandle(); + break; + } + current_selection = current_selection->getParent(); + } const LLFontGL* font = LLFontGL::getFontSansSerif(); const S32 LINE_HEIGHT = font->getLineHeight(); @@ -431,7 +431,24 @@ LLToastAlertPanel::~LLToastAlertPanel() // return focus to the previously focused view if the viewer is not exiting if (mPreviouslyFocusedView.get() && !LLApp::isExiting()) { - mPreviouslyFocusedView.get()->setFocus(TRUE); + LLView* current_selection = dynamic_cast<LLView*>(gFocusMgr.getKeyboardFocus()); + while(current_selection) + { + if (current_selection->isFocusRoot()) + { + break; + } + current_selection = current_selection->getParent(); + } + if (current_selection) + { + // If the focus moved to some other view though, move the focus there + current_selection->setFocus(TRUE); + } + else + { + mPreviouslyFocusedView.get()->setFocus(TRUE); + } } } diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 526f8d1cd8..79c31e15bf 100755 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -821,6 +821,7 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop, if (!handled) { + // *TODO: Suppress the "outbox" case once "marketplace" is used everywhere for everyone // Disallow drag and drop to 3D from the outbox const LLUUID outbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); if (outbox_id.notNull()) @@ -835,6 +836,20 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop, } } } + // Disallow drag and drop to 3D from the marketplace + const LLUUID marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); + if (marketplacelistings_id.notNull()) + { + for (S32 item_index = 0; item_index < (S32)mCargoIDs.size(); item_index++) + { + if (gInventory.isObjectDescendentOf(mCargoIDs[item_index], marketplacelistings_id)) + { + *acceptance = ACCEPT_NO; + mToolTipMsg = LLTrans::getString("TooltipOutboxDragToWorld"); + return; + } + } + } dragOrDrop3D( x, y, mask, drop, acceptance ); } diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h index de501ea32a..63be1ef09b 100755 --- a/indra/newview/lltooldraganddrop.h +++ b/indra/newview/lltooldraganddrop.h @@ -89,6 +89,7 @@ public: void setCargoCount(U32 count) { mCargoCount = count; } void resetCargoCount() { mCargoCount = 0; } U32 getCargoCount() const { return (mCargoCount > 0) ? mCargoCount : mCargoIDs.size(); } + S32 getCargoIndex() const { return mCurItemIndex; } static S32 getOperationId() { return sOperationId; } diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp index 175227173f..3ecb4015ce 100755 --- a/indra/newview/lltoolmgr.cpp +++ b/indra/newview/lltoolmgr.cpp @@ -37,6 +37,7 @@ #include "llfloaterinspect.h" #include "lltool.h" #include "llmanipscale.h" +#include "llmarketplacefunctions.h" #include "llselectmgr.h" #include "lltoolbrush.h" #include "lltoolcomp.h" @@ -83,6 +84,8 @@ LLToolMgr::LLToolMgr() LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Active", boost::bind(&LLToolMgr::inEdit, this)); LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Enabled", boost::bind(&LLToolMgr::canEdit, this)); LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this, _2)); + LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Marketplace.Enabled", boost::bind(&LLToolMgr::canAccessMarketplace, this)); + LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Marketplace.Toggle", boost::bind(&LLToolMgr::toggleMarketplace, this, _2)); gToolNull = new LLTool(LLStringUtil::null); // Does nothing setCurrentTool(gToolNull); @@ -345,6 +348,23 @@ bool LLToolMgr::inBuildMode() return b; } +bool LLToolMgr::canAccessMarketplace() +{ + return (LLMarketplaceData::instance().getSLMStatus() != MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT) || gSavedSettings.getBOOL("InventoryOutboxDisplayBoth"); +} + +void LLToolMgr::toggleMarketplace(const LLSD& sdname) +{ + const std::string& param = sdname.asString(); + + if ((param != "marketplace") || !canAccessMarketplace()) + { + return; + } + + LLFloaterReg::toggleInstanceOrBringToFront("marketplace_listings"); +} + void LLToolMgr::setTransientTool(LLTool* tool) { if (!tool) diff --git a/indra/newview/lltoolmgr.h b/indra/newview/lltoolmgr.h index e7d1c56c83..a3c1045aac 100755 --- a/indra/newview/lltoolmgr.h +++ b/indra/newview/lltoolmgr.h @@ -54,7 +54,9 @@ public: bool inEdit(); bool canEdit(); + bool canAccessMarketplace(); void toggleBuildMode(const LLSD& sdname); + void toggleMarketplace(const LLSD& sdname); /* Determines if we are in Build mode or not. */ bool inBuildMode(); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 2acc0e5796..24159a72f2 100755 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -85,6 +85,7 @@ #include "llfloaterlandholdings.h" #include "llfloaterloadprefpreset.h" #include "llfloatermap.h" +#include "llfloatermarketplacelistings.h" #include "llfloatermediasettings.h" #include "llfloatermemleak.h" #include "llfloatermodelpreview.h" @@ -188,6 +189,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("block_timers", "floater_fast_timers.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFastTimerView>); LLFloaterReg::add("about_land", "floater_about_land.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLand>); LLFloaterReg::add("appearance", "floater_my_appearance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>); + LLFloaterReg::add("associate_listing", "floater_associate_listing.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAssociateListing>); LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>); LLFloaterReg::add("avatar", "floater_avatar.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatar>); LLFloaterReg::add("avatar_picker", "floater_avatar_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarPicker>); @@ -241,6 +243,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>); LLFloaterReg::add("inventory", "floater_my_inventory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>); LLFloaterReg::add("inspect", "floater_inspect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterInspect>); + LLFloaterReg::add("item_properties", "floater_item_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterItemProperties>); LLInspectAvatarUtil::registerFloater(); LLInspectGroupUtil::registerFloater(); LLInspectObjectUtil::registerFloater(); @@ -260,6 +263,8 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("tex_fetch_debugger", "floater_texture_fetch_debugger.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTextureFetchDebugger>); } LLFloaterReg::add("media_settings", "floater_media_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMediaSettings>); + LLFloaterReg::add("marketplace_listings", "floater_marketplace_listings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMarketplaceListings>); + LLFloaterReg::add("marketplace_validation", "floater_marketplace_validation.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMarketplaceValidation>); LLFloaterReg::add("message_critical", "floater_critical.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTOS>); LLFloaterReg::add("message_tos", "floater_tos.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTOS>); LLFloaterReg::add("moveview", "floater_moveview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMove>); diff --git a/indra/newview/llviewerfoldertype.cpp b/indra/newview/llviewerfoldertype.cpp index 0401de7e69..158cacbc81 100644 --- a/indra/newview/llviewerfoldertype.cpp +++ b/indra/newview/llviewerfoldertype.cpp @@ -140,7 +140,11 @@ LLViewerFolderDictionary::LLViewerFolderDictionary() addEntry(LLFolderType::FT_OUTBOX, new ViewerFolderEntry("Merchant Outbox", "Inv_SysOpen", "Inv_SysClosed", FALSE, boxes_invisible)); addEntry(LLFolderType::FT_BASIC_ROOT, new ViewerFolderEntry("Basic Root", "Inv_SysOpen", "Inv_SysClosed", FALSE, true)); - + + addEntry(LLFolderType::FT_MARKETPLACE_LISTINGS, new ViewerFolderEntry("Marketplace Listings", "Inv_SysOpen", "Inv_SysClosed", FALSE, boxes_invisible)); + addEntry(LLFolderType::FT_MARKETPLACE_STOCK, new ViewerFolderEntry("New Stock", "Inv_StockFolderOpen", "Inv_StockFolderClosed", FALSE, false, "default")); + addEntry(LLFolderType::FT_MARKETPLACE_VERSION, new ViewerFolderEntry("New Version", "Inv_VersionFolderOpen","Inv_VersionFolderClosed", FALSE, false, "default")); + addEntry(LLFolderType::FT_NONE, new ViewerFolderEntry("New Folder", "Inv_FolderOpen", "Inv_FolderClosed", FALSE, false, "default")); for (U32 type = (U32)LLFolderType::FT_ENSEMBLE_START; type <= (U32)LLFolderType::FT_ENSEMBLE_END; ++type) diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index a8634d1e93..24096e3222 100755 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -808,6 +808,36 @@ bool LLViewerInventoryCategory::exportFileLocal(LLFILE* fp) const return true; } +bool LLViewerInventoryCategory::acceptItem(LLInventoryItem* inv_item) +{ + if (!inv_item) + { + return false; + } + + // Only stock folders have limitation on which item they will accept + bool accept = true; + if (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) + { + // If the item is copyable (i.e. non stock) do not accept the drop in a stock folder + if (inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) + { + accept = false; + } + else + { + LLInventoryModel::cat_array_t* cat_array; + LLInventoryModel::item_array_t* item_array; + gInventory.getDirectDescendentsOf(getUUID(),cat_array,item_array); + // Destination stock folder must be empty OR types of incoming and existing items must be identical and have the same permissions + accept = (!item_array->size() || + ((item_array->at(0)->getInventoryType() == inv_item->getInventoryType()) && + (item_array->at(0)->getPermissions().getMaskNextOwner() == inv_item->getPermissions().getMaskNextOwner()))); + } + } + return accept; +} + void LLViewerInventoryCategory::determineFolderType() { /* Do NOT uncomment this code. This is for future 2.1 support of ensembles. diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index ca92565600..4e91e4110a 100755 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -228,6 +228,9 @@ public: void changeType(LLFolderType::EType new_folder_type); virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); virtual BOOL unpackMessage(const LLSD& category); + + // returns true if the category object will accept the incoming item + bool acceptItem(LLInventoryItem* inv_item); private: friend class LLInventoryModel; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7e8bd9a4e0..cd6601304d 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -88,6 +88,7 @@ #include "llinventoryfunctions.h" #include "llpanellogin.h" #include "llpanelblockedlist.h" +#include "llmarketplacefunctions.h" #include "llmenuoptionpathfindingrebakenavmesh.h" #include "llmoveview.h" #include "llparcel.h" @@ -98,6 +99,7 @@ #include "llspellcheckmenuhandler.h" #include "llstatusbar.h" #include "lltextureview.h" +#include "lltoolbarview.h" #include "lltoolcomp.h" #include "lltoolmgr.h" #include "lltoolpie.h" @@ -386,6 +388,66 @@ void set_underclothes_menu_options() } } +void set_merchant_SLM_menu() +{ + // DD-170 : SLM Alpha and Beta program : for the moment, we always show the SLM menu and + // tools so that all merchants can try out the UI, even if not migrated. + // *TODO : Keep SLM UI hidden for non migrated merchant in released viewer + + //if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT) + //{ + // Merchant not migrated: show only the old Merchant Outbox menu + // gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE); + //} + //else + //{ + // All other cases (new merchant, not merchant, migrated merchant): show the new Marketplace Listings menu and enable the tool + gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(TRUE); + LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings"); + gToolBarView->enableCommand(command->id(), true); + //} +} + +void set_merchant_outbox_menu(U32 status, const LLSD& content) +{ + // If the merchant is fully migrated, the API is disabled (503) and we won't show the old menu item. + // In all other cases, we show it. + if (status != MarketplaceErrorCodes::IMPORT_SERVER_API_DISABLED) + { + gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE); + } +} + +void check_merchant_status() +{ + if (!gSavedSettings.getBOOL("InventoryOutboxDisplayBoth")) + { + // Reset the SLM status: we actually want to check again, that's the point of calling check_merchant_status() + LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED); + + // Hide SLM related menu item + gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(FALSE); + + // Also disable the toolbar button for Marketplace Listings + LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings"); + gToolBarView->enableCommand(command->id(), false); + + // Launch an SLM test connection to get the merchant status + LLMarketplaceData::instance().initializeSLM(boost::bind(&set_merchant_SLM_menu)); + + // Do the Merchant Outbox init only once per session + if (LLMarketplaceInventoryImporter::instance().getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) + { + // Hide merchant outbox related menu item + gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(FALSE); + + // Launch a Merchant Outbox test connection to get the migration status + LLMarketplaceInventoryImporter::instance().setStatusReportCallback(boost::bind(&set_merchant_outbox_menu,_1, _2)); + LLMarketplaceInventoryImporter::instance().initialize(); + } + } +} + void init_menus() { // Initialize actions diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index 7f09fc2d8f..b7bdf00157 100755 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -83,6 +83,7 @@ BOOL enable_god_full(void* user_data); BOOL enable_god_liaison(void* user_data); BOOL enable_god_basic(void* user_data); void set_underclothes_menu_options(); +void check_merchant_status(); void exchange_callingcard(const LLUUID& dest_id); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 459bdca8df..2775a320d4 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -71,6 +71,7 @@ #include "llinventoryobserver.h" #include "llinventorypanel.h" #include "llfloaterimnearbychat.h" +#include "llmarketplacefunctions.h" #include "llnotifications.h" #include "llnotificationsutil.h" #include "llpanelgrouplandmoney.h" @@ -5910,7 +5911,7 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem) LL_WARNS() << "attempt_standard_notification: Attempted to read notification parameter data into LLSD but failed:" << llsdRaw << LL_ENDL; } } - + handle_trusted_experiences_notification(llsdBlock); @@ -5994,7 +5995,25 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem) make_ui_sound("UISndRestart"); } - + + // Special Marketplace update notification + if (notificationID == "SLM_UPDATE_FOLDER") + { + std::string state = llsdBlock["state"].asString(); + if (state == "deleted") + { + // Perform the deletion viewer side, no alert shown in this case + LLMarketplaceData::instance().deleteListing(llsdBlock["listing_id"].asInteger()); + return true; + } + else + { + // In general, no message will be displayed, all we want is to get the listing updated in the marketplace floater + // If getListing() fails though, the message of the alert will be shown by the caller of attempt_standard_notification() + return LLMarketplaceData::instance().getListing(llsdBlock["listing_id"].asInteger()); + } + } + LLNotificationsUtil::add(notificationID, llsdBlock); return true; } diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index ef9a3dd660..34902a356c 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2717,6 +2717,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames) capabilityNames.append("CopyInventoryFromNotecard"); capabilityNames.append("CreateInventoryCategory"); capabilityNames.append("DispatchRegionInfo"); + capabilityNames.append("DirectDelivery"); capabilityNames.append("EnvironmentSettings"); capabilityNames.append("EstateChangeInfo"); capabilityNames.append("EventQueueGet"); diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index 6737fead31..60afd43781 100755 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -109,6 +109,7 @@ private: private: LLUUID mInitialBakeIDs[6]; + //bool mInitialBakesLoaded; /******************************************************************************** diff --git a/indra/newview/skins/default/textures/icons/Inv_StockFolderClosed.png b/indra/newview/skins/default/textures/icons/Inv_StockFolderClosed.png Binary files differnew file mode 100644 index 0000000000..4dc484dc22 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Inv_StockFolderClosed.png diff --git a/indra/newview/skins/default/textures/icons/Inv_StockFolderOpen.png b/indra/newview/skins/default/textures/icons/Inv_StockFolderOpen.png Binary files differnew file mode 100644 index 0000000000..0d140b56a7 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Inv_StockFolderOpen.png diff --git a/indra/newview/skins/default/textures/icons/Inv_VersionFolderClosed.png b/indra/newview/skins/default/textures/icons/Inv_VersionFolderClosed.png Binary files differnew file mode 100644 index 0000000000..e89a4d7f31 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Inv_VersionFolderClosed.png diff --git a/indra/newview/skins/default/textures/icons/Inv_VersionFolderOpen.png b/indra/newview/skins/default/textures/icons/Inv_VersionFolderOpen.png Binary files differnew file mode 100644 index 0000000000..659d7d392f --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Inv_VersionFolderOpen.png diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 73f9a2523d..4416da6600 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -140,6 +140,7 @@ with the same filename but different name <texture name="Command_Inventory_Icon" file_name="toolbar_icons/inventory.png" preload="true" /> <texture name="Command_Map_Icon" file_name="toolbar_icons/map.png" preload="true" /> <texture name="Command_Marketplace_Icon" file_name="toolbar_icons/marketplace.png" preload="true" /> + <texture name="Command_MktListings_Icon" file_name="toolbar_icons/mktlistings.png" preload="true" /> <texture name="Command_MiniCart_Icon" file_name="toolbar_icons/mini_cart.png" preload="true" /> <texture name="Command_MiniMap_Icon" file_name="toolbar_icons/mini_map.png" preload="true" /> <texture name="Command_Move_Icon" file_name="toolbar_icons/move.png" preload="true" /> @@ -308,6 +309,8 @@ with the same filename but different name <texture name="Inv_Snapshot" file_name="icons/Inv_Snapshot.png" preload="false" /> <texture name="Inv_Socks" file_name="icons/Inv_Socks.png" preload="false" /> <texture name="Inv_Sound" file_name="icons/Inv_Sound.png" preload="false" /> + <texture name="Inv_StockFolderClosed" file_name="icons/Inv_StockFolderClosed.png" preload="false" /> + <texture name="Inv_StockFolderOpen" file_name="icons/Inv_StockFolderOpen.png" preload="false" /> <texture name="Inv_SysClosed" file_name="icons/Inv_SysClosed.png" preload="false" /> <texture name="Inv_SysOpen" file_name="icons/Inv_SysOpen.png" preload="false" /> <texture name="Inv_Tattoo" file_name="icons/Inv_Tattoo.png" preload="false" /> @@ -319,6 +322,8 @@ with the same filename but different name <texture name="Inv_Undershirt" file_name="icons/Inv_Undershirt.png" preload="false" /> <texture name="Inv_Link" file_name="icons/Inv_Link.png" preload="false" /> <texture name="Inv_Invalid" file_name="icons/Inv_Invalid.png" preload="false" /> + <texture name="Inv_VersionFolderClosed" file_name="icons/Inv_VersionFolderClosed.png" preload="false" /> + <texture name="Inv_VersionFolderOpen" file_name="icons/Inv_VersionFolderOpen.png" preload="false" /> <texture name="Linden_Dollar_Alert" file_name="widgets/Linden_Dollar_Alert.png"/> <texture name="Linden_Dollar_Background" file_name="widgets/Linden_Dollar_Background.png"/> @@ -336,6 +341,7 @@ with the same filename but different name <texture name="Map_Placeholder_Icon" file_name="icons/map_placeholder.png" preload="true" /> + <texture name="Marketplace_Dropzone_Background" file_name="widgets/Marketplace_Dropzone_Background.png" preload="true" /> <texture name="MarketplaceBtn_Off" file_name="widgets/MarketplaceBtn_Off.png" preload="true" scale.left="30" scale.top="19" scale.right="35" scale.bottom="4" /> <texture name="MarketplaceBtn_Selected" file_name="widgets/MarketplaceBtn_Selected.png" preload="true" scale.left="30" scale.top="19" scale.right="35" scale.bottom="4" /> diff --git a/indra/newview/skins/default/textures/toolbar_icons/mktlistings.png b/indra/newview/skins/default/textures/toolbar_icons/mktlistings.png Binary files differnew file mode 100644 index 0000000000..a6f90461d7 --- /dev/null +++ b/indra/newview/skins/default/textures/toolbar_icons/mktlistings.png diff --git a/indra/newview/skins/default/textures/widgets/Marketplace_Dropzone_Background.png b/indra/newview/skins/default/textures/widgets/Marketplace_Dropzone_Background.png Binary files differnew file mode 100644 index 0000000000..9478f7b813 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/Marketplace_Dropzone_Background.png diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index bc0eae7c5d..ee631476cb 100755 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -1,74 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="INFO ÜBER [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Kompiliert mit [COMPILER] version [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Sie befinden sich an [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] auf <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(globale Koordinaten [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -Speicher: [MEMORY_MB] MB -Betriebssystem, Version: [OS_VERSION] -Grafikkarten-Hersteller: [GRAPHICS_CARD_VENDOR] -Grafikkarten: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Windows Grafiktreiber-Version: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - OpenGL Version: [OPENGL_VERSION] - -libcurl-Version: [LIBCURL_VERSION] -J2C-Decoderversion: [J2C_VERSION] -Audio-Treiberversion: [AUDIO_DRIVER_VERSION] -Qt Webkit-Version: [QT_WEBKIT_VERSION] -Voice-Serverversion: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (keiner) - </floater.string> - <floater.string name="AboutTraffic"> - Paketverlust: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Fehler beim Abrufen der URL für die Server-Versionshinweise. - </floater.string> <tab_container name="about_tab"> <panel label="Info" name="support_panel"> <button label="In Zwischenablage kopieren" name="copy_btn"/> </panel> <panel label="Danksagung" name="credits_panel"> - <text name="linden_intro"> - Second Life wird präsentiert von den Lindens: - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - mit Open-Source-Beiträgen von: - </text> - <text_editor name="contrib_names"> - Dummy-Name wird zur Laufzeit ersetzt - </text_editor> - <text name="trans_intro"> - mit Übersetzungen von: - </text> - <text_editor name="trans_names"> - Dummy Name wird zur Laufzeit ersetzt - </text_editor> + <text name="linden_intro">Second Life wird präsentiert von den Lindens +mit Open-Source-Beiträgen von:</text> + <text_editor name="contrib_names">Dummy-Name wird zur Laufzeit ersetzt</text_editor> </panel> <panel label="Lizenzen" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion. + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion. APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg (daniel@haxx.se). @@ -95,8 +37,7 @@ Voice-Serverversion: [VOICE_VERSION] Alle Rechte vorbehalten. Details siehe licenses.txt. - Audiocodierung für Voice-Chat: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Audiocodierung für Voice-Chat: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_associate_listing.xml b/indra/newview/skins/default/xui/de/floater_associate_listing.xml new file mode 100644 index 0000000000..827b1b0aea --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="AUFLISTUNG VERKNÜPFEN"> + <text name="message">Auflistungs-ID:</text> + <line_editor name="listing_id">ID hier eingeben</line_editor> + <button label="OK" name="OK"/> + <button label="Abbrechen" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/de/floater_edit_hover_height.xml new file mode 100644 index 0000000000..c26f7f367d --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="SCHWEBEHÖHE FESTLEGEN"> + <slider label="Höhe" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml index 7f48105460..92c038057f 100755 --- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="EIGENSCHAFTEN: INVENTAROBJEKT"> - <floater.string name="unknown"> - (unbekannt) - </floater.string> - <floater.string name="public"> - (öffentlich) - </floater.string> - <floater.string name="you_can"> - Sie können: - </floater.string> - <floater.string name="owner_can"> - Eigentümer kann: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Name: - </text> - <text name="LabelItemDescTitle"> - Beschreibung: - </text> - <text name="LabelCreatorTitle"> - Ersteller: - </text> + <floater.string name="unknown">(unbekannt)</floater.string> + <floater.string name="public">(öffentlich)</floater.string> + <floater.string name="you_can">Sie können:</floater.string> + <floater.string name="owner_can">Eigentümer kann:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Name:</text> + <text name="LabelItemDescTitle">Beschreibung:</text> + <text name="LabelCreatorTitle">Ersteller:</text> <button label="Profil..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Eigentümer: - </text> + <text name="LabelOwnerTitle">Eigentümer:</text> <button label="Profil..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Erworben: - </text> - <text name="LabelAcquiredDate"> - Mittwoch, 24. Mai 2006, 12:50:46 - </text> - <text name="OwnerLabel"> - Sie: - </text> + <text name="LabelAcquiredTitle">Erworben:</text> + <text name="LabelAcquiredDate">Mittwoch, 24. Mai 2006, 12:50:46</text> + <text name="OwnerLabel">Sie:</text> <check_box label="Bearbeiten" name="CheckOwnerModify"/> <check_box label="Kopieren" left_delta="85" name="CheckOwnerCopy"/> <check_box label="Wiederverkaufen" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Jeder: - </text> + <text name="AnyoneLabel">Jeder:</text> <check_box label="Kopieren" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Gruppe: - </text> + <text name="GroupLabel">Gruppe:</text> <check_box label="Teilen" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="150"> - Nächster Eigentümer: - </text> + <text name="NextOwnerLabel" width="150">Nächster Eigentümer:</text> <check_box label="Bearbeiten" name="CheckNextOwnerModify"/> <check_box label="Kopieren" left_delta="55" name="CheckNextOwnerCopy"/> <check_box label="Wiederverkaufen" name="CheckNextOwnerTransfer"/> <check_box label="Zum Verkauf" name="CheckPurchase"/> - <combo_box name="combobox sale copy" left_pad="25"> - <combo_box.item label="Kopieren" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="Kopie" name="Copy"/> + <combo_box.item label="Inhalt" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Preis:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_item_properties.xml b/indra/newview/skins/default/xui/de/floater_item_properties.xml new file mode 100644 index 0000000000..eb8314ad13 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="OBJEKTEIGENSCHAFTEN"/> diff --git a/indra/newview/skins/default/xui/de/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/de/floater_marketplace_listings.xml new file mode 100644 index 0000000000..fd6e2d904f --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="MARKTPLATZ-AUFLISTUNGEN"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Laden...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/de/floater_marketplace_validation.xml new file mode 100644 index 0000000000..4782b353b4 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Marketplace-Auflistungen prüfen"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_openobject.xml b/indra/newview/skins/default/xui/de/floater_openobject.xml index 5aa4477f2e..cd7796418c 100755 --- a/indra/newview/skins/default/xui/de/floater_openobject.xml +++ b/indra/newview/skins/default/xui/de/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="In Inventar kopieren" label_selected="In Inventar kopieren" name="copy_to_inventory_button" width="120"/> - <button label="Kopieren und zum Outfit hinzufügen" label_selected="Kopieren und zum Outfit hinzufügen" left_pad="6" name="copy_and_wear_button" width="136"/> + <text name="border_note"> + In Inventar kopieren und tragen + </text> + <button label="Zum Outfit hinzufügen" label_selected="Zum Outfit hinzufügen" left_pad="6" name="copy_and_wear_button" width="136"/> + <button label="Outfit ersetzen" label_selected="Outfit ersetzen" name="copy_and_replace_button"/> + <button label="Nur in Inventar kopieren" label_selected="Nur in Inventar kopieren" name="copy_to_inventory_button" width="120"/> + <button label="Abbrechen" label_selected="Abbrechen" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_pay.xml b/indra/newview/skins/default/xui/de/floater_pay.xml index a0a622ecbc..1882f5150b 100755 --- a/indra/newview/skins/default/xui/de/floater_pay.xml +++ b/indra/newview/skins/default/xui/de/floater_pay.xml @@ -1,25 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - Gruppe bezahlen - </string> - <string name="payee_resident"> - Einwohner bezahlen - </string> - <text name="payee_label" width="130"> - Bezahlen: - </text> - <icon name="icon_person" tool_tip="Person"/> - <text left="130" name="payee_name"> - Extrem langen Namen testen, um zu prüfen, ob er abgeschnitten wird - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text name="amount text"> - oder Betrag auswählen: - </text> - <button label="Bezahlen" label_selected="Bezahlen" name="pay btn"/> - <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn"/> + <string name="payee_group">Gruppe bezahlen</string> + <string name="payee_resident">Einwohner bezahlen</string> + <text name="paying_text">Sie zahlen:</text> + <text left="130" name="payee_name">Extrem langen Namen testen, um zu prüfen, ob er abgeschnitten wird</text> + <panel label="Suchen" name="PatternsPanel"> + <button label="L$ 1 zahlen" label_selected="L$ 1 zahlen" name="fastpay 1"/> + <button label="L$ 5 zahlen" label_selected="L$ 5 zahlen" name="fastpay 5"/> + <button label="L$ 10 zahlen" label_selected="L$ 10 zahlen" name="fastpay 10"/> + <button label="L$ 20 zahlen" label_selected="L$ 20 zahlen" name="fastpay 20"/> + </panel> + <panel label="Suchen" name="InputPanel"> + <text name="amount text">Anderer Betrag:</text> + <button label="Bezahlen" label_selected="Bezahlen" name="pay btn"/> + <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_pay_object.xml b/indra/newview/skins/default/xui/de/floater_pay_object.xml index 7159bbadb3..35f3ca032a 100755 --- a/indra/newview/skins/default/xui/de/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/de/floater_pay_object.xml @@ -1,29 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group" width="105"> - Gruppe bezahlen - </string> - <string name="payee_resident" width="118"> - Einwohner bezahlen - </string> - <icon name="icon_person" tool_tip="Person"/> - <text left="128" name="payee_name" width="168"> - Ericacita Moostopolison - </text> - <text halign="left" name="object_name_label"> - Über Objekt: - </text> + <string name="payee_group" width="105">Gruppe bezahlen</string> + <string name="payee_resident" width="118">Einwohner bezahlen</string> + <text name="paying_text">Sie zahlen:</text> + <text left="128" name="payee_name" width="168">Ericacita Moostopolison</text> + <text halign="left" name="object_name_label">Über Objekt:</text> <icon name="icon_object" tool_tip="Objekte"/> - <text left="105" name="object_name_text"> - ... - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text name="amount text"> - oder Betrag auswählen: - </text> - <button label="Bezahlen" label_selected="Bezahlen" name="pay btn"/> - <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn" width="76"/> + <text left="105" name="object_name_text">...</text> + <panel label="Suchen" name="PatternsPanel"> + <button label="L$ 1 zahlen" label_selected="L$ 1 zahlen" name="fastpay 1"/> + <button label="L$ 5 zahlen" label_selected="L$ 5 zahlen" name="fastpay 5"/> + <button label="L$ 10 zahlen" label_selected="L$ 10 zahlen" name="fastpay 10"/> + <button label="L$ 20 zahlen" label_selected="L$ 20 zahlen" name="fastpay 20"/> + </panel> + <panel label="Suchen" name="InputPanel"> + <text name="amount text">Anderer Betrag:</text> + <button label="Bezahlen" label_selected="Bezahlen" name="pay btn"/> + <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml index 7888c7b0a1..e0f37b28af 100755 --- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Mein Aussehen" 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="Schwebehöhe" name="Hover Height"/> <menu_item_call label="Meine Freunde" name="Friends..."/> <menu_item_call label="Meine Gruppen" name="Groups..."/> <menu_item_call label="Mein Profil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_self.xml b/indra/newview/skins/default/xui/de/menu_avatar_self.xml index 022cd8c3ca..b53f8cd6af 100755 --- a/indra/newview/skins/default/xui/de/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Mein Aussehen" name="Chenge 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="Schwebehöhe" name="Hover Height"/> <menu_item_call label="Meine Freunde" name="Friends..."/> <menu_item_call label="Meine Gruppen" name="Groups..."/> <menu_item_call label="Mein Profil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml index d838f736f8..e1f545adfc 100755 --- a/indra/newview/skins/default/xui/de/menu_inventory.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Auflistung erstellen" name="Marketplace Create Listing"/> + <menu_item_call label="Auflistung verknüpfen" name="Marketplace Associate Listing"/> + <menu_item_call label="Auflistung abrufen (aktualisieren)" name="Marketplace Get Listing"/> + <menu_item_call label="Auf Fehler prüfen" name="Marketplace Check Listing"/> + <menu_item_call label="Auflistung bearbeiten" name="Marketplace Edit Listing"/> + <menu_item_call label="Auflisten" name="Marketplace List"/> + <menu_item_call label="Entfernen" name="Marketplace Unlist"/> + <menu_item_call label="Aktivieren" name="Marketplace Activate"/> + <menu_item_call label="Deaktivieren" name="Marketplace Deactivate"/> <menu_item_call label="Teilen" name="Share"/> <menu_item_call label="Kaufen" name="Task Buy"/> <menu_item_call label="Öffnen" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Hinzufügen" name="Wearable Add"/> <menu_item_call label="Ausziehen" name="Take Off"/> <menu_item_call label="In Händler-Outbox kopieren" name="Merchant Copy"/> - <menu_item_call label="In Marktplatz übertragen" name="Marketplace Send"/> + <menu_item_call label="In Marktplatz-Auflistungen kopieren" name="Marketplace Copy"/> + <menu_item_call label="In Marktplatz-Auflistungen verschieben" name="Marketplace Move"/> <menu_item_call label="--keine Optionen--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/de/menu_marketplace_view.xml b/indra/newview/skins/default/xui/de/menu_marketplace_view.xml new file mode 100644 index 0000000000..41516a1e7c --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Nach verfügbarer Menge sortieren (niedrig bis hoch)" name="sort_by_stock_amount"/> + <menu_item_check label="Nur Auflistungsordner anzeigen" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index a328ca39f8..1924ff4ec3 100755 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="L$ kaufen..." name="Buy and Sell L$"/> <menu_item_call label="Händler-Outbox..." name="MerchantOutbox"/> + <menu_item_call label="Marktplatz-Auflistungen..." name="MarketplaceListings"/> <menu_item_call label="Kontoübersicht..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de"/> </menu_item_call> @@ -251,6 +252,7 @@ <menu_item_check label="Textur" name="Texture Console"/> <menu_item_check label="Fehler beseitigen" name="Debug Console"/> <menu_item_call label="Meldungen" name="Notifications"/> + <menu_item_check label="Regions-Debug-Konsole" name="Region Debug Console"/> <menu_item_check label="Schnelle Timer" name="Fast Timers"/> <menu_item_check label="Speicher" name="Memory"/> <menu_item_check label="Szenestatistiken" name="Scene Statistics"/> @@ -354,7 +356,7 @@ <menu_item_check label="Positionen der interpolierten Objekte anfragen" name="Ping Interpolate Object Positions"/> <menu_item_call label="Ein Paket fallenlassen" name="Drop a Packet"/> </menu> - <menu_item_call label="Geskriptete Kamera ausgeben" name="Dump Scripted Camera"/> + <menu_item_call label="Geskriptete Kamera ausgeben" name="Dump Scripted Camera"/> <menu label="Rekorder" name="Recorder"> <menu_item_call label="Wiedergabe starten" name="Start Playback"/> <menu_item_call label="Wiedergabe stoppen" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 09cba36e25..0b1c18cd51 100755 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -129,6 +129,88 @@ Aufgrund eines System- oder Netzwerkfehlers wurden keine Ordner an den Marktplat Marktplatzinitialisierung aufgrund eines System- oder Netzwerkfehlers fehlgeschlagen. Versuchen Sie es später erneut. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Kopieren oder Verschieben in Bestandsordner fehlgeschlagen mit Fehler: + + „[ERROR_CODE]“ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Kopieren oder Verschieben von Marktplatz-Auflistungen fehlgeschlagen mit Fehler: + + „[ERROR_CODE]“ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + Marktplatztransaktion fehlgeschlagen mit Fehler: + + Grund: „[ERROR_REASON]“ + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Wir konnten dieses Produkt nicht auflisten bzw. den Versionsordner nicht aktivieren. Dies liegt meist an fehlenden Informationen im Formular zur Beschreibung der Auflistung, kann aber auch auf eine falsche Ordnerstruktur zurückzuführen sein. Bearbeiten Sie die Auflistung oder überprüfen Sie den Auflistungsordner auf Fehler. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Auflistung in Marktplatz fehlgeschlagen mit Fehler: + + „[ERROR_CODE]“ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Aktivierung dieses Versionsordners fehlgeschlagen mit Fehler: + + „[ERROR_CODE]“ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Diese Aktion ändert den aktiven Inhalt dieser Auflistung. Möchten Sie fortfahren? + <usetemplate ignoretext="Vor Ändern einer aktiven Auflistung im Marktplatz bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Objekte, die ins Marktplatz-Auflistungsfenster gezogen werden, werden verschoben, nicht kopiert. Möchten Sie fortfahren? + <usetemplate ignoretext="Vor Verschieben eines Objekts aus dem Inventar in den Marktplatz bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Wenn Sie einen Auflistungsordner verschieben oder löschen, wird Ihre Marktplatz-Auflistung gelöscht. Um die Marktplatz-Auflistung beizubehalten, verschieben oder löschen Sie den Inhalt des Versionsordners, den Sie ändern möchten. Möchten Sie fortfahren? + <usetemplate ignoretext="Bestätigen, bevor ich eine Auflistung aus dem Marktplatz entferne oder verschiebe" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Sie haben keine Berechtigung, eines oder mehrere dieser Objekte in den Marktplatz zu kopieren. Sie können sie verschieben oder zurücklassen. + <usetemplate canceltext="Abbrechen" ignoretext="Vor Kopieren einer Auswahl mit kopiergeschützten Objekten in den Marktplatz bestätigen" name="yesnocancelbuttons" notext="Artikel nicht verschieben" yestext="Artikel verschieben"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Diese Aktion entfernt diese Auflistung. Möchten Sie fortfahren? + <usetemplate ignoretext="Vor Entfernen einer aktiven Auflistung aus dem Marktplatz bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Diese Aktion deaktiviert den Versionsordner der aktuellen Auflistung. Möchten Sie fortfahren? + <usetemplate ignoretext="Vor Deaktivieren des Versionsordners einer Auflistung im Marktplatz bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Diese Auflistung konnte nicht aktualisiert werden. +[[URL] Klicken Sie hier], um sie im Marktplatz zu bearbeiten. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Sie können keine Kleidung oder Körperteile tragen, die im Marktplatz-Auflistungsordner enthalten sind + </notification> + <notification name="AlertMerchantListingInvalidID"> + Auflistungs-ID ungültig. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + In dieser Auflistung gibt es mehrere oder keine Versionsordner. Sie müssen später einen auswählen und aktivieren. + <usetemplate ignoretext="Benachrichtung zur Versionsordneraktivierung, wenn ich eine Auflistung mit mehreren Versionsordnern erstelle" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Wir haben Bestandsobjekte unterschiedlicher Typen in separate Bestandsordner gelegt, damit wir Ihren Ordner auflisten können. + <usetemplate ignoretext="Benachrichtigen,wenn Bestandsordner vor dem Auflisten aufgeteilt wird" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Wir haben Ihre Auflistung entfernt, da der Bestandsordner leer ist. Um diese Auflistung wieder zu listen, müssen Sie weitere Einheiten zum Bestandsordner hinzufügen. + <usetemplate ignoretext="Benachrichtigen, wenn Auflistung aufgrund eines leeren Bestandsordners nicht aufgelistet wird" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> Der Text für ein Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut. </notification> @@ -480,6 +562,10 @@ Hinweis: Der Cache wird dabei gelöscht/geleert. Änderungen speichern? <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Speichern"/> </notification> + <notification name="DeleteNotecard"> + Notizkarte löschen? + <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Speichern der Geste fehlgeschlagen. Die Geste besteht aus zu vielen Schritten. @@ -1882,6 +1968,9 @@ Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belas Die Region, die Sie besuchen möchten, enthält Inhalte, die Ihre aktuellen Einstellungen überschreiten. Sie können Ihre Einstellungen unter „Ich“ > „Einstellungen“ > „Allgemein“ ändern. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> Die Region, die Sie besuchen möchten, enthält [REGIONMATURITY]-Inhalte, die nur für Erwachsene zugänglich sind. <url name="url"> @@ -2171,6 +2260,10 @@ Inventarobjekt(e) verschieben? <ignore name="ignore" text="Ich habe die Aktion „Objekt bezahlen" eingestellt, während ich ein Objekt gebaut habe, dass kein Geld()-Skript enthält."/> </form> </notification> + <notification name="PayConfirmation"> + Bestätigen Sie, dass Sie L$ [AMOUNT] an [TARGET] zahlen möchten. + <usetemplate ignoretext="Vor den Bezahlen bestätigen (Summen über L$ 200)" name="okcancelignore" notext="Abbrechen" yestext="Bezahlen"/> + </notification> <notification name="OpenObjectCannotCopy"> Sie haben keine Berechtigung zum Kopieren von Elementen in diesem Objekt. </notification> @@ -3855,9 +3948,11 @@ Warten Sie kurz und versuchen Sie es noch einmal. </notification> <notification name="TeleportedByAttachment"> Sie wurden von einem Anhang an [ITEM_ID] teleportiert + <usetemplate ignoretext="Teleport: Sie wurden von einem Anhang teleportiert" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Sie wurden von Objekt „[OBJECT_NAME]“ auf der Parzelle „[PARCEL_NAME]“ teleportiert + <usetemplate ignoretext="Teleport: Sie wurden von einem Objekt in einer Parzelle teleportiert" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Sie wurden von Objekt „[OBJECT_NAME]“, das [OWNER_ID] gehört, teleportiert @@ -4189,7 +4284,7 @@ Wählen Sie eine kleinere Landfläche aus. <usetemplate ignoretext="Dateien können nicht verschoben werden. Vorheriger Pfad wurde wiederhergestellt." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Die Standardberechtigungen konnten aus folgendem Grund nicht gespeichert werden: [REASON]. Versuchen Sie später, die Standardberechtigungen einzustellen. + Problem beim Speichern der standardmäßigen Objektberechtigungen: [REASON]. Versuchen Sie später, die Standardberechtigungen einzustellen. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml index 816f22178c..32c9598edf 100755 --- a/indra/newview/skins/default/xui/de/panel_login.xml +++ b/indra/newview/skins/default/xui/de/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=de - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=de</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Benutzername" name="username_combo" tool_tip="Bei der Registrierung gewählter Benutzername wie „berndschmidt12“ oder „Liebe Sonne“"/> <line_editor label="Kennwort" name="password_edit"/> - <check_box label="Details speichern" name="remember_check"/> - <text name="forgot_password_text"> - Kennwort vergessen - </text> - <button label="Anmelden" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - bei letztem Ort - </text> <combo_box label="Meine Lieblingsorte" name="start_location_combo"> + <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/> <combo_box.item label="Mein Zuhause" name="MyHome"/> </combo_box> - <button label="Anmelden" name="connect_favorite_btn"/> - <line_editor label="Ort eingeben" name="location_edit"/> - <button label="Anmelden" name="connect_location_btn"/> + <button label="Anmelden" name="connect_btn"/> + <check_box label="Details speichern" name="remember_check"/> + <text name="forgot_password_text">Kennwort vergessen</text> <combo_box label="Grid auswählen" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/de/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/de/panel_marketplace_listings.xml new file mode 100644 index 0000000000..bc9065e185 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Marktplatz" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Anzeige-/Sortieroptionen"/> + <button name="add_btn" tool_tip="Neuen Auflistungsordner erstellen"/> + <button label="Auf Fehler prüfen" name="audit_btn" tool_tip="Marktplatz-Auflistungen überprüfen"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Marktplatz-Auflistungen filtern" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/de/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/de/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..becf79b0a2 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="ALLE" name="All Items" tool_tip="Objekte zum Auflisten hier ablegen"/> diff --git a/indra/newview/skins/default/xui/de/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/de/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..63c4f34bad --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="AUFGELISTET" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/de/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/de/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..26908c3e25 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NICHT VERKNÜPFT" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/de/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/de/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..00ea1e6fe7 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NICHT AUFGELISTET" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 14ace0ac3a..d3d85de3c3 100755 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Paketverlust - </panel.string> - <panel.string name="bandwidth_tooltip"> - Bandbreite - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - [AMT] L$ - </panel.string> + <panel.string name="packet_loss_tooltip">Paketverlust</panel.string> + <panel.string name="bandwidth_tooltip">Bandbreite</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">[AMT] L$</panel.string> <panel left="-415" name="balance_bg" width="205"> - <text name="balance" tool_tip="Klicken, um L$-Guthaben zu aktualisieren" value="20 L$"/> + <text name="balance" tool_tip="Klicken, um L$-Guthaben zu aktualisieren" value="L$ ??"/> <button label="L$ kaufen" name="buyL" tool_tip="Hier klicken, um mehr L$ zu kaufen"/> <button label="Einkaufen" name="goShop" tool_tip="Second Life-Marktplatz öffnen" width="85"/> </panel> - <text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)"> - 24:00 H PST - </text> + <text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)">24:00 H PST</text> <button name="media_toggle_btn" tool_tip="Alle Medien starten/stoppen (Musik, Video, Webseiten)"/> <button name="volume_btn" tool_tip="Steuerung der Gesamtlautstärke"/> </panel> diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml index d0bd23138d..f7dc265cf4 100755 --- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Übertragen" name="CheckNextOwnerTransfer" tool_tip="Nächster Eigentümer kann dieses Objekt weitergeben oder -verkaufen"/> </panel> <check_box label="Zum Verkauf" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> - <combo_box.item label="Kopieren" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="Kopie" name="Copy"/> + <combo_box.item label="Inhalt" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Preis: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml index 29239033fe..c30611c66c 100755 --- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Objektprofil"> - <panel.string name="text deed continued"> - Übertragung - </panel.string> - <panel.string name="text deed"> - Übertragung - </panel.string> - <panel.string name="text modify info 1"> - Sie können dieses Objekt bearbeiten. - </panel.string> - <panel.string name="text modify info 2"> - Sie können diese Objekte bearbeiten. - </panel.string> - <panel.string name="text modify info 3"> - Sie können dieses Objekt nicht bearbeiten. - </panel.string> - <panel.string name="text modify info 4"> - Sie können diese Objekte nicht bearbeiten. - </panel.string> - <panel.string name="text modify info 5"> - Dieses Objekt kann nicht über eine Regionsgrenze hinweg geändert werden - </panel.string> - <panel.string name="text modify info 6"> - Diese Objekte können nicht über eine Regionsgrenze hinweg geändert werden - </panel.string> - <panel.string name="text modify warning"> - Diese Objekt verfügt über verknüpfte Teile - </panel.string> - <panel.string name="Cost Default"> - Preis: L$ - </panel.string> - <panel.string name="Cost Total"> - Summe: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Stückpreis: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Mischpreis - </panel.string> - <panel.string name="Sale Mixed"> - Mischverkauf - </panel.string> + <panel.string name="text deed continued">Übertragung</panel.string> + <panel.string name="text deed">Übertragung</panel.string> + <panel.string name="text modify info 1">Sie können dieses Objekt bearbeiten.</panel.string> + <panel.string name="text modify info 2">Sie können diese Objekte bearbeiten.</panel.string> + <panel.string name="text modify info 3">Sie können dieses Objekt nicht bearbeiten.</panel.string> + <panel.string name="text modify info 4">Sie können diese Objekte nicht bearbeiten.</panel.string> + <panel.string name="text modify info 5">Dieses Objekt kann nicht über eine Regionsgrenze hinweg geändert werden</panel.string> + <panel.string name="text modify info 6">Diese Objekte können nicht über eine Regionsgrenze hinweg geändert werden</panel.string> + <panel.string name="text modify warning">Diese Objekt verfügt über verknüpfte Teile</panel.string> + <panel.string name="Cost Default">Preis: L$</panel.string> + <panel.string name="Cost Total">Summenpreis: L$</panel.string> + <panel.string name="Cost Per Unit">Stückpreis: L$</panel.string> + <panel.string name="Cost Mixed">Mischpreis</panel.string> + <panel.string name="Sale Mixed">Mischverkauf</panel.string> <text name="title" value="Objektprofil"/> <text name="where" value="(Inworld)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Name: - </text> - <text name="Description:"> - Beschreibung: - </text> - <text name="CreatorNameLabel"> - Ersteller: - </text> - <text name="Owner:"> - Eigentümer: - </text> - <text name="Group_label"> - Gruppe: - </text> + <text name="Name:">Name:</text> + <text name="Description:">Beschreibung:</text> + <text name="CreatorNameLabel">Ersteller:</text> + <text name="Owner:">Eigentümer:</text> + <text name="Group_label">Gruppe:</text> <button name="button set group" tool_tip="Eine Gruppe auswählen, um die Berechtigungen des Objekts zu teilen."/> <name_box initial_value="Wird geladen..." name="Group Name Proxy"/> <button label="Übertragung" label_selected="Übertragung" name="button deed" tool_tip="Eine Übertragung bedeutet, dass das Objekt mit den Berechtigungen „Nächster Eigentümer“ weitergegeben wird. Mit der Gruppe geteilte Objekte können von einem Gruppen-Officer übertragen werden."/> - <text name="label click action"> - Bei Linksklick: - </text> + <text name="label click action">Bei Linksklick:</text> <combo_box name="clickaction"> <combo_box.item label="Berühren (Standard)" name="Touch/grab(default)"/> <combo_box.item label="Auf Objekt setzen" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Zoomen" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Sie können dieses Objekt bearbeiten. - </text> - <text name="Anyone can:"> - Jeder: - </text> + <text name="perm_modify">Sie können dieses Objekt bearbeiten.</text> + <text name="Anyone can:">Jeder:</text> <check_box label="Kopieren" name="checkbox allow everyone copy"/> <check_box label="Bewegen" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Gruppe: - </text> + <text name="GroupLabel">Gruppe:</text> <check_box label="Teilen" name="checkbox share with group" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu ändern, teilen. Sie müssen Übereignen, um Rollenbeschränkungen zu aktivieren."/> - <text name="NextOwnerLabel"> - Nächster Eigentümer: - </text> + <text name="NextOwnerLabel">Nächster Eigentümer:</text> <check_box label="Bearbeiten" name="checkbox next owner can modify"/> <check_box label="Kopieren" name="checkbox next owner can copy"/> <check_box label="Transferieren" name="checkbox next owner can transfer" tool_tip="Nächster Eigentümer kann dieses Objekt weitergeben oder -verkaufen"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Preis: L$" name="Edit Cost"/> <check_box label="In Suche anzeigen" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/> - <text name="pathfinding_attributes_label"> - Pathfinding-Attribute: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Pathfinding-Attribute:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Öffnen" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 7cb7b31886..35f5624c13 100755 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -454,28 +454,46 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. </string> <string name="TooltipPrice" value="[AMOUNT] L$"/> <string name="TooltipOutboxDragToWorld"> - Sie können Artikel nicht in Ihrer Händler-Outbox rezzen + Sie können keine Objekte aus dem Marktplatz-Auflistungsordner rezzen + </string> + <string name="TooltipOutboxWorn"> + Sie können Objekte, die Sie tragen, nicht in den Marktplatz-Auflistungsordner stellen + </string> + <string name="TooltipOutboxFolderLevels"> + Tiefe der verschachtelten Ordner überschreitet [AMOUNT]. Reduzieren Sie die Ordnertiefe. Verpacken Sie ggf. einige Artikel. + </string> + <string name="TooltipOutboxTooManyFolders"> + Anzahl von Unterordnern überschreitet [AMOUNT]. Reduzieren Sie die Anzahl von Ordnern in Ihrer Auflistung. Verpacken Sie ggf. einige Artikel. + </string> + <string name="TooltipOutboxTooManyObjects"> + Anzahl von Objekten überschreitet [AMOUNT]. Um mehr als [AMOUNT] Objekte in einer Auflistung verkaufen zu können, müssen Sie einige davon verpacken. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Anzahl von Bestandsobjekten überschreitet [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Sie können Objekte oder Ordner nur in der Registerkarte „Alle“ ablegen. Wählen Sie diese Registerkarte aus und verschieben Sie Ihre Objekte bzw. Ordner noch einmal. </string> <string name="TooltipOutboxNoTransfer"> - Einer oder mehrere dieser Artikel können nicht verkauft oder übertragen werden. + Mindestens eines dieser Objekte kann nicht verkauft oder übertragen werden </string> <string name="TooltipOutboxNotInInventory"> - Nur Artikel direkt aus Ihrem Inventar können in Ihre Händler-Outbox gelegt werden + Sie können nur Objekte aus Ihrem Inventar in den Marktplatz einstellen </string> - <string name="TooltipOutboxWorn"> - Artikel, die Sie tragen, können nicht in Ihre Händler-Outbox gelegt werden. + <string name="TooltipOutboxLinked"> + Sie können keine verknüpften Objekte oder Ordner in den Marktplatz einstellen </string> <string name="TooltipOutboxCallingCard"> - Sie können keine Visitenkarten in Ihre Händler-Outbox legen + Sie können Visitenkarten nicht in den Marktplatz einstellen </string> - <string name="TooltipOutboxFolderLevels"> - Tiefe der verschachtelten Ordner überschreitet 3 + <string name="TooltipOutboxDragActive"> + Sie können keine gelistete Auflistung entfernen </string> - <string name="TooltipOutboxTooManyFolders"> - Anzahl von Unterordnern im obersten Ordner überschreitet 20 + <string name="TooltipOutboxCannotMoveRoot"> + Der Stammordner mit Marktplatz-Auflistungen kann nicht verschoben werden. </string> - <string name="TooltipOutboxTooManyObjects"> - Anzahl von Artikeln im obersten Ordner überschreitet 200 + <string name="TooltipOutboxMixedStock"> + Alle Objekte in einem Bestandsordner müssen vom gleichen Typ sein und die gleiche Berechtigung haben </string> <string name="TooltipDragOntoOwnChild"> Sie können einen Ordner nicht in einen seiner untergeordneten Ordner verschieben @@ -1063,7 +1081,7 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="AgentNameSubst"> (Sie) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Beim Verwalten von Grundbesitzzugangslisten Warnhinweise unterdrücken </string> @@ -1130,6 +1148,12 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="bitmap_image_files"> Bitmap-Bilder </string> + <string name="png_image_files"> + PNG-Bilder + </string> + <string name="save_texture_image_files"> + Targa- oder PNG-Bilder + </string> <string name="avi_movie_file"> AVI-Filmdatei </string> @@ -1379,6 +1403,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="FavoritesNoMatchingItems"> Landmarke hier hin ziehen, um diese hinzuzufügen. </string> + <string name="MarketplaceNoMatchingItems"> + Keine übereinstimmenden Objekte gefunden. Überprüfen Sie die Schreibweise des Suchbegriffs und versuchen Sie es noch einmal. + </string> <string name="InventoryNoTexture"> Sie haben keine Kopie dieser Textur in Ihrem Inventar. </string> @@ -1426,29 +1453,95 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="InventoryOutboxError"> Der [[MARKETPLACE_CREATE_STORE_URL] Marktplatz-Laden] gibt Fehler zurück. </string> + <string name="InventoryMarketplaceError"> + Diese Funktion befindet sich in der Betaphase. Wenn Sie teilnehmen möchten, tragen Sie sich in dieses [http://goo.gl/forms/FCQ7UXkakz Google-Formular] ein. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Ihr Ordner mit Marktplatz-Auflistungen ist leer. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Ziehen Sie Ordner in diesen Bereich, um sie im [[MARKETPLACE_DASHBOARD_URL] Marktplatz] zum Verkauf anzubieten. + </string> + <string name="Marketplace Validation Warning Stock"> + Bestandsordner müssen in einem Versionsordner gespeichert sein + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Fehler: Alle Objekte in einem Bestandsordner müssen kopiergeschützt und vom gleichen Typ sein. + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Fehler: Bestandsordner kann keine Unterordner enthalten + </string> + <string name="Marketplace Validation Warning Empty"> + : Warnung: Ordner enthält keine Objekte + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Warnung: Bestandsordner wird erstellt + </string> + <string name="Marketplace Validation Warning Create Version"> + : Warnung: Versionsordner wird erstellt + </string> + <string name="Marketplace Validation Warning Move"> + : Warnung: Objekte werden verschoben + </string> + <string name="Marketplace Validation Warning Delete"> + : Warnung: Ordnerinhalte wurden in Bestandsordner übertragen; leerer Ordner wird entfernt + </string> + <string name="Marketplace Validation Error Stock Item"> + : Fehler: Kopiergeschützte Objekte müssen in einem Bestandsordner gespeichert sein + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Warnung: Objekte müssen in einem Versionsordner gespeichert sein + </string> + <string name="Marketplace Validation Error"> + : Fehler: + </string> + <string name="Marketplace Validation Warning"> + : Warnung: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Warnung: Versionsordner muss mindestens 1 Objekt enthalten + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Warnung: Bestandsordner muss mindestens 1 Objekt enthalten + </string> + <string name="Marketplace Validation No Error"> + Keine Fehler oder Warnungen + </string> <string name="Marketplace Error None"> Keine Fehler </string> + <string name="Marketplace Error Prefix"> + Fehler: + </string> <string name="Marketplace Error Not Merchant"> - Fehler: Bevor Sie Artikel in den Marktplatz übertragen können, müssen Sie sich als Händler registrieren (kostenlos). + Bevor Sie Artikel in den Marktplatz übertragen können, müssen Sie sich als Händler registrieren (kostenlos). + </string> + <string name="Marketplace Error Not Accepted"> + Objekt kann nicht in diesen Ordner verschoben werden. </string> - <string name="Marketplace Error Empty Folder"> - Fehler: Dieser Ordner ist leer. + <string name="Marketplace Error Unsellable Item"> + Dieses Objekt kann nicht im Marktplatz verkauft werden. </string> - <string name="Marketplace Error Unassociated Products"> - Fehler: Dieser Artikel konnte nicht hochgeladen werden, da in Ihrem Händlerkonto zu viele Artikel nicht mit Produkten verknüpft sind. Um diesen Fehler zu beheben, melden Sie sich auf der Marktplatz-Website an und reduzieren Sie die Anzahl von Artikeln, die nicht mit Produkten verknüpft sind. + <string name="MarketplaceNoID"> + keine Mkt-ID </string> - <string name="Marketplace Error Object Limit"> - Fehler: Dieser Artikel enthält zu viele Objekte. Beheben Sie diesen Fehler, indem Sie Objekte zusammen in Behältern verpacken, um die Objektanzahl auf unter 200 zu verringern. + <string name="MarketplaceLive"> + aufgelistet </string> - <string name="Marketplace Error Folder Depth"> - Fehler: Dieser Artikel enthält zu viele verschachtelte Ordnerebenen. Organisieren Sie ihn neu, sodass maximal drei verschachtelte Ordnerebenen vorhanden sind. + <string name="MarketplaceActive"> + aktiv </string> - <string name="Marketplace Error Unsellable Item"> - Fehler: Dieser Artikel kann nicht im Marktplatz verkauft werden. + <string name="MarketplaceMax"> + max. </string> - <string name="Marketplace Error Internal Import"> - Fehler: Bei diesem Artikel ist ein Problem aufgetreten. Versuchen Sie es später erneut. + <string name="MarketplaceStock"> + Bestand + </string> + <string name="MarketplaceNoStock"> + ausverkauft + </string> + <string name="MarketplaceUpdating"> + Aktualisierung läuft... </string> <string name="Open landmarks"> Landmarken öffnen @@ -1469,6 +1562,7 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. Keine Inhalte </string> <string name="WornOnAttachmentPoint" value=" (getragen am [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (aktiviert)"/> <string name="PermYes"> Ja @@ -1739,6 +1833,15 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="Invalid Attachment"> Ungültige Stelle für Anhang </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Fehler: fehlendes Objekt + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Fehler: Basisobjekt fehlt + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Fehler: Objekt ist im aktuellen Outfit, aber nicht angehängt + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] alt </string> @@ -1874,9 +1977,6 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="CompileQueueUnknownFailure"> Unbekannter Fehler beim Herunterladen </string> - <string name="CompileNoExperiencePerm"> - Skript „[SCRIPT]“ mit Erlebnis „[EXPERIENCE]“ wird übersprungen. - </string> <string name="CompileQueueTitle"> Rekompilierung </string> @@ -1910,6 +2010,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="SaveComplete"> Speichervorgang abgeschlossen. </string> + <string name="UploadFailed"> + Datei-Upload fehlgeschlagen: + </string> <string name="ObjectOutOfRange"> Skript (Objekt außerhalb des Bereichs) </string> @@ -1919,6 +2022,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="GroupsNone"> keine </string> + <string name="CompileNoExperiencePerm"> + Skript „[SCRIPT]“ mit Erlebnis „[EXPERIENCE]“ wird übersprungen. + </string> <string name="Group" value=" (Gruppe)"/> <string name="Unknown"> (unbekannt) @@ -5070,6 +5176,9 @@ Setzen Sie den Editorpfad in Anführungszeichen <string name="Command_Marketplace_Label"> Marktplatz </string> + <string name="Command_MarketplaceListings_Label"> + Marktplatz + </string> <string name="Command_MiniMap_Label"> Minikarte </string> @@ -5157,6 +5266,9 @@ Setzen Sie den Editorpfad in Anführungszeichen <string name="Command_Marketplace_Tooltip"> Einkaufen gehen </string> + <string name="Command_MarketplaceListings_Tooltip"> + Ihre Kreation verkaufen + </string> <string name="Command_MiniMap_Tooltip"> Leute in der Nähe anzeigen </string> @@ -5268,6 +5380,18 @@ Setzen Sie den Editorpfad in Anführungszeichen <string name="UserDictionary"> [Benutzer] </string> + <string name="logging_calls_disabled_log_empty"> + Unterhaltungen werden nicht protokolliert. Um ein Protokoll zu starten, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ > „Chat“. + </string> + <string name="logging_calls_disabled_log_not_empty"> + Es werden keine Unterhaltungen mehr protokolliert. Um weiterhin ein Protokoll zu führen, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ > „Chat“. + </string> + <string name="logging_calls_enabled_log_empty"> + Keine protokollierten Unterhaltungen verfügbar. Hier erscheint ein Protokolleintrag, wenn Sie eine Person kontaktieren oder von einer Person kontaktiert werden. + </string> + <string name="loading_chat_logs"> + Laden... + </string> <string name="experience_tools_experience"> Erlebnis </string> @@ -5349,16 +5473,4 @@ Setzen Sie den Editorpfad in Anführungszeichen <string name="ExperiencePermissionShort12"> Berechtigung </string> - <string name="logging_calls_disabled_log_empty"> - Unterhaltungen werden nicht protokolliert. Um ein Protokoll zu starten, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ > „Chat“. - </string> - <string name="logging_calls_disabled_log_not_empty"> - Es werden keine Unterhaltungen mehr protokolliert. Um weiterhin ein Protokoll zu führen, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ > „Chat“. - </string> - <string name="logging_calls_enabled_log_empty"> - Keine protokollierten Unterhaltungen verfügbar. Hier erscheint ein Protokolleintrag, wenn Sie eine Person kontaktieren oder von einer Person kontaktiert werden. - </string> - <string name="loading_chat_logs"> - Laden... - </string> </strings> diff --git a/indra/newview/skins/default/xui/en/floater_associate_listing.xml b/indra/newview/skins/default/xui/en/floater_associate_listing.xml new file mode 100755 index 0000000000..e019ed58dd --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_associate_listing.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + legacy_header_height="18" + can_minimize="false" + height="110" + layout="topleft" + name="associate listing" + help_topic="associate_listing" + title="ASSOCIATE LISTING" + width="375"> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifLarge" + height="16" + layout="topleft" + left="10" + top="25" + name="message"> + Listing ID: + </text> + <line_editor + type="string" + length="1" + follows="top|right" + font="SansSerif" + height="20" + layout="topleft" + left_delta="0" + name="listing_id" + top_pad="5" + width="350"> + Type ID here + </line_editor> + <button + follows="bottom|left" + height="23" + label="OK" + layout="topleft" + left="155" + name="OK" + top_pad="10" + width="100" /> + <button + follows="bottom|right" + height="23" + label="Cancel" + layout="topleft" + left_pad="5" + name="Cancel" + width="100" /> +</floater> diff --git a/indra/newview/skins/default/xui/en/floater_item_properties.xml b/indra/newview/skins/default/xui/en/floater_item_properties.xml new file mode 100755 index 0000000000..0fc54a9c8b --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_item_properties.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + legacy_header_height="18" + height="570" + layout="topleft" + name="Item Properties" + help_topic="item+properties" + title="ITEM PROPERTIES" + width="330"> + <panel + follows="all" + layout="topleft" + left="0" + class="sidepanel_item_info" + filename="sidepanel_item_info.xml" + name="item_panel" + top="20" + label="" + height="570" + visible="true" + width="330"> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/en/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/en/floater_marketplace_listings.xml new file mode 100755 index 0000000000..0806a87288 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_marketplace_listings.xml @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<floater + title="MARKETPLACE LISTINGS" + name="floater_marketplace_listings" + help_topic="floater_marketplace_listings" + positioning="cascading" + width="333" + height="445" + min_width="200" + min_height="300" + can_close="true" + can_resize="true" + save_rect="true" + save_visibility="false" + reuse_instance="true"> + <panel + name="marketplace_listings_panel" + follows="all" + layout="topleft" + left="0" + top="0" + height="440" + width="333"> + <panel + follows="all" + left="10" + height="440" + width="313" + top="0" + bg_opaque_color="InventoryBackgroundColor"> + <panel + name="marketplace_listings_inventory_placeholder_panel" + follows="all" + layout="topleft" + top="0" + left="0" + width="313" + height="440" + bg_opaque_color="InventoryBackgroundColor"> + <text + name="marketplace_listings_inventory_placeholder_title" + type="string" + follows="top|left|right" + layout="topleft" + top="10" + left="0" + width="313" + height="25" + wrap="true" + halign="center" + font="SansSerifBold"> + Loading... + </text> + <text + name="marketplace_listings_inventory_placeholder_text" + type="string" + follows="top|left|right" + layout="topleft" + top="35" + left="0" + width="313" + height="130" + wrap="true" + halign="left" /> + </panel> + <panel + name="panel_marketplace_listing" + filename="panel_marketplace_listings.xml" + class="llpanelmarketplacelistings" + top="0" + follows="all"/> + </panel> + <panel + name="marketplace_panel_status" + follows="bottom|left|right" + layout="topleft" + left="10" + width="313" + height="20"> + <text + name="marketplace_status" + type="string" + follows="bottom|left|right" + layout="topleft" + top="0" + left="5" + width="150" + height="20" + wrap="true" + halign="left" + valign="center" + font="SansSerif"/> + </panel> + <layout_stack name="initialization_progress_indicator" orientation="vertical" left="0" height="440" top="0" width="333" follows="all" visible="false"> + <layout_panel /> + <layout_panel height="24" auto_resize="false"> + <layout_stack orientation="horizontal" left="0" height="24" top="0" width="333" follows="all"> + <layout_panel width="0" /> + <layout_panel width="24" auto_resize="false"> + <loading_indicator + height="24" + layout="topleft" + left="0" + top="0" + width="24" /> + </layout_panel> + <layout_panel width="0" /> + </layout_stack> + </layout_panel> + <layout_panel /> + </layout_stack> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/en/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/en/floater_marketplace_validation.xml new file mode 100755 index 0000000000..9035a7c161 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_marketplace_validation.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + title="Audit Marketplace Listings" + name="floater_marketplace_validation" + help_topic="floater_marketplace_validation" + layout="topleft" + positioning="cascading" + legacy_header_height="18" + width="600" + height="500" + min_width="400" + min_height="200" + can_close="true" + can_resize="true" + can_minimize="true" + save_rect="true" + reuse_instance="true" + save_visibility="false"> + <button + name="OK" + label="OK" + label_selected="OK" + layout="topleft" + follows="right|bottom" + top="465" + width="100" + height="20" + left="484"/> + <text_editor + name="validation_text" + type="string" + font="SansSerif" + length="1" + max_length="65536" + layout="topleft" + follows="all" + bg_readonly_color="TextBgReadOnlyColor" + text_readonly_color="TextFgReadOnlyColor" + top="25" + bottom="455" + left="20" + right="-20" + word_wrap="true"> + MARKETPLACE_VALIDATION_TEXT + </text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 7099db63ab..91adec0789 100755 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -4,6 +4,81 @@ layout="topleft" name="Popup" visible="false"> + <menu_item_call + label="Create listing" + layout="topleft" + name="Marketplace Create Listing"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_create_listing" /> + </menu_item_call> + <menu_item_call + label="Associate listing" + layout="topleft" + name="Marketplace Associate Listing"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_associate_listing" /> + </menu_item_call> + <menu_item_call + label="Get (Refresh) listing" + layout="topleft" + name="Marketplace Get Listing"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_get_listing" /> + </menu_item_call> + <menu_item_call + label="Check for errors" + layout="topleft" + name="Marketplace Check Listing"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_check_listing" /> + </menu_item_call> + <menu_item_call + label="Edit listing" + layout="topleft" + name="Marketplace Edit Listing"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_edit_listing" /> + </menu_item_call> + <menu_item_call + label="List" + layout="topleft" + name="Marketplace List"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_list" /> + </menu_item_call> + <menu_item_call + label="Unlist" + layout="topleft" + name="Marketplace Unlist"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_unlist" /> + </menu_item_call> + <menu_item_call + label="Activate" + layout="topleft" + name="Marketplace Activate"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_activate" /> + </menu_item_call> + <menu_item_call + label="Deactivate" + layout="topleft" + name="Marketplace Deactivate"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="marketplace_deactivate" /> + </menu_item_call> + <menu_item_separator + layout="topleft" + name="Marketplace Listings Separator" /> <menu_item_call label="Share" layout="topleft" @@ -718,12 +793,20 @@ parameter="copy_to_outbox" /> </menu_item_call> <menu_item_call - label="Send to Marketplace" - layout="topleft" - name="Marketplace Send"> + label="Copy to Marketplace Listings" + layout="topleft" + name="Marketplace Copy"> <menu_item_call.on_click - function="Inventory.DoToSelected" - parameter="send_to_marketplace" /> + function="Inventory.DoToSelected" + parameter="copy_to_marketplace_listings" /> + </menu_item_call> + <menu_item_call + label="Move to Marketplace Listings" + layout="topleft" + name="Marketplace Move"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="move_to_marketplace_listings" /> </menu_item_call> <menu_item_call label="--no options--" diff --git a/indra/newview/skins/default/xui/en/menu_marketplace_view.xml b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml new file mode 100755 index 0000000000..4b3bb8ee1c --- /dev/null +++ b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu + name="menu_marketplace_sort" + left="0" bottom="0" visible="false" + mouse_opaque="false"> + <menu_item_check + label="Sort by name" + name="sort_by_name"> + <menu_item_check.on_click + function="Marketplace.ViewSort.Action" + parameter="sort_by_name" /> + <menu_item_check.on_check + function="Marketplace.ViewSort.CheckItem" + parameter="sort_by_name" /> + </menu_item_check> + <menu_item_check + label="Sort by most recent" + name="sort_by_recent"> + <menu_item_check.on_click + function="Marketplace.ViewSort.Action" + parameter="sort_by_recent" /> + <menu_item_check.on_check + function="Marketplace.ViewSort.CheckItem" + parameter="sort_by_recent" /> + </menu_item_check> + <menu_item_check + label="Sort by stock amount (low to high)" + name="sort_by_stock_amount"> + <menu_item_check.on_click + function="Marketplace.ViewSort.Action" + parameter="sort_by_stock_amount"/> + <menu_item_check.on_check + function="Marketplace.ViewSort.CheckItem" + parameter="sort_by_stock_amount"/> + </menu_item_check> + <menu_item_separator + layout="topleft" /> + <menu_item_check + label="Show only listing folders" + name="show_only_listing_folders"> + <menu_item_check.on_click + function="Marketplace.ViewSort.Action" + parameter="show_only_listing_folders"/> + <menu_item_check.on_check + function="Marketplace.ViewSort.CheckItem" + parameter="show_only_listing_folders"/> + </menu_item_check> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index a1b54d9ca7..9111ca389f 100755 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -180,6 +180,13 @@ function="Floater.ToggleOrBringToFront" parameter="outbox" /> </menu_item_call> + <menu_item_call + label="Marketplace listings..." + name="MarketplaceListings"> + <menu_item_call.on_click + function="Floater.ToggleOrBringToFront" + parameter="marketplace_listings" /> + </menu_item_call> <menu_item_call label="Account dashboard..." name="Manage My Account"> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 506b110afe..0c2b72ac56 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -308,9 +308,251 @@ Initialization with the Marketplace failed because of a system or network error. name="okbutton" yestext="OK"/> </notification> + + <notification + icon="OutboxStatus_Error" + name="StockPasteFailed" + type="outbox"> + Copy or move to Stock Folder failed with error : + + '[ERROR_CODE]' + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + + <notification + icon="OutboxStatus_Error" + name="MerchantPasteFailed" + type="outbox"> + Copy or move to Marketplace Listings failed with error : + + '[ERROR_CODE]' + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + + <notification + icon="OutboxStatus_Error" + name="MerchantTransactionFailed" + type="outbox"> + The transaction with the Marketplace failed with the following error : + + Reason : '[ERROR_REASON]' + [ERROR_DESCRIPTION] + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + <notification + icon="OutboxStatus_Error" + name="MerchantUnprocessableEntity" + type="outbox"> + We are unable to list this product or activate the version folder. Usually this is caused by missing information in the listing description form, but it may be due to errors in the folder structure. Either edit the listing or check the listing folder for errors. + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> <notification + icon="OutboxStatus_Error" + name="MerchantListingFailed" + type="outbox"> + Listing to Marketplace failed with error : + + '[ERROR_CODE]' + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + + <notification + icon="OutboxStatus_Error" + name="MerchantFolderActivationFailed" + type="outbox"> + Activating this version folder failed with error : + + '[ERROR_CODE]' + + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="MerchantForceValidateListing" + type="alertmodal"> + In order to create your listing, we fixed the hierarchy of your listing contents. + <tag>confirm</tag> + <usetemplate + ignoretext="Warn me that creating a listing fixes the hierarchy of the content" + name="okignore" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmMerchantActiveChange" + type="alertmodal"> + This action will change the active content of this listing. Do you want to continue? + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I change an active listing on the marketplace" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmMerchantMoveInventory" + type="alertmodal"> + Items dragged to the Marketplace Listings window are moved from their original locations, not copied. Do you want to continue? + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I move an item from the inventory to the marketplace" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmListingCutOrDelete" + type="alertmodal"> + Moving or deleting a listing folder will delete your Marketplace listing. If you would like to keep the Marketplace listing, move or delete the contents of the version folder you would like to modify. Do you want to continue? + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I move or delete a listing from the marketplace" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmCopyToMarketplace" + type="alertmodal"> + You don't have permission to copy one or more of these items to the Marketplace. You can move them or leave them behind. + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I try to copy a selection containing no copy items to the marketplace" + name="yesnocancelbuttons" + yestext="Move item(s)" + notext="Don't move item(s)" + canceltext="Cancel"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmMerchantUnlist" + type="alertmodal"> + This action will unlist this listing. Do you want to continue? + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I unlist an active listing on the marketplace" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="ConfirmMerchantClearVersion" + type="alertmodal"> + This action will deactivate the version folder of the current listing. Do you want to continue? + <tag>confirm</tag> + <usetemplate + ignoretext="Confirm before I deactivate the version folder of a listing on the marketplace" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantListingNotUpdated" + type="alertmodal"> +This listing could not be updated. +[[URL] Click here] to edit it on the Marketplace. + <usetemplate + name="okbutton" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantListingCannotWear" + type="alertmodal"> + You cannot wear clothes or body parts that are in the Marketplace Listings folder. + <tag>fail</tag> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantListingInvalidID" + type="alertmodal"> + Invalid listing ID. + <tag>fail</tag> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantListingActivateRequired" + type="alertmodal"> + There are several or no version folders in this listing. You will need to select and activate one independently later. + <tag>confirm</tag> + <usetemplate + ignoretext="Alert about version folder activation when I create a listing with several version folders" + name="okignore" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantStockFolderSplit" + type="alertmodal"> + We have separated stock items of different types into separate stock folders, so your folder is arranged in a way that we can list it. + <tag>confirm</tag> + <usetemplate + ignoretext="Alert when stock folder is being split before being listed" + name="okignore" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantStockFolderEmpty" + type="alertmodal"> + We have unlisted your listing because the stock is empty. You need to add more units to the stock folder to list the listing again. + <tag>confirm</tag> + <usetemplate + ignoretext="Alert when a listing is unlisted because stock folder is empty" + name="okignore" + yestext="OK"/> + </notification> + + <notification + icon="alertmodal.tga" + name="AlertMerchantVersionFolderEmpty" + type="alertmodal"> + We have unlisted your listing because the version folder is empty. You need to add items to the version folder to list the listing again. + <tag>confirm</tag> + <usetemplate + ignoretext="Alert when a listing is unlisted because version folder is empty" + name="okignore" + yestext="OK"/> + </notification> + + <notification icon="alertmodal.tga" name="CompileQueueSaveText" type="alertmodal"> @@ -4566,6 +4808,13 @@ Are you sure you want to change the Estate Covenant? </notification> <notification + icon="alertmodal.tga" + name="SLM_UPDATE_FOLDER" + type="alertmodal"> + [MESSAGE] + </notification> + + <notification icon="alertmodal.tga" name="RegionEntryAccessBlocked_AdultsOnlyContent" type="alertmodal"> diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings.xml new file mode 100755 index 0000000000..2b17473a84 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings.xml @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel + label="Marketplace" + name="Marketplace Panel" + follows="all" + layout="topleft" + width="308" + height="440"> + <panel + name="tool_panel" + follows="left|top|right" + layout="topleft" + height="30" + width="308" + top="0" + left="0"> + <menu_button + name="sort_btn" + tool_tip="View/sort options" + layout="topleft" + follows="top|left" + width="31" + height="25" + left="2" + menu_filename="menu_marketplace_view.xml" + image_hover_unselected="Toolbar_Middle_Over" + image_overlay="Conv_toolbar_sort" + image_selected="Toolbar_Middle_Selected" + image_unselected="Toolbar_Middle_Off" + menu_position="bottomleft"/> + <button + name="add_btn" + tool_tip="Create a new listing folder" + layout="topleft" + follows="top|left" + width="31" + height="25" + left_pad="2" + image_hover_unselected="Toolbar_Middle_Over" + image_overlay="Conv_toolbar_plus" + image_selected="Toolbar_Middle_Selected" + image_unselected="Toolbar_Middle_Off"/> + <button + name="audit_btn" + label="Check for Errors" + tool_tip="Check your marketplace listings" + layout="topleft" + follows="top|right" + width="97" + height="26" + left_pad="143"/> + </panel> + <panel + name="tab_container_panel" + follows="all" + layout="topleft" + default_tab_group="1" + width="308" + height="350"> + <filter_editor + text_pad_left="10" + follows="left|top|right" + height="23" + label="Filter Marketplace Listings" + layout="topleft" + left="0" + max_length_chars="300" + name="filter_editor" + top="0" + width="308" /> + <tab_container + name="marketplace_filter_tabs" + follows="all" + layout="topleft" + top="30" + left="0" + top_pad="0" + width="308" + height="320" + halign="center" + tab_height="30" + tab_group="1" + tab_position="top" + tab_min_width="50"> + </tab_container> + </panel> + <panel + name="marketplace_drop_zone" + mouse_opaque="true" + follows="bottom|left|right" + left="2" + width="306" + height="40" + background_visible="true" + background_opaque="true" + bg_alpha_image="none" + bg_alpha_color="EmphasisColor_35" + bg_opaque_image="Marketplace_Dropzone_Background" + border="true" + bevel_style="in" + visible="true"> + <text + type="string" + follows="bottom|left|right" + layout="topleft" + top="13" + height="20" + left="2" + width="306" + halign="center" + font="SansSerifMedium" + font_shadow="hard" + valign="top"> + Drop folders here to create new listings + </text> + </panel> +</panel>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml new file mode 100755 index 0000000000..8d5fa265e2 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<inventory_panel + label="ALL" + name="All Items" + help_topic="marketplace_tab" + layout="topleft" + follows="all" + width="308" + height="370" + top="16" + left="0" + start_folder.name="Marketplace listings" + show_empty_message="true" + show_root_folder="false" + use_marketplace_folders="true" + start_folder.type="merchant" + tool_tip="Drag and drop items here to list them" + bg_opaque_color="DkGray2" + bg_alpha_color="DkGray2" + background_visible="true" + border="false" + bevel_style="none" + show_item_link_overlays="true"> + <item allow_wear="false"/> +</inventory_panel> diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml new file mode 100755 index 0000000000..44f507ad84 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<inventory_panel + label="LISTED" + name="Active Items" + help_topic="marketplace_tab" + layout="topleft" + follows="all" + width="308" + height="370" + left_delta="0" + start_folder.name="Marketplace listings" + show_empty_message="true" + show_root_folder="false" + use_marketplace_folders="true" + allow_drop_on_root="false" + start_folder.type="merchant" + bg_opaque_color="DkGray2" + bg_alpha_color="DkGray2" + background_visible="true" + border="false" + bevel_style="none" + show_item_link_overlays="true"> + <item allow_wear="false"/> +</inventory_panel> diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml new file mode 100755 index 0000000000..871e8773c4 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<inventory_panel + label="UNASSOCIATED" + name="Unassociated Items" + help_topic="marketplace_tab" + layout="topleft" + follows="all" + width="308" + height="370" + left_delta="0" + start_folder.name="Marketplace listings" + show_empty_message="true" + show_root_folder="false" + use_marketplace_folders="true" + start_folder.type="merchant" + bg_opaque_color="DkGray2" + bg_alpha_color="DkGray2" + background_visible="true" + border="false" + bevel_style="none" + show_item_link_overlays="true"> + <item allow_wear="false"/> +</inventory_panel> diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml new file mode 100755 index 0000000000..98bef04aa7 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<inventory_panel + label="UNLISTED" + name="Inactive Items" + help_topic="marketplace_tab" + layout="topleft" + follows="all" + width="308" + height="370" + left_delta="0" + start_folder.name="Marketplace listings" + show_empty_message="true" + show_root_folder="false" + use_marketplace_folders="true" + allow_drop_on_root="false" + start_folder.type="merchant" + bg_opaque_color="DkGray2" + bg_alpha_color="DkGray2" + background_visible="true" + border="false" + bevel_style="none" + show_item_link_overlays="true"> + <item allow_wear="false"/> +</inventory_panel> diff --git a/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml index c80e5b168a..b2d8bb874b 100755 --- a/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml @@ -3,7 +3,6 @@ name="inventory_outbox" start_folder.name="Outbox" show_empty_message="false" - show_load_status="false" start_folder.type="outbox" follows="all" layout="topleft" top="0" left="0" height="165" width="308" @@ -28,5 +27,5 @@ text_pad_right="4" arrow_size="12" max_folder_item_overlap="2"/> - <item allow_open="false"/> + <item allow_wear="false"/> </inventory_panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 892e882049..83c856a63e 100755 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -236,14 +236,20 @@ Please try logging in again in a minute.</string> <string name="TooltipTooManyWearables">You can't wear a folder containing more than [AMOUNT] items. You can change this limit in Advanced > Show Debug Settings > WearFolderLimit.</string> <string name="TooltipPrice" value="L$[AMOUNT]: "/> - <string name="TooltipOutboxDragToWorld">You can not rez items in your merchant outbox</string> - <string name="TooltipOutboxNoTransfer">One or more of these objects cannot be sold or transferred.</string> - <string name="TooltipOutboxNotInInventory">Your merchant outbox can only accept items directly from your inventory</string> - <string name="TooltipOutboxWorn">You can not put items you are wearing into your merchant outbox</string> - <string name="TooltipOutboxCallingCard">You can not put calling cards into your merchant outbox</string> - <string name="TooltipOutboxFolderLevels">Depth of nested folders exceeds 3</string> - <string name="TooltipOutboxTooManyFolders">Subfolder count in top-level folder exceeds 20</string> - <string name="TooltipOutboxTooManyObjects">Item count in top-level folder exceeds 200</string> + <string name="TooltipOutboxDragToWorld">You can't rez items from the Marketplace Listings folder</string> + <string name="TooltipOutboxWorn">You can't put items you are wearing in the Marketplace Listings folder</string> + <string name="TooltipOutboxFolderLevels">Depth of nested folders exceeds [AMOUNT]. Decrease the depth of folders-within-folders; box items if necessary.</string> + <string name="TooltipOutboxTooManyFolders">Subfolder count exceeds [AMOUNT]. Decrease the number of folders in your listing; box items if necessary.</string> + <string name="TooltipOutboxTooManyObjects">Item count exceeds [AMOUNT]. In order to sell more than [AMOUNT] items in one listing, you must box some of them.</string> + <string name="TooltipOutboxTooManyStockItems">Stock items count exceeds [AMOUNT].</string> + <string name="TooltipOutboxCannotDropOnRoot">You can only drop items or folders in the ALL or UNASSOCIATED tabs. Please select one of those tabs and move your item(s) or folder(s) again.</string> + <string name="TooltipOutboxNoTransfer">One or more of these objects cannot be sold or transferred</string> + <string name="TooltipOutboxNotInInventory">You can only put items from your inventory on the marketplace</string> + <string name="TooltipOutboxLinked">You can't put linked items or folders on the marketplace</string> + <string name="TooltipOutboxCallingCard">You can't put calling cards on the marketplace</string> + <string name="TooltipOutboxDragActive">You can't move a listed listing</string> + <string name="TooltipOutboxCannotMoveRoot">You can't move the marketplace listings root folder</string> + <string name="TooltipOutboxMixedStock">All items in a stock folder must have the same type and permission</string> <string name="TooltipDragOntoOwnChild">You can't move a folder into its child</string> <string name="TooltipDragOntoSelf">You can't move a folder into itself</string> @@ -489,7 +495,7 @@ Please try logging in again in a minute.</string> <string name="NotConnected">Not Connected</string> <string name="AgentNameSubst">(You)</string> <!-- Substitution for agent name --> - <string name="JoinAnExperience"></string> <!-- intentionally left blank --> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess">Suppress alerts when managing estate access lists</string> <string name="OverrideYourAnimations">Replace your default animations</string> <string name="ScriptReturnObjects">Return objects on your behalf</string> @@ -520,6 +526,8 @@ Please try logging in again in a minute.</string> <string name="load_file_verb">Load</string> <string name="targa_image_files">Targa Images</string> <string name="bitmap_image_files">Bitmap Images</string> + <string name="png_image_files">PNG Images</string> + <string name="save_texture_image_files">Targa or PNG Images</string> <string name="avi_movie_file">AVI Movie File</string> <string name="xaf_animation_file">XAF Anim File</string> <string name="xml_file">XML File</string> @@ -2254,6 +2262,7 @@ For AI Character: Get the closest navigable point to the point provided. <string name="InventoryNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].</string> <string name="PlacesNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].</string> <string name="FavoritesNoMatchingItems">Drag a landmark here to add it to your favorites.</string> + <string name="MarketplaceNoMatchingItems">No items found. Check the spelling of your search string and try again.</string> <string name="InventoryNoTexture">You do not have a copy of this texture in your inventory</string> <string name="InventoryInboxNoItems">Your Marketplace purchases will appear here. You may then drag them into your inventory to use them.</string> <string name="MarketplaceURL">https://marketplace.[MARKETPLACE_DOMAIN_NAME]/</string> @@ -2281,16 +2290,45 @@ We are accessing your account on the [[MARKETPLACE_CREATE_STORE_URL] Marketplace <string name="InventoryOutboxError"> The [[MARKETPLACE_CREATE_STORE_URL] Marketplace store] is returning errors. </string> - + <string name="InventoryMarketplaceError"> +This feature is currently in Beta. Please add your name to this [http://goo.gl/forms/FCQ7UXkakz Google form] if you would like to participate. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle">Your Marketplace Listings folder is empty.</string> + <string name="InventoryMarketplaceListingsNoItemsTooltip"></string> + <string name="InventoryMarketplaceListingsNoItems"> + Drag folders to this area to list them for sale on the [[MARKETPLACE_DASHBOARD_URL] Marketplace]. + </string> + + <string name="Marketplace Validation Log"></string> + <string name="Marketplace Validation Warning Stock">stock folder must be contained by a version folder</string> + <string name="Marketplace Validation Error Mixed Stock">: Error: all items in a stock folder must be no-copy and of the same type</string> + <string name="Marketplace Validation Error Subfolder In Stock">: Error: stock folder cannot contain subfolders</string> + <string name="Marketplace Validation Warning Empty">: Warning: folder doesn't contain any items</string> + <string name="Marketplace Validation Warning Create Stock">: Warning: creating stock folder</string> + <string name="Marketplace Validation Warning Create Version">: Warning: creating version folder</string> + <string name="Marketplace Validation Warning Move">: Warning : moving items</string> + <string name="Marketplace Validation Warning Delete">: Warning: folder content transfered to stock folder, removing empty folder</string> + <string name="Marketplace Validation Error Stock Item">: Error: no-copy items must be contained by a stock folder</string> + <string name="Marketplace Validation Warning Unwrapped Item">: Warning: items must be contained by a version folder</string> + <string name="Marketplace Validation Error">: Error: </string> + <string name="Marketplace Validation Warning">: Warning: </string> + <string name="Marketplace Validation Error Empty Version">: Warning: version folder must contain at least 1 item</string> + <string name="Marketplace Validation Error Empty Stock">: Warning: stock folder must contain at least 1 item</string> + + <string name="Marketplace Validation No Error">No errors or warnings to report</string> <string name="Marketplace Error None">No errors</string> - <string name="Marketplace Error Not Merchant">Error: Before sending items to the Marketplace you will need to set yourself up as a merchant (free of charge).</string> - <string name="Marketplace Error Empty Folder">Error: This folder has no contents.</string> - <string name="Marketplace Error Unassociated Products">Error: This item failed to upload because your merchant account has too many items unassociated with products. To fix this error, log in to the marketplace website and reduce your unassociated item count.</string> - - <string name="Marketplace Error Object Limit">Error: This item contains too many objects. Fix this error by placing objects together in boxes to reduce the total count to less than 200.</string> - <string name="Marketplace Error Folder Depth">Error: This item contains too many levels of nested folders. Reorganize it to a maximum of 3 levels of nested folders.</string> - <string name="Marketplace Error Unsellable Item">Error: This item can not be sold on the marketplace.</string> - <string name="Marketplace Error Internal Import">Error: There was a problem with this item. Try again later.</string> + <string name="Marketplace Error Prefix">Error: </string> + <string name="Marketplace Error Not Merchant">Before sending items to the Marketplace you will need to set yourself up as a merchant (free of charge).</string> + <string name="Marketplace Error Not Accepted">Cannot move item in that folder.</string> + <string name="Marketplace Error Unsellable Item">This item cannot be sold on the Marketplace.</string> + + <string name="MarketplaceNoID">no Mkt ID</string> + <string name="MarketplaceLive">listed</string> + <string name="MarketplaceActive">active</string> + <string name="MarketplaceMax">max</string> + <string name="MarketplaceStock">stock</string> + <string name="MarketplaceNoStock">out of stock</string> + <string name="MarketplaceUpdating">updating...</string> <string name="Open landmarks">Open landmarks</string> <string name="Unconstrained">Unconstrained</string> @@ -2497,8 +2535,8 @@ The [[MARKETPLACE_CREATE_STORE_URL] Marketplace store] is returning errors. <string name="CompileQueueProblemDownloading">Problem downloading</string> <string name="CompileQueueInsufficientPermDownload">Insufficient permissions to download a script.</string> <string name="CompileQueueInsufficientPermFor">Insufficient permissions for</string> - <string name="CompileQueueUnknownFailure">Unknown failure to download</string> - <string name="CompileNoExperiencePerm">Skipping script [SCRIPT] with Experience [EXPERIENCE].</string> + <string name="CompileQueueUnknownFailure">Unknown failure to download</string> + <string name="CompileNoExperiencePerm">Skipping script [SCRIPT] with Experience [EXPERIENCE].</string> <string name="CompileQueueTitle">Recompilation Progress</string> <string name="CompileQueueStart">recompile</string> <string name="ResetQueueTitle">Reset Progress</string> @@ -3954,6 +3992,7 @@ Try enclosing path to the editor with double quotes. <string name="Command_Inventory_Label">Inventory</string> <string name="Command_Map_Label">Map</string> <string name="Command_Marketplace_Label">Marketplace</string> + <string name="Command_MarketplaceListings_Label">Marketplace</string> <string name="Command_MiniMap_Label">Mini-map</string> <string name="Command_Move_Label">Walk / run / fly</string> <string name="Command_Outbox_Label">Merchant outbox</string> @@ -3984,6 +4023,7 @@ Try enclosing path to the editor with double quotes. <string name="Command_Inventory_Tooltip">View and use your belongings</string> <string name="Command_Map_Tooltip">Map of the world</string> <string name="Command_Marketplace_Tooltip">Go shopping</string> + <string name="Command_MarketplaceListings_Tooltip">Sell your creation</string> <string name="Command_MiniMap_Tooltip">Show nearby people</string> <string name="Command_Move_Tooltip">Moving your avatar</string> <string name="Command_Outbox_Tooltip">Transfer items to your marketplace for sale</string> diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml b/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml index d5b10e7f51..92f815d4bf 100755 --- a/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml +++ b/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml @@ -1,3 +1,2 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<inbox_inventory_panel show_load_status="false" - start_folder.type="inbox"/> +<inbox_inventory_panel start_folder.type="inbox"/> diff --git a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml index eaf148c5e4..d5efd723c4 100755 --- a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml +++ b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml @@ -3,7 +3,6 @@ bg_opaque_color="InventoryBackgroundColor" background_visible="true" background_opaque="true" - show_load_status="true" accepts_drag_and_drop="true" > <scroll diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml index e0a2375067..9bf485ce40 100755 --- a/indra/newview/skins/default/xui/es/floater_about.xml +++ b/indra/newview/skins/default/xui/es/floater_about.xml @@ -1,82 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="ACERCA DE [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Compilado con [COMPILER], versión [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Estás en la posición [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] de [REGION], alojada en <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(coordenadas globales [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -Memoria: [MEMORY_MB] MB -Versión del Sistema Operativo: [OS_VERSION] -Fabricante de la tarjeta gráfica: [GRAPHICS_CARD_VENDOR] -Tarjeta gráfica: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Versión de Windows Graphics Driver: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - Versión de OpenGL: [OPENGL_VERSION] - -Versión de libcurl: [LIBCURL_VERSION] -Versión de J2C Decoder: [J2C_VERSION] -Versión de Audio Driver: [AUDIO_DRIVER_VERSION] -Versión de Qt Webkit: [QT_WEBKIT_VERSION] -Versión del servidor de voz: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (no hay) - </floater.string> - <floater.string name="AboutTraffic"> - Paquetes perdidos: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Error al obtener la URL de las notas de la versión del servidor. - </floater.string> <tab_container name="about_tab"> <panel label="Información" name="support_panel"> <button label="Copiar al portapapeles" name="copy_btn" width="165"/> </panel> <panel label="Créditos" name="credits_panel"> - <text name="linden_intro"> - Second Life ofrecido por los Lindens: - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - con contribuciones de código abierto de: - </text> - <text_editor name="contrib_names"> - Dummy Name sustituido durante la ejecución - </text_editor> - <text name="trans_intro"> - y traducido por: - </text> - <text_editor name="trans_names"> - Dummy Name sustituido durante la ejecución - </text_editor> + <text name="linden_intro">Second Life ofrecido por los Lindens, +con contribuciones de código abierto de:</text> + <text_editor name="contrib_names">Dummy Name sustituido durante la ejecución</text_editor> </panel> <panel label="Licencias" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. - FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg. + FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm y Werner Lemberg. GL Copyright (C) 1999-2004 Brian Paul. - GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia. + GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University y David Luebke, Brenden Schubert, University of Virginia. google-perftools Copyright (c) 2005, Google Inc. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) @@ -87,7 +29,7 @@ Versión del servidor de voz: [VOICE_VERSION] SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi Copyright (C) 2000 Epinions, Inc. - zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. + zlib Copyright (C) 1995-2012 Jean-loup Gailly y Mark Adler. El visor de Second Life usa Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (y sus licenciadores). Reservados todos los derechos. Vea los detalles en www.havok.com. @@ -95,8 +37,7 @@ Versión del servidor de voz: [VOICE_VERSION] Reservados todos los derechos. Consulte los detalles en licenses.txt. - Codificación del audio del chat de voz: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Codificación del audio del chat de voz: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_associate_listing.xml b/indra/newview/skins/default/xui/es/floater_associate_listing.xml new file mode 100644 index 0000000000..128382b277 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="ASOCIAR ARTÍCULOS"> + <text name="message">Id. de artículos:</text> + <line_editor name="listing_id">Escribe aquí el Id.</line_editor> + <button label="OK" name="OK"/> + <button label="Cancelar" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/es/floater_edit_hover_height.xml new file mode 100644 index 0000000000..d2130228bc --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="CONFIGURAR ALTURA DEL AVATAR"> + <slider label="Altura" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml index bf84c3d808..a8a3ad08f8 100755 --- a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="PROPIEDADES DEL ÍTEM DEL INVENTARIO"> - <floater.string name="unknown"> - (desconocido) - </floater.string> - <floater.string name="public"> - (público) - </floater.string> - <floater.string name="you_can"> - Usted puede: - </floater.string> - <floater.string name="owner_can"> - El propietario puede: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local][day,datetime,local] [mth,datetime,local] [year,datetime,local][hour,datetime,local]:[min,datetime,local]:[second,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Nombre: - </text> - <text name="LabelItemDescTitle"> - Descripción: - </text> - <text name="LabelCreatorTitle"> - Creador: - </text> + <floater.string name="unknown">(desconocido)</floater.string> + <floater.string name="public">(público)</floater.string> + <floater.string name="you_can">Usted puede:</floater.string> + <floater.string name="owner_can">El propietario puede:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local][day,datetime,local] [mth,datetime,local] [year,datetime,local][hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Nombre:</text> + <text name="LabelItemDescTitle">Descripción:</text> + <text name="LabelCreatorTitle">Creador:</text> <button label="Perfil..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Propietario: - </text> + <text name="LabelOwnerTitle">Propietario:</text> <button label="Perfil..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Adquirido: - </text> - <text name="LabelAcquiredDate"> - May Mié 24 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Tú: - </text> + <text name="LabelAcquiredTitle">Adquirido:</text> + <text name="LabelAcquiredDate">May Mié 24 12:50:46 2006</text> + <text name="OwnerLabel">Tú:</text> <check_box label="Editar" name="CheckOwnerModify"/> <check_box label="Copiarlo" left_delta="88" name="CheckOwnerCopy"/> <check_box label="Revender" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Cualquiera: - </text> + <text name="AnyoneLabel">Cualquiera:</text> <check_box label="Copiar" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Grupo: - </text> + <text name="GroupLabel">Grupo:</text> <check_box label="Compartir" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="230"> - Próximo propietario: - </text> + <text name="NextOwnerLabel" width="230">Próximo propietario:</text> <check_box label="Editar" name="CheckNextOwnerModify"/> <check_box label="Copiarlo" left_delta="88" name="CheckNextOwnerCopy"/> <check_box label="Revender" name="CheckNextOwnerTransfer"/> <check_box label="En venta" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> - <combo_box.item label="Copia" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="Copiar" name="Copy"/> + <combo_box.item label="Contenidos" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Precio:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_item_properties.xml b/indra/newview/skins/default/xui/es/floater_item_properties.xml new file mode 100644 index 0000000000..b5fd595c24 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="PROPIEDADES DEL ARTÍCULO"/> diff --git a/indra/newview/skins/default/xui/es/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/es/floater_marketplace_listings.xml new file mode 100644 index 0000000000..2869af87f3 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="ARTÍCULOS DEL MERCADO"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Cargando...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/es/floater_marketplace_validation.xml new file mode 100644 index 0000000000..aab4b223dc --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Auditar artículos del Mercado"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_openobject.xml b/indra/newview/skins/default/xui/es/floater_openobject.xml index e350479e01..ab5bec3301 100755 --- a/indra/newview/skins/default/xui/es/floater_openobject.xml +++ b/indra/newview/skins/default/xui/es/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Copiar en el inventario" label_selected="Copiar en el inventario" name="copy_to_inventory_button"/> - <button label="Copiar y añadir al vestuario" label_selected="Copiar y añadir al vestuario" name="copy_and_wear_button"/> + <text name="border_note"> + Copiar en el inventario y vestir + </text> + <button label="Añadir a vestuario" label_selected="Añadir a vestuario" name="copy_and_wear_button"/> + <button label="Reemplazar vestuario" label_selected="Reemplazar vestuario" name="copy_and_replace_button"/> + <button label="Solo copiar en el inventario" label_selected="Solo copiar en el inventario" name="copy_to_inventory_button"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_pay.xml b/indra/newview/skins/default/xui/es/floater_pay.xml index ad9a43ad71..567f980446 100755 --- a/indra/newview/skins/default/xui/es/floater_pay.xml +++ b/indra/newview/skins/default/xui/es/floater_pay.xml @@ -1,26 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - Pagar al grupo - </string> - <string name="payee_resident"> - Pagar al residente - </string> - <text left="5" name="payee_label" width="105"> - Pagar: - </text> - <icon name="icon_person" tool_tip="Persona"/> - <text left="115" name="payee_name"> - Nombre de prueba demasiado largo para comprobar la función de recorte - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text left="4" name="amount text"> - O elige cuánto: - </text> - <line_editor left="60" name="amount" width="55"/> - <button label="Pagar" label_selected="Pagar" name="pay btn"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + <string name="payee_group">Pagar al grupo</string> + <string name="payee_resident">Pagar al residente</string> + <text name="paying_text">Vas a pagar:</text> + <text left="115" name="payee_name">Nombre de prueba demasiado largo para comprobar la función de recorte</text> + <panel label="Buscar" name="PatternsPanel"> + <button label="Pagar 1 L$" label_selected="Pagar 1 L$" name="fastpay 1"/> + <button label="Pagar 5 L$" label_selected="Pagar 5 L$" name="fastpay 5"/> + <button label="Pagar 10 L$" label_selected="Pagar 10 L$" name="fastpay 10"/> + <button label="Pagar 20 L$" label_selected="Pagar 20 L$" name="fastpay 20"/> + </panel> + <panel label="Buscar" name="InputPanel"> + <text name="amount text">Otra cantidad:</text> + <button label="Pagar" label_selected="Pagar" name="pay btn"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_pay_object.xml b/indra/newview/skins/default/xui/es/floater_pay_object.xml index 4767f4dfa0..8a5b028927 100755 --- a/indra/newview/skins/default/xui/es/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/es/floater_pay_object.xml @@ -1,29 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string left="5" name="payee_group" width="110"> - Pagar al grupo - </string> - <string left="5" name="payee_resident" width="110"> - Pagar al residente - </string> - <icon name="icon_person" tool_tip="Persona"/> - <text left="120" name="payee_name" width="180"> - Ericacita Moostopolison - </text> - <text left="5" name="object_name_label" width="110"> - A través del objeto: - </text> + <string left="5" name="payee_group" width="110">Pagar al grupo</string> + <string left="5" name="payee_resident" width="110">Pagar al residente</string> + <text name="paying_text">Vas a pagar:</text> + <text left="120" name="payee_name" width="180">Ericacita Moostopolison</text> + <text left="5" name="object_name_label" width="110">A través del objeto:</text> <icon name="icon_object" tool_tip="Objetos"/> - <text left="120" name="object_name_text" width="180"> - El muy largo nombre de mi objeto - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text name="amount text"> - O elige cuánto: - </text> - <button label="Pagar" label_selected="Pagar" name="pay btn"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + <text left="120" name="object_name_text" width="180">El muy largo nombre de mi objeto</text> + <panel label="Buscar" name="PatternsPanel"> + <button label="Pagar 1 L$" label_selected="Pagar 1 L$" name="fastpay 1"/> + <button label="Pagar 5 L$" label_selected="Pagar 5 L$" name="fastpay 5"/> + <button label="Pagar 10 L$" label_selected="Pagar 10 L$" name="fastpay 10"/> + <button label="Pagar 20 L$" label_selected="Pagar 20 L$" name="fastpay 20"/> + </panel> + <panel label="Buscar" name="InputPanel"> + <text name="amount text">Otra cantidad:</text> + <button label="Pagar" label_selected="Pagar" name="pay btn"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/menu_attachment_self.xml b/indra/newview/skins/default/xui/es/menu_attachment_self.xml index 5acd0c327a..02819e6816 100755 --- a/indra/newview/skins/default/xui/es/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/es/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Mi apariencia" name="Change Outfit"/> <menu_item_call label="Editar mi vestuario" name="Edit Outfit"/> <menu_item_call label="Editar mi anatomía" name="Edit My Shape"/> + <menu_item_call label="Altura del avatar" name="Hover Height"/> <menu_item_call label="Mis amigos" name="Friends..."/> <menu_item_call label="Mis grupos" name="Groups..."/> <menu_item_call label="Mi perfil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/es/menu_avatar_self.xml b/indra/newview/skins/default/xui/es/menu_avatar_self.xml index 717b46ac74..d60a3434cf 100755 --- a/indra/newview/skins/default/xui/es/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/es/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Mi apariencia" name="Chenge Outfit"/> <menu_item_call label="Editar mi vestuario" name="Edit Outfit"/> <menu_item_call label="Editar mi anatomía" name="Edit My Shape"/> + <menu_item_call label="Altura del avatar" name="Hover Height"/> <menu_item_call label="Mis amigos" name="Friends..."/> <menu_item_call label="Mis grupos" name="Groups..."/> <menu_item_call label="Mi perfil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml index cd5bc7917d..5d108abf67 100755 --- a/indra/newview/skins/default/xui/es/menu_inventory.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Crear artículos" name="Marketplace Create Listing"/> + <menu_item_call label="Asociar artículos" name="Marketplace Associate Listing"/> + <menu_item_call label="Obtener (actualizar) artículos" name="Marketplace Get Listing"/> + <menu_item_call label="Comprobar errores" name="Marketplace Check Listing"/> + <menu_item_call label="Editar artículos" name="Marketplace Edit Listing"/> + <menu_item_call label="Incluir en la lista" name="Marketplace List"/> + <menu_item_call label="Retirar de la lista" name="Marketplace Unlist"/> + <menu_item_call label="Activar" name="Marketplace Activate"/> + <menu_item_call label="Desactivar" name="Marketplace Deactivate"/> <menu_item_call label="Compartir" name="Share"/> <menu_item_call label="Comprar" name="Task Buy"/> <menu_item_call label="Abrir" name="Task Open"/> @@ -86,6 +95,7 @@ <menu_item_call label="Añadir" name="Wearable Add"/> <menu_item_call label="Quitarse" name="Take Off"/> <menu_item_call label="Copiar al Buzón de salida de comerciante" name="Merchant Copy"/> - <menu_item_call label="Enviar al Mercado" name="Marketplace Send"/> + <menu_item_call label="Copiar en artículos del Mercado" name="Marketplace Copy"/> + <menu_item_call label="Mover a artículos del Mercado" name="Marketplace Move"/> <menu_item_call label="--sin opciones--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/es/menu_marketplace_view.xml b/indra/newview/skins/default/xui/es/menu_marketplace_view.xml new file mode 100644 index 0000000000..c46a9f490e --- /dev/null +++ b/indra/newview/skins/default/xui/es/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Ordenar por cantidad en stock (de baja a alta)" name="sort_by_stock_amount"/> + <menu_item_check label="Mostrar solamente las carpetas de artículos" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 797cf30387..5118171d80 100755 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -22,6 +22,7 @@ <menu_item_check label="No molestar" name="Do Not Disturb"/> </menu> <menu_item_call label="Comprar L$..." name="Buy and Sell L$"/> + <menu_item_call label="Artículos del Mercado..." name="MarketplaceListings"/> <menu_item_call label="Panel de control de la cuenta..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=es"/> </menu_item_call> @@ -249,6 +250,7 @@ <menu_item_check label="Texture Console" name="Texture Console"/> <menu_item_check label="Debug Console" name="Debug Console"/> <menu_item_call label="Notifications Console" name="Notifications"/> + <menu_item_check label="Consola de depuración de región" name="Region Debug Console"/> <menu_item_check label="Fast Timers" name="Fast Timers"/> <menu_item_check label="Memory" name="Memory"/> <menu_item_check label="Datos de la escena" name="Scene Statistics"/> @@ -324,7 +326,7 @@ <menu label="Red" name="Network"> <menu_item_check label="Pause Avatar" name="AgentPause"/> <menu_item_call label="Drop a Packet" name="Drop a Packet"/> - </menu> + </menu> <menu label="Mundo virtual" name="DevelopWorld"> <menu_item_check label="Anular el sol del Sim" name="Sim Sun Override"/> <menu_item_check label="Meteorología fija" name="Fixed Weather"/> diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index cc0d46bfe0..9578e1b863 100755 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -129,6 +129,88 @@ No se han enviado carpetas al Mercado a causa de un error del sistema o de la re La inicialización del mercado ha fallado por un error del sistema o de la red. Vuelve a intentarlo más tarde. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Ha ocurrido el siguiente error al copiar o mover a la carpeta de stock: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Ha ocurrido el siguiente error al copiar o mover a artículos del Mercado: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + La transacción con el Mercado ha fallado por el siguiente error: + + Motivo: '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + No hemos podido incluir este producto en tus artículos o activar la carpeta de versión. Normalmente esto ocurre porque falta información en el formulario de descripción de los artículos, aunque también puede deberse a errores en la estructura de carpetas. Puedes editar los artículos o comprobar si la carpeta de artículos tiene algún error. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Ha ocurrido el siguiente error en la lista de artículos del Mercado: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Ha ocurrido el siguiente error al activar esta carpeta de versión: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Esta acción cambiará el contenido activo de esta lista de artículos. ¿Quieres continuar? + <usetemplate ignoretext="Confirmar antes de que cambie una lista de artículos activa en el Mercado" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Los artículos arrastrados a la ventana Artículos del mercado se mueven desde sus ubicaciones originales, no se copian. ¿Quieres continuar? + <usetemplate ignoretext="Confirmar antes de mover un artículo desde el inventario al Mercado" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Al mover o eliminar una carpeta de artículos, se eliminarán tus artículos del Mercado. Si deseas conservar los artículos del Mercado, mueve o elimina el contenido de la carpeta de versión que desees modificar. ¿Quieres continuar? + <usetemplate ignoretext="Confirmar antes de que mueva o elimine una lista de artículos del Mercado" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + No tienes permiso para copiar uno o varios de estos artículos en el Mercado. Puedes moverlos o dejártelos. + <usetemplate canceltext="Cancelar" ignoretext="Confirmar cuando intente copiar una selección que contiene artículos que no se pueden copiar en el Mercado" name="yesnocancelbuttons" notext="No mover objeto(s)" yestext="Mover objeto(s)"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Esta acción retirará esta lista de artículos. ¿Quieres continuar? + <usetemplate ignoretext="Confirmar antes de que retire una lista de artículos activa en el Mercado" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Esta acción desactivará la carpeta de versión de la lista de artículos actual. ¿Quieres continuar? + <usetemplate ignoretext="Confirmar antes de que desactive la carpeta de versión de una lista de artículos del Mercado" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + No se ha podido actualizar esta lista de artículos. +[[URL] Haz clic aquí] para editarla en el Mercado. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + No puedes ponerte prendas ni partes del cuerpo que se encuentren en la carpeta Artículos del mercado. + </notification> + <notification name="AlertMerchantListingInvalidID"> + Id. de lista de artículos no válida + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Esta lista de artículos contiene varias carpetas de versión o ninguna. Tendrás que seleccionar y activar una por tu cuenta más tarde. + <usetemplate ignoretext="Mostrar una alerta de la activación de la carpeta de versión cuando cree una lista de artículos con varias carpetas de versión" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Hemos separado los artículos en stock de diferentes tipos en carpetas distintas, para que tu carpeta esté organizada de tal forma que podamos incluirla en el Mercado. + <usetemplate ignoretext="Mostrar alerta cuando la carpeta de stock se divida antes de incluirla en la lista" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Hemos retirado tu lista de artículos porque el stock está vacío. Para volver a publicar tus artículos, añade más unidades a la carpeta de stock. + <usetemplate ignoretext="Mostrar alerta cuando una lista de artículos se retire porque la carpeta de stock está vacía" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtalo más tarde. </notification> @@ -468,6 +550,10 @@ o hacer una puja? ¿Guardar los cambios? <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardar" yestext="Guardar"/> </notification> + <notification name="DeleteNotecard"> + ¿Deseas borrar la nota? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Fallo al guardar el gesto. Este gesto tiene demasiados pasos. @@ -1877,6 +1963,9 @@ Se cambiarán miles de regiones, y se provocará un colapso en el espacio del se Tus preferencias de contenido actuales te impiden visitar la región que has seleccionado. Puedes cambiar las preferencias en Yo > Preferencias > General. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> La región que intentas visitar tiene un contenido [REGIONMATURITY], que solo es accesible para los adultos. <url name="url"> @@ -2165,6 +2254,10 @@ Dado que estos objetos tienen scripts, moverlos a tu inventario puede provocar u <ignore name="ignore" text="He establecido la acción 'Pagar al objeto' cuando construyo uno sin un script money()"/> </form> </notification> + <notification name="PayConfirmation"> + Confirma que deseas pagar L$[AMOUNT] a [TARGET]. + <usetemplate ignoretext="Confirmar antes de pagar (sumas mayores de 200 L$)" name="okcancelignore" notext="Cancelar" yestext="Pagar"/> + </notification> <notification name="OpenObjectCannotCopy"> En este objeto, no hay ítems que estés autorizado a copiar. </notification> @@ -3840,9 +3933,11 @@ Prueba otra vez dentro de un minuto. </notification> <notification name="TeleportedByAttachment"> Has sido teleportado por un anexo de [ITEM_ID] + <usetemplate ignoretext="Teleportarme: has sido teleportado por un anexo" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Has sido teleportado por el objeto '[OBJECT_NAME]' de la parcela '[PARCEL_NAME]' + <usetemplate ignoretext="Teleportarme: has sido teleportado por un objeto de una parcela" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Has sido teleportado por el objeto '[OBJECT_NAME]' que es propiedad de [OWNER_ID] @@ -4174,7 +4269,7 @@ Prueba a seleccionar un terreno más pequeño. <usetemplate ignoretext="No se pueden mover los archivos. Ruta anterior restaurada." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Ha ocurrido un problema al guardar los permisos predeterminados por el siguiente motivo: [REASON]. Intenta configurar los permisos predeterminados más adelante. + Ha ocurrido un problema al guardar los permisos de objeto predeterminados: [REASON]. Intenta configurar los permisos predeterminados más adelante. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml index 253d0800e1..5300fce153 100755 --- a/indra/newview/skins/default/xui/es/panel_login.xml +++ b/indra/newview/skins/default/xui/es/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=es - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=es</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Nombre de usuario" name="username_combo" tool_tip="El nombre de usuario que elegiste al registrarte, como bobsmith12 o Steller Sunshine"/> <line_editor label="Contraseña" name="password_edit"/> - <check_box label="Recordarme" name="remember_check"/> - <text name="forgot_password_text"> - Contraseña olvidada - </text> - <button label="Iniciar sesión" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - en mi última posición - </text> <combo_box label="Mis lugares favoritos" name="start_location_combo"> + <combo_box.item label="Mi última posición" name="MyLastLocation"/> <combo_box.item label="Mi Base" name="MyHome"/> </combo_box> - <button label="Iniciar sesión" name="connect_favorite_btn"/> - <line_editor label="Especifica una ubicación" name="location_edit"/> - <button label="Iniciar sesión" name="connect_location_btn"/> + <button label="Iniciar sesión" name="connect_btn"/> + <check_box label="Recordarme" name="remember_check"/> + <text name="forgot_password_text">Contraseña olvidada</text> <combo_box label="Seleccionar cuadrícula" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/es/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/es/panel_marketplace_listings.xml new file mode 100644 index 0000000000..d9cd93b349 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Mercado" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Opciones de vista/orden"/> + <button name="add_btn" tool_tip="Crear una carpeta de artículos nueva"/> + <button label="Comprobar errores" name="audit_btn" tool_tip="Comprobar tus artículos del Mercado"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Filtrar artículos del Mercado" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/es/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/es/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..77540aee39 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="TODOS" name="All Items" tool_tip="Arrastra y suelta aquí los artículos para incluirlos en la lista de artículos"/> diff --git a/indra/newview/skins/default/xui/es/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/es/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..ca8ff6aea9 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="INCLUIDOS EN LA LISTA" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/es/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/es/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..2606e035cd --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="SIN ASOCIAR" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/es/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/es/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..ea568cab8a --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="RETIRADOS DE LA LISTA" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml index 7eead3bc18..8ea56c5262 100755 --- a/indra/newview/skins/default/xui/es/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Pérdida de paquetes - </panel.string> - <panel.string name="bandwidth_tooltip"> - Ancho de banda - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - [AMT] L$ - </panel.string> + <panel.string name="packet_loss_tooltip">Pérdida de paquetes</panel.string> + <panel.string name="bandwidth_tooltip">Ancho de banda</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">[AMT] L$</panel.string> <panel left="-410" name="balance_bg" width="200"> - <text name="balance" tool_tip="Haz clic para actualizar tu saldo en L$" value="20 L$"/> + <text name="balance" tool_tip="Haz clic para actualizar tu saldo en L$" value="L$??"/> <button label="Comprar L$" name="buyL" tool_tip="Pulsa para comprar más L$"/> <button label="Comprar" name="goShop" tool_tip="Abrir el mercado de Second Life" width="80"/> </panel> - <text name="TimeText" tool_tip="Hora actual (Pacífico)"> - 24:00 AM PST - </text> + <text name="TimeText" tool_tip="Hora actual (Pacífico)">24:00 AM PST</text> <button name="media_toggle_btn" tool_tip="Iniciar/Parar todos los media (música, vídeo, páginas web)"/> <button name="volume_btn" tool_tip="Control general del volumen"/> </panel> diff --git a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml index 94c8011768..8132bbdb1b 100755 --- a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Transferir" name="CheckNextOwnerTransfer" tool_tip="El próximo propietario puede dar o revender este objeto"/> </panel> <check_box label="En venta" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Copiar" name="Copy"/> + <combo_box.item label="Contenidos" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Precio: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml index cb061796e7..b9c8139f16 100755 --- a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Perfil del objeto"> - <panel.string name="text deed continued"> - Transferir - </panel.string> - <panel.string name="text deed"> - Transferir - </panel.string> - <panel.string name="text modify info 1"> - Puedes modificar este objeto - </panel.string> - <panel.string name="text modify info 2"> - Puedes modificar estos objetos - </panel.string> - <panel.string name="text modify info 3"> - No puedes modificar este objeto - </panel.string> - <panel.string name="text modify info 4"> - No puedes modificar estos objetos - </panel.string> - <panel.string name="text modify info 5"> - No se puede modificar este objeto a través del límite de una región - </panel.string> - <panel.string name="text modify info 6"> - No se pueden modificar estos objetos a través del límite de una región - </panel.string> - <panel.string name="text modify warning"> - Este objeto tiene partes enlazadas - </panel.string> - <panel.string name="Cost Default"> - Precio: L$ - </panel.string> - <panel.string name="Cost Total"> - Precio total: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Price Per: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Mixed Price - </panel.string> - <panel.string name="Sale Mixed"> - Mixed Sale - </panel.string> + <panel.string name="text deed continued">Transferir</panel.string> + <panel.string name="text deed">Transferir</panel.string> + <panel.string name="text modify info 1">Puedes modificar este objeto</panel.string> + <panel.string name="text modify info 2">Puedes modificar estos objetos</panel.string> + <panel.string name="text modify info 3">No puedes modificar este objeto</panel.string> + <panel.string name="text modify info 4">No puedes modificar estos objetos</panel.string> + <panel.string name="text modify info 5">No se puede modificar este objeto a través del límite de una región</panel.string> + <panel.string name="text modify info 6">No se pueden modificar estos objetos a través del límite de una región</panel.string> + <panel.string name="text modify warning">Este objeto tiene partes enlazadas</panel.string> + <panel.string name="Cost Default">Precio: L$</panel.string> + <panel.string name="Cost Total">Precio total: L$</panel.string> + <panel.string name="Cost Per Unit">Price Per: L$</panel.string> + <panel.string name="Cost Mixed">Mixed Price</panel.string> + <panel.string name="Sale Mixed">Mixed Sale</panel.string> <text name="title" value="Perfil del objeto"/> <text name="where" value="(En el mundo)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Nombre: - </text> - <text name="Description:"> - Descripción: - </text> - <text name="CreatorNameLabel"> - Creador: - </text> - <text name="Owner:"> - Propietario: - </text> - <text name="Group_label"> - Grupo: - </text> + <text name="Name:">Nombre:</text> + <text name="Description:">Descripción:</text> + <text name="CreatorNameLabel">Creador:</text> + <text name="Owner:">Propietario:</text> + <text name="Group_label">Grupo:</text> <button name="button set group" tool_tip="Elige un grupo con el que compartir los permisos de este objeto"/> <name_box initial_value="Cargando..." name="Group Name Proxy"/> <button label="Transferir" label_selected="Transferir" name="button deed" tool_tip="La transferencia entrega este objeto con los permisos del próximo propietario. Los objetos compartidos por el grupo pueden ser transferidos por un oficial del grupo."/> - <text name="label click action"> - Pulsa para: - </text> + <text name="label click action">Pulsa para:</text> <combo_box name="clickaction"> <combo_box.item label="Tocarlo (por defecto)" name="Touch/grab(default)"/> <combo_box.item label="Sentarme en el objeto" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Zoom" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Puedes modificar este objeto - </text> - <text name="Anyone can:"> - Cualquiera: - </text> + <text name="perm_modify">Puedes modificar este objeto</text> + <text name="Anyone can:">Cualquiera:</text> <check_box label="Copiar" name="checkbox allow everyone copy"/> <check_box label="Mover" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Grupo: - </text> + <text name="GroupLabel">Grupo:</text> <check_box label="Compartir" name="checkbox share with group" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación de este objeto. Debes transferirlo para activar las restricciones según los roles."/> - <text name="NextOwnerLabel"> - Próximo propietario: - </text> + <text name="NextOwnerLabel">Próximo propietario:</text> <check_box label="Modificar" name="checkbox next owner can modify"/> <check_box label="Copiar" name="checkbox next owner can copy"/> <check_box label="Transferir" name="checkbox next owner can transfer" tool_tip="El próximo propietario puede dar o revender este objeto"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Precio: L$" name="Edit Cost"/> <check_box label="Mostrar en la búsqueda" name="search_check" tool_tip="Permitir que la gente vea este objeto en los resultados de la búsqueda"/> - <text name="pathfinding_attributes_label"> - Atributos de pathfinding: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Atributos de pathfinding:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Abrir" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index cabb5ee67b..404aa1e60e 100755 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -445,28 +445,46 @@ Intenta iniciar sesión de nuevo en unos instantes. </string> <string name="TooltipPrice" value="[AMOUNT] L$:"/> <string name="TooltipOutboxDragToWorld"> - No puedes colocar objetos en tu buzón de salida de comerciante + No se pueden mostrar artículos desde la carpeta Artículos del mercado + </string> + <string name="TooltipOutboxWorn"> + Los artículos que tienes puestos no se pueden colocar en la carpeta Artículos del mercado + </string> + <string name="TooltipOutboxFolderLevels"> + La profundidad de carpetas anidadas excede de [AMOUNT]. Disminuye la profundidad de las carpetas anidadas; si es necesario, agrupa los artículos. + </string> + <string name="TooltipOutboxTooManyFolders"> + La cantidad de subcarpetas excede de [AMOUNT]. Disminuye la cantidad de carpetas de tu lista de artículos; si es necesario, agrupa los artículos. + </string> + <string name="TooltipOutboxTooManyObjects"> + La cantidad de artículos excede de [AMOUNT]. Para vender más de [AMOUNT] artículos en la misma lista, debes agrupar algunos. + </string> + <string name="TooltipOutboxTooManyStockItems"> + La cantidad de artículos en stock excede de [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Solo se pueden soltar artículos o carpetas en la pestaña TODOS. Selecciona esta pestaña y mueve otra vez los artículos o carpetas. </string> <string name="TooltipOutboxNoTransfer"> - Uno o varios de estos objetos no se pueden vender o transferir. + Uno o varios de estos objetos no se pueden vender o transferir </string> <string name="TooltipOutboxNotInInventory"> - Tu buzón de salida de comerciante sólo puede aceptar objetos procedentes directamente de tu inventario + Solo puedes colocar en el mercado artículos de tu inventario </string> - <string name="TooltipOutboxWorn"> - No puedes poner artículos que llevas puestos en el buzón de salida de comerciante + <string name="TooltipOutboxLinked"> + No puedes poner carpetas o artículos vinculados en el Mercado </string> <string name="TooltipOutboxCallingCard"> - No puedes poner tarjetas de visita en tu buzón de salida de comerciante + No puedes colocar tarjetas de visita en el Mercado </string> - <string name="TooltipOutboxFolderLevels"> - La profundidad de carpetas anidadas excede de 3 + <string name="TooltipOutboxDragActive"> + No se puede mover una lista de artículos publicada </string> - <string name="TooltipOutboxTooManyFolders"> - El número de subcarpetas de la carpeta de nivel superior excede de 20 + <string name="TooltipOutboxCannotMoveRoot"> + No se puede mover la carpeta raíz de artículos del Mercado </string> - <string name="TooltipOutboxTooManyObjects"> - El número de elementos de la carpeta de nivel superior excede de 200 + <string name="TooltipOutboxMixedStock"> + Todos los artículos de una carpeta de stock deben tener el mismo tipo y permiso </string> <string name="TooltipDragOntoOwnChild"> No puedes mover una carpeta a su carpeta secundaria @@ -1045,7 +1063,7 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="AgentNameSubst"> (Tú) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Suprimir alertas al gestionar las listas de acceso a un estado </string> @@ -1112,6 +1130,12 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="bitmap_image_files"> Imágenes de mapa de bits </string> + <string name="png_image_files"> + Imágenes PNG + </string> + <string name="save_texture_image_files"> + Imágenes Targa o PNG + </string> <string name="avi_movie_file"> Archivo de película AVI </string> @@ -1361,6 +1385,9 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="FavoritesNoMatchingItems"> Arrastra aquí un hito para tenerlo en tus favoritos. </string> + <string name="MarketplaceNoMatchingItems"> + No se han encontrado artículos. Comprueba si has escrito correctamente la cadena de búsqueda y vuelve a intentarlo. + </string> <string name="InventoryNoTexture"> No tienes en tu inventario una copia de esta textura </string> @@ -1408,29 +1435,95 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="InventoryOutboxError"> La [[MARKETPLACE_CREATE_STORE_URL] tienda del Mercado] devuelve errores. </string> + <string name="InventoryMarketplaceError"> + Esta función está actualmente en versión beta. Si quieres participar, añade tu nombre a este [http://goo.gl/forms/FCQ7UXkakz Formulario de Google]. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Tu carpeta Artículos del mercado está vacía. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Arrastra carpetas a esta sección para incluirlas en la lista de venta del [[MARKETPLACE_DASHBOARD_URL] Mercado]. + </string> + <string name="Marketplace Validation Warning Stock"> + La carpeta de stock debe estar contenida en una carpeta de versión + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Error: todos los artículos de una carpeta de stock deben ser del mismo tipo y que no se puedan copiar + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Error: la carpeta de stock no puede contener subcarpetas + </string> + <string name="Marketplace Validation Warning Empty"> + : Atención: la carpeta no contiene ningún artículo + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Atención: creando carpeta de stock + </string> + <string name="Marketplace Validation Warning Create Version"> + : Atención: creando la carpeta de versión + </string> + <string name="Marketplace Validation Warning Move"> + : Atención: moviendo artículos + </string> + <string name="Marketplace Validation Warning Delete"> + : Atención: se ha transferido el contenido de la carpeta a la carpeta de stock, y se eliminará la carpeta vacía + </string> + <string name="Marketplace Validation Error Stock Item"> + : Error: los artículos que no se pueden copiar deben estar contenidos en una carpeta de stock + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Atención: los artículos deben estar contenidos en una carpeta de versión + </string> + <string name="Marketplace Validation Error"> + : Error: + </string> + <string name="Marketplace Validation Warning"> + : Atención: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Atención: la carpeta de versión debe contener al menos un artículo + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Atención: la carpeta de stock debe contener al menos un artículo + </string> + <string name="Marketplace Validation No Error"> + No se han producido errores ni advertencias + </string> <string name="Marketplace Error None"> Sin errores </string> + <string name="Marketplace Error Prefix"> + Error: + </string> <string name="Marketplace Error Not Merchant"> - Error: Para poder enviar objetos al mercado, debes registrarte como comerciante (es gratis). + Para poder enviar objetos al mercado, debes registrarte como comerciante (es gratis). + </string> + <string name="Marketplace Error Not Accepted"> + No se puede mover el artículo a esa carpeta. </string> - <string name="Marketplace Error Empty Folder"> - Error: Esta carpeta está vacía. + <string name="Marketplace Error Unsellable Item"> + Este artículo no se puede vender en el Mercado. </string> - <string name="Marketplace Error Unassociated Products"> - Error: Este objeto no se pudo subir porque tu cuenta de comerciante tiene demasiados objetos que no están asociados a productos. Para corregirlo, inicia sesión en la página web del mercado y asocia más objetos. + <string name="MarketplaceNoID"> + no Mkt ID </string> - <string name="Marketplace Error Object Limit"> - Error: Este elemento contiene demasiados objetos. Para corregir el error, guarda objetos en cajas de forma que el total de objetos sea menor que 200. + <string name="MarketplaceLive"> + en la lista </string> - <string name="Marketplace Error Folder Depth"> - Error: Este objeto contiene demasiados niveles de carpetas anidadas. Reorganízalo de forma que tenga como máximo 3 niveles de carpetas anidadas. + <string name="MarketplaceActive"> + activa </string> - <string name="Marketplace Error Unsellable Item"> - Error: Este objeto no se puede vender en el mercado. + <string name="MarketplaceMax"> + máx. </string> - <string name="Marketplace Error Internal Import"> - Error: Este objeto tiene un problema. Vuelve a intentarlo más tarde. + <string name="MarketplaceStock"> + stock + </string> + <string name="MarketplaceNoStock"> + existencias agotadas + </string> + <string name="MarketplaceUpdating"> + actualizando... </string> <string name="Open landmarks"> Abrir hitos @@ -1451,6 +1544,7 @@ Intenta iniciar sesión de nuevo en unos instantes. No hay contenido </string> <string name="WornOnAttachmentPoint" value="(lo llevas en: [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (activo)"/> <string name="Chat Message" value="Chat:"/> <string name="Sound" value="Sonido :"/> @@ -1715,6 +1809,15 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="Invalid Attachment"> Punto de colocación no válido </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Error: falta un artículo + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Error: falta el artículo de base + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Error: el objeto se encuentra en el vestuario actual, pero no está anexado + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] de edad </string> @@ -1850,9 +1953,6 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="CompileQueueUnknownFailure"> Fallo desconocido en la descarga </string> - <string name="CompileNoExperiencePerm"> - Omitiendo el script [SCRIPT] con la experiencia [EXPERIENCE]. - </string> <string name="CompileQueueTitle"> Recompilando </string> @@ -1886,6 +1986,9 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="SaveComplete"> Guardado. </string> + <string name="UploadFailed"> + Error al subir el archivo: + </string> <string name="ObjectOutOfRange"> Script (objeto fuera de rango) </string> @@ -1895,6 +1998,9 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="GroupsNone"> ninguno </string> + <string name="CompileNoExperiencePerm"> + Omitiendo el script [SCRIPT] con la experiencia [EXPERIENCE]. + </string> <string name="Group" value="(grupo)"/> <string name="Unknown"> (Desconocido) @@ -4980,6 +5086,9 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas <string name="Command_Marketplace_Label"> Mercado </string> + <string name="Command_MarketplaceListings_Label"> + Mercado + </string> <string name="Command_MiniMap_Label"> Minimapa </string> @@ -5067,6 +5176,9 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas <string name="Command_Marketplace_Tooltip"> Ir de compras </string> + <string name="Command_MarketplaceListings_Tooltip"> + Vende tu creación + </string> <string name="Command_MiniMap_Tooltip"> Mostrar la gente que está cerca </string> @@ -5178,6 +5290,18 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas <string name="UserDictionary"> [Usuario] </string> + <string name="logging_calls_disabled_log_empty"> + No se están registrando las conversaciones. Para empezar a grabar un registro, elige "Guardar: Solo registro" o "Guardar: Registro y transcripciones" en Preferencias > Chat. + </string> + <string name="logging_calls_disabled_log_not_empty"> + No se registrarán más conversaciones. Para reanudar la grabación de un registro, elige "Guardar: Solo registro" o "Guardar: Registro y transcripciones" en Preferencias > Chat. + </string> + <string name="logging_calls_enabled_log_empty"> + No hay conversaciones grabadas. Después de contactar con una persona, o de que alguien contacte contigo, aquí se mostrará una entrada de registro. + </string> + <string name="loading_chat_logs"> + Cargando... + </string> <string name="experience_tools_experience"> Experiencia </string> @@ -5259,16 +5383,4 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas <string name="ExperiencePermissionShort12"> Otorgar permisos </string> - <string name="logging_calls_disabled_log_empty"> - No se están registrando las conversaciones. Para empezar a grabar un registro, elige "Guardar: Solo registro" o "Guardar: Registro y transcripciones" en Preferencias > Chat. - </string> - <string name="logging_calls_disabled_log_not_empty"> - No se registrarán más conversaciones. Para reanudar la grabación de un registro, elige "Guardar: Solo registro" o "Guardar: Registro y transcripciones" en Preferencias > Chat. - </string> - <string name="logging_calls_enabled_log_empty"> - No hay conversaciones grabadas. Después de contactar con una persona, o de que alguien contacte contigo, aquí se mostrará una entrada de registro. - </string> - <string name="loading_chat_logs"> - Cargando... - </string> </strings> diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml index 384966354e..08f26e60b4 100755 --- a/indra/newview/skins/default/xui/fr/floater_about.xml +++ b/indra/newview/skins/default/xui/fr/floater_about.xml @@ -1,74 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="À PROPOS DE [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Compilé avec [COMPILER] version [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Vous êtes à [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] dans [REGION], se trouvant à <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL : <nolink>[SLURL]</nolink> -(coordonnées globales [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU : [CPU] -Mémoire : [MEMORY_MB] Mo -Version OS : [OS_VERSION] -Distributeur de cartes graphiques : [GRAPHICS_CARD_VENDOR] -Cartes graphiques : [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Version Windows Graphics Driver : [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - Version OpenGL : [OPENGL_VERSION] - -Version libcurl : [LIBCURL_VERSION] -Version J2C Decoder : [J2C_VERSION] -Version Audio Driver : [AUDIO_DRIVER_VERSION] -Version Qt Webkit : [QT_WEBKIT_VERSION] -Version serveur vocal : [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (aucun) - </floater.string> - <floater.string name="AboutTraffic"> - Paquets perdus : [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Erreur lors de la récupération de l'URL des notes de version du serveur. - </floater.string> <tab_container name="about_tab"> <panel label="Infos" name="support_panel"> <button label="Copier dans le presse-papiers" name="copy_btn"/> </panel> <panel label="Remerciements" name="credits_panel"> - <text name="linden_intro"> - Second Life vous est proposé par les Linden : - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - Contributions Open Source : - </text> - <text_editor name="contrib_names"> - Dummy Name remplacé au moment de l'exécution - </text_editor> - <text name="trans_intro"> - Participation aux traductions : - </text> - <text_editor name="trans_names"> - Dummy Name remplacé au moment de l'exécution - </text_editor> + <text name="linden_intro">Second Life vous est proposé par les Linden, +avec les contributions Open Source de :</text> + <text_editor name="contrib_names">Dummy Name remplacé au moment de l'exécution</text_editor> </panel> <panel label="Licences" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -95,8 +37,7 @@ Version serveur vocal : [VOICE_VERSION] Tous droits réservés. Voir licenses.txt pour plus d'informations. - Codage audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Codage audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_associate_listing.xml b/indra/newview/skins/default/xui/fr/floater_associate_listing.xml new file mode 100644 index 0000000000..3c61cfe4ca --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="ASSOCIER L'ANNONCE"> + <text name="message">ID d'annonce :</text> + <line_editor name="listing_id">Saisir l'ID ici</line_editor> + <button label="OK" name="OK"/> + <button label="Annuler" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/fr/floater_edit_hover_height.xml new file mode 100644 index 0000000000..28e7e87193 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="DÉFINIR LA HAUTEUR DE SUSTENTATION"> + <slider label="Hauteur" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml index f2eb3cb6bc..1d4e7c818f 100755 --- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="PROPRIÉTÉS DES ARTICLES DE L'INVENTAIRE"> - <floater.string name="unknown"> - (inconnu) - </floater.string> - <floater.string name="public"> - (public) - </floater.string> - <floater.string name="you_can"> - Vous pouvez : - </floater.string> - <floater.string name="owner_can"> - Le propriétaire peut : - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Nom : - </text> - <text name="LabelItemDescTitle"> - Description : - </text> - <text name="LabelCreatorTitle"> - Créateur : - </text> + <floater.string name="unknown">(inconnu)</floater.string> + <floater.string name="public">(public)</floater.string> + <floater.string name="you_can">Vous pouvez :</floater.string> + <floater.string name="owner_can">Le propriétaire peut :</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Nom :</text> + <text name="LabelItemDescTitle">Description :</text> + <text name="LabelCreatorTitle">Créateur :</text> <button label="Profil..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Propriétaire : - </text> + <text name="LabelOwnerTitle">Propriétaire :</text> <button label="Profil..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Acquis : - </text> - <text name="LabelAcquiredDate"> - Wed May 24 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Vous : - </text> + <text name="LabelAcquiredTitle">Acquis :</text> + <text name="LabelAcquiredDate">Wed May 24 12:50:46 2006</text> + <text name="OwnerLabel">Vous :</text> <check_box label="Modifier" name="CheckOwnerModify"/> <check_box label="Copier" name="CheckOwnerCopy"/> <check_box label="Revendre" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel" width="80"> - N'importe qui : - </text> + <text name="AnyoneLabel" width="80">N'importe qui :</text> <check_box label="Copier" name="CheckEveryoneCopy"/> - <text name="GroupLabel" width="80"> - Groupe : - </text> + <text name="GroupLabel" width="80">Groupe :</text> <check_box label="Partager" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="192"> - Le prochain propriétaire : - </text> + <text name="NextOwnerLabel" width="192">Le prochain propriétaire :</text> <check_box label="Modifier" name="CheckNextOwnerModify"/> <check_box label="Copier" name="CheckNextOwnerCopy"/> <check_box label="Revendre" name="CheckNextOwnerTransfer"/> <check_box label="À vendre" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Copier" name="Copy"/> + <combo_box.item label="Contenu" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Prix :" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_item_properties.xml new file mode 100644 index 0000000000..5301e759ee --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="PROPRIÉTÉS DE L'ARTICLE"/> diff --git a/indra/newview/skins/default/xui/fr/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/fr/floater_marketplace_listings.xml new file mode 100644 index 0000000000..8488d17d00 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="ANNONCES DE LA PLACE DU MARCHÉ"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Chargement…</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/fr/floater_marketplace_validation.xml new file mode 100644 index 0000000000..01527800ac --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Auditer les annonces de la Place du marché"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_openobject.xml b/indra/newview/skins/default/xui/fr/floater_openobject.xml index ee969169d2..54edf92379 100755 --- a/indra/newview/skins/default/xui/fr/floater_openobject.xml +++ b/indra/newview/skins/default/xui/fr/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Copier dans l'inventaire" label_selected="Copier dans l'inventaire" name="copy_to_inventory_button" width="132"/> - <button label="Copier et ajouter à la tenue" label_selected="Copier et ajouter à la tenue" left="152" name="copy_and_wear_button"/> + <text name="border_note"> + Copier dans l'inventaire et porter + </text> + <button label="Ajouter à la tenue" label_selected="Ajouter à la tenue" left="152" name="copy_and_wear_button"/> + <button label="Remplacer la tenue" label_selected="Remplacer la tenue" name="copy_and_replace_button"/> + <button label="Copier uniquement dans l'inventaire" label_selected="Copier uniquement dans l'inventaire" name="copy_to_inventory_button" width="132"/> + <button label="Annuler" label_selected="Annuler" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml index 397436876d..bbd20e868c 100755 --- a/indra/newview/skins/default/xui/fr/floater_pay.xml +++ b/indra/newview/skins/default/xui/fr/floater_pay.xml @@ -1,26 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - Payer le groupe - </string> - <string name="payee_resident"> - Payer le résident - </string> - <text left="5" name="payee_label"> - Payer : - </text> - <icon name="icon_person" tool_tip="Résident"/> - <text name="payee_name"> - Test Name That Is Extremely Long To Check Clipping - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text left="4" name="amount text"> - Ou choisir un montant : - </text> - <line_editor left="60" name="amount" width="55"/> - <button label="Payer" label_selected="Payer" name="pay btn"/> - <button label="Annuler" label_selected="Annuler" name="cancel btn"/> + <string name="payee_group">Payer le groupe</string> + <string name="payee_resident">Payer le résident</string> + <text name="paying_text">Vous payez :</text> + <text name="payee_name">Test Name That Is Extremely Long To Check Clipping</text> + <panel label="Rechercher" name="PatternsPanel"> + <button label="Payer 1 L$" label_selected="Payer 1 L$" name="fastpay 1"/> + <button label="Payer 5 L$" label_selected="Payer 5 L$" name="fastpay 5"/> + <button label="Payer 10 L$" label_selected="Payer 10 L$" name="fastpay 10"/> + <button label="Payer 20 L$" label_selected="Payer 20 L$" name="fastpay 20"/> + </panel> + <panel label="Rechercher" name="InputPanel"> + <text name="amount text">Autre montant :</text> + <button label="Payer" label_selected="Payer" name="pay btn"/> + <button label="Annuler" label_selected="Annuler" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_pay_object.xml b/indra/newview/skins/default/xui/fr/floater_pay_object.xml index 966fa3b8a6..c98d2f7c0c 100755 --- a/indra/newview/skins/default/xui/fr/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/fr/floater_pay_object.xml @@ -1,30 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group" width="95"> - Payer le groupe - </string> - <string halign="left" name="payee_resident" width="100"> - Payer le résident - </string> - <icon name="icon_person" tool_tip="Résident"/> - <text left="105" name="payee_name"> - Ericacita Moostopolison - </text> - <text left="25" name="object_name_label"> - Via un objet : - </text> + <string name="payee_group" width="95">Payer le groupe</string> + <string halign="left" name="payee_resident" width="100">Payer le résident</string> + <text name="paying_text">Vous payez :</text> + <text left="105" name="payee_name">Ericacita Moostopolison</text> + <text left="25" name="object_name_label">Via un objet :</text> <icon name="icon_object" tool_tip="Objets"/> - <text left="105" name="object_name_text"> - ... - </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <text halign="left" left="5" name="amount text"> - Ou choisir un montant : - </text> - <line_editor left="65" name="amount" width="50"/> - <button label="Payer" label_selected="Payer" name="pay btn"/> - <button label="Annuler" label_selected="Annuler" name="cancel btn"/> + <text left="105" name="object_name_text">...</text> + <panel label="Rechercher" name="PatternsPanel"> + <button label="Payer 1 L$" label_selected="Payer 1 L$" name="fastpay 1"/> + <button label="Payer 5 L$" label_selected="Payer 5 L$" name="fastpay 5"/> + <button label="Payer 10 L$" label_selected="Payer 10 L$" name="fastpay 10"/> + <button label="Payer 20 L$" label_selected="Payer 20 L$" name="fastpay 20"/> + </panel> + <panel label="Rechercher" name="InputPanel"> + <text name="amount text">Autre montant :</text> + <button label="Payer" label_selected="Payer" name="pay btn"/> + <button label="Annuler" label_selected="Annuler" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml index f2e7928c24..1ccba08099 100755 --- a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Mon apparence" name="Change Outfit"/> <menu_item_call label="Modifier ma tenue" name="Edit Outfit"/> <menu_item_call label="Modifier ma silhouette" name="Edit My Shape"/> + <menu_item_call label="Hauteur de sustentation" name="Hover Height"/> <menu_item_call label="Mes amis" name="Friends..."/> <menu_item_call label="Mes groupes" name="Groups..."/> <menu_item_call label="Mon profil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml index 4815ad0676..1c768a078c 100755 --- a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Mon apparence" name="Chenge Outfit"/> <menu_item_call label="Modifier ma tenue" name="Edit Outfit"/> <menu_item_call label="Modifier ma silhouette" name="Edit My Shape"/> + <menu_item_call label="Hauteur de sustentation" name="Hover Height"/> <menu_item_call label="Mes amis" name="Friends..."/> <menu_item_call label="Mes groupes" name="Groups..."/> <menu_item_call label="Mon profil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml index 87b11bdaa5..c0808f1139 100755 --- a/indra/newview/skins/default/xui/fr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Créer une annonce" name="Marketplace Create Listing"/> + <menu_item_call label="Associer l'annonce" name="Marketplace Associate Listing"/> + <menu_item_call label="Obtenir (actualiser) l'annonce" name="Marketplace Get Listing"/> + <menu_item_call label="Consultez les erreurs" name="Marketplace Check Listing"/> + <menu_item_call label="Modifier l'annonce" name="Marketplace Edit Listing"/> + <menu_item_call label="Publier" name="Marketplace List"/> + <menu_item_call label="Ne plus publier" name="Marketplace Unlist"/> + <menu_item_call label="Activer" name="Marketplace Activate"/> + <menu_item_call label="Désactiver" name="Marketplace Deactivate"/> <menu_item_call label="Partager" name="Share"/> <menu_item_call label="Acheter" name="Task Buy"/> <menu_item_call label="Ouvrir" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Ajouter" name="Wearable Add"/> <menu_item_call label="Enlever" name="Take Off"/> <menu_item_call label="Copier vers la boîte d'envoi vendeur" name="Merchant Copy"/> - <menu_item_call label="Envoyer vers la Place du marché" name="Marketplace Send"/> + <menu_item_call label="Copier dans les annonces Place du marché" name="Marketplace Copy"/> + <menu_item_call label="Déplacer dans les annonces Place du marché" name="Marketplace Move"/> <menu_item_call label="--aucune option--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/fr/menu_marketplace_view.xml b/indra/newview/skins/default/xui/fr/menu_marketplace_view.xml new file mode 100644 index 0000000000..a63e2082b7 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Trier par volume de stock (de bas à élevé)" name="sort_by_stock_amount"/> + <menu_item_check label="Afficher uniquement les dossiers d'annonces" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml index 9a4d721bc3..33b2ba6982 100755 --- a/indra/newview/skins/default/xui/fr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="Acheter des L$..." name="Buy and Sell L$"/> <menu_item_call label="Boîte d'envoi vendeur..." name="MerchantOutbox"/> + <menu_item_call label="Annonces de Place du marché..." name="MarketplaceListings"/> <menu_item_call label="Page d'accueil du compte..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=fr"/> </menu_item_call> @@ -251,6 +252,7 @@ <menu_item_check label="Console de textures" name="Texture Console"/> <menu_item_check label="Console de débogage" name="Debug Console"/> <menu_item_call label="Console de notifications" name="Notifications"/> + <menu_item_check label="Console de débogage de région" name="Region Debug Console"/> <menu_item_check label="Chronos" name="Fast Timers"/> <menu_item_check label="Mémoire" name="Memory"/> <menu_item_check label="Statistiques de la scène" name="Scene Statistics"/> @@ -354,7 +356,7 @@ <menu_item_check label="Interpolation ping des positions des objets" name="Ping Interpolate Object Positions"/> <menu_item_call label="Abandonner un paquet" name="Drop a Packet"/> </menu> - <menu_item_call label="Dump caméra scriptée" name="Dump Scripted Camera"/> + <menu_item_call label="Dump caméra scriptée" name="Dump Scripted Camera"/> <menu label="Enregistreur" name="Recorder"> <menu_item_call label="Commencer la lecture" name="Start Playback"/> <menu_item_call label="Arrêter la lecture" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index 28689a93d6..f13a80fe61 100755 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -129,6 +129,88 @@ Aucun dossier n'a été envoyé vers la Place du marché en raison d'u L'initialisation de la Place du marché a échoué en raison d'une erreur système ou réseau. Réessayez ultérieurement. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Échec de la copie ou du déplacement vers le dossier de stock. Erreur : + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Échec de la copie ou du déplacement vers les annonces Place du marché. Erreur : + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + La transaction avec la Place du marché a échoué en raison de l'erreur suivante : + + Motif : '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Nous ne pouvons pas publier ce produit ni activer le dossier de version. Cela est en général dû à des informations manquantes dans le formulaire de description de l'annonce, mais parfois à cause d'erreurs dans la structure du dossier. Modifiez l'annonce ou consultez les erreurs du dossier de l'annonce. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Échec de la publication d'une annonce sur la Place du marché. Erreur : + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Échec de l'activation de ce dossier de version. Erreur : + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Cette action va modifier le contenu actif de cette annonce. Voulez-vous continuer ? + <usetemplate ignoretext="Confirmer avant que je ne modifie une annonce active sur la Place du marché" name="okcancelignore" notext="Annuler" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Les articles glissés vers la fenêtre Annonces de la Place du marché sont déplacés de leur emplacement d'origine, et non copiés. Voulez-vous continuer ? + <usetemplate ignoretext="Confirmer avant que je ne déplace un article de l'inventaire vers la Place du marché" name="okcancelignore" notext="Annuler" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Le déplacement ou la suppression d'un dossier d'annonces supprimera votre annonce de la Place du marché. Si vous souhaitez conserver l'annonce de la Place du marché, déplacez ou supprimez le contenu du dossier de version que vous souhaitez modifier. Voulez-vous continuer ? + <usetemplate ignoretext="Confirmer avant que je déplace ou supprime une annonce de la Place du marché" name="okcancelignore" notext="Annuler" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Vous n'êtes pas autorisé à copier un ou plusieurs de ces articles vers la Place du marché. Vous pouvez les déplacer ou les laisser. + <usetemplate canceltext="Annuler" ignoretext="Confirmer avant que je ne copie une sélection contenant des articles non reproductibles vers la Place du marché" name="yesnocancelbuttons" notext="Ne pas déplacer les articles" yestext="Déplacer les articles"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Cette action va annuler cette annonce. Voulez-vous continuer ? + <usetemplate ignoretext="Confirmer avant que j'annule une annonce active sur la Place du marché" name="okcancelignore" notext="Annuler" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Cette action va désactiver le dossier de version de l'annonce active. Voulez-vous continuer ? + <usetemplate ignoretext="Confirmer avant que je ne désactive le dossier de version d'une annonce de la Place du marché" name="okcancelignore" notext="Annuler" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Impossible de mettre à jour cette annonce. +[[URL] Cliquez ici] pour la modifier sur la Place du marché. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Vous ne pouvez pas porter de vêtements ou des parties du corps se trouvant dans le dossier Annonces de la Place du marché. + </notification> + <notification name="AlertMerchantListingInvalidID"> + ID d'annonce non valide. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Il y a plusieurs dossiers de version (ou aucun) dans cette liste. Vous devrez en sélectionner et activer un indépendamment plus tard. + <usetemplate ignoretext="Alerter en cas d'activation du dossier de version lorsque je crée une annonce avec plusieurs dossiers de version" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Nous avons classé les articles du stock de types différents dans des dossiers de stocks distincts ; votre dossier est organisé de telle façon que nous pouvons le répertorier. + <usetemplate ignoretext="Alerter lorsque le dossier de stock est divisé avant publication" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Nous avons retiré votre annonce car le stock est vide. Vous devez ajouter plus d'unités au dossier de stock pour publier à nouveau l'annonce. + <usetemplate ignoretext="Alerter lorsqu'une annonce n'est pas publiée parce que le dossier de stock est vide" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> Une erreur est survenue lors du chargement du texte pour un script, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement. </notification> @@ -472,6 +554,10 @@ Remarque : cela videra le cache. Enregistrer les changements ? <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Ne pas enregistrer" yestext="Enregistrer"/> </notification> + <notification name="DeleteNotecard"> + Supprimer la note ? + <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> L'enregistrement du geste a échoué. Il y a trop d'étapes dans ce geste. @@ -1867,6 +1953,9 @@ Cette action modifiera des milliers de régions et sera difficile à digérer po La région que vous essayez de visiter comporte du contenu dont le niveau dépasse celui de vos préférences actuelles. Vous pouvez modifier vos préférences en accédant à Moi > Préférences > Général. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> La région que vous essayez de visiter comporte du contenu [REGIONMATURITY] uniquement accessible aux adultes. <url name="url"> @@ -2155,6 +2244,10 @@ Déplacer les objets de l'inventaire ? <ignore name="ignore" text="Je définis l'action du clic Payer l'objet lorsque je construis un objet sans le script money()"/> </form> </notification> + <notification name="PayConfirmation"> + Confirmez que vous voulez payer [AMOUNT] L$ à [TARGET]. + <usetemplate ignoretext="Confirmez avant de payer (sommes supérieures à 200 L$)" name="okcancelignore" notext="Annuler" yestext="Payer"/> + </notification> <notification name="OpenObjectCannotCopy"> Vous n'êtes autorisé à copier aucun élément dans cet objet. </notification> @@ -3841,9 +3934,11 @@ Veuillez réessayer dans une minute. </notification> <notification name="TeleportedByAttachment"> Vous avez été téléporté par un élément sur [ITEM_ID] + <usetemplate ignoretext="Téléportation : vous avez été téléporté par un attachement." name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Vous avez été téléporté par l'objet [OBJECT_NAME] sur la parcelle [PARCEL_NAME]. + <usetemplate ignoretext="Téléportation : vous avez été téléporté par un objet sur une parcelle" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Vous avez été téléporté par l'objet [OBJECT_NAME] appartenant à [OWNER_ID]. @@ -4175,7 +4270,7 @@ Veuillez sélectionner un terrain plus petit. <usetemplate ignoretext="Impossible de déplacer les fichiers. Chemin précédent rétabli." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Une erreur est survenue lors de l'enregistrement des droits par défaut, suite au problème suivant : [REASON]. Réessayez de définir les droits par défaut ultérieurement. + Problème lors de l'enregistrement des droits d'objet par défaut : [REASON]. Réessayez de définir les droits par défaut ultérieurement. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml index b39920fe13..54c857fdc8 100755 --- a/indra/newview/skins/default/xui/fr/panel_login.xml +++ b/indra/newview/skins/default/xui/fr/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=fr - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=fr</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Nom d'utilisateur" name="username_combo" tool_tip="Nom d'utilisateur que vous avez choisi lors de votre inscription (par exemple, bobsmith12 ou Steller Sunshine)."/> <line_editor label="Mot de passe" name="password_edit"/> - <check_box label="Mémoriser mes informations" name="remember_check"/> - <text name="forgot_password_text"> - Mot de passe oublié - </text> - <button label="Connexion" name="connect_btn"/> - <text name="At_My_Last_Location_Label" font="SansSerifSmall" width="140"> - au dernier emplacement - </text> <combo_box label="Mes lieux préférés" name="start_location_combo"> + <combo_box.item label="Dernier emplacement" name="MyLastLocation"/> <combo_box.item label="Domicile" name="MyHome"/> </combo_box> - <button label="Connexion" name="connect_favorite_btn"/> - <line_editor label="Tapez un emplacement" name="location_edit"/> - <button label="Connexion" name="connect_location_btn"/> + <button label="Connexion" name="connect_btn"/> + <check_box label="Mémoriser mes informations" name="remember_check"/> + <text name="forgot_password_text">Mot de passe oublié</text> <combo_box label="Sélectionner la grille" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/fr/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/fr/panel_marketplace_listings.xml new file mode 100644 index 0000000000..46578182da --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Place du marché" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Options d'affichage/de tri"/> + <button name="add_btn" tool_tip="Créer un nouveau dossier d'annonces"/> + <button label="Consulter les erreurs" name="audit_btn" tool_tip="Consulter vos annonces de Place du marché"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Filtrer les annonces de Place du marché" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..fdee447a29 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="TOUT" name="All Items" tool_tip="Faire glisser les objets et les déposer ici pour les publier"/> diff --git a/indra/newview/skins/default/xui/fr/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..d3d476af6e --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="PUBLIÉS" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..95018e339f --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="DÉSASSOCIÉE" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..5d811af914 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NON PUBLIÉS" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/fr/panel_status_bar.xml b/indra/newview/skins/default/xui/fr/panel_status_bar.xml index ba36a7d299..e2f05a525e 100755 --- a/indra/newview/skins/default/xui/fr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/fr/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Perte de paquets - </panel.string> - <panel.string name="bandwidth_tooltip"> - Bande passante - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt] [sday, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - [AMT] L$ - </panel.string> + <panel.string name="packet_loss_tooltip">Perte de paquets</panel.string> + <panel.string name="bandwidth_tooltip">Bande passante</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt] [sday, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">[AMT] L$</panel.string> <panel left="-405" name="balance_bg" width="195"> - <text name="balance" tool_tip="Cliquer sur ce bouton pour actualiser votre solde en L$." value="20 L$"/> + <text name="balance" tool_tip="Cliquer sur ce bouton pour actualiser votre solde en L$." value="L$ ??"/> <button label="Acheter L$" name="buyL" tool_tip="Cliquer pour acheter plus de L$."/> <button label="Achats" name="goShop" tool_tip="Ouvrir la Place du marché Second Life." width="75"/> </panel> - <text name="TimeText" tool_tip="Heure actuelle (Pacifique)"> - 00h00 PST - </text> + <text name="TimeText" tool_tip="Heure actuelle (Pacifique)">00h00 PST</text> <button name="media_toggle_btn" tool_tip="Arrêter tous les médias (musique, vidéo, pages web)."/> <button name="volume_btn" tool_tip="Régler le volume global."/> </panel> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml index 502dc919b1..ede5ec08af 100755 --- a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Transférer" name="CheckNextOwnerTransfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet."/> </panel> <check_box label="À vendre" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Copier" name="Copy"/> + <combo_box.item label="Contenu" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Prix : L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml index 896dd932e3..f6b4f28046 100755 --- a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Profil de l'objet"> - <panel.string name="text deed continued"> - Céder - </panel.string> - <panel.string name="text deed"> - Céder - </panel.string> - <panel.string name="text modify info 1"> - Vous pouvez modifier cet objet - </panel.string> - <panel.string name="text modify info 2"> - Vous pouvez modifier ces objets - </panel.string> - <panel.string name="text modify info 3"> - Vous ne pouvez pas modifier cet objet - </panel.string> - <panel.string name="text modify info 4"> - Vous ne pouvez pas modifier ces objets - </panel.string> - <panel.string name="text modify info 5"> - Impossible de modifier cet objet au-delà de la frontière d'une région - </panel.string> - <panel.string name="text modify info 6"> - Impossible de modifier ces objets au-delà de la frontière d'une région - </panel.string> - <panel.string name="text modify warning"> - Cet objet comprend des parties liées - </panel.string> - <panel.string name="Cost Default"> - Prix : L$ - </panel.string> - <panel.string name="Cost Total"> - Prix total : L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Prix par : L$ - </panel.string> - <panel.string name="Cost Mixed"> - Prix mixte - </panel.string> - <panel.string name="Sale Mixed"> - Vente mixte - </panel.string> + <panel.string name="text deed continued">Céder</panel.string> + <panel.string name="text deed">Céder</panel.string> + <panel.string name="text modify info 1">Vous pouvez modifier cet objet</panel.string> + <panel.string name="text modify info 2">Vous pouvez modifier ces objets</panel.string> + <panel.string name="text modify info 3">Vous ne pouvez pas modifier cet objet</panel.string> + <panel.string name="text modify info 4">Vous ne pouvez pas modifier ces objets</panel.string> + <panel.string name="text modify info 5">Impossible de modifier cet objet au-delà de la frontière d'une région</panel.string> + <panel.string name="text modify info 6">Impossible de modifier ces objets au-delà de la frontière d'une région</panel.string> + <panel.string name="text modify warning">Cet objet comprend des parties liées</panel.string> + <panel.string name="Cost Default">Prix : L$</panel.string> + <panel.string name="Cost Total">Prix total : L$</panel.string> + <panel.string name="Cost Per Unit">Prix par : L$</panel.string> + <panel.string name="Cost Mixed">Prix mixte</panel.string> + <panel.string name="Sale Mixed">Vente mixte</panel.string> <text name="title" value="Profil de l'objet"/> <text name="where" value="(dans Second Life)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Nom : - </text> - <text name="Description:"> - Description : - </text> - <text name="CreatorNameLabel"> - Créateur : - </text> - <text name="Owner:"> - Propriétaire : - </text> - <text name="Group_label"> - Groupe : - </text> + <text name="Name:">Nom :</text> + <text name="Description:">Description :</text> + <text name="CreatorNameLabel">Créateur :</text> + <text name="Owner:">Propriétaire :</text> + <text name="Group_label">Groupe :</text> <button name="button set group" tool_tip="Choisir un groupe pour partager les droits relatifs à cet objet"/> <name_box initial_value="Chargement…" name="Group Name Proxy"/> <button label="Céder" label_selected="Céder" name="button deed" tool_tip="En cédant un objet, vous donnez aussi les droits au prochain propriétaire. Seul un officier peut céder les objets partagés d'un groupe."/> - <text name="label click action"> - Cliquer pour : - </text> + <text name="label click action">Cliquer pour :</text> <combo_box name="clickaction"> <combo_box.item label="Toucher (défaut)" name="Touch/grab(default)"/> <combo_box.item label="S'asseoir sur l'objet" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Zoom" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Vous pouvez modifier cet objet - </text> - <text name="Anyone can:"> - N'importe qui : - </text> + <text name="perm_modify">Vous pouvez modifier cet objet</text> + <text name="Anyone can:">N'importe qui :</text> <check_box label="Copier" name="checkbox allow everyone copy"/> <check_box label="Bouger" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Groupe : - </text> + <text name="GroupLabel">Groupe :</text> <check_box label="Partager" name="checkbox share with group" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d'abord cliquer sur Céder."/> - <text name="NextOwnerLabel"> - Le prochain propriétaire : - </text> + <text name="NextOwnerLabel">Le prochain propriétaire :</text> <check_box label="Modifier" name="checkbox next owner can modify"/> <check_box label="Copier" name="checkbox next owner can copy"/> <check_box label="Transférer" name="checkbox next owner can transfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Prix : L$" name="Edit Cost"/> <check_box label="Afficher avec la recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/> - <text name="pathfinding_attributes_label"> - Attributs de recherche de chemin : - </text> - <text name="B:"> - B : - </text> - <text name="O:"> - O : - </text> - <text name="G:"> - G : - </text> - <text name="E:"> - E : - </text> - <text name="N:"> - N : - </text> - <text name="F:"> - F : - </text> + <text name="pathfinding_attributes_label">Attributs de recherche de chemin :</text> + <text name="B:">B :</text> + <text name="O:">O :</text> + <text name="G:">G :</text> + <text name="E:">E :</text> + <text name="N:">N :</text> + <text name="F:">F :</text> </panel> <panel name="button_panel"> <button label="Ouvrir" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 8df13b2661..e462b805e3 100755 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -454,28 +454,46 @@ Veuillez réessayer de vous connecter dans une minute. </string> <string name="TooltipPrice" value="[AMOUNT] L$ :"/> <string name="TooltipOutboxDragToWorld"> - Impossible de rezzer des articles dans la boîte d'envoi vendeur + Vous ne pouvez pas rezzer (charger) des articles du dossier Annonces de la Place de marché + </string> + <string name="TooltipOutboxWorn"> + Vous ne pouvez pas mettre d'articles que vous portez dans le dossier Annonces de la Place du marché + </string> + <string name="TooltipOutboxFolderLevels"> + Le niveau de dossiers imbriqués dépasse [AMOUNT]. Diminuez le nombre de niveaux de dossiers imbriqués dans d'autres dossiers. Si nécessaire, placez certains articles dans une boîte. + </string> + <string name="TooltipOutboxTooManyFolders"> + Le nombre de sous-dossiers dépasse [AMOUNT]. Diminuez le nombre de sous-dossiers dans votre annonce. Si nécessaire, placez certains articles dans une boîte. + </string> + <string name="TooltipOutboxTooManyObjects"> + Le nombre d'articles dépasse [AMOUNT]. Pour pouvoir vendre plus de [AMOUNT] articles au sein d'une même annonce, vous devez placer certains de ces articles dans une boîte. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Le nombre d'articles de stock dépasse [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Vous ne pouvez déposer des articles ou des dossiers que dans l'onglet TOUT. Veuillez activer cet onglet et déplacer à nouveau article(s) et dossier(s). </string> <string name="TooltipOutboxNoTransfer"> - Impossible de vendre ou de transférer un ou plusieurs de ces objets. + Impossible de vendre ou de transférer un ou plusieurs de ces objets </string> <string name="TooltipOutboxNotInInventory"> - La boîte d'envoi vendeur n'accepte que les articles directement issus de votre inventaire. + Vous ne pouvez mettre sur la Place du marché que des articles de votre inventaire </string> - <string name="TooltipOutboxWorn"> - Impossible de placer des articles que vous portez dans votre boîte d'envoi vendeur + <string name="TooltipOutboxLinked"> + Vous ne pouvez pas mettre des articles ou dossiers liés sur la Place du marché </string> <string name="TooltipOutboxCallingCard"> - Impossible de placer des cartes de visite dans votre boîte d'envoi vendeur + Vous ne pouvez pas mettre des cartes de visite sur la Place du marché </string> - <string name="TooltipOutboxFolderLevels"> - Il existe plus de 3 niveaux de dossiers imbriqués. + <string name="TooltipOutboxDragActive"> + vous ne pouvez pas déplacer une annonce publiée </string> - <string name="TooltipOutboxTooManyFolders"> - Le dossier de niveau supérieur contient plus de 20 sous-dossiers. + <string name="TooltipOutboxCannotMoveRoot"> + Vous ne pouvez pas déplacer le dossier racine des annonces de la Place du marché </string> - <string name="TooltipOutboxTooManyObjects"> - Le dossier de niveau supérieur contient plus de 200 articles. + <string name="TooltipOutboxMixedStock"> + tous les articles d'un dossier de stock doivent avoir le même type et droit </string> <string name="TooltipDragOntoOwnChild"> Impossible de déplacer un dossier vers son enfant @@ -1063,7 +1081,7 @@ Veuillez réessayer de vous connecter dans une minute. <string name="AgentNameSubst"> (Vous) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Supprimer les alertes lors de la gestion des listes d'accès aux domaines </string> @@ -1130,6 +1148,12 @@ Veuillez réessayer de vous connecter dans une minute. <string name="bitmap_image_files"> Images Bitmap </string> + <string name="png_image_files"> + Images PNG + </string> + <string name="save_texture_image_files"> + Images Targa ou PNG + </string> <string name="avi_movie_file"> Fichier de film AVI </string> @@ -1379,6 +1403,9 @@ Veuillez réessayer de vous connecter dans une minute. <string name="FavoritesNoMatchingItems"> Faites glisser un repère ici pour l'ajouter à vos Favoris. </string> + <string name="MarketplaceNoMatchingItems"> + Aucun article trouvé. Vérifiez l'orthographe de votre chaîne de recherche et réessayez. + </string> <string name="InventoryNoTexture"> Vous n'avez pas de copie de cette texture dans votre inventaire </string> @@ -1426,29 +1453,95 @@ Veuillez réessayer de vous connecter dans une minute. <string name="InventoryOutboxError"> La [[MARKETPLACE_CREATE_STORE_URL] boutique de la Place du marché] renvoie des erreurs. </string> + <string name="InventoryMarketplaceError"> + Cette fonctionnalité est en version bêta. Veuillez ajouter votre nom à ce [http://goo.gl/forms/FCQ7UXkakz formulaire Google] si vous souhaitez participer. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Votre dossier Annonces de la Place du marché est vide. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Pour mettre des dossiers en vente sur la [[MARKETPLACE_DASHBOARD_URL] Place du marché], faites-les glisser vers cette zone. + </string> + <string name="Marketplace Validation Warning Stock"> + le dossier de stock doit être contenu dans un dossier de version + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Erreur : tous les articles d'un dossier de stock doivent être non reproductibles et de même type + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Erreur : un dossier de stock ne peut pas contenir de sous-dossiers + </string> + <string name="Marketplace Validation Warning Empty"> + : Avertissement : le dossier ne contient aucun article + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Avertissement : création du dossier de stock + </string> + <string name="Marketplace Validation Warning Create Version"> + : Avertissement : création du dossier de version + </string> + <string name="Marketplace Validation Warning Move"> + : Avertissement : déplacement d'articles + </string> + <string name="Marketplace Validation Warning Delete"> + : Avertissement : contenu du dossier transféré vers le dossier de stock, suppression du dossier vide + </string> + <string name="Marketplace Validation Error Stock Item"> + : Erreur : les articles non reproductibles doivent être contenus dans un dossier de stock + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Avertissement : les articles doivent être contenus dans un dossier de version + </string> + <string name="Marketplace Validation Error"> + : Erreur : + </string> + <string name="Marketplace Validation Warning"> + : Avertissement : + </string> + <string name="Marketplace Validation Error Empty Version"> + : Avertissement : le dossier de version doit contenir au moins 1 article + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Avertissement : le dossier de stock doit contenir au moins 1 article + </string> + <string name="Marketplace Validation No Error"> + Pas d'erreur ni d'avertissement à signaler + </string> <string name="Marketplace Error None"> Aucune erreur </string> + <string name="Marketplace Error Prefix"> + Erreur : + </string> <string name="Marketplace Error Not Merchant"> - Erreur : avant d'envoyer des articles vers la Place du marché, vous devez vous configurer comme vendeur (gratuit). + Avant d'envoyer des articles vers la Place du marché, vous devez vous configurer comme vendeur (gratuit). + </string> + <string name="Marketplace Error Not Accepted"> + Impossible de déplacer l'article dans ce dossier. </string> - <string name="Marketplace Error Empty Folder"> - Erreur : ce dossier est vide. + <string name="Marketplace Error Unsellable Item"> + Cet article ne peut pas être vendu sur la Place du marché. </string> - <string name="Marketplace Error Unassociated Products"> - Erreur : le chargement de cet article a échoué en raison d'un nombre trop important d'articles non associés à des produits au niveau de votre compte de vendeur. Pour résoudre ce problème, connectez-vous au site Web de la Place du marché et réduisez le nombre d'articles non associés. + <string name="MarketplaceNoID"> + no Mkt ID </string> - <string name="Marketplace Error Object Limit"> - Erreur : cet article contient trop d'objets. Pour résoudre le problème, regroupez des objets dans des paquets afin de réduire le nombre total à moins de 200. + <string name="MarketplaceLive"> + publié </string> - <string name="Marketplace Error Folder Depth"> - Erreur : trop de niveaux de dossiers imbriqués concernant cet article. Réorganisez le tout afin qu'un maximum de 3 niveaux soit utilisé. + <string name="MarketplaceActive"> + actif </string> - <string name="Marketplace Error Unsellable Item"> - Erreur : cet article ne peut pas être vendu sur la Place du marché. + <string name="MarketplaceMax"> + max. </string> - <string name="Marketplace Error Internal Import"> - Erreur : un problème est survenu concernant cet article. Veuillez réessayer ultérieurement. + <string name="MarketplaceStock"> + stock + </string> + <string name="MarketplaceNoStock"> + rupture de stock + </string> + <string name="MarketplaceUpdating"> + mise à jour... </string> <string name="Open landmarks"> Ouvrir les repères @@ -1469,6 +1562,7 @@ Veuillez réessayer de vous connecter dans une minute. Aucun contenu </string> <string name="WornOnAttachmentPoint" value=" (porté sur [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (actif)"/> <string name="PermYes"> Oui @@ -1739,6 +1833,15 @@ Veuillez réessayer de vous connecter dans une minute. <string name="Invalid Attachment"> Point d'attache non valide </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Erreur : article manquant + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Erreur : article de base manquant + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Erreur : l'objet est dans une tenue actuelle, mais il n'est pas attaché + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] </string> @@ -1874,9 +1977,6 @@ Veuillez réessayer de vous connecter dans une minute. <string name="CompileQueueUnknownFailure"> Échec du téléchargement, erreur inconnue </string> - <string name="CompileNoExperiencePerm"> - En train d'ignorer le script [SCRIPT] avec l'expérience [EXPERIENCE]. - </string> <string name="CompileQueueTitle"> Recompilation - progrès </string> @@ -1910,6 +2010,9 @@ Veuillez réessayer de vous connecter dans une minute. <string name="SaveComplete"> Enregistrement terminé. </string> + <string name="UploadFailed"> + Échec du chargement de fichier : + </string> <string name="ObjectOutOfRange"> Script (objet hors de portée) </string> @@ -1919,6 +2022,9 @@ Veuillez réessayer de vous connecter dans une minute. <string name="GroupsNone"> aucun </string> + <string name="CompileNoExperiencePerm"> + En train d'ignorer le script [SCRIPT] avec l'expérience [EXPERIENCE]. + </string> <string name="Group" value=" (groupe)"/> <string name="Unknown"> (Inconnu) @@ -5070,6 +5176,9 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles <string name="Command_Marketplace_Label"> Place du marché </string> + <string name="Command_MarketplaceListings_Label"> + Place du marché + </string> <string name="Command_MiniMap_Label"> Mini-carte </string> @@ -5157,6 +5266,9 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles <string name="Command_Marketplace_Tooltip"> Faire du shopping </string> + <string name="Command_MarketplaceListings_Tooltip"> + Vendez votre création + </string> <string name="Command_MiniMap_Tooltip"> Afficher les personnes près de vous </string> @@ -5268,6 +5380,18 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles <string name="UserDictionary"> [User] </string> + <string name="logging_calls_disabled_log_empty"> + Les conversations ne sont pas archivées. Pour commencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences > Chat. + </string> + <string name="logging_calls_disabled_log_not_empty"> + Aucune conversation ne sera plus enregistrée. Pour recommencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences > Chat. + </string> + <string name="logging_calls_enabled_log_empty"> + Il n'y a aucune conversation enregistrée. Quand quelqu'un vous contacte ou quand vous contactez quelqu'un, une entrée de journal s'affiche ici. + </string> + <string name="loading_chat_logs"> + Chargement... + </string> <string name="experience_tools_experience"> Expérience </string> @@ -5349,16 +5473,4 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles <string name="ExperiencePermissionShort12"> Permission </string> - <string name="logging_calls_disabled_log_empty"> - Les conversations ne sont pas archivées. Pour commencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences > Chat. - </string> - <string name="logging_calls_disabled_log_not_empty"> - Aucune conversation ne sera plus enregistrée. Pour recommencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences > Chat. - </string> - <string name="logging_calls_enabled_log_empty"> - Il n'y a aucune conversation enregistrée. Quand quelqu'un vous contacte ou quand vous contactez quelqu'un, une entrée de journal s'affiche ici. - </string> - <string name="loading_chat_logs"> - Chargement... - </string> </strings> diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml index 6f09eca90c..f3b7effdaa 100755 --- a/indra/newview/skins/default/xui/it/floater_about.xml +++ b/indra/newview/skins/default/xui/it/floater_about.xml @@ -1,82 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="INFO [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Generato con [COMPILER] versione [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Tu sei a [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] che si trova a <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(coordinate globali [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -Memoria: [MEMORY_MB] MB -Versione sistema operativo: [OS_VERSION] -Venditore scheda grafica: [GRAPHICS_CARD_VENDOR] -Scheda grafica: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Versione driver Windows per grafica: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - Versione OpenGL: [OPENGL_VERSION] - -Versione libcurl: [LIBCURL_VERSION] -Versione J2C Decoder: [J2C_VERSION] -Versione Driver audio: [AUDIO_DRIVER_VERSION] -Versione Qt Webkit: [QT_WEBKIT_VERSION] -Versione Server voice: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (nessuno) - </floater.string> - <floater.string name="AboutTraffic"> - Pacchetti perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) Informazioni - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Errore nel recupero URL note rilascio versione - </floater.string> <tab_container name="about_tab"> <panel label="Informazioni" name="support_panel"> <button label="Copia negli appunti" name="copy_btn"/> </panel> <panel label="Ringraziamenti" name="credits_panel"> - <text name="linden_intro"> - Second Life vi è offerto dai Linden: - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - con contributi open source da: - </text> - <text_editor name="contrib_names"> - Dummy Name sostituito all'avvio - </text_editor> - <text name="trans_intro"> - e le traduzioni da: - </text> - <text_editor name="trans_names"> - Dummy Name sostituito all'avvio - </text_editor> + <text name="linden_intro">Second Life vi è offerto dai Linden, +con contributi open source da:</text> + <text_editor name="contrib_names">Dummy Name sostituito all'avvio</text_editor> </panel> <panel label="Licenze" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. - FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg. + FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm e Werner Lemberg. GL Copyright (C) 1999-2004 Brian Paul. - GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia. + GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University e David Luebke, Brenden Schubert, University of Virginia. google-perftools Copyright (c) 2005, Google Inc. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) @@ -87,7 +29,7 @@ Versione Server voice: [VOICE_VERSION] SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi Copyright (C) 2000 Epinions, Inc. - zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. + zlib Copyright (C) 1995-2012 Jean-loup Gailly e Mark Adler. Il Viewer Second Life utilizza Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (e licenziatari). Tutti i diritti riservati. Per informazioni dettagliate, vedere www.havok.com. @@ -95,8 +37,7 @@ Versione Server voice: [VOICE_VERSION] Tutti i diritti riservati. Per informazioni dettagliate, vedere licenses.txt. - Codifica audio chat vocale: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Codifica audio chat vocale: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_associate_listing.xml b/indra/newview/skins/default/xui/it/floater_associate_listing.xml new file mode 100644 index 0000000000..2d7e1f9d3b --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="ASSOCIA ANNUNCIO"> + <text name="message">ID annuncio:</text> + <line_editor name="listing_id">Digita qui l'ID</line_editor> + <button label="OK" name="OK"/> + <button label="Annulla" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/it/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/it/floater_edit_hover_height.xml new file mode 100644 index 0000000000..a395b247ed --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="IMPOSTA ALTEZZA DI VOLO"> + <slider label="Altezza" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml index 7ed3486b9b..8cf680b3f0 100755 --- a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="CARATTERISTICHE DELL'ARTICOLO IN INVENTARIO"> - <floater.string name="unknown"> - (sconosciuto) - </floater.string> - <floater.string name="public"> - (pubblico) - </floater.string> - <floater.string name="you_can"> - Tu puoi: - </floater.string> - <floater.string name="owner_can"> - Il proprietario può: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Nome: - </text> - <text name="LabelItemDescTitle"> - Descrizione: - </text> - <text name="LabelCreatorTitle"> - Creatore: - </text> + <floater.string name="unknown">(sconosciuto)</floater.string> + <floater.string name="public">(pubblico)</floater.string> + <floater.string name="you_can">Tu puoi:</floater.string> + <floater.string name="owner_can">Il proprietario può:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Nome:</text> + <text name="LabelItemDescTitle">Descrizione:</text> + <text name="LabelCreatorTitle">Creatore:</text> <button label="Profilo..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - proprietario: - </text> + <text name="LabelOwnerTitle">proprietario:</text> <button label="Profilo..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Acquisito: - </text> - <text name="LabelAcquiredDate"> - Wed May 24 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Tu: - </text> + <text name="LabelAcquiredTitle">Acquisito:</text> + <text name="LabelAcquiredDate">Wed May 24 12:50:46 2006</text> + <text name="OwnerLabel">Tu:</text> <check_box label="Modifica" name="CheckOwnerModify"/> <check_box label="Copiare" left_delta="88" name="CheckOwnerCopy"/> <check_box label="Rivendi" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Chiunque: - </text> + <text name="AnyoneLabel">Chiunque:</text> <check_box label="Copia" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Gruppo: - </text> + <text name="GroupLabel">Gruppo:</text> <check_box label="Condividi" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="230"> - Proprietario successivo: - </text> + <text name="NextOwnerLabel" width="230">Proprietario successivo:</text> <check_box label="Modifica" name="CheckNextOwnerModify"/> <check_box label="Copiare" left_delta="88" name="CheckNextOwnerCopy"/> <check_box label="Rivendi" name="CheckNextOwnerTransfer"/> <check_box label="In vendita" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Copia" name="Copy"/> + <combo_box.item label="Contenuti" name="Contents"/> <combo_box.item label="Originale" name="Original"/> </combo_box> <spinner label="Prezzo:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_item_properties.xml b/indra/newview/skins/default/xui/it/floater_item_properties.xml new file mode 100644 index 0000000000..ba57e27b45 --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="CARATTERISTICHE DELL'ARTICOLO"/> diff --git a/indra/newview/skins/default/xui/it/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/it/floater_marketplace_listings.xml new file mode 100644 index 0000000000..bff5189ea4 --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="ANNUNCI NEL MARKETPLACE"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Caricamento in corso...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/it/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/it/floater_marketplace_validation.xml new file mode 100644 index 0000000000..45805a3232 --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Verifica annunci Marketplace"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/it/floater_openobject.xml b/indra/newview/skins/default/xui/it/floater_openobject.xml index 9b04c230c8..0d313602b5 100755 --- a/indra/newview/skins/default/xui/it/floater_openobject.xml +++ b/indra/newview/skins/default/xui/it/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Copia nell'Inventario" label_selected="Copia nell'Inventario" name="copy_to_inventory_button"/> - <button label="Copia e aggiungi al vestiario" label_selected="Copia e aggiungi al vestiario" name="copy_and_wear_button"/> + <text name="border_note"> + Copia nell'inventario e indossa + </text> + <button label="Aggiungi al vestiario" label_selected="Aggiungi al vestiario" name="copy_and_wear_button"/> + <button label="Sostituisci vestiario" label_selected="Sostituisci vestiario" name="copy_and_replace_button"/> + <button label="Crea solo la copia nell'inventario" label_selected="Crea solo la copia nell'inventario" name="copy_to_inventory_button"/> + <button label="Annulla" label_selected="Annulla" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_pay.xml b/indra/newview/skins/default/xui/it/floater_pay.xml index 5753c8c765..ef24fc850d 100755 --- a/indra/newview/skins/default/xui/it/floater_pay.xml +++ b/indra/newview/skins/default/xui/it/floater_pay.xml @@ -1,26 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - Paga gruppo - </string> - <string name="payee_resident"> - Paga residente - </string> - <text left="5" name="payee_label" width="105"> - Paga: - </text> - <icon name="icon_person" tool_tip="Persona"/> - <text left="115" name="payee_name"> - Nome di test che è troppo lungo per controllare il taglio - </text> - <button label="1 L$" label_selected="1 L$" left="118" name="fastpay 1" width="80"/> - <button label="5 L$" label_selected="5 L$" left="210" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" left="118" name="fastpay 10" width="80"/> - <button label="20 L$" label_selected="20 L$" left="210" name="fastpay 20"/> - <text left="4" name="amount text"> - Oppure, scegli importo: - </text> - <line_editor left="70" name="amount" width="49"/> - <button label="Paga" label_selected="Paga" left="127" name="pay btn"/> - <button label="Annulla" label_selected="Annulla" left="210" name="cancel btn"/> + <string name="payee_group">Paga gruppo</string> + <string name="payee_resident">Paga residente</string> + <text name="paying_text">Stai pagando:</text> + <text left="115" name="payee_name">Nome di test che è troppo lungo per controllare il taglio</text> + <panel label="Cerca" name="PatternsPanel"> + <button label="Paga 1 L$" label_selected="Paga 1 L$" name="fastpay 1"/> + <button label="Paga 5 L$" label_selected="Paga 5 L$" name="fastpay 5"/> + <button label="Paga 10 L$" label_selected="Paga 10 L$" name="fastpay 10"/> + <button label="Paga 20 L$" label_selected="Paga 20 L$" name="fastpay 20"/> + </panel> + <panel label="Cerca" name="InputPanel"> + <text name="amount text">Altro importo:</text> + <button label="Paga" label_selected="Paga" name="pay btn"/> + <button label="Annulla" label_selected="Annulla" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_pay_object.xml b/indra/newview/skins/default/xui/it/floater_pay_object.xml index 8805f3208e..8e6fd37c2d 100755 --- a/indra/newview/skins/default/xui/it/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/it/floater_pay_object.xml @@ -1,30 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string halign="left" name="payee_group" width="100"> - Paga gruppo - </string> - <string halign="left" name="payee_resident" width="120"> - Paga residente - </string> - <icon name="icon_person" tool_tip="Persona"/> - <text left="120" name="payee_name"> - Ericacita Moostopolison - </text> - <text halign="left" left="5" name="object_name_label" width="110"> - Mediante l'oggetto: - </text> + <string halign="left" name="payee_group" width="100">Paga gruppo</string> + <string halign="left" name="payee_resident" width="120">Paga residente</string> + <text name="paying_text">Stai pagando:</text> + <text left="120" name="payee_name">Ericacita Moostopolison</text> + <text halign="left" left="5" name="object_name_label" width="110">Mediante l'oggetto:</text> <icon name="icon_object" tool_tip="Oggetti"/> - <text left="120" name="object_name_text"> - Il mio oggetto con un nome veramente lungo - </text> - <button label="1 L$" label_selected="1 L$" left="125" name="fastpay 1" width="70"/> - <button label="5 L$" label_selected="5 L$" left="200" name="fastpay 5" width="70"/> - <button label="10 L$" label_selected="10 L$" left="125" name="fastpay 10" width="70"/> - <button label="20 L$" label_selected="20 L$" left="200" name="fastpay 20" width="70"/> - <text halign="left" left="5" name="amount text"> - Oppure, scegli importo: - </text> - <line_editor left="74" name="amount" width="50"/> - <button label="Paga" label_selected="Paga" name="pay btn"/> - <button label="Cancella" label_selected="Cancella" name="cancel btn"/> + <text left="120" name="object_name_text">Il mio oggetto con un nome veramente lungo</text> + <panel label="Cerca" name="PatternsPanel"> + <button label="Paga 1 L$" label_selected="Paga 1 L$" name="fastpay 1"/> + <button label="Paga 5 L$" label_selected="Paga 5 L$" name="fastpay 5"/> + <button label="Paga 10 L$" label_selected="Paga 10 L$" name="fastpay 10"/> + <button label="Paga 20 L$" label_selected="Paga 20 L$" name="fastpay 20"/> + </panel> + <panel label="Cerca" name="InputPanel"> + <text name="amount text">Altro importo:</text> + <button label="Paga" label_selected="Paga" name="pay btn"/> + <button label="Annulla" label_selected="Annulla" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/it/menu_attachment_self.xml b/indra/newview/skins/default/xui/it/menu_attachment_self.xml index b28137262f..1539fbafa1 100755 --- a/indra/newview/skins/default/xui/it/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/it/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Il mio aspetto" name="Change Outfit"/> <menu_item_call label="Modifica il mio vestiario" name="Edit Outfit"/> <menu_item_call label="Modifica la figura corporea" name="Edit My Shape"/> + <menu_item_call label="Altezza di volo" name="Hover Height"/> <menu_item_call label="I miei amici..." name="Friends..."/> <menu_item_call label="I miei gruppi" name="Groups..."/> <menu_item_call label="Il mio profilo" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/it/menu_avatar_self.xml b/indra/newview/skins/default/xui/it/menu_avatar_self.xml index 3666571065..0c9663fd4c 100755 --- a/indra/newview/skins/default/xui/it/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/it/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Il mio aspetto" name="Chenge Outfit"/> <menu_item_call label="Modifica il mio vestiario" name="Edit Outfit"/> <menu_item_call label="Modifica la figura corporea" name="Edit My Shape"/> + <menu_item_call label="Altezza di volo" name="Hover Height"/> <menu_item_call label="I miei amici..." name="Friends..."/> <menu_item_call label="I miei gruppi" name="Groups..."/> <menu_item_call label="Il mio profilo" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml index c8042f4253..2cd0d2c078 100755 --- a/indra/newview/skins/default/xui/it/menu_inventory.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Crea annuncio" name="Marketplace Create Listing"/> + <menu_item_call label="Associa annuncio" name="Marketplace Associate Listing"/> + <menu_item_call label="Visualizza (aggiorna) annuncio" name="Marketplace Get Listing"/> + <menu_item_call label="Controlla che non ci siano errori" name="Marketplace Check Listing"/> + <menu_item_call label="Modifica annuncio" name="Marketplace Edit Listing"/> + <menu_item_call label="Elenca" name="Marketplace List"/> + <menu_item_call label="Rimuovi annuncio" name="Marketplace Unlist"/> + <menu_item_call label="Attiva" name="Marketplace Activate"/> + <menu_item_call label="Disattiva" name="Marketplace Deactivate"/> <menu_item_call label="Condividi" name="Share"/> <menu_item_call label="Compra" name="Task Buy"/> <menu_item_call label="Apri" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Aggiungi" name="Wearable Add"/> <menu_item_call label="Togli" name="Take Off"/> <menu_item_call label="Copia nella casella venditore in uscita" name="Merchant Copy"/> - <menu_item_call label="Invia a Marketplace" name="Marketplace Send"/> + <menu_item_call label="Copia negli annunci Marketplace" name="Marketplace Copy"/> + <menu_item_call label="Sposta negli annunci Marketplace" name="Marketplace Move"/> <menu_item_call label="--nessuna opzione--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/it/menu_marketplace_view.xml b/indra/newview/skins/default/xui/it/menu_marketplace_view.xml new file mode 100644 index 0000000000..63f0b7fc50 --- /dev/null +++ b/indra/newview/skins/default/xui/it/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Ordina per quantità in magazzino (da bassa ad alta)" name="sort_by_stock_amount"/> + <menu_item_check label="Mostra solo cartelle annunci" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml index 275315b455..3f4c370ccd 100755 --- a/indra/newview/skins/default/xui/it/menu_viewer.xml +++ b/indra/newview/skins/default/xui/it/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="Acquista L$..." name="Buy and Sell L$"/> <menu_item_call label="Casella venditore in uscita..." name="MerchantOutbox"/> + <menu_item_call label="Annunci Marketplace..." name="MarketplaceListings"/> <menu_item_call label="Dashboard dell'account..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=it"/> </menu_item_call> @@ -250,6 +251,7 @@ <menu_item_check label="Console texture" name="Texture Console"/> <menu_item_check label="Console di Debug" name="Debug Console"/> <menu_item_call label="Console notifiche" name="Notifications"/> + <menu_item_check label="Console di debug regione" name="Region Debug Console"/> <menu_item_check label="Timer veloci" name="Fast Timers"/> <menu_item_check label="Memoria" name="Memory"/> <menu_item_check label="Statistiche scena" name="Scene Statistics"/> @@ -325,7 +327,7 @@ <menu label="Rete" name="Network"> <menu_item_check label="Metti in pausa" name="AgentPause"/> <menu_item_call label="Lascia un pacchetto" name="Drop a Packet"/> - </menu> + </menu> <menu label="Mondo" name="DevelopWorld"> <menu_item_check label="Esclusione al sole della simulazione" name="Sim Sun Override"/> <menu_item_check label="Clima fisso" name="Fixed Weather"/> diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml index fe53dd18dd..06f2b70dcf 100755 --- a/indra/newview/skins/default/xui/it/notifications.xml +++ b/indra/newview/skins/default/xui/it/notifications.xml @@ -129,6 +129,88 @@ Nessuna cartella è stata inviata a Marketplace, a causa di un errore di sistema L'inizializzazione con il Marketplace non ha avuto successo a causa di un errore di sistema o di rete. Riprova più tardi. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Impossibile copiare o spostare la cartella di magazzino a causa dell'errore seguente: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Impossibile copiare o spostare gli annunci Marketplace a causa dell'errore seguente: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + La transazione in Marketplace non è riuscita a causa dell'errore seguente: + + Motivo: '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Non siamo in grado di creare un annuncio per questo prodotto o di attivare la cartella di versione. Di solito la causa è la mancanza di informazioni nel modulo di descrizione dell'annuncio, ma potrebbero esserci errori nella struttura delle cartelle. Modifica l'annuncio oppure verifica che non ci siano problemi legati alla cartella dell'annuncio. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Aggiunta annuncio a Marketplace non riuscita a causa dell'errore seguente: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + L'attivazione di questa cartella di versione non è riuscita a causa dell'errore: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Questa azione cambierà il contenuto attivo di questo annuncio. Vuoi continuare? + <usetemplate ignoretext="Conferma prima di modificare un annuncio attivo su Marketplace" name="okcancelignore" notext="Annulla" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Gli articoli trascinati nella finestra degli annunci di Marketplace vengono spostati dalle posizioni iniziali e non vengono copiati. Vuoi continuare? + <usetemplate ignoretext="Conferma prima di spostare un articolo dall'inventario a Marketplace" name="okcancelignore" notext="Annulla" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Se sposti o elimini la cartella dell'annuncio, l'annuncio su Marketplace verrà eliminato. Per mantenere l'annuncio su Marketplace, sposta o elimina i contenuti della cartella di versione da modificare. Vuoi continuare? + <usetemplate ignoretext="Conferma prima di spostare o eliminare un annuncio da Marketplace" name="okcancelignore" notext="Annulla" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Non hai l'autorizzazione necessaria per copiare uno o più di questi articoli su Marketplace. Puoi spostarli o lasciarli dove si trovano. + <usetemplate canceltext="Annulla" ignoretext="Conferma prima di copiare nel Marketplace una selezione che contiene articoli per i quali non è consentita la copia" name="yesnocancelbuttons" notext="Non spostare gli articoli" yestext="Sposta articoli"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Questa azione causa la rimozione dell'annuncio. Vuoi continuare? + <usetemplate ignoretext="Conferma prima di rimuovere un annuncio attivo da Marketplace" name="okcancelignore" notext="Annulla" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Questa azione disattiverà la cartella di versione per l'annuncio corrente. Vuoi continuare? + <usetemplate ignoretext="Conferma prima di disattivare la cartella di versione di un annuncio su Marketplace" name="okcancelignore" notext="Annulla" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Impossibile aggiornare l'annuncio. +[[URL] Fai clic qui] per modificarlo in Marketplace. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Non puoi indossare vestiario o parti del corpo che sono nella cartella degli annunci di Marketplace. + </notification> + <notification name="AlertMerchantListingInvalidID"> + ID annuncio non valido. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Ci sono svariate cartelle di versione oppure nessuna cartella di versione in questo annuncio. In seguito dovrai selezionarne e attivarne una separatamente. + <usetemplate ignoretext="Avvisa riguardo all'attivazione della cartella di versione quando creo un annuncio con varie cartelle di versione" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Abbiamo diviso gli articoli in magazzino di tipo diverso in cartelle di magazzino separate. In questo modo la tua cartella è ordinata per la pubblicazione nell'annuncio. + <usetemplate ignoretext="Avverti quando la cartella di magazzino viene suddivisa prima della pubblicazione dell'annuncio" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + L'annuncio è stato rimosso perché il magazzino è esaurito. Aggiungi altre unità alla cartella di magazzino prima di pubblicare nuovamente l'annuncio. + <usetemplate ignoretext="Avverti quando un annuncio viene rimosso perché la cartella di magazzino è vuota" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> C'è stato un problema importando il testo di uno script per la seguente ragione: [REASON]. Riprova più tardi. </notification> @@ -470,6 +552,10 @@ Nota: questa operazione cancellerà la cache. Salva le modifiche? <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Non salvare" yestext="Salva"/> </notification> + <notification name="DeleteNotecard"> + Vuoi eliminare il biglietto? + <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Il salvataggio della Gesture è fallito. La gesture ha troppi passi. @@ -1872,6 +1958,9 @@ Cambierà migliaia di regioni e produrrà seri problemi ai vari server. La regione che cerchi di visitare include contenuti che non corripondono al livello selezionato nelle preferenze. Per cambiare le preferenze seleziona Io > Preferenze > Generale. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> La regione che cerchi di visitare include contenuti [REGIONMATURITY] accessibili solo ad adulti. <url name="url"> @@ -2161,6 +2250,10 @@ Trasferisci gli elementi nell'inventario? <ignore name="ignore" text="Ho impostato l'azione Paga oggetto costruendo un oggetto senza uno script money()"/> </form> </notification> + <notification name="PayConfirmation"> + Conferma che desideri pagare [AMOUNT] L$ a [TARGET]. + <usetemplate ignoretext="Conferma prima di pagare (somme superiori a 200 L$)" name="okcancelignore" notext="Annulla" yestext="Paga"/> + </notification> <notification name="OpenObjectCannotCopy"> Non ci sono elementi in questo oggetto che tu possa copiare. </notification> @@ -3847,9 +3940,11 @@ Riprova tra un minuto. </notification> <notification name="TeleportedByAttachment"> Sei stato teletrasportato da un elemento collegato a [ITEM_ID] + <usetemplate ignoretext="Teleport: sei stato teleportato da un elemento accessorio" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Sei stato teleportato dall'oggetto '[OBJECT_NAME]' sul lotto '[PARCEL_NAME]' + <usetemplate ignoretext="Teleport: sei stato teleportato su un lotto da un oggetto" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Sei stato teleportato dall'oggetto '[OBJECT_NAME]' di proprietà di [OWNER_ID] @@ -4181,7 +4276,7 @@ Prova a selezionare un pezzo di terreno più piccolo. <usetemplate ignoretext="Impossibile spostare i file. Il percorso precedente è stato ripristinato." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Si è verificato un problema nel salvare i diritti predefiniti per il motivo seguente: [REASON]. Riprova più tardi. + Si è verificato un problema nel salvare le autorizzazioni predefinite dell'oggetto: [REASON]. Riprova più tardi. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml index 1ce38ac40c..6c1777163c 100755 --- a/indra/newview/skins/default/xui/it/panel_login.xml +++ b/indra/newview/skins/default/xui/it/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=it - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=it</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Nome utente" name="username_combo" tool_tip="Il nome utente che hai scelto durante la registrazione, come roby12 o Stella Solare"/> <line_editor label="Password" name="password_edit"/> - <check_box label="Ricordami" name="remember_check"/> - <text name="forgot_password_text"> - Password dimenticata - </text> - <button label="Accedi" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - all'ultima ubicazione - </text> <combo_box label="I miei luoghi preferiti" name="start_location_combo"> + <combo_box.item label="La mia ultima ubicazione" name="MyLastLocation"/> <combo_box.item label="Casa mia" name="MyHome"/> </combo_box> - <button label="Accedi" name="connect_favorite_btn"/> - <line_editor label="Digita un'ubicazione" name="location_edit"/> - <button label="Accedi" name="connect_location_btn"/> + <button label="Accedi" name="connect_btn"/> + <check_box label="Ricordami" name="remember_check"/> + <text name="forgot_password_text">Password dimenticata</text> <combo_box label="Seleziona griglia" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/it/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/it/panel_marketplace_listings.xml new file mode 100644 index 0000000000..d28dfadf45 --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Marketplace" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Visualizza/ordina opzioni"/> + <button name="add_btn" tool_tip="Crea una nuova cartella annunci"/> + <button label="Controlla che non ci siano errori" name="audit_btn" tool_tip="Controlla i tuoi annunci su Marketplace"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Filtra annunci Marketplace" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/it/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/it/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..4902442d2b --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="TUTTO" name="All Items" tool_tip="Trascina e rilascia qui gli articoli da elencare"/> diff --git a/indra/newview/skins/default/xui/it/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/it/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..3fb0d5645c --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="IN ELENCO" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/it/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/it/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..ac6b2952fc --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NON ASSOCIATO" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/it/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/it/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..6c9fae7ddc --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="RIMOSSI" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/it/panel_status_bar.xml b/indra/newview/skins/default/xui/it/panel_status_bar.xml index 0aaf89d8c8..83d2ae5bab 100755 --- a/indra/newview/skins/default/xui/it/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/it/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Perdita di pacchetti - </panel.string> - <panel.string name="bandwidth_tooltip"> - Larghezza di banda - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">Perdita di pacchetti</panel.string> + <panel.string name="bandwidth_tooltip">Larghezza di banda</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel left="-405" name="balance_bg" width="195"> - <text name="balance" tool_tip="Clicca per aggiornare il tuo saldo in L$" value="L$ 20"/> + <text name="balance" tool_tip="Clicca per aggiornare il tuo saldo in L$" value="L$ ??"/> <button label="Acquista L$" name="buyL" tool_tip="Clicca per acquistare più L$"/> <button label="Acquisti" name="goShop" tool_tip="Apri Mercato Second Life" width="75"/> </panel> - <text name="TimeText" tool_tip="Orario attuale (Pacifico)"> - 24:00, ora del Pacifico - </text> + <text name="TimeText" tool_tip="Orario attuale (Pacifico)">24:00, ora del Pacifico</text> <button name="media_toggle_btn" tool_tip="Attiva/ferma tutti i media (musica, video, pagine Web)"/> <button name="volume_btn" tool_tip="Regolazione del volume globale"/> </panel> diff --git a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml index 422f15e3cf..14c1c43816 100755 --- a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Trasferisci" name="CheckNextOwnerTransfer" tool_tip="Il prossimo proprietario può regalare o rivendere questo oggetto"/> </panel> <check_box label="In vendita" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Copia" name="Copy"/> + <combo_box.item label="Contenuti" name="Contents"/> <combo_box.item label="Originale" name="Original"/> </combo_box> <spinner label="Prezzo: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml index 5f912dd126..aabefd7d3c 100755 --- a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Profilo dell'oggetto"> - <panel.string name="text deed continued"> - Cessione - </panel.string> - <panel.string name="text deed"> - Cessione - </panel.string> - <panel.string name="text modify info 1"> - Tu puoi modificare questo oggetto - </panel.string> - <panel.string name="text modify info 2"> - Tu puoi modificare questi oggetti - </panel.string> - <panel.string name="text modify info 3"> - Non puoi modificare questo oggetto - </panel.string> - <panel.string name="text modify info 4"> - Non puoi modificare questi oggetti - </panel.string> - <panel.string name="text modify info 5"> - Questo oggetto non può essere modificato attraverso il confine di una regione - </panel.string> - <panel.string name="text modify info 6"> - Questi oggetti non possono essere modificati attraverso il confine di una regione - </panel.string> - <panel.string name="text modify warning"> - Questo oggetto ha parti collegate - </panel.string> - <panel.string name="Cost Default"> - Prezzo: L$ - </panel.string> - <panel.string name="Cost Total"> - Prezzo totale: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Prezzo per: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Prezzo misto - </panel.string> - <panel.string name="Sale Mixed"> - Vendita mista - </panel.string> + <panel.string name="text deed continued">Cessione</panel.string> + <panel.string name="text deed">Cessione</panel.string> + <panel.string name="text modify info 1">Tu puoi modificare questo oggetto</panel.string> + <panel.string name="text modify info 2">Tu puoi modificare questi oggetti</panel.string> + <panel.string name="text modify info 3">Non puoi modificare questo oggetto</panel.string> + <panel.string name="text modify info 4">Non puoi modificare questi oggetti</panel.string> + <panel.string name="text modify info 5">Questo oggetto non può essere modificato attraverso il confine di una regione</panel.string> + <panel.string name="text modify info 6">Questi oggetti non possono essere modificati attraverso il confine di una regione</panel.string> + <panel.string name="text modify warning">Questo oggetto ha parti collegate</panel.string> + <panel.string name="Cost Default">Prezzo: L$</panel.string> + <panel.string name="Cost Total">Prezzo totale: L$</panel.string> + <panel.string name="Cost Per Unit">Prezzo per: L$</panel.string> + <panel.string name="Cost Mixed">Prezzo misto</panel.string> + <panel.string name="Sale Mixed">Vendita mista</panel.string> <text name="title" value="Profilo dell'oggetto"/> <text name="where" value="(in Second Life)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Nome: - </text> - <text name="Description:"> - Descrizione: - </text> - <text name="CreatorNameLabel"> - Ideatore: - </text> - <text name="Owner:"> - Proprietario: - </text> - <text name="Group_label"> - Gruppo: - </text> + <text name="Name:">Nome:</text> + <text name="Description:">Descrizione:</text> + <text name="CreatorNameLabel">Ideatore:</text> + <text name="Owner:">Proprietario:</text> + <text name="Group_label">Gruppo:</text> <button name="button set group" tool_tip="Scegli un gruppo con cui condividere i diritti relativi all'oggetto"/> <name_box initial_value="Caricamento in corso..." name="Group Name Proxy"/> <button label="Cessione" label_selected="Cessione" name="button deed" tool_tip="Con una cessione si trasferisce il bene con i diritti al proprietario successivo Gli oggetti in proprietà condivisa di gruppo possono essere ceduti soltanto da un funzionario del gruppo."/> - <text name="label click action"> - Fai clic per: - </text> + <text name="label click action">Fai clic per:</text> <combo_box name="clickaction"> <combo_box.item label="Tocca (predefinito)" name="Touch/grab(default)"/> <combo_box.item label="Siediti sull'oggetto" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Ingrandisci" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Tu puoi modificare questo oggetto - </text> - <text name="Anyone can:"> - Chiunque: - </text> + <text name="perm_modify">Tu puoi modificare questo oggetto</text> + <text name="Anyone can:">Chiunque:</text> <check_box label="Copia" name="checkbox allow everyone copy"/> <check_box label="Sposta" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Gruppo: - </text> + <text name="GroupLabel">Gruppo:</text> <check_box label="Condividi" name="checkbox share with group" tool_tip="Consenti a tutti i membri del gruppo selezionato di condividere i tuoi diritti di modifica di questo oggetto. Per attivare le restrizioni per ruolo devi prima effettuare la cessione."/> - <text name="NextOwnerLabel"> - Proprietario successivo: - </text> + <text name="NextOwnerLabel">Proprietario successivo:</text> <check_box label="Modifica" name="checkbox next owner can modify"/> <check_box label="Copia" name="checkbox next owner can copy"/> <check_box label="Trasferisci" name="checkbox next owner can transfer" tool_tip="Il prossimo proprietario può regalare o rivendere questo oggetto"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Prezzo: L$" name="Edit Cost"/> <check_box label="Mostra nella ricerca" name="search_check" tool_tip="Permetti alle persone di vedere questo oggetto nei risultati della ricerca"/> - <text name="pathfinding_attributes_label"> - Attributi pathfinding: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Attributi pathfinding:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Apri" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 25c784975e..b9a87a1527 100755 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -451,28 +451,46 @@ Prova ad accedere nuovamente tra un minuto. </string> <string name="TooltipPrice" value="L$ [AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - Non puoi rezzare elementi nella tua casella in uscita del rivenditore + Non puoi rezzare articoli dalla cartella degli annunci di Marketplace + </string> + <string name="TooltipOutboxWorn"> + Non puoi inserire nella cartella degli annunci in Marketplace gli articoli che indossi + </string> + <string name="TooltipOutboxFolderLevels"> + La profondità delle caselle nidificate è maggiore di [AMOUNT]. Diminuisci la profondità delle cartelle nidificate; se necessario, raggruppa gli articoli. + </string> + <string name="TooltipOutboxTooManyFolders"> + Il numero di sottocartelle è maggiore di [AMOUNT]. Diminuisci il numero delle cartelle nel tuo annuncio; se necessario, raggruppa gli articoli. + </string> + <string name="TooltipOutboxTooManyObjects"> + Il numero di articoli è maggiore di [AMOUNT]. Per vendere più di [AMOUNT] articoli in un annuncio, devi raggruppare alcuni di essi. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Il numero di articoli in magazzino è maggiore di [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Puoi trascinare articoli o cartelle solo nella scheda TUTTI. Seleziona la scheda e sposta nuovamente gli articoli o le cartelle. </string> <string name="TooltipOutboxNoTransfer"> - Almeno uno di questi oggetti non può essere venduto o trasferito. + Almeno uno di questi oggetti non può essere venduto o trasferito </string> <string name="TooltipOutboxNotInInventory"> - La tua casella in uscita del rivenditore può accettare solo elementi provenienti dal tuo inventario + Puoi aggiungere a Marketplace solo gli articoli nel tuo inventario </string> - <string name="TooltipOutboxWorn"> - Non puoi mettere gli elementi che indossi nella casella in uscita del rivenditore + <string name="TooltipOutboxLinked"> + Non puoi inserire cartelle o articoli collegati tramite link nel Marketplace </string> <string name="TooltipOutboxCallingCard"> - Non puoi inserire il tuo biglietto da visita nella tua casella in uscita del rivenditore + Non puoi inserire biglietti da visita in Marketplace </string> - <string name="TooltipOutboxFolderLevels"> - La profondità delle caselle nidificate è maggiore di 3 + <string name="TooltipOutboxDragActive"> + non puoi muovere un annuncio attivo </string> - <string name="TooltipOutboxTooManyFolders"> - Il numero di sottocartelle nella cartella al livello più alto è maggiore di 20 + <string name="TooltipOutboxCannotMoveRoot"> + Non puoi spostare la cartella principale degli annunci di Marketplace </string> - <string name="TooltipOutboxTooManyObjects"> - Il numero di elementi nella cartella al livello più alto è maggiore di 200 + <string name="TooltipOutboxMixedStock"> + Tutti gli articoli in una cartella di magazzino devono essere dello stesso tipo e con le stesse autorizzazioni </string> <string name="TooltipDragOntoOwnChild"> Non puoi spostare una cartella nella relativa cartella secondaria @@ -1054,7 +1072,7 @@ Prova ad accedere nuovamente tra un minuto. <string name="AgentNameSubst"> (Tu) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Omette gli avvisi durante la gestione degli elenchi di accesso alle proprietà immobiliari </string> @@ -1121,6 +1139,12 @@ Prova ad accedere nuovamente tra un minuto. <string name="bitmap_image_files"> Immagini Bitmap </string> + <string name="png_image_files"> + Immagini PNG + </string> + <string name="save_texture_image_files"> + Immagini Targa o PNG + </string> <string name="avi_movie_file"> File video AVI </string> @@ -1370,6 +1394,9 @@ Prova ad accedere nuovamente tra un minuto. <string name="FavoritesNoMatchingItems"> Trascina qui un punto di riferimento per aggiungerlo ai Preferiti. </string> + <string name="MarketplaceNoMatchingItems"> + Nessun articolo trovato. Controlla di aver digitato la stringa di ricerca correttamente e riprova. + </string> <string name="InventoryNoTexture"> Non hai una copia di questa texture nel tuo inventario </string> @@ -1417,29 +1444,95 @@ Prova ad accedere nuovamente tra un minuto. <string name="InventoryOutboxError"> Il [[MARKETPLACE_CREATE_STORE_URL] negozio nel Marketplace] ha riportato errori. </string> + <string name="InventoryMarketplaceError"> + Questa funzione è al momento in versione beta. Per partecipare, aggiungi il tuo nome a questo [http://goo.gl/forms/FCQ7UXkakz modulo Google]. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + La cartella degli annunci di Marketplace è vuota. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Trascina le cartelle in questa area per metterle in vendita su [[MARKETPLACE_DASHBOARD_URL] Marketplace]. + </string> + <string name="Marketplace Validation Warning Stock"> + la cartella di magazzino deve essere inclusa in una cartella di versione + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Errore: tutti gli articoli un una cartella di magazzino devono essere non copiabili e dello stesso tipo + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Errore: la cartella di magazzino non può contenere sottocartelle + </string> + <string name="Marketplace Validation Warning Empty"> + : Avviso: la cartella non contiene alcun articolo + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Avviso: creazione cartella di magazzino in corso + </string> + <string name="Marketplace Validation Warning Create Version"> + : Avviso: creazione cartella di versione in corso + </string> + <string name="Marketplace Validation Warning Move"> + : Avviso: spostamento articoli in corso + </string> + <string name="Marketplace Validation Warning Delete"> + : Avviso: il contenuto della cartella è stato trasferito alla cartella di magazzino e la cartella vuota sta per essere rimossa + </string> + <string name="Marketplace Validation Error Stock Item"> + : Errore: gli articoli di cui non è permessa la copia devono essere all'interno di una cartella di magazzino + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Avviso: gli articoli devono essere inclusi in una cartella di versione + </string> + <string name="Marketplace Validation Error"> + : Errore: + </string> + <string name="Marketplace Validation Warning"> + : Avviso: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Avviso: la cartella di versione deve contenere almeno 1 articolo + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Avviso: la cartella di magazzino deve contenere almeno 1 articolo + </string> + <string name="Marketplace Validation No Error"> + Nessun errore o avviso da segnalare + </string> <string name="Marketplace Error None"> Nessun errore </string> + <string name="Marketplace Error Prefix"> + Errore: + </string> <string name="Marketplace Error Not Merchant"> - Errore: Prima di inviare elementi al Marketplace devi essere impostato come rivenditore (gratis). + Prima di inviare gli articoli al Marketplace devi essere impostato come rivenditore (gratis). + </string> + <string name="Marketplace Error Not Accepted"> + L'articolo non può essere spostato in quella cartella. </string> - <string name="Marketplace Error Empty Folder"> - Errore: questa cartella non include alcun contenuto. + <string name="Marketplace Error Unsellable Item"> + Questo articolo non può essere venduto nel Marketplace. </string> - <string name="Marketplace Error Unassociated Products"> - Errore: Oggetto non caricato perché il tuo account venditore ha troppi oggetti che non sono associati con dei prodotti. Per risolvere questo errore, esegui l'accesso al sito di Marketplace e riduci il numero di oggetti non associati. + <string name="MarketplaceNoID"> + no Mkt ID </string> - <string name="Marketplace Error Object Limit"> - Errore: questo elemento contiene troppi oggetti. Per risolvere questo problema, inserisci più oggetti insieme in una scatola per ridurre a meno di 200 il numero totale di oggetti. + <string name="MarketplaceLive"> + in elenco </string> - <string name="Marketplace Error Folder Depth"> - Errore: questo elemento contiene troppi livelli di cartelle nidificate. Riorganizzalo per ottenere un massimo di 3 livelli di cartelle nidificate. + <string name="MarketplaceActive"> + attivi </string> - <string name="Marketplace Error Unsellable Item"> - Errore: Questo elemento non può essere venduto nel Marketplace. + <string name="MarketplaceMax"> + massimo </string> - <string name="Marketplace Error Internal Import"> - Errore: problema con questo elemento. Riprova più tardi. + <string name="MarketplaceStock"> + magazzino + </string> + <string name="MarketplaceNoStock"> + non in magazzino + </string> + <string name="MarketplaceUpdating"> + in aggiornamento... </string> <string name="Open landmarks"> Apri luoghi di riferimento @@ -1460,6 +1553,7 @@ Prova ad accedere nuovamente tra un minuto. Nessun contenuto </string> <string name="WornOnAttachmentPoint" value="(indossato su [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (attivo)"/> <string name="Chat Message" value="Chat:"/> <string name="Sound" value="Suono :"/> @@ -1724,6 +1818,15 @@ Prova ad accedere nuovamente tra un minuto. <string name="Invalid Attachment"> Punto di collegamento non valido </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Errore: articolo mancante + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Errore: articolo di base mancante + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Errore: l'oggetto è nel vestiario corrente ma non è collegato + </string> <string name="YearsMonthsOld"> Nato da [AGEYEARS] [AGEMONTHS] </string> @@ -1859,9 +1962,6 @@ Prova ad accedere nuovamente tra un minuto. <string name="CompileQueueUnknownFailure"> Errore di dowload sconosciuto </string> - <string name="CompileNoExperiencePerm"> - Saltato lo script [SCRIPT] con l'esperienza [EXPERIENCE]. - </string> <string name="CompileQueueTitle"> Avanzamento ricompilazione </string> @@ -1895,6 +1995,9 @@ Prova ad accedere nuovamente tra un minuto. <string name="SaveComplete"> Salvataggio completato. </string> + <string name="UploadFailed"> + Caricamento file non riuscito: + </string> <string name="ObjectOutOfRange"> Script (oggetto fuori portata) </string> @@ -1904,6 +2007,9 @@ Prova ad accedere nuovamente tra un minuto. <string name="GroupsNone"> nessuno </string> + <string name="CompileNoExperiencePerm"> + Saltato lo script [SCRIPT] con l'esperienza [EXPERIENCE]. + </string> <string name="Group" value="(gruppo)"/> <string name="Unknown"> (Sconosciuto) @@ -4983,6 +5089,9 @@ Prova a racchiudere il percorso dell'editor in doppie virgolette. <string name="Command_Marketplace_Label"> Mercato </string> + <string name="Command_MarketplaceListings_Label"> + Marketplace + </string> <string name="Command_MiniMap_Label"> Mini mappa </string> @@ -5070,6 +5179,9 @@ Prova a racchiudere il percorso dell'editor in doppie virgolette. <string name="Command_Marketplace_Tooltip"> Vai allo shopping </string> + <string name="Command_MarketplaceListings_Tooltip"> + Vendi le tue creazioni + </string> <string name="Command_MiniMap_Tooltip"> Mostra le persone vicine </string> @@ -5181,6 +5293,18 @@ Prova a racchiudere il percorso dell'editor in doppie virgolette. <string name="UserDictionary"> [User] </string> + <string name="logging_calls_disabled_log_empty"> + Le conversazioni non vengono registrate. Per iniziare a registrare, seleziona "Salva: Solo registro" oppure "Salva: Registri e trascrizioni" in Preferenze > Chat. + </string> + <string name="logging_calls_disabled_log_not_empty"> + Non verranno registrate più le conversazioni. Per riprendere a registrare, seleziona "Salva: Solo registro" oppure "Salva: Registri e trascrizioni" in Preferenze > Chat. + </string> + <string name="logging_calls_enabled_log_empty"> + Nessuna conversazione in registro. Dopo che hai contattato qualcuno o se qualcuno ti contatta, una voce del registro verrà mostrata qui. + </string> + <string name="loading_chat_logs"> + Caricamento in corso... + </string> <string name="experience_tools_experience"> Esperienza </string> @@ -5262,16 +5386,4 @@ Prova a racchiudere il percorso dell'editor in doppie virgolette. <string name="ExperiencePermissionShort12"> Autorizzazione </string> - <string name="logging_calls_disabled_log_empty"> - Le conversazioni non vengono registrate. Per iniziare a registrare, seleziona "Salva: Solo registro" oppure "Salva: Registri e trascrizioni" in Preferenze > Chat. - </string> - <string name="logging_calls_disabled_log_not_empty"> - Non verranno registrate più le conversazioni. Per riprendere a registrare, seleziona "Salva: Solo registro" oppure "Salva: Registri e trascrizioni" in Preferenze > Chat. - </string> - <string name="logging_calls_enabled_log_empty"> - Nessuna conversazione in registro. Dopo che hai contattato qualcuno o se qualcuno ti contatta, una voce del registro verrà mostrata qui. - </string> - <string name="loading_chat_logs"> - Caricamento in corso... - </string> </strings> diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml index 63a4e69c10..91a61ab225 100755 --- a/indra/newview/skins/default/xui/ja/floater_about.xml +++ b/indra/newview/skins/default/xui/ja/floater_about.xml @@ -1,74 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="[CAPITALIZED_APP_NAME] について"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - コンパイラー [COMPILER] [COMPILER_VERSION] バージョン - </floater.string> - <floater.string name="AboutPosition"> - あなたの現在地は、[POSITION_LOCAL_0,number,1]、[POSITION_LOCAL_1,number,1]、[POSITION_LOCAL_2,number,1] の [REGION] です。位置は <nolink>[HOSTNAME]</nolink> です。([HOSTIP]) -SLURL:<nolink>[SLURL]</nolink> -(グローバル座標 [POSITION_0,number,1]、[POSITION_1,number,1]、[POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -メモリ: [MEMORY_MB] MB -OS バージョン: [OS_VERSION] -グラフィックカード製造元: [GRAPHICS_CARD_VENDOR] -グラフィックカード: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Windows グラフィックドライババージョン: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - OpenGL バージョン: [OPENGL_VERSION] - -libcurl バージョン: [LIBCURL_VERSION] -J2C デコーダバージョン: [J2C_VERSION] -オーディオドライババージョン: [AUDIO_DRIVER_VERSION] -Qt Webkit バージョン: [QT_WEBKIT_VERSION] -ボイスサーバーバージョン: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (なし) - </floater.string> - <floater.string name="AboutTraffic"> - パケットロス: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - サーバーのリリースノートの URL を取得中にエラーが発生しました。 - </floater.string> <tab_container name="about_tab"> <panel label="情報" name="support_panel"> <button label="クリップボードにコピー" name="copy_btn"/> </panel> <panel label="クレジット" name="credits_panel"> - <text name="linden_intro"> - Second Life の提供元: Lindens の: - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - オープンソースの提供: - </text> - <text_editor name="contrib_names"> - Dummy Name は実行時間に置き換え - </text_editor> - <text name="trans_intro"> - 翻訳会社: - </text> - <text_editor name="trans_names"> - Dummy Name は実行時間に置き換え - </text_editor> + <text name="linden_intro">Second Life の提供元: Lindens の、 +オープンソースの提供:</text> + <text_editor name="contrib_names">Dummy Name は実行時間に置き換え</text_editor> </panel> <panel label="ライセンス" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -95,8 +37,7 @@ Second Life ビューワでは Havok (TM) Physics が使用されています。 無断複写・複製・転載を禁じます。詳細については licenses.txt をご参照ください。 -ボイスチャットのオーディオコーディング:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C) - </text_editor> +ボイスチャットのオーディオコーディング:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_associate_listing.xml b/indra/newview/skins/default/xui/ja/floater_associate_listing.xml new file mode 100644 index 0000000000..b106750a6f --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="リストを関連付ける"> + <text name="message">リスト ID:</text> + <line_editor name="listing_id">ここに ID を入力</line_editor> + <button label="OK" name="OK"/> + <button label="取り消し" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/ja/floater_edit_hover_height.xml new file mode 100644 index 0000000000..ac5b2839d1 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="ホバー高さの設定"> + <slider label="高さ" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml index c01c46211e..8d3a655a06 100755 --- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="インベントリアイテムのプロパティ"> - <floater.string name="unknown"> - (不明) - </floater.string> - <floater.string name="public"> - (公共) - </floater.string> - <floater.string name="you_can"> - できること: - </floater.string> - <floater.string name="owner_can"> - オーナーは次のことができます: - </floater.string> - <floater.string name="acquiredDate"> - [year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - 名前: - </text> - <text name="LabelItemDescTitle"> - 説明: - </text> - <text name="LabelCreatorTitle"> - クリエーター - </text> + <floater.string name="unknown">(不明)</floater.string> + <floater.string name="public">(公共)</floater.string> + <floater.string name="you_can">できること:</floater.string> + <floater.string name="owner_can">オーナーは次のことができます:</floater.string> + <floater.string name="acquiredDate">[year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</floater.string> + <text name="LabelItemNameTitle">名前:</text> + <text name="LabelItemDescTitle">説明:</text> + <text name="LabelCreatorTitle">クリエーター</text> <button label="プロフィール..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - オーナー: - </text> + <text name="LabelOwnerTitle">オーナー:</text> <button label="プロフィール..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - 入手日時: - </text> - <text name="LabelAcquiredDate"> - 2006年5月24日水曜日12:50:46 - </text> - <text name="OwnerLabel"> - あなた: - </text> + <text name="LabelAcquiredTitle">入手日時:</text> + <text name="LabelAcquiredDate">2006年5月24日水曜日12:50:46</text> + <text name="OwnerLabel">あなた:</text> <check_box label="編集" name="CheckOwnerModify"/> <check_box label="コピー" name="CheckOwnerCopy"/> <check_box label="再販・プレゼント" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - 全員: - </text> + <text name="AnyoneLabel">全員:</text> <check_box label="コピー" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - グループ: - </text> + <text name="GroupLabel">グループ:</text> <check_box label="共有" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="158"> - 次の所有者: - </text> + <text name="NextOwnerLabel" width="158">次の所有者:</text> <check_box label="編集" name="CheckNextOwnerModify"/> <check_box label="コピー" name="CheckNextOwnerCopy"/> <check_box label="再販・プレゼント" name="CheckNextOwnerTransfer"/> <check_box label="売り出し中" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="コピー" name="Copy"/> + <combo_box.item label="コンテンツ" name="Contents"/> <combo_box.item label="オリジナル" name="Original"/> </combo_box> <spinner label="価格:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_item_properties.xml new file mode 100644 index 0000000000..c8648503d7 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="アイテムのプロパティ"/> diff --git a/indra/newview/skins/default/xui/ja/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/ja/floater_marketplace_listings.xml new file mode 100644 index 0000000000..f6b8e2928e --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="マーケットプレイスのリスト"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">ロード中...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/ja/floater_marketplace_validation.xml new file mode 100644 index 0000000000..164864ed4e --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="マーケットプレイスのリストの監査"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_openobject.xml b/indra/newview/skins/default/xui/ja/floater_openobject.xml index 7bdd1e4980..3f2f71511b 100755 --- a/indra/newview/skins/default/xui/ja/floater_openobject.xml +++ b/indra/newview/skins/default/xui/ja/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="持ち物にコピー" label_selected="持ち物にコピー" name="copy_to_inventory_button"/> - <button label="コピーしてアウトフィットに追加" label_selected="コピーしてアウトフィットに追加" name="copy_and_wear_button"/> + <text name="border_note"> + インベントリおよびウェアにコピー + </text> + <button label="アウトフィットに追加" label_selected="アウトフィットに追加" name="copy_and_wear_button"/> + <button label="アウトフィットを交換" label_selected="アウトフィットを交換" name="copy_and_replace_button"/> + <button label="インベントリにコピーするだけ" label_selected="インベントリにコピーするだけ" name="copy_to_inventory_button"/> + <button label="取り消し" label_selected="取り消し" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_pay.xml b/indra/newview/skins/default/xui/ja/floater_pay.xml index 17965fb60a..0ca0990bd4 100755 --- a/indra/newview/skins/default/xui/ja/floater_pay.xml +++ b/indra/newview/skins/default/xui/ja/floater_pay.xml @@ -1,25 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - グループに支払う - </string> - <string name="payee_resident"> - 住人に支払う - </string> - <text name="payee_label"> - 支払う: - </text> - <icon name="icon_person" tool_tip="住人"/> - <text name="payee_name"> - 非常に長い名前が途中で切れていないかをテストして確認 - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - 金額を指定: - </text> - <button label="支払う" label_selected="支払う" name="pay btn"/> - <button label="取り消し" label_selected="取り消し" name="cancel btn"/> + <string name="payee_group">グループに支払う</string> + <string name="payee_resident">住人に支払う</string> + <text name="paying_text">支払中:</text> + <text name="payee_name">非常に長い名前が途中で切れていないかをテストして確認</text> + <panel label="検索" name="PatternsPanel"> + <button label="L$ 1 支払う" label_selected="L$ 1 支払う" name="fastpay 1"/> + <button label="L$ 5 支払う" label_selected="L$ 5 支払う" name="fastpay 5"/> + <button label="L$ 10 支払う" label_selected="L$ 10 支払う" name="fastpay 10"/> + <button label="L$ 20 支払う" label_selected="L$ 20 支払う" name="fastpay 20"/> + </panel> + <panel label="検索" name="InputPanel"> + <text name="amount text">その他の金額:</text> + <button label="支払い" label_selected="支払い" name="pay btn"/> + <button label="取り消し" label_selected="取り消し" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_pay_object.xml b/indra/newview/skins/default/xui/ja/floater_pay_object.xml index 637ad496ef..3331cee0e0 100755 --- a/indra/newview/skins/default/xui/ja/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/ja/floater_pay_object.xml @@ -1,29 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - グループに支払う - </string> - <string name="payee_resident"> - 住人に支払う - </string> - <icon name="icon_person" tool_tip="住人"/> - <text name="payee_name"> - Ericacita Moostopolison - </text> - <text name="object_name_label"> - オブジェクトを介して: - </text> + <string name="payee_group">グループに支払う</string> + <string name="payee_resident">住人に支払う</string> + <text name="paying_text">支払中:</text> + <text name="payee_name">Ericacita Moostopolison</text> + <text name="object_name_label">オブジェクトを介して:</text> <icon name="icon_object" tool_tip="オブジェクト"/> - <text name="object_name_text"> - ... - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - 金額を指定: - </text> - <button label="支払い" label_selected="支払い" name="pay btn"/> - <button label="取り消し" label_selected="取り消し" name="cancel btn"/> + <text name="object_name_text">...</text> + <panel label="検索" name="PatternsPanel"> + <button label="L$ 1 支払う" label_selected="L$ 1 支払う" name="fastpay 1"/> + <button label="L$ 5 支払う" label_selected="L$ 5 支払う" name="fastpay 5"/> + <button label="L$ 10 支払う" label_selected="L$ 10 支払う" name="fastpay 10"/> + <button label="L$ 20 支払う" label_selected="L$ 20 支払う" name="fastpay 20"/> + </panel> + <panel label="検索" name="InputPanel"> + <text name="amount text">その他の金額:</text> + <button label="支払い" label_selected="支払い" name="pay btn"/> + <button label="取り消し" label_selected="取り消し" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml index d87ef8e2a0..e7aa3cfc30 100755 --- a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="容姿" name="Change Outfit"/> <menu_item_call label="アウトフィットの編集" name="Edit Outfit"/> <menu_item_call label="シェイプの編集" name="Edit My Shape"/> + <menu_item_call label="ホバー高さ" name="Hover Height"/> <menu_item_call label="フレンド" name="Friends..."/> <menu_item_call label="グループ" name="Groups..."/> <menu_item_call label="プロフィール" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml index eb8e98059a..a14cfd5876 100755 --- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="容姿" name="Chenge Outfit"/> <menu_item_call label="アウトフィットを編集" name="Edit Outfit"/> <menu_item_call label="シェイプを編集" name="Edit My Shape"/> + <menu_item_call label="ホバー高さ" name="Hover Height"/> <menu_item_call label="フレンド" name="Friends..."/> <menu_item_call label="グループ" name="Groups..."/> <menu_item_call label="プロフィール" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index 8d6c983aa7..9a68ed8a6b 100755 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="リストを作成" name="Marketplace Create Listing"/> + <menu_item_call label="リストを関連付け" name="Marketplace Associate Listing"/> + <menu_item_call label="リストを取得 (更新)" name="Marketplace Get Listing"/> + <menu_item_call label="エラーを確認" name="Marketplace Check Listing"/> + <menu_item_call label="リストを編集" name="Marketplace Edit Listing"/> + <menu_item_call label="リスト" name="Marketplace List"/> + <menu_item_call label="リストから取り除く" name="Marketplace Unlist"/> + <menu_item_call label="有効にする" name="Marketplace Activate"/> + <menu_item_call label="無効にする" name="Marketplace Deactivate"/> <menu_item_call label="共有" name="Share"/> <menu_item_call label="購入" name="Task Buy"/> <menu_item_call label="開く" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="追加" name="Wearable Add"/> <menu_item_call label="取り外す" name="Take Off"/> <menu_item_call label="マーチャントのアウトボックスにコピー" name="Merchant Copy"/> - <menu_item_call label="マーケットプレイスに送信" name="Marketplace Send"/> + <menu_item_call label="マーケットプレイスのリストにコピー" name="Marketplace Copy"/> + <menu_item_call label="マーケットプレイスのリストに移動" name="Marketplace Move"/> <menu_item_call label="--オプションなし--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_marketplace_view.xml b/indra/newview/skins/default/xui/ja/menu_marketplace_view.xml new file mode 100644 index 0000000000..ad36aa3f77 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="在庫高順に並べ替え (低から高へ)" name="sort_by_stock_amount"/> + <menu_item_check label="リストフォルダのみ表示" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index 40002b4f33..3f756c5f94 100755 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="L$ の購入..." name="Buy and Sell L$"/> <menu_item_call label="マーチャントアウトボックス..." name="MerchantOutbox"/> + <menu_item_call label="マーケティングプレイスのリスト..." name="MarketplaceListings"/> <menu_item_call label="マイアカウント..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ja"/> </menu_item_call> @@ -251,6 +252,7 @@ <menu_item_check label="テクスチャのコンソール" name="Texture Console"/> <menu_item_check label="デバッグコンソール" name="Debug Console"/> <menu_item_call label="通知コンソール" name="Notifications"/> + <menu_item_check label="地域デバッグコンソール" name="Region Debug Console"/> <menu_item_check label="ファーストタイマー" name="Fast Timers"/> <menu_item_check label="メモリ" name="Memory"/> <menu_item_check label="風景の統計" name="Scene Statistics"/> @@ -354,7 +356,7 @@ <menu_item_check label="挿入されたオブジェクトの位置の Ping" name="Ping Interpolate Object Positions"/> <menu_item_call label="パケットドロップ" name="Drop a Packet"/> </menu> - <menu_item_call label="スクリプト付きカメラをダンプ" name="Dump Scripted Camera"/> + <menu_item_call label="スクリプト付きカメラをダンプ" name="Dump Scripted Camera"/> <menu label="レコーダー" name="Recorder"> <menu_item_call label="再生開始" name="Start Playback"/> <menu_item_call label="再生停止" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index fba89dc296..694f38467e 100755 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -128,6 +128,88 @@ システムまたはネットワークのエラーのため、マーケットプレイスの初期化に失敗しました。後でもう一度お試しください。 <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + 在庫フォルダへのコピーまたは移動がエラーにより失敗しました: + +'[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + マーケットプレイスのリストへのコピーまたは移動がエラーにより失敗しました: + +'[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + マーケットプレイスによる取引が次のエラーにより失敗しました: + +理由:'[ERROR_REASON]' +[ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + この製品をリストに表示できないか、バージョンフォルダを有効にできません。通常、これはリスト説明フォームに情報が不足しているために起こりますが、フォルダ構造のエラーが原因の場合もあります。リストを編集するか、リストフォルダにエラーがないか確認してください。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + マーケットプレイスへのリスト表示が次のエラーで失敗しました : + +'[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + このバージョンフォルダの有効化が次のエラーにより失敗しました : + +'[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + この操作により、このリストの有効な内容が変更されます。続けますか? + <usetemplate ignoretext="マーケットプレイスで有効なリストを変更する前に確認する" name="okcancelignore" notext="取り消し" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + マーケットプレイスのリストウィンドウにドラッグしたアイテムは元の場所からコピーされるのではなく、移動します。続けますか? + <usetemplate ignoretext="アイテムをインベントリからマーケットプレイスに移動する前に確認する" name="okcancelignore" notext="取り消し" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + リストフォルダを移動または削除すると、マーケットプレイスのリストが削除されます。マーケットプレイスのリストを維持する場合は、変更するバージョンフォルダの中身を移動または削除してください。続けますか? + <usetemplate ignoretext="マーケットプレイスからリストを移動または削除する前に確認する" name="okcancelignore" notext="取り消し" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + これらのアイテムの 1 つまたは複数をマーケットプレイスにコピーする権限がありません。移動するか、置き去りにすることはできます。 + <usetemplate canceltext="取り消し" ignoretext="コピー付加アイテムを含む選択内容をマーケットプレイスへコピーする前に確認する" name="yesnocancelbuttons" notext="アイテムを移動しない" yestext="アイテムを移動"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + この操作により、このリストが削除されます。続けますか? + <usetemplate ignoretext="マーケットプレイスで有効なリストを削除する前に確認する" name="okcancelignore" notext="取り消し" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + この操作により、現在のリストのバージョンフォルダが無効になります。続けますか? + <usetemplate ignoretext="マーケットプレイスでリストのバージョンフォルダを無効にする前に確認する" name="okcancelignore" notext="取り消し" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + このリストをアップデートできませんでした。 +[[URL] ここをクリック] してマーケットプレイスで編集します。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + マーケットプレイスのリストフォルダにある衣服やボディパーツを着用できません。 + </notification> + <notification name="AlertMerchantListingInvalidID"> + リスト ID が無効です。 + </notification> + <notification name="AlertMerchantListingActivateRequired"> + このリストには複数のバージョンフォルダがあるか、バージョンフォルダがありません。後で、単独でバージョンフォルダを選択して有効にする必要があります。 + <usetemplate ignoretext="複数のバージョンフォルダのあるリストを作成するときに、バージョンフォルダの有効化に関する警告が表示されます" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + 各種の在庫品目を別々の在庫フォルダに分けたため、フォルダはリストに表示できるように配置されています。 + <usetemplate ignoretext="リストに表示する前に在庫フォルダが分割されると、警告が表示されます" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + 在庫が空のため、リストを削除しました。もう一度リストを表示するには、在庫フォルダにユニットを追加する必要があります。 + <usetemplate ignoretext="在庫フォルダが空のためにリストが表示されないと警告が表示されます" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> 次の理由で、スクリプト用テキストのアップロード時に問題が起こりました。 [REASON] @@ -495,6 +577,10 @@ L$ が不足しているのでこのグループに参加することができ 変更を保存しますか? <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="保存しない" yestext="保存"/> </notification> + <notification name="DeleteNotecard"> + ノートカードを削除しますか? + <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> ジェスチャーの保存に失敗しました。 ステップが多すぎます。 @@ -1906,6 +1992,9 @@ http://wiki.secondlife.com/wiki/Setting_your_display_name を参照してくだ 訪問しようとしている地域(リージョン)には現在の環境設定を超えるコンテンツが含まれています。「ミー」 > 「環境設定」 > 「一般」を選択して、環境設定を変更できます。 <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> 訪問しようとしている地域(リージョン)には、成人のみアクセスできる [REGIONMATURITY] コンテンツが含まれています。 <url name="url"> @@ -2198,6 +2287,10 @@ L$ [AMOUNT] で、このクラシファイド広告を今すぐ公開します <ignore name="ignore" text="オブジェクトを作成中に、money() スクリプトを入れずに「オブジェクトに支払う」アクションを設定したとき"/> </form> </notification> + <notification name="PayConfirmation"> + L$[AMOUNT] を [TARGET] に支払うことを確認してください。 + <usetemplate ignoretext="支払い前に確認 (合計金額が L$200 以上の場合)" name="okcancelignore" notext="取り消し" yestext="支払い"/> + </notification> <notification name="OpenObjectCannotCopy"> このオブジェクトには、あなたがコピーできるアイテムはありません。 </notification> @@ -3881,9 +3974,11 @@ M キーを押して変更します。 </notification> <notification name="TeleportedByAttachment"> [ITEM_ID] へのアタッチメントによって、あなたはテレポートされています。 + <usetemplate ignoretext="テレポート:アタッチメントによりテレポートされました" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> 区画 '[PARCEL_NAME]' のオブジェクト '[OBJECT_NAME]' によって、あなたはテレポートされています。 + <usetemplate ignoretext="テレポート:区画上のオブジェクトによりテレポートされました" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> [OWNER_ID] が所有しているオブジェクト '[OBJECT_NAME]' によって、あなたはテレポートされています。 @@ -4215,7 +4310,7 @@ M キーを押して変更します。 <usetemplate ignoretext="ファイルを移動できません。以前のパスがリストアされました。" name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - 次の理由により、デフォルト権限を保存するときに問題がありました: [REASON]。後でデフォルト権限を設定してください。 + デフォルトのオブジェクト権限を保存するときに問題が発生しました: [REASON]。後でデフォルトの権限を設定してください。 <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml index c5d5330eb4..5f2007e0da 100755 --- a/indra/newview/skins/default/xui/ja/panel_login.xml +++ b/indra/newview/skins/default/xui/ja/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=ja - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=ja</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="ユーザー名" name="username_combo" tool_tip="登録時に自分で選んだユーザー名(例:bobsmith12、Steller Sunshineなど)"/> <line_editor label="パスワード" name="password_edit"/> - <check_box label="記憶する" name="remember_check"/> - <text name="forgot_password_text"> - パスワードを忘れた場合 - </text> - <button label="ログイン" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - 前回の場所 - </text> <combo_box label="お気に入りの場所" name="start_location_combo"> + <combo_box.item label="最後にログアウトした場所" name="MyLastLocation"/> <combo_box.item label="ホーム" name="MyHome"/> </combo_box> - <button label="ログイン" name="connect_favorite_btn"/> - <line_editor label="場所を入力" name="location_edit"/> - <button label="ログイン" name="connect_location_btn"/> + <button label="ログイン" name="connect_btn"/> + <check_box label="記憶する" name="remember_check"/> + <text name="forgot_password_text">パスワードを忘れた場合</text> <combo_box label="グリッドを選択" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/ja/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/ja/panel_marketplace_listings.xml new file mode 100644 index 0000000000..a9218bebff --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="マーケットプレイス" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="表示/並べ替えオプション"/> + <button name="add_btn" tool_tip="新規リストフォルダの作成"/> + <button label="エラーを確認" name="audit_btn" tool_tip="マーケットプレイスのリストを確認"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="マーケットプレイスのリストをフィルタ" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..43cb64d6ba --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="すべて" name="All Items" tool_tip="ここにアイテムをドラッグ&ドロップしてリストに表示します"/> diff --git a/indra/newview/skins/default/xui/ja/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..7f27231cbd --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="リストに掲載" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..215be9ae6d --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="関連付けされていない" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..04530477f6 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="リストから削除済み" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index f09643d562..2e1446d450 100755 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - パケット損失 - </panel.string> - <panel.string name="bandwidth_tooltip"> - 帯域幅 - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [year, datetime, slt] [month, datetime, slt] [day, datetime, slt] ([weekday, datetime, slt]) - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">パケット損失</panel.string> + <panel.string name="bandwidth_tooltip">帯域幅</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[year, datetime, slt] [month, datetime, slt] [day, datetime, slt] ([weekday, datetime, slt])</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel left="-370" name="balance_bg" width="160"> - <text name="balance" tool_tip="クリックして L$ 残高を更新" value="L$20"/> + <text name="balance" tool_tip="クリックして L$ 残高を更新" value="L$??"/> <button label="L$ の購入" name="buyL" tool_tip="クリックして L$ を購入します"/> - <button label="店" name="goShop" tool_tip="Second Life マーケットプレイスを開く" width="40"/> + <button label="店" name="goShop" tool_tip="Second Life マーケットプレイスを開く" width="40"/> </panel> - <text name="TimeText" tool_tip="現在時刻(太平洋)"> - 24:00 AM PST - </text> + <text name="TimeText" tool_tip="現在時刻(太平洋)">24:00 AM PST</text> <button name="media_toggle_btn" tool_tip="すべてのメディアを開始・停止(音楽、ビデオ、Web ページ)"/> <button name="volume_btn" tool_tip="グローバル音量設定"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml index 56a8b0e097..d888470846 100755 --- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="再販・プレゼント" name="CheckNextOwnerTransfer" tool_tip="次の所有者はこのオブジェクトを他人にあげたり再販できます"/> </panel> <check_box label="販売中" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="コピー" name="Copy"/> + <combo_box.item label="コンテンツ" name="Contents"/> <combo_box.item label="オリジナル" name="Original"/> </combo_box> <spinner label="価格: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml index 4f65c8477b..858307800b 100755 --- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="オブジェクトのプロフィール"> - <panel.string name="text deed continued"> - 譲渡 - </panel.string> - <panel.string name="text deed"> - 譲渡 - </panel.string> - <panel.string name="text modify info 1"> - このオブジェクトを修正できます - </panel.string> - <panel.string name="text modify info 2"> - これらのオブジェクトを修正できます - </panel.string> - <panel.string name="text modify info 3"> - このオブジェクトを修正できません - </panel.string> - <panel.string name="text modify info 4"> - これらのオブジェクトを修正できません - </panel.string> - <panel.string name="text modify info 5"> - 地域(リージョン)の境界を越えてこのオブジェクトを修正できません - </panel.string> - <panel.string name="text modify info 6"> - 地域(リージョン)の境界を越えてこれらのオブジェクトを修正できません - </panel.string> - <panel.string name="text modify warning"> - このオブジェクトには、パーツがリンクされています - </panel.string> - <panel.string name="Cost Default"> - 価格: L$ - </panel.string> - <panel.string name="Cost Total"> - 合計: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Price Per: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Mixed Price - </panel.string> - <panel.string name="Sale Mixed"> - Mixed Sale - </panel.string> + <panel.string name="text deed continued">譲渡</panel.string> + <panel.string name="text deed">譲渡</panel.string> + <panel.string name="text modify info 1">このオブジェクトを修正できます</panel.string> + <panel.string name="text modify info 2">これらのオブジェクトを修正できます</panel.string> + <panel.string name="text modify info 3">このオブジェクトを修正できません</panel.string> + <panel.string name="text modify info 4">これらのオブジェクトを修正できません</panel.string> + <panel.string name="text modify info 5">地域(リージョン)の境界を越えてこのオブジェクトを修正できません</panel.string> + <panel.string name="text modify info 6">地域(リージョン)の境界を越えてこれらのオブジェクトを修正できません</panel.string> + <panel.string name="text modify warning">このオブジェクトには、パーツがリンクされています</panel.string> + <panel.string name="Cost Default">価格: L$</panel.string> + <panel.string name="Cost Total">合計価格: L$</panel.string> + <panel.string name="Cost Per Unit">Price Per: L$</panel.string> + <panel.string name="Cost Mixed">Mixed Price</panel.string> + <panel.string name="Sale Mixed">Mixed Sale</panel.string> <text name="title" value="オブジェクトのプロフィール"/> <text name="where" value="(インワールド)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - 名前: - </text> - <text name="Description:"> - 説明: - </text> - <text name="CreatorNameLabel"> - 制作者: - </text> - <text name="Owner:"> - 所有者: - </text> - <text name="Group_label"> - グループ: - </text> + <text name="Name:">名前:</text> + <text name="Description:">説明:</text> + <text name="CreatorNameLabel">制作者:</text> + <text name="Owner:">所有者:</text> + <text name="Group_label">グループ:</text> <button name="button set group" tool_tip="このオブジェクト権限を共有するグループを選択します"/> <name_box initial_value="ローディング..." name="Group Name Proxy"/> <button label="譲渡" label_selected="譲渡" name="button deed" tool_tip="このアイテムを譲渡すると「次の所有者」の権限が適用されます。 グループ共有オブジェクトは、グループのオフィサーが譲渡できます。"/> - <text name="label click action"> - クリックで: - </text> + <text name="label click action">クリックで:</text> <combo_box name="clickaction"> <combo_box.item label="触る(デフォルト)" name="Touch/grab(default)"/> <combo_box.item label="オブジェクトに座る" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="ズーム" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - このオブジェクトを修正できます - </text> - <text name="Anyone can:"> - 全員: - </text> + <text name="perm_modify">このオブジェクトを修正できます</text> + <text name="Anyone can:">全員:</text> <check_box label="コピー" name="checkbox allow everyone copy"/> <check_box label="移動" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - グループ: - </text> + <text name="GroupLabel">グループ:</text> <check_box label="共有" name="checkbox share with group" tool_tip="設定したグループのメンバー全員にこのオブジェクトの修正権限を与えます。 譲渡しない限り、役割制限を有効にはできません。"/> - <text name="NextOwnerLabel"> - 次の所有者: - </text> + <text name="NextOwnerLabel">次の所有者:</text> <check_box label="修正" name="checkbox next owner can modify"/> <check_box label="コピー" name="checkbox next owner can copy"/> <check_box label="再販・プレゼント" name="checkbox next owner can transfer" tool_tip="次の所有者はこのオブジェクトを他人にあげたり再販できます"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="価格: L$" name="Edit Cost"/> <check_box label="検索に表示" name="search_check" tool_tip="このオブジェクトを検索結果に表示します"/> - <text name="pathfinding_attributes_label"> - パスファインディング属性: - </text> - <text name="B:"> - B. - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">パスファインディング属性:</text> + <text name="B:">B.</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="開く" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index e825389895..22eb9ce888 100755 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -453,28 +453,46 @@ support@secondlife.com にお問い合わせください。 </string> <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - マーチャントボックス内のアイテムを Rez することはできません + マーケットプレイスのリストフォルダからアイテムを Rez できません + </string> + <string name="TooltipOutboxWorn"> + 着ているアイテムをマーケットプレイスのリストフォルダに置くことはできません + </string> + <string name="TooltipOutboxFolderLevels"> + ネスト入りフォルダの深さが [AMOUNT] 階層を超えています必要に応じてアイテムを箱に入れ、フォルダの階層を減らします。 + </string> + <string name="TooltipOutboxTooManyFolders"> + サブフォルダ数が [AMOUNT] 個を超えています。必要に応じてアイテムを箱に入れ、リストのフォルダ階層を減らします。 + </string> + <string name="TooltipOutboxTooManyObjects"> + アイテム数が [AMOUNT] 個を超えています。1 つのリスト内で [AMOUNT] 個を超えるアイテムを販売するためには、いくつかのアイテムを箱に入れる必要があります。 + </string> + <string name="TooltipOutboxTooManyStockItems"> + 在庫アイテム数が [AMOUNT] 個を超えています。 + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + アイテムまたはフォルダは「すべて」タブによってのみドロップできます。このタブを選択してから、もう一度アイテムまたはフォルダを選択してください。 </string> <string name="TooltipOutboxNoTransfer"> - これらオブジェクトの 1 つまたは複数は売り渡したり譲渡したりできないものです。 + これらのオブジェクトの 1 つまたは複数は売り渡したり譲渡したりできないものです </string> <string name="TooltipOutboxNotInInventory"> - マーチャントアウトボックスでは、ご自分のインベントリからのアイテムしか受け入れることができません + アイテムはインベントリからマーケットプレイスへの移動のみできます </string> - <string name="TooltipOutboxWorn"> - 着用しているアイテムをマーチャントアウトボックスに入れることはできません + <string name="TooltipOutboxLinked"> + リンクされた相手またはフォルダをマーケットプレイスに置くことはできません </string> <string name="TooltipOutboxCallingCard"> - コーリングカードをマーチャントアウトボックスに入れることはできません + コーリングカードをマーケットプレイスに置くことはできません </string> - <string name="TooltipOutboxFolderLevels"> - ネスト入りフォルダの深さが 3 を超えています + <string name="TooltipOutboxDragActive"> + 表示されているリストを移動できません </string> - <string name="TooltipOutboxTooManyFolders"> - 最上位フォルダ内のサブフォルダ数が 20 を超えています + <string name="TooltipOutboxCannotMoveRoot"> + ルートフォルダをリストに表示するマーケットプレイスを移動できません </string> - <string name="TooltipOutboxTooManyObjects"> - 最上位フォルダ内のアイテム数が 200 を超えています + <string name="TooltipOutboxMixedStock"> + 在庫フォルダ内のアイテムはすべて同じ種類と権限でなければなりません </string> <string name="TooltipDragOntoOwnChild"> フォルダをその子フォルダに移動することはできません @@ -1062,7 +1080,7 @@ support@secondlife.com にお問い合わせください。 <string name="AgentNameSubst"> (あなた) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> 土地のアクセスリストを管理するときにアラートを表示しない </string> @@ -1129,6 +1147,12 @@ support@secondlife.com にお問い合わせください。 <string name="bitmap_image_files"> ビットマップ画像 </string> + <string name="png_image_files"> + PNG 画像 + </string> + <string name="save_texture_image_files"> + Targa または PNG 画像 + </string> <string name="avi_movie_file"> AVI ムービーファイル </string> @@ -1378,6 +1402,9 @@ support@secondlife.com にお問い合わせください。 <string name="FavoritesNoMatchingItems"> ここにランドマークをドラッグしてお気に入りに追加します。 </string> + <string name="MarketplaceNoMatchingItems"> + アイテムが見つかりませんでした。検索文字列のスペルを確認して、もう一度やり直してください。 + </string> <string name="InventoryNoTexture"> インベントリ内にこのテクスチャのコピーがありません </string> @@ -1425,29 +1452,95 @@ support@secondlife.com にお問い合わせください。 <string name="InventoryOutboxError"> [[MARKETPLACE_CREATE_STORE_URL] マーケットプレイス ストア] がエラーを返しています。 </string> + <string name="InventoryMarketplaceError"> + この機能は、現在、ベータ版の機能です。参加するには、この [http://goo.gl/forms/FCQ7UXkakz Google form] に名前を追加してください。 + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + マーケットプレイスのリストフォルダが空です。 + </string> + <string name="InventoryMarketplaceListingsNoItems"> + [[MARKETPLACE_DASHBOARD_URL] マーケットプレイス]に販売するアイテムを一覧するには、フォルダをこのエリアにドラッグします。 + </string> + <string name="Marketplace Validation Warning Stock"> + バージョンフォルダに在庫フォルダが含まれなければなりません + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : エラー:在庫フォルダ内のすべてのアイテムはコピー不可で同じ種類でなければなりません + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : エラー:在庫フォルダにサブフォルダを含めることはできません + </string> + <string name="Marketplace Validation Warning Empty"> + : 警告:フォルダにアイテムが含まれていません + </string> + <string name="Marketplace Validation Warning Create Stock"> + : 警告:在庫フォルダを作成しています + </string> + <string name="Marketplace Validation Warning Create Version"> + : 警告:バージョンフォルダ作成中 + </string> + <string name="Marketplace Validation Warning Move"> + : 警告:アイテム移動中 + </string> + <string name="Marketplace Validation Warning Delete"> + : 警告:フォルダの中身が在庫フォルダに移されました。空のフォルダを削除します + </string> + <string name="Marketplace Validation Error Stock Item"> + : エラー:在庫フォルダにコピー不可アイテムを含める必要があります + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : 警告:バージョンフォルダにアイテムが含まれていなければなりません + </string> + <string name="Marketplace Validation Error"> + : エラー: + </string> + <string name="Marketplace Validation Warning"> + : 警告: + </string> + <string name="Marketplace Validation Error Empty Version"> + : 警告:バージョンフォルダには、最低 1 アイテムが含まれなければなりません + </string> + <string name="Marketplace Validation Error Empty Stock"> + : 警告:在庫フォルダには、最低 1 アイテムが含まれていなければなりません + </string> + <string name="Marketplace Validation No Error"> + 報告するエラーまたは警告はありません + </string> <string name="Marketplace Error None"> エラーなし </string> + <string name="Marketplace Error Prefix"> + エラー: + </string> <string name="Marketplace Error Not Merchant"> - エラー:マーケットプレイスにアイテムを送る前に、あなた自身をマーチャント登録する必要があります(登録は無料です)。 + マーケットプレイスに商品を送る前に、あなた自身をマーチャント登録する必要があります(登録は無料です)。 + </string> + <string name="Marketplace Error Not Accepted"> + アイテムをそのフォルダに移動できません。 </string> - <string name="Marketplace Error Empty Folder"> - エラー:このフォルダは空です。 + <string name="Marketplace Error Unsellable Item"> + このアイテムをマーケットプレイスで販売することはできません。 </string> - <string name="Marketplace Error Unassociated Products"> - エラー:あなたのマーチャントアカウントには、商品に関連付けられていないアイテムが多すぎるため、このアイテムをアップロードできませんでした。このエラーを解消するには、マーケットプレイスの Web サイトにログインし、関連付けられていないアイテムの数を減らしてください。 + <string name="MarketplaceNoID"> + Mkt ID なし </string> - <string name="Marketplace Error Object Limit"> - エラー:このアイテムに含まれるオブジェクトが多すぎます。オブジェクトをいくつかボックスにまとめ、オブジェクト数を200以下に減らしてください。 + <string name="MarketplaceLive"> + リスト掲載済み </string> - <string name="Marketplace Error Folder Depth"> - エラー:このアイテムはネスト入りフォルダの階層が多すぎます。ネスト入りフォルダを 3 階層以内にまとめ直してください。 + <string name="MarketplaceActive"> + 有効 </string> - <string name="Marketplace Error Unsellable Item"> - エラー:このアイテムをマーケットプレイスで販売することはできません。 + <string name="MarketplaceMax"> + 最大 </string> - <string name="Marketplace Error Internal Import"> - エラー:このアイテムに関して問題が発生しました。しばらくしてからお試しください。 + <string name="MarketplaceStock"> + 在庫 + </string> + <string name="MarketplaceNoStock"> + 在庫なし + </string> + <string name="MarketplaceUpdating"> + アップデート中... </string> <string name="Open landmarks"> ランドマークを開く @@ -1468,6 +1561,7 @@ support@secondlife.com にお問い合わせください。 コンテンツなし </string> <string name="WornOnAttachmentPoint" value=" ([ATTACHMENT_POINT] に装着中)"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (アクティブ)"/> <string name="PermYes"> はい @@ -1738,6 +1832,15 @@ support@secondlife.com にお問い合わせください。 <string name="Invalid Attachment"> 装着先が正しくありません </string> + <string name="ATTACHMENT_MISSING_ITEM"> + エラー:アイテムが見つかりません + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + エラー:ベースアイテムが見つかりません + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + エラー:オブジェクトは現在のアウトフィット内にありますが、添付されていません + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] </string> @@ -1873,9 +1976,6 @@ support@secondlife.com にお問い合わせください。 <string name="CompileQueueUnknownFailure"> 原因不明の失敗によりダウンロードができません </string> - <string name="CompileNoExperiencePerm"> - [EXPERIENCE] 体験による [SCRIPT] スクリプトのスキップ。 - </string> <string name="CompileQueueTitle"> リコンパイル進行 </string> @@ -1909,6 +2009,9 @@ support@secondlife.com にお問い合わせください。 <string name="SaveComplete"> 保存完了。 </string> + <string name="UploadFailed"> + ファイルのアップロードが失敗しました: + </string> <string name="ObjectOutOfRange"> スクリプト(オブジェクトが範囲外にあります) </string> @@ -1918,6 +2021,9 @@ support@secondlife.com にお問い合わせください。 <string name="GroupsNone"> なし </string> + <string name="CompileNoExperiencePerm"> + [EXPERIENCE] 体験による [SCRIPT] スクリプトのスキップ。 + </string> <string name="Group" value=" (グループ)"/> <string name="Unknown"> (不明) @@ -5069,6 +5175,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ <string name="Command_Marketplace_Label"> マーケットプレイス </string> + <string name="Command_MarketplaceListings_Label"> + マーケットプレイス + </string> <string name="Command_MiniMap_Label"> ミニマップ </string> @@ -5156,6 +5265,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ <string name="Command_Marketplace_Tooltip"> ショッピングに出掛ける </string> + <string name="Command_MarketplaceListings_Tooltip"> + 創作アイテムを販売します + </string> <string name="Command_MiniMap_Tooltip"> 近くの人を表示する </string> @@ -5267,6 +5379,18 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ <string name="UserDictionary"> [User] </string> + <string name="logging_calls_disabled_log_empty"> + 会話はログに記録されていません。ログの記録を開始するには、「環境設定」>「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。 + </string> + <string name="logging_calls_disabled_log_not_empty"> + これ以上の会話は記録されません。ログの記録を再開するには、「環境設定」>「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。 + </string> + <string name="logging_calls_enabled_log_empty"> + ログイン時の会話はありません。誰かにご連絡した後、または誰かがあなたに連絡した後、ログエントリがここに表示されます。 + </string> + <string name="loading_chat_logs"> + ロード中... + </string> <string name="experience_tools_experience"> 体験 </string> @@ -5348,16 +5472,4 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ <string name="ExperiencePermissionShort12"> 権限 </string> - <string name="logging_calls_disabled_log_empty"> - 会話はログに記録されていません。ログの記録を開始するには、「環境設定」>「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。 - </string> - <string name="logging_calls_disabled_log_not_empty"> - これ以上の会話は記録されません。ログの記録を再開するには、「環境設定」>「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。 - </string> - <string name="logging_calls_enabled_log_empty"> - ログイン時の会話はありません。誰かにご連絡した後、または誰かがあなたに連絡した後、ログエントリがここに表示されます。 - </string> - <string name="loading_chat_logs"> - ロード中... - </string> </strings> diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml index b9c75e8e88..bead6bffc4 100755 --- a/indra/newview/skins/default/xui/pl/floater_about.xml +++ b/indra/newview/skins/default/xui/pl/floater_about.xml @@ -5,10 +5,8 @@ <button label="Kopiuj do schowka" name="copy_btn" /> </panel> <panel label="Podziękowania" name="credits_panel"> - <text name="linden_intro"> - Second Life zostało dla Ciebie stworzone przez Lindenów, - z wkładem open source od: - </text> + <text name="linden_intro">Second Life zostało dla Ciebie stworzone przez Lindenów, +z wkładem open source od::</text> </panel> <panel label="Licencje" name="licenses_panel" /> </tab_container> diff --git a/indra/newview/skins/default/xui/pl/floater_associate_listing.xml b/indra/newview/skins/default/xui/pl/floater_associate_listing.xml new file mode 100644 index 0000000000..b5464dd59b --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="PRZYPISANE PRZEDMIOTY"> + <text name="message">ID przedmiotu:</text> + <line_editor name="listing_id">Wpisz tutaj ID</line_editor> + <button label="OK" name="OK"/> + <button label="Anuluj" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/pl/floater_edit_hover_height.xml index 7cedc17c59..80e481c0bc 100644 --- a/indra/newview/skins/default/xui/pl/floater_edit_hover_height.xml +++ b/indra/newview/skins/default/xui/pl/floater_edit_hover_height.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="HoverHeight" title="USTAW UNIESIENIE"> - <slider label="Unieś" name="HoverHeightSlider" /> + <slider label="Unieś" name="HoverHeightSlider"/> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml index d2844e117f..ff61d4059a 100755 --- a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml @@ -1,59 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="item properties" title="WŁAŚCIWOŚCI OBIEKTÓW W SZAFIE"> - <floater.string name="unknown"> - (nieznany) - </floater.string> - <floater.string name="public"> - (publiczny) - </floater.string> - <floater.string name="you_can"> - Ty możesz: - </floater.string> - <floater.string name="owner_can"> - Właściciel może: - </floater.string> - <text name="LabelItemNameTitle"> - Nazwa: - </text> - <text name="LabelItemDescTitle"> - Opis: - </text> - <text name="LabelCreatorTitle"> - Twórca: - </text> + <floater.string name="unknown">(nieznany)</floater.string> + <floater.string name="public">(publiczny)</floater.string> + <floater.string name="you_can">Opcje:</floater.string> + <floater.string name="owner_can">Właściciel może:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Nazwa:</text> + <text name="LabelItemDescTitle">Opis:</text> + <text name="LabelCreatorTitle">Twórca:</text> <button label="Profil..." name="BtnCreator" /> - <text name="LabelOwnerTitle"> - Właściciel: - </text> + <text name="LabelOwnerTitle">Właściciel:</text> <button label="Profil..." name="BtnOwner" /> - <text name="LabelAcquiredTitle"> - Nabyte: - </text> - <text name="OwnerLabel"> - Ty: - </text> + <text name="LabelAcquiredTitle">Nabyte:</text> + <text name="LabelAcquiredDate">Wed May 24 12:50:46 2006</text> + <text name="OwnerLabel">Ty:</text> <check_box label="Modyfikacja" name="CheckOwnerModify" /> <check_box label="Kopiowanie" name="CheckOwnerCopy" /> <check_box label="Transferowanie" name="CheckOwnerTransfer" /> - <text name="AnyoneLabel"> - Każdy: - </text> + <text name="AnyoneLabel">Każdy:</text> <check_box label="Kopiowanie" name="CheckEveryoneCopy" /> - <text name="GroupLabel"> - Grupa: - </text> + <text name="GroupLabel">Grupa:</text> <check_box label="Udostępnij" name="CheckShareWithGroup" /> - <text name="NextOwnerLabel"> - Nast. właściciel: - </text> + <text name="NextOwnerLabel">Następny właściciel:</text> <check_box label="Modyfikacja" name="CheckNextOwnerModify" /> <check_box label="Kopiowanie" name="CheckNextOwnerCopy" /> <check_box label="Transferowanie" name="CheckNextOwnerTransfer" /> <check_box label="Sprzedaż" name="CheckPurchase" /> <combo_box name="ComboBoxSaleType"> - <combo_box.item label="Kopia" name="Copy" /> - <combo_box.item label="Zawartość" name="Contents" /> - <combo_box.item label="Oryginał" name="Original" /> + <combo_box.item label="Kopia" name="Copy"/> + <combo_box.item label="Zawartość" name="Contents"/> + <combo_box.item label="Oryginał" name="Original"/> </combo_box> <spinner name="Edit Cost" label="Cena:" /> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_item_properties.xml b/indra/newview/skins/default/xui/pl/floater_item_properties.xml new file mode 100644 index 0000000000..8b0cf31a9a --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="WŁAŚCIWOŚCI"/> diff --git a/indra/newview/skins/default/xui/pl/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/pl/floater_marketplace_listings.xml new file mode 100644 index 0000000000..1917a4985b --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="RZECZY NA MARKETPLACE"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Wczytywanie...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/pl/floater_marketplace_validation.xml new file mode 100644 index 0000000000..826c72f2cd --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Sprawdź przedmioty na Marketplace"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_openobject.xml b/indra/newview/skins/default/xui/pl/floater_openobject.xml index f27e4ff858..a9b420d757 100755 --- a/indra/newview/skins/default/xui/pl/floater_openobject.xml +++ b/indra/newview/skins/default/xui/pl/floater_openobject.xml @@ -3,8 +3,11 @@ <text name="border_note"> Kopiuj do Szafy i załóż </text> - <button label="Dodaj do stroju" label_selected="Dodaj do stroju" name="copy_and_wear_button" /> - <button label="Zastąp strój" label_selected="Zastąp strój" name="copy_and_replace_button" /> - <button label="Tylko skopiuj do Szafy" label_selected="Tylko skopiuj do Szafy" name="copy_to_inventory_button" /> - <button label="Anuluj" label_selected="Anuluj" name="cancel_button" /> + <text name="border_note"> + Kopiuj do Szafy i załóż + </text> + <button label="Dodaj do stroju" label_selected="Dodaj do stroju" name="copy_and_wear_button"/> + <button label="Zastąp strój" label_selected="Zastąp strój" name="copy_and_replace_button"/> + <button label="Tylko skopiuj do Szafy" label_selected="Tylko skopiuj do Szafy" name="copy_to_inventory_button"/> + <button label="Anuluj" label_selected="Anuluj" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml index 7d628b883d..3e0e7f2207 100755 --- a/indra/newview/skins/default/xui/pl/floater_pay.xml +++ b/indra/newview/skins/default/xui/pl/floater_pay.xml @@ -1,25 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money"> - <string name="payee_group"> - Zapłać grupie - </string> - <string name="payee_resident"> - Zapłać Rezydentowi - </string> - <text name="paying_text"> - Płacisz: - </text> + <string name="payee_group">Zapłać grupie</string> + <string name="payee_resident">Zapłać Rezydentowi</string> + <text name="paying_text">Płacisz:</text> + <text name="payee_name">Przetestuj nazwę, która jest bardzo długa aby sprawdzić skracanie.</text> <panel label="Szukaj" name="PatternsPanel"> - <button label="Płać 1L$" label_selected="Płać 1L$" name="fastpay 1" /> - <button label="Płać 5L$" label_selected="Płać 5L$" name="fastpay 5" /> - <button label="Płać 10L$" label_selected="Płać 10L$" name="fastpay 10" /> + <button label="Płać 1L$" label_selected="Płać 1L$" name="fastpay 1"/> + <button label="Płać 5L$" label_selected="Płać 5L$" name="fastpay 5"/> + <button label="Płać 10L$" label_selected="Płać 10L$" name="fastpay 10"/> + <button label="Płać 20L$" label_selected="Płać 20L$" name="fastpay 20"/> + </panel> + <panel label="Szukaj" name="InputPanel"> + <text name="amount text">Inna kwota:</text> <button label="Płać 20L$" label_selected="Płać 20L$" name="fastpay 20" /> </panel> <panel label="Szukaj" name="InputPanel"> - <text name="amount text"> - Inna kwota: - </text> - <button label="Zapłać" label_selected="Zapłać" name="pay btn" /> - <button label="Anuluj" label_selected="Anuluj" name="cancel btn" /> + <button label="Zapłać" label_selected="Zapłać" name="pay btn"/> + <button label="Anuluj" label_selected="Anuluj" name="cancel btn"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_pay_object.xml b/indra/newview/skins/default/xui/pl/floater_pay_object.xml index f351c059e5..d196e08fee 100755 --- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml @@ -1,29 +1,21 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Give Money"> - <string name="payee_group"> - Zapłać grupie - </string> - <string name="payee_resident"> - Zapłać Rezydentowi - </string> - <text name="paying_text"> - Płacisz: - </text> - <text name="object_name_label"> - Przez obiekt: - </text> - <icon name="icon_object" tool_tip="Obiekty" /> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Give Money" title=""> + <string halign="left" name="payee_group" width="100">Zapłać grupie</string> + <string halign="left" name="payee_resident" width="120">Zapłać Rezydentowi</string> + <text name="paying_text">Płacisz:</text> + <text left="125" name="payee_name">Ericacita Moostopolison</text> + <text halign="left" left="5" name="object_name_label" width="95">Poprzez obiekt:</text> + <icon name="icon_object" tool_tip="Obiekt"/> + <text left="105" name="object_name_text">Poprzez obiekt</text> <panel label="Szukaj" name="PatternsPanel"> - <button label="Płać 1L$" label_selected="Płać 1L$" name="fastpay 1" /> - <button label="Płać 5L$" label_selected="Płać 5L$" name="fastpay 5" /> - <button label="Płać 10L$" label_selected="Płać 10L$" name="fastpay 10" /> - <button label="Płać 20L$" label_selected="Płać 20L$" name="fastpay 20" /> + <button label="Płać 1L$" label_selected="Płać 1L$" name="fastpay 1"/> + <button label="Płać 5L$" label_selected="Płać 5L$" name="fastpay 5"/> + <button label="Płać 10L$" label_selected="Płać 10L$" name="fastpay 10"/> + <button label="Płać 20L$" label_selected="Płać 20L$" name="fastpay 20"/> </panel> <panel label="Szukaj" name="InputPanel"> - <text name="amount text"> - Inna kwota: - </text> - <button label="Zapłać" label_selected="Zapłać" name="pay btn" /> - <button label="Anuluj" label_selected="Anuluj" name="cancel btn" /> + <text name="amount text">Inna kwota:</text> + <button label="Zapłać" label_selected="Zapłać" name="pay btn"/> + <button label="Anuluj" label_selected="Anuluj" name="cancel btn"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/pl/menu_inventory.xml b/indra/newview/skins/default/xui/pl/menu_inventory.xml index 0edb680b16..108f2e7a32 100755 --- a/indra/newview/skins/default/xui/pl/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pl/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <menu name="Popup"> + <menu_item_call label="Utwórz nowy przedmiot" name="Marketplace Create Listing"/> + <menu_item_call label="Przypisz" name="Marketplace Associate Listing"/> + <menu_item_call label="Pobierz ponownie (odśwież)" name="Marketplace Get Listing"/> + <menu_item_call label="Zweryfikuj" name="Marketplace Check Listing"/> + <menu_item_call label="Edytuj przedmiot" name="Marketplace Edit Listing"/> + <menu_item_call label="Listuj" name="Marketplace List"/> + <menu_item_call label="Usuń z listy" name="Marketplace Unlist"/> + <menu_item_call label="Aktywuj" name="Marketplace Activate"/> + <menu_item_call label="Dezaktywuj" name="Marketplace Deactivate"/> <menu_item_call label="Udostępnij" name="Share" /> <menu_item_call label="Kupuj" name="Task Buy" /> <menu_item_call label="Otwórz" name="Task Open" /> @@ -88,7 +97,7 @@ <menu_item_call label="Edytuj" name="Wearable Edit" /> <menu_item_call label="Dodaj/dołącz" name="Wearable Add" /> <menu_item_call label="Zdejmij" name="Take Off" /> - <menu_item_call label="Kopiuj do Skrzynki Kupca" name="Merchant Copy" /> - <menu_item_call label="Wyślij na Marketplace" name="Marketplace Send" /> + <menu_item_call label="Kopiuj do przedmiotów Marketplace" name="Marketplace Copy"/> + <menu_item_call label="Przenieś do przedmiotów Marketplace" name="Marketplace Move"/> <menu_item_call label="--brak opcji--" name="--no options--" /> </menu> diff --git a/indra/newview/skins/default/xui/pl/menu_marketplace_view.xml b/indra/newview/skins/default/xui/pl/menu_marketplace_view.xml new file mode 100644 index 0000000000..b948074501 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Sortuj według ilości (rosnąco)" name="sort_by_stock_amount"/> + <menu_item_check label="Pokaż tylko foldery" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml index 2ffce083f1..ef3fe71945 100755 --- a/indra/newview/skins/default/xui/pl/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml @@ -1,504 +1,306 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Main Menu"> <menu label="Ja" name="Me"> - <menu_item_call label="Profil..." name="Profile" /> - <menu_item_call label="Wygląd..." name="ChangeOutfit" /> - <menu_item_call label="Wybierz awatara..." name="Avatar Picker" /> - <menu_item_check label="Szafa..." name="Inventory" /> - <menu_item_call label="Nowe okno Szafy" name="NewInventoryWindow" /> - <menu_item_call label="Landmarki..." name="Places" /> - <menu_item_call label="Miejsca..." name="Picks" /> - <menu_item_call label="Ustawienia kamery..." name="Camera Controls" /> - <menu label="Ustawienia ruchu" name="Movement"> - <menu_item_call label="Usiądź" name="Sit Down Here" /> - <menu_item_check label="Zacznij latać" name="Fly" /> - <menu_item_call label="Przestań latać" name="Stop flying" /> - <menu_item_check label="Zawsze biegnij" name="Always Run" /> - <menu_item_call label="Przestań mnie animować" name="Stop Animating My Avatar" /> - <menu_item_call label="Chodzenie / Bieganie / Latanie..." name="Walk / run / fly" /> - </menu> - <menu name="Status"> - <menu_item_check name="Away" label="Z dala od klawiatury (śpij)" /> - <menu_item_check name="Do Not Disturb" label="Zajęty lub Niedostępny" /> - </menu> - <menu_item_call label="Kup L$..." name="Buy and Sell L$" /> - <menu_item_call label="Skrzynka nadawcza kupca..." name="MerchantOutbox" /> - <menu_item_call label="Zarządzaj kontem..." name="Manage My Account" /> - <menu_item_call label="Ustawienia..." name="Preferences" /> - <menu_item_call label="Przyciski na paskach..." name="Toolbars" /> - <menu_item_call label="Ukryj interfejs" name="Hide UI" /> - <menu_item_check label="Pokaż dodatki HUD" name="Show HUD Attachments" /> - <menu_item_call label="Wyłącz [APP_NAME]" name="Quit" /> + <menu_item_call label="Mój Profil" name="Profile"/> + <menu_item_call label="Mój wygląd" name="ChangeOutfit"/> + <menu_item_check label="Moja Szafa" name="Inventory"/> + <menu label="Ruch" name="Movement"> + <menu_item_call label="Usiądź" name="Sit Down Here"/> + <menu_item_check label="Zacznij latać" name="Fly"/> + <menu_item_check label="Zawsze biegnij" name="Always Run"/> + <menu_item_call label="Zatrzymaj animacje" name="Stop Animating My Avatar"/> + </menu> + <menu label="Mój Status" name="Status"/> + <menu_item_call label="Kup L$" name="Buy and Sell L$"/> + <menu_item_call label="Moje rzeczy na Marketplace" name="MarketplaceListings"/> + <menu_item_call label="Dashboard" name="Manage My Account"/> + <menu_item_call label="Ustawienia" name="Preferences"/> + <menu_item_call label="Wyłącz [APP_NAME]" name="Quit"/> </menu> <menu label="Komunikacja" name="Communicate"> - <menu_item_check label="Rozmowy..." name="Conversations" /> - <menu_item_check label="Czat lokalny..." name="Nearby Chat" /> - <menu_item_check label="Mowa" name="Speak" /> - <menu_item_check name="Conversation Log..." label="Dziennik rozmów..." /> - <menu label="Przekształcanie głosu" name="VoiceMorphing"> - <menu_item_check label="Bez przekształcania" name="NoVoiceMorphing" /> - <menu_item_check label="Podgląd..." name="Preview" /> - <menu_item_call label="Subskrybuj..." name="Subscribe" /> - </menu> - <menu_item_check label="Gesty..." name="Gestures" /> - <menu_item_check label="Znajomi" name="My Friends" /> - <menu_item_check label="Grupy" name="My Groups" /> - <menu_item_check label="Osoby w pobliżu" name="Active Speakers" /> - <menu_item_check label="Lista zablokowanych" name="Block List" /> - <menu_item_check name="Do Not Disturb" label="Zajęty lub Niedostępny" /> + <menu_item_check label="Czat lokalny" name="Nearby Chat"/> + <menu_item_check label="Znajomi" name="My Friends"/> + <menu_item_check label="Grupy" name="My Groups"/> + <menu_item_check label="Osoby w pobliżu" name="Active Speakers"/> </menu> <menu label="Świat" name="World"> - <menu_item_call label="Zapamiętaj to miejsce (LM)" name="Create Landmark Here" /> - <menu_item_call label="Cele podróży..." name="Destinations" /> - <menu_item_check label="Mapa Świata" name="World Map" /> - <menu_item_check label="Minimapa" name="Mini-Map" /> - <menu_item_check label="Wyszukiwarka" name="Search" /> - <menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home" /> - <menu_item_call label="Ustaw Miejsce Startu tu, gdzie stoję" name="Set Home to Here" /> - <menu_item_call label="Zrób zdjęcie" name="Take Snapshot" /> - <menu_item_call label="Profil miejsca" name="Place Profile" /> - <menu_item_call label="O działce" name="About Land" /> - <menu_item_call label="Region / Majątek" name="Region/Estate" /> - <menu_item_call label="Moje działki..." name="My Land" /> - <menu_item_call label="Kup działkę" name="Buy Land" /> - <menu label="Pokaż więcej" name="LandShow"> - <menu_item_check label="Linie zakazu" name="Ban Lines" /> - <menu_item_check label="Emitery" name="beacons" shortcut="" /> - <menu_item_check label="Granice działek" name="Property Lines" /> - <menu_item_check label="Właściciele działek" name="Land Owners" /> - <menu_item_check label="Współrzędne" name="Coordinates" /> - <menu_item_check label="Zezwolenia działek" name="Parcel Properties" /> - <menu_item_check label="Menu Zaawansowane" name="Show Advanced Menu" /> + <menu_item_call label="Zapamiętaj to miejsce (LM)" name="Create Landmark Here"/> + <menu_item_check label="Mapa Świata" name="World Map"/> + <menu_item_check label="Mini-Mapa" name="Mini-Map"/> + <menu_item_check label="Szukaj" name="Search"/> + <menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home"/> + <menu_item_call label="Ustaw Miejsce Startu" name="Set Home to Here"/> + <menu_item_call label="Zrób zdjęcie" name="Take Snapshot"/> + <menu_item_call label="Profil miejsca" name="Place Profile"/> + <menu_item_call label="O posiadłości" name="About Land"/> + <menu_item_call label="Region/Majątek" name="Region/Estate"/> + <menu_item_call label="Moje posiadłości" name="My Land"/> + <menu_item_call label="Kup posiadłość" name="Buy Land"/> + <menu label="Pokaż" name="LandShow"> + <menu_item_check label="Linie bana" name="Ban Lines"/> + <menu_item_check label="Emitery" name="beacons"/> + <menu_item_check label="Granice posiadłości" name="Property Lines"/> + <menu_item_check label="Właściciele posiadłości" name="Land Owners"/> + <menu_item_check label="Współrzędne" name="Coordinates"/> + <menu_item_check label="Właściwości posiadłości" name="Parcel Properties"/> + <menu_item_check label="Menu Zaawansowane" name="Show Advanced Menu"/> </menu> - <menu_item_check label="Pokaż pasek nawigacyjny" name="ShowNavbarNavigationPanel" /> - <menu_item_check label="Pokaż pasek ulubionych" name="ShowNavbarFavoritesPanel" /> <menu label="Słońce" name="Sun"> - <menu_item_check label="Wschód Słońca" name="Sunrise" /> - <menu_item_check label="Południe" name="Noon" /> - <menu_item_check label="Zachód Słońca" name="Sunset" /> - <menu_item_check label="Północ" name="Midnight" /> - <menu_item_check label="Używaj czasu Regionu" name="Use Region Settings" /> - </menu> - <menu label="Edytor środowiska" name="Environment Editor"> - <menu_item_call label="Ustawienia środowiska..." name="Environment Settings" /> - <menu name="Water Presets" label="Ustawienia wody"> - <menu_item_call label="Nowe Ustawienie..." name="new_water_preset" /> - <menu_item_call label="Edytuj Ustawienie..." name="edit_water_preset" /> - <menu_item_call label="Usuń Ustawienie..." name="delete_water_preset" /> - </menu> - <menu name="Sky Presets" label="Ustawienia nieba"> - <menu_item_call label="Nowe Ustawienie..." name="new_sky_preset" /> - <menu_item_call label="Edytuj Ustawienie..." name="edit_sky_preset" /> - <menu_item_call label="Usuń Ustawienie..." name="delete_sky_preset" /> - </menu> - <menu name="Day Presets" label="Ustawienia pory dnia"> - <menu_item_call label="Nowe Ustawienie..." name="new_day_preset" /> - <menu_item_call label="Edytuj Ustawienie..." name="edit_day_preset" /> - <menu_item_call label="Usuń Ustawienie..." name="delete_day_preset" /> - </menu> + <menu_item_check label="Wschód Słońca" name="Sunrise"/> + <menu_item_check label="Południe" name="Noon"/> + <menu_item_check label="Zachód Słońca" name="Sunset"/> + <menu_item_check label="Północ" name="Midnight"/> </menu> </menu> <menu label="Buduj" name="BuildTools"> - <menu_item_check label="Pokaż narzędzia budowania" name="Show Build Tools" /> + <menu_item_check label="Buduj" name="Show Build Tools"/> <menu label="Wybierz narzędzie budowania" name="Select Tool"> - <menu_item_call label="Narzędzie centrowania" name="Focus" /> - <menu_item_call label="Narzędzie ruchu" name="Move" /> - <menu_item_call label="Narzędzie edycji" name="Edit" /> - <menu_item_call label="Narzędzie tworzenia" name="Create" /> - <menu_item_call label="Narzędzie terenu" name="Land" /> - </menu> - <menu_item_call label="Scal" name="Link" /> - <menu_item_call label="Rozłącz" name="Unlink" /> - <menu_item_check label="Edytuj połączone części" name="Edit Linked Parts" /> - <menu label="Wybierz połączone części" name="Select Linked Parts"> - <menu_item_call label="Wybierz następną część" name="Select Next Part" /> - <menu_item_call label="Zaznacz poprzednią część" name="Select Previous Part" /> - <menu_item_call label="Uwzględnij następną część" name="Include Next Part" /> - <menu_item_call label="Uwzględnij poprzednią część" name="Include Previous Part" /> - </menu> - <menu_item_call label="Zbiory części (linków)..." name="pathfinding_linkset_menu_item" /> - <menu_item_call label="Wycentruj na selekcji" name="Focus on Selection" /> - <menu_item_call label="Przybliż do selekcji" name="Zoom to Selection" /> + <menu_item_call label="Narzędzie ogniskowej" name="Focus"/> + <menu_item_call label="Narzędzie ruchu" name="Move"/> + <menu_item_call label="Narzędzie edycji" name="Edit"/> + <menu_item_call label="Stwórz narzędzie" name="Create"/> + <menu_item_call label="Narzędzie posiadłości" name="Land"/> + </menu> + <menu_item_call label="Linkuj" name="Link"/> + <menu_item_call label="Rozlinkuj" name="Unlink"/> + <menu_item_check label="Edytuj zlinkowane obiekty" name="Edit Linked Parts"/> + <menu label="Wybierz zlinkowane części" name="Select Linked Parts"> + <menu_item_call label="Wybierz następną część" name="Select Next Part"/> + <menu_item_call label="Zaznacz poprzednią część" name="Select Previous Part"/> + <menu_item_call label="Uwzględnij następną część" name="Include Next Part"/> + <menu_item_call label="Uwzględnij poprzednią część" name="Include Previous Part"/> + </menu> + <menu_item_call label="Ogniskowa selekcji" name="Focus on Selection"/> + <menu_item_call label="Przybliż do selekcji" name="Zoom to Selection"/> <menu label="Obiekt" name="Object"> - <menu_item_call label="Kup" name="Menu Object Buy" /> - <menu_item_call label="Weź" name="Menu Object Take" /> - <menu_item_call label="Weź kopię" name="Take Copy" /> - <menu_item_call label="Zapisz do zawartości obiektu" name="Save Object Back to Object Contents" /> - <menu_item_call label="Zwróć obiekt" name="Return Object back to Owner" /> + <menu_item_call label="Kup" name="Menu Object Buy"/> + <menu_item_call label="Weź" name="Menu Object Take"/> + <menu_item_call label="Weź kopię" name="Take Copy"/> + <menu_item_call label="Zapisz do treści obiektu" name="Save Object Back to Object Contents"/> + <menu_item_call label="Zwróć obiekt" name="Return Object back to Owner"/> </menu> <menu label="Skrypty" name="Scripts"> - <menu_item_call label="Zrekompiluj skrypty (Mono)" name="Mono" /> - <menu_item_call label="Zrekompiluj skrypty (LSL)" name="LSL" /> - <menu_item_call label="Reset skryptów" name="Reset Scripts" /> - <menu_item_call label="Przestaw skrypty na stan Włączony" name="Set Scripts to Running" /> - <menu_item_call label="Przestaw skrypty na stan Wyłączony" name="Set Scripts to Not Running" /> - </menu> - <menu label="Odnajdywanie ścieżek" name="Pathfinding"> - <menu_item_call label="Zbiory części (linków)..." name="pathfinding_linksets_menu_item" /> - <menu_item_call label="Postacie..." name="pathfinding_characters_menu_item" /> - <menu_item_call label="Pokaż / testuj..." name="pathfinding_console_menu_item" /> - <menu_item_call label="Odśwież region" name="pathfinding_rebake_navmesh_item" /> + <menu_item_call label="Zrekompiluj skrypt w selekcji (Mono)" name="Mono"/> + <menu_item_call label="Zrekompiluj skrypty" name="LSL"/> + <menu_item_call label="Reset skryptów" name="Reset Scripts"/> + <menu_item_call label="Ustaw uruchamienie skryptów" name="Set Scripts to Running"/> + <menu_item_call label="Wstrzymaj działanie skryptów w selekcji" name="Set Scripts to Not Running"/> </menu> <menu label="Opcje" name="Options"> - <menu_item_check label="Pokaż zaawansowane uprawnienia" name="DebugPermissions" /> - <menu_item_check label="Wybierz tylko moje obiekty" name="Select Only My Objects" /> - <menu_item_check label="Wybierz tylko obiekty przesuwalne" name="Select Only Movable Objects" /> - <menu_item_check label="Wybierz przez otoczenie" name="Select By Surrounding" /> - <menu_item_check label="Pokaż kontury selekcji" name="Show Selection Outlines" /> - <menu_item_check label="Zobacz ukrytą selekcję" name="Show Hidden Selection" /> - <menu_item_check label="Pokaż promień światła dla selekcji" name="Show Light Radius for Selection" /> - <menu_item_check label="Pokaż promień selekcji" name="Show Selection Beam" /> - <menu_item_check label="Przyciągaj do siatki" name="Snap to Grid" /> - <menu_item_call label="Przeciągnij obiekt XY do siatki" name="Snap Object XY to Grid" /> - <menu_item_call label="Wybierz zaznaczenie siatki" name="Use Selection for Grid" /> - <menu_item_call label="Opcje siatki..." name="Grid Options" /> - <menu_item_call label="Ustaw domyślne uprawnienia ładowania..." name="Set default permissions" /> + <menu_item_check label="Pokaż zaawansowane pozwolenia" name="DebugPermissions"/> + <menu_item_check label="Wybierz tylko moje obiekty" name="Select Only My Objects"/> + <menu_item_check label="Wybierz tylko obiekty przesuwalne" name="Select Only Movable Objects"/> + <menu_item_check label="Wybierz przez otoczenie" name="Select By Surrounding"/> + <menu_item_check label="Pokaż wytyczne selekcji" name="Show Selection Outlines"/> + <menu_item_check label="Zobacz ukrytą selekcję" name="Show Hidden Selection"/> + <menu_item_check label="Pokaż promień emitera dla selekcji" name="Show Light Radius for Selection"/> + <menu_item_check label="Pokaż emiter selekcji" name="Show Selection Beam"/> + <menu_item_check label="Uruchom siatkę" name="Snap to Grid"/> + <menu_item_call label="Przeciągnij obiekt do siatki" name="Snap Object XY to Grid"/> + <menu_item_call label="Wybierz zaznaczenie siatki" name="Use Selection for Grid"/> + <menu_item_call label="Opcje siatki" name="Grid Options"/> </menu> <menu label="Załaduj" name="Upload"> - <menu_item_call label="Teksturę ([COST]L$)..." name="Upload Image" /> - <menu_item_call label="Dźwięk ([COST]L$)..." name="Upload Sound" /> - <menu_item_call label="Animację ([COST]L$)..." name="Upload Animation" /> - <menu_item_call label="Model meszowy..." name="Upload Model" /> - <menu_item_call label="Zbiór wielu plików ([COST]L$ per file)..." name="Bulk Upload" /> + <menu_item_call label="teksturę (L$[COST])..." name="Upload Image"/> + <menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/> + <menu_item_call label="animację (L$[COST])..." name="Upload Animation"/> + <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/> </menu> - <menu_item_call label="Cofnij" name="Undo" /> - <menu_item_call label="Ponów" name="Redo" /> + <menu_item_call label="Cofnij" name="Undo"/> + <menu_item_call label="Ponów" name="Redo"/> </menu> <menu label="Pomoc" name="Help"> - <menu_item_call label="Podstawowe zagadnienia..." name="How To" /> - <menu_item_call label="Szybki start" name="Quickstart" /> - <menu_item_call label="Samouczek" name="Tutorial" /> - <menu_item_call label="Baza wiedzy" name="Knowledge Base" /> - <menu_item_call label="Wiki informacyjna" name="Wiki" /> - <menu_item_call label="Forum społecznościowe" name="Community Forums" /> - <menu_item_call label="Portal wsparcia" name="Support portal" /> - <menu_item_call label="Newsy [SECOND_LIFE]" name="Second Life News" /> - <menu_item_call label="Blogi [SECOND_LIFE]" name="Second Life Blogs" /> - <menu_item_call label="Zgłoś nadużycie" name="Report Abuse" /> - <menu_item_call label="Zgłoś błędy klienta" name="Report Bug" /> - <menu_item_call label="Zderzenia, popchnięcia i uderzenia" name="Bumps, Pushes &amp; Hits" /> - <menu_item_call label="Informacje o [APP_NAME]" name="About Second Life" /> + <menu_item_call label="Złóż Raport o Nadużyciu" name="Report Abuse"/> + <menu_item_call label="Zgłoś błędy klienta" name="Report Bug"/> + <menu_item_call label="Zderzenia, popchnięcia i uderzenia" name="Bumps, Pushes &amp; Hits"/> + <menu_item_call label="O [APP_NAME]" name="About Second Life"/> </menu> <menu label="Zaawansowane" name="Advanced"> - <menu_item_call label="Odśwież tekstury (rebake)" name="Rebake Texture" /> - <menu_item_call label="Domyślne ustawienia rozmiaru interfejsu" name="Set UI Size to Default" /> - <menu_item_call label="Ustaw rozmiar okna..." name="Set Window Size..." /> - <menu_item_check label="Ogranicz dystans selekcji" name="Limit Select Distance" /> - <menu_item_check label="Wyłącz ograniczenia zasięgu kamery" name="Disable Camera Distance" /> - <menu_item_check label="Zdjęcie wysokiej jakości" name="HighResSnapshot" /> - <menu_item_check label="Wykonuj zdjęcia bez efektu dźwiękowego i animacji" name="QuietSnapshotsToDisk" /> - <menu label="Narzędzia wydajności" name="Performance Tools"> - <menu_item_call label="Miernik lagów" name="Lag Meter" /> - <menu_item_check label="Statystyki ogólne" name="Statistics Bar" /> - <menu_item_call label="Statystyki obciążenia sceny" name="Scene Load Statistics" /> - <menu_item_check label="Pokaż wartość renderowania awatara" name="Avatar Rendering Cost" /> - </menu> - <menu label="Podświetlanie i widoczność" name="Highlighting and Visibility"> - <menu_item_check label="Efekt emiterów" name="Cheesy Beacon" /> - <menu_item_check label="Ukryj cząsteczki" name="Hide Particles" /> - <menu_item_check label="Ukryj zaznaczone" name="Hide Selected" /> - <menu_item_check label="Pokaż przezroczyste obiekty" name="Highlight Transparent" /> - <menu_item_check label="Pokaż celownik myszki" name="ShowCrosshairs" /> - <menu label="Chmurki pomocy" name="Hover Tips"> - <menu_item_check label="Pokazuj chmurki pomocy" name="Show Tips" /> - <menu_item_check label="Pokazuj chmurki ponad terenem" name="Land Tips" /> - <menu_item_check label="Pokazuj chmurki dla wszystkich obiektów" name="Tips On All Objects" /> - </menu> + <menu_item_call label="Odswież wyświetlanie tekstur" name="Rebake Texture"/> + <menu_item_call label="Domyślne ustawienia rozmiaru interfejsu" name="Set UI Size to Default"/> + <menu_item_call label="Ustaw rozmiar interfejsu..." name="Set Window Size..."/> + <menu_item_check label="Ogranicz dystans selekcji" name="Limit Select Distance"/> + <menu_item_check label="Wyłącz ograniczenia zasięgu kamery" name="Disable Camera Distance"/> + <menu_item_check label="Wysoka rozdzielczość zdjęć" name="HighResSnapshot"/> + <menu_item_check label="Zapisuj zdjęcia na dysk twardy bez efektu dźwiękowego" name="QuietSnapshotsToDisk"/> + <menu label="Narzędzia" name="Performance Tools"> + <menu_item_call label="Pomiar lagów" name="Lag Meter"/> + <menu_item_check label="Statystyki" name="Statistics Bar"/> + <menu_item_check label="Pokaż wartość renderowania awatara" name="Avatar Rendering Cost"/> + </menu> + <menu label="Podkreślanie i widoczność" name="Highlighting and Visibility"> + <menu_item_check label="Efekt emiterów" name="Cheesy Beacon"/> + <menu_item_check label="Ukryj cząsteczki" name="Hide Particles"/> + <menu_item_check label="Ukryj zaznaczone" name="Hide Selected"/> + <menu_item_check label="Pokaż przeźroczyste obiekty" name="Highlight Transparent"/> + <menu_item_check label="Pokaż celownik myszki" name="ShowCrosshairs"/> </menu> <menu label="Rodzaje renderowania" name="Rendering Types"> - <menu_item_check label="Podstawowe" name="Rendering Type Simple" /> - <menu_item_check label="Maska alpha" name="Rendering Type Alpha" /> - <menu_item_check label="Drzewa" name="Rendering Type Tree" /> - <menu_item_check label="Awatary" name="Rendering Type Character" /> - <menu_item_check label="Płaszczyzna powierzchni" name="Rendering Type Surface Patch" /> - <menu_item_check label="Niebo" name="Rendering Type Sky" /> - <menu_item_check label="Woda" name="Rendering Type Water" /> - <menu_item_check label="Ziemia" name="Rendering Type Ground" /> - <menu_item_check label="Objętość" name="Rendering Type Volume" /> - <menu_item_check label="Trawa" name="Rendering Type Grass" /> - <menu_item_check label="Chmury" name="Rendering Type Clouds" /> - <menu_item_check label="Cząsteczki" name="Rendering Type Particles" /> - <menu_item_check label="Mapping wypukłości i połysk" name="Rendering Type Bump" /> + <menu_item_check label="Podstawowe" name="Rendering Type Simple"/> + <menu_item_check label="Maska alpha" name="Rendering Type Alpha"/> + <menu_item_check label="Drzewo" name="Rendering Type Tree"/> + <menu_item_check label="Awatary" name="Rendering Type Character"/> + <menu_item_check label="Płaszczyzna powierzchni" name="Rendering Type Surface Patch"/> + <menu_item_check label="Niebo" name="Rendering Type Sky"/> + <menu_item_check label="Woda" name="Rendering Type Water"/> + <menu_item_check label="Ziemia" name="Rendering Type Ground"/> + <menu_item_check label="Głośność" name="Rendering Type Volume"/> + <menu_item_check label="Trawa" name="Rendering Type Grass"/> + <menu_item_check label="Chmury" name="Rendering Type Clouds"/> + <menu_item_check label="Cząsteczki" name="Rendering Type Particles"/> + <menu_item_check label="Zderzenie" name="Rendering Type Bump"/> </menu> <menu label="Opcje renderowania" name="Rendering Features"> - <menu_item_check label="Interfejs użytkownika" name="ToggleUI" /> - <menu_item_check label="Zaznaczone" name="Selected" /> - <menu_item_check label="Podświetlenie" name="Highlighted" /> - <menu_item_check label="Tekstury dynamiczne" name="Dynamic Textures" /> - <menu_item_check label="Cień stopy" name="Foot Shadows" /> - <menu_item_check label="Mgła" name="Fog" /> - <menu_item_check label="Obiekty elastyczne" name="Flexible Objects" /> - </menu> - <menu_item_check label="Osobny wątek do odbierania poleceń z zewnętrznych wtyczek" name="Use Plugin Read Thread" /> - <menu_item_call label="Wyczyść bufor danych grup" name="ClearGroupCache" /> - <menu_item_check label="Wygładzanie ruchu myszki" name="Mouse Smoothing" /> - <menu_item_call label="Cofnij dodatkom zezwolenia kontroli przycisków" name="Release Keys" /> + <menu_item_check label="UI" name="ToggleUI"/> + <menu_item_check label="Zaznaczone" name="Selected"/> + <menu_item_check label="Podświetlenie" name="Highlighted"/> + <menu_item_check label="Tekstury dynamiczne" name="Dynamic Textures"/> + <menu_item_check label="Cień stopy" name="Foot Shadows"/> + <menu_item_check label="Mgła" name="Fog"/> + <menu_item_check label="Obiekty elastyczne" name="Flexible Objects"/> + </menu> + <menu_item_check label="Użyj plugin Read Thread" name="Use Plugin Read Thread"/> + <menu_item_call label="Wyczyść bufor danych grupy" name="ClearGroupCache"/> + <menu_item_check label="Wygładzanie ruchu myszki" name="Mouse Smoothing"/> <menu label="Skróty" name="Shortcuts"> - <menu_item_check label="Pokazuj menu Zaawansowane" name="Show Advanced Menu - legacy shortcut" /> - <menu_item_call label="Zamknij okno" name="Close Window" /> - <menu_item_call label="Zamknij wszystkie okna" name="Close All Windows" /> - <menu_item_call label="Zapisz zdjęcie na dysk twardy" name="Snapshot to Disk" /> - <menu_item_call label="Widok pierwszoosobowy" name="Mouselook" /> - <menu_item_check label="Wolna kamera" name="Joystick Flycam" /> - <menu_item_call label="Reset widoku" name="Reset View" /> - <menu_item_call label="Zobacz ostatniego rozmówcę" name="Look at Last Chatter" /> - <menu_item_call label="Przybliż" name="Zoom In" /> - <menu_item_call label="Domyślne przybliżenie" name="Zoom Default" /> - <menu_item_call label="Oddal" name="Zoom Out" /> - </menu> - <menu_item_call label="Pokaż ustawienia debugowania" name="Debug Settings" /> - <menu_item_check label="Pokaż menu programisty" name="Debug Mode" /> + <menu_item_check label="Pokaż menu Zaawansowane - skrót" name="Show Advanced Menu - legacy shortcut"/> + <menu_item_call label="Zamknij okno" name="Close Window"/> + <menu_item_call label="Zamknij wszystkie okna" name="Close All Windows"/> + <menu_item_call label="Zapisz zdjęcie na dysk twardy" name="Snapshot to Disk"/> + <menu_item_call label="Widok panoramiczny" name="Mouselook"/> + <menu_item_check label="Wolna kamera" name="Joystick Flycam"/> + <menu_item_call label="Reset widoku" name="Reset View"/> + <menu_item_call label="Zobacz ostatniego rozmówcę" name="Look at Last Chatter"/> + <menu_item_call label="Przybliż" name="Zoom In"/> + <menu_item_call label="Domyślne przybliżenie" name="Zoom Default"/> + <menu_item_call label="Oddal" name="Zoom Out"/> + </menu> + <menu_item_call label="Pokaż ustawienia debugowania" name="Debug Settings"/> + <menu_item_check label="Pokaż menu progresu" name="Debug Mode"/> </menu> - <menu label="Programista" name="Develop"> - <menu label="Konsole" name="Consoles"> - <menu_item_check label="Konsola tekstur" name="Texture Console" /> - <menu_item_check label="Konsola debugowania" name="Debug Console" /> - <menu_item_call label="Konsola powiadomień" name="Notifications" /> - <menu_item_check label="Podgląd procesów" name="Fast Timers" /> - <menu_item_check label="Konsola debugowania regionu" name="Region Debug Console" /> - <menu_item_check label="Pamięć" name="Memory" /> - <menu_item_check label="Statystyki sceny" name="Scene Statistics" /> - <menu_item_check label="Monitor obciążenia sceny" name="Scene Loading Monitor" /> - <menu_item_call label="Konsola debugowania dla ładowania tekstur" name="Texture Fetch Debug Console" /> - <menu_item_call label="Info o regionie do konsoli debugowania" name="Region Info to Debug Console" /> - <menu_item_call label="Info o grupie do konsoli debugowania" name="Group Info to Debug Console" /> - <menu_item_call label="Info o możliwościach do konsoli debugowania" name="Capabilities Info to Debug Console" /> - <menu_item_check label="Kamera" name="Camera" /> - <menu_item_check label="Wiatr" name="Wind" /> - <menu_item_check label="Pole widzenia" name="FOV" /> - <menu_item_check label="Hipcie" name="Badge" /> + <menu label="Rozwinięcie..." name="Develop"> + <menu label="Konsola" name="Consoles"> + <menu_item_check label="Konsola tekstur" name="Texture Console"/> + <menu_item_check label="Debugowanie zdarzeń konsoli" name="Debug Console"/> + <menu_item_call label="Konsola powiadomień" name="Notifications"/> + <menu_item_check label="Konsola debugowania regionu" name="Region Debug Console"/> + <menu_item_check label="Szybkie timery" name="Fast Timers"/> + <menu_item_check label="Pamięć" name="Memory"/> + <menu_item_call label="Info Regionu do debugowania konsoli" name="Region Info to Debug Console"/> + <menu_item_check label="Kamera" name="Camera"/> + <menu_item_check label="Wiatr" name="Wind"/> + <menu_item_check label="Znak" name="Badge"/> </menu> <menu label="Pokaż informacje" name="Display Info"> - <menu_item_check label="Pokaż czas" name="Show Time" /> - <menu_item_check label="Pokazuj koszt transakcji ładowania pliku" name="Show Upload Cost" /> - <menu_item_check label="Pokaż informacje o renderowaniu ogólnym" name="Show Render Info" /> - <menu_item_check label="Pokaż informacje o renderowaniu awatarów" name="Show Avatar Render Info" /> - <menu_item_check label="Pokaż informacje o teksturach" name="Show Texture Info" /> - <menu_item_check label="Pokaż macierze" name="Show Matrices" /> - <menu_item_check label="Pokaż kolor pod kursorem" name="Show Color Under Cursor" /> - <menu_item_check label="Pokaż pamięć" name="Show Memory" /> - <menu_item_check label="Pokaż informacje o pamięci prywatnej" name="Show Private Mem Info" /> - <menu_item_check label="Pokaż aktualizacje obiektów" name="Show Updates" /> - </menu> - <menu label="Wymuś błąd" name="Force Errors"> - <menu_item_call label="Wymuś pułapkę w programie (breakpoint)" name="Force Breakpoint" /> - <menu_item_call label="Wymuś błąd LLError i spowoduj awarię" name="Force LLError And Crash" /> - <menu_item_call label="Wymuś błąd dostępu do pamięci" name="Force Bad Memory Access" /> - <menu_item_call label="Wymuś nieskończoną pętlę" name="Force Infinite Loop" /> - <menu_item_call label="Wymuś awarię sterownika" name="Force Driver Carsh" /> - <menu_item_call label="Wymuś wyjątek programu" name="Force Software Exception" /> - <menu_item_call label="Wymuś rozłączenie Przeglądarki" name="Force Disconnect Viewer" /> - <menu_item_call label="Symulacja wycieku pamięci" name="Memory Leaking Simulation" /> - </menu> - <menu label="Testy renderowania" name="Render Tests"> - <menu_item_check label="Kamera poza zasiegiem" name="Camera Offset" /> - <menu_item_check label="Losowa ilość klatek" name="Randomize Framerate" /> - <menu_item_check label="Okresowe spowolnienie" name="Periodic Slow Frame" /> - <menu_item_check label="Test klatek obrazu" name="Frame Test" /> - <menu_item_call label="Profil klatek obrazu" name="Frame Profile" /> - <menu_item_call label="Testowanie (benchmark)" name="Benchmark" /> - </menu> - <menu label="Renderowanie metadanych" name="Render Metadata"> - <menu_item_check label="Bryły brzegowe (Bounding Boxes)" name="Bounding Boxes" /> - <menu_item_check label="Wektory normalne" name="Normals" /> - <menu_item_check label="Drzewo okluzji" name="Octree" /> - <menu_item_check label="Wzmocniona okluzja (Shadow Frusta)" name="Shadow Frusta" /> - <menu_item_check label="Kształty fizyczne" name="Physics Shapes" /> - <menu_item_check label="Okluzja" name="Occlusion" /> - <menu_item_check label="Pakiety renderu" name="Render Batches" /> - <menu_item_check label="Typy aktualizacji" name="Update Type" /> - <menu_item_check label="Animacje tekstur" name="Texture Anim" /> - <menu_item_check label="Priorytety tekstur" name="Texture Priority" /> - <menu_item_check label="Obszary tekstur" name="Texture Area" /> - <menu_item_check label="Obszary powierzchni" name="Face Area" /> - <menu_item_check label="Poziomy detali" name="LOD Info" /> - <menu_item_check label="Kolejka budowania" name="Build Queue" /> - <menu_item_check label="Światła" name="Lights" /> - <menu_item_check label="Cząsteczki" name="Particles" /> - <menu_item_check label="Szkielet kolizji" name="Collision Skeleton" /> - <menu_item_check label="Stawy" name="Joints" /> - <menu_item_check label="Promienie" name="Raycast" /> - <menu_item_check label="Wektory wiatru" name="Wind Vectors" /> - <menu_item_check label="Złożoność renderowania" name="rendercomplexity" /> - <menu_item_check label="Bajty dodatków" name="attachment bytes" /> - <menu_item_check label="Skulpty" name="Sculpt" /> - <menu label="Gęstość tekstur" name="Texture Density"> - <menu_item_check label="Żadna" name="None" /> - <menu_item_check label="Obecna" name="Current" /> - <menu_item_check label="Pożądana" name="Desired" /> - <menu_item_check label="Pełna" name="Full" /> - </menu> + <menu_item_check label="Pokaż czas" name="Show Time"/> + <menu_item_check label="Pokaż informacje o renderowaniu" name="Show Render Info"/> + <menu_item_check label="Pokaż informację o teksturze" name="Show Texture Info"/> + <menu_item_check label="Pokaż kolor pod kursorem" name="Show Color Under Cursor"/> + <menu_item_check label="Pokaż pamięć" name="Show Memory"/> + <menu_item_check label="Pokaż aktualizacje obiektów" name="Show Updates"/> + </menu> + <menu label="Reset błędu" name="Force Errors"> + <menu_item_call label="Aktywacja punktu załamania" name="Force Breakpoint"/> + <menu_item_call label="Reset błędów LL" name="Force LLError And Crash"/> + <menu_item_call label="Reset błędów pamięci" name="Force Bad Memory Access"/> + <menu_item_call label="Reset pętli" name="Force Infinite Loop"/> + <menu_item_call label="Reset sterowników" name="Force Driver Carsh"/> + <menu_item_call label="Wyjątek programu" name="Force Software Exception"/> + <menu_item_call label="Uruchom rozłączenie" name="Force Disconnect Viewer"/> + <menu_item_call label="Symulacja wycieku pamięci" name="Memory Leaking Simulation"/> + </menu> + <menu label="Test renderowania" name="Render Tests"> + <menu_item_check label="Kamera poza zasiegiem" name="Camera Offset"/> + <menu_item_check label="Losowa ilość klatek" name="Randomize Framerate"/> + <menu_item_check label="Test klatki obrazu" name="Frame Test"/> + </menu> + <menu label="Render Metadata" name="Render Metadata"> + <menu_item_check label="Aktualizuj typ" name="Update Type"/> </menu> <menu label="Renderowanie" name="Rendering"> - <menu_item_check label="Osie" name="Axes" /> - <menu_item_check label="Podstawy stycznych" name="Tangent Basis" /> - <menu_item_call label="Bazowe informacje wybranych tekstur" name="Selected Texture Info Basis" /> - <menu_item_call label="Informacje o zaznaczonym materiale" name="Selected Material Info" /> - <menu_item_check label="Tryb obrazu szkieletowego" name="Wireframe" /> - <menu_item_check label="Okluzja obiektu do obiektu" name="Object-Object Occlusion" /> - <menu_item_check label="Zaawansowane oświetlenie" name="Advanced Lighting Model" /> - <menu_item_check label=" Cienie Słońca, Księżyca i innych źródeł" name="Shadows from Sun/Moon/Projectors" /> - <menu_item_check label=" SSAO i wygładzanie cieni" name="SSAO and Shadow Smoothing" /> - <menu_item_check label="Debugowanie GL" name="Debug GL" /> - <menu_item_check label="Debugowanie potoków" name="Debug Pipeline" /> - <menu_item_check label="Automatyczne maski alpha (z opóźnianiem)" name="Automatic Alpha Masks (deferred)" /> - <menu_item_check label="Automatyczne maski alpha (bez opóźniania)" name="Automatic Alpha Masks (non-deferred)" /> - <menu_item_check label="Tekstury animacji" name="Animation Textures" /> - <menu_item_check label="Wyłącz tekstury" name="Disable Textures" /> - <menu_item_check label="Maksymalna rozdzielczość tekstur (niebezpieczne)" name="Rull Res Textures" /> - <menu_item_check label="Renderowania przyłączonego światła" name="Render Attached Lights" /> - <menu_item_check label="Renderowanie przyłączonych cząsteczek" name="Render Attached Particles" /> - <menu_item_check label="Wyświetlaj obiekty odblaskowe" name="Hover Glow Objects" /> - <menu_item_call label="Wyczyść natychmiast pamięć podręczną" name="Cache Clear" /> + <menu_item_check label="Osie" name="Axes"/> + <menu_item_check label="Tryb obrazu szkieletowego" name="Wireframe"/> + <menu_item_check label="Oświetlenie i cienie" name="Advanced Lighting Model"/> + <menu_item_check label="Cienie Słońca/Księżyca/Projektory" name="Shadows from Sun/Moon/Projectors"/> + <menu_item_check label="SSAO and wygładzanie cienia" name="SSAO and Shadow Smoothing"/> + <menu_item_check label="Automatyczne maski alpha (deferred)" name="Automatic Alpha Masks (deferred)"/> + <menu_item_check label="Automatyczne maski alpha (non-deferred)" name="Automatic Alpha Masks (non-deferred)"/> + <menu_item_check label="Tekstury animacji" name="Animation Textures"/> + <menu_item_check label="Wyłącz tekstury" name="Disable Textures"/> + <menu_item_check label="Renderowania załączonego światła" name="Render Attached Lights"/> + <menu_item_check label="Renderowanie załączonych cząsteczek" name="Render Attached Particles"/> + <menu_item_check label="Wyświetlaj obiekty odblaskowe" name="Hover Glow Objects"/> </menu> <menu label="Sieć" name="Network"> - <menu_item_check label="Zatrzymaj awatara" name="AgentPause" /> - <menu_item_call label="Włącz logowanie wiadomości" name="Enable Message Log" /> - <menu_item_call label="Wyłącz logowanie wiadomości" name="Disable Message Log" /> - <menu_item_check label="Prędkość interpolacji obiektów" name="Velocity Interpolate Objects" /> - <menu_item_check label="Pinguj pozycje interpolowanych obiektów" name="Ping Interpolate Object Positions" /> - <menu_item_call label="Zagub pakiet" name="Drop a Packet" shortcut="" /> - </menu> - <menu_item_call label="Zrzut oskryptowanej kamery" name="Dump Scripted Camera" /> - <menu label="Nagrywanie" name="Recorder"> - <menu_item_call label="Rozpocznij nagrywanie zdarzeń" name="Start event recording" /> - <menu_item_call label="Zatrzymaj nagrywanie zdarzeń" name="Stop event recording" /> - <menu_item_call label="Odtwarzanie nagranych zdarzeń" name="Playback event recording" /> - <menu_item_call label="Rozpocznij odtwarzanie" name="Start Playback" /> - <menu_item_call label="Zatrzymaj odtwarzanie" name="Stop Playback" /> - <menu_item_check label="Odtwarzanie w pętli" name="Loop Playback" /> - <menu_item_call label="Rozpocznij nagrywanie" name="Start Record" /> - <menu_item_call label="Zatrzymaj nagrywanie" name="Stop Record" /> + <menu_item_check label="Zatrzymaj awatara" name="AgentPause"/> + <menu_item_call label="Upuść pakiet pamięci" name="Drop a Packet"/> </menu> <menu label="Świat" name="DevelopWorld"> - <menu_item_check label="Domyślne ustawienia środowiska Regionu" name="Sim Sun Override" /> - <menu_item_check label="Ustalona pogoda" name="Fixed Weather" /> - <menu_item_call label="Zrzut buforu pamięci obiektów regionu" name="Dump Region Object Cache" /> - </menu> - <menu label="Interfejs" name="UI"> - <menu_item_check label="Nowy pasek dolny" name="New Bottom Bar" /> - <menu_item_call label="Test przeglądarki mediów" name="Web Browser Test" /> - <menu_item_call label="Przeglądarka treści internetowych" name="Web Content Browser" /> - <menu_item_call label="Test połączenia z Facebookiem" name="FB Connect Test" /> - <menu_item_call label="Zrzut SelectMgr" name="Dump SelectMgr" /> - <menu_item_call label="Zrzut Szafy" name="Dump Inventory" /> - <menu_item_call label="Zrzut liczników" name="Dump Timers" /> - <menu_item_call label="Zrzut punktu skupienia" name="Dump Focus Holder" /> - <menu_item_call label="Listuj informacje o zaznaczonym obiekcie" name="Print Selected Object Info" /> - <menu_item_call label="Listuj informacje o Agencie" name="Print Agent Info" /> - <menu_item_check label="Debuguj SelectMgr" name="Debug SelectMgr" /> - <menu_item_check label="Debuguj kliknięcia" name="Debug Clicks" /> - <menu_item_check label="Debuguj widoki" name="Debug Views" /> - <menu_item_check label="Debuguj chmurki dla podpowiedzi nazw" name="Debug Name Tooltips" /> - <menu_item_check label="Debuguj zdarzenia myszy" name="Debug Mouse Events" /> - <menu_item_check label="Debuguj klawisze" name="Debug Keys" /> - <menu_item_check label="Debuguj procesy okien" name="Debug WindowProc" /> - </menu> - <menu label="XUI/XML" name="XUI"> - <menu_item_call label="Przeładuj ustawienia koloru" name="Reload Color Settings" /> - <menu_item_call label="Pokaż test czcionki" name="Show Font Test" /> - <menu_item_check label="Pokaż nazwy XUI" name="Show XUI Names" /> - <menu_item_call label="Wyślij wiadomość (IM) testową" name="Send Test IMs" /> - <menu_item_call label="Wyczyść bufor pamięci nazw" name="Flush Names Caches" /> + <menu_item_check label="Domyślne ustawienia środowiska Regionu" name="Sim Sun Override"/> + <menu_item_check label="Ustalona pogoda" name="Fixed Weather"/> + <menu_item_call label="Zachowaj bufor pamięci obiektów regionu" name="Dump Region Object Cache"/> + </menu> + <menu label="UI" name="UI"> + <menu_item_call label="Test przeglądarki mediów" name="Web Browser Test"/> + <menu_item_call label="Przeglądarka zawartości strony" name="Web Content Browser"/> + <menu_item_call label="Drukuj zaznaczone informacje o obiekcie" name="Print Selected Object Info"/> + <menu_item_check label="Debugowanie zdarzeń klikania" name="Debug Clicks"/> + <menu_item_check label="Debugowanie zdarzeń myszy" name="Debug Mouse Events"/> + </menu> + <menu label="XUI" name="XUI"> + <menu_item_call label="Załaduj ustawienia koloru" name="Reload Color Settings"/> + <menu_item_call label="Pokaż test czcionki" name="Show Font Test"/> + <menu_item_check label="Pokaż nazwy XUI" name="Show XUI Names"/> + <menu_item_call label="Wyślij wiadomość (IM) testową" name="Send Test IMs"/> + <menu_item_call label="Wyczyść bufor pamięci nazw" name="Flush Names Caches"/> </menu> <menu label="Awatar" name="Character"> - <menu label="Zrzuć prerenderowaną (bakowaną) teksturę" name="Grab Baked Texture"> - <menu_item_call label="Tęczówka oka" name="Grab Iris" /> - <menu_item_call label="Głowa" name="Grab Head" /> - <menu_item_call label="Górna część ciała" name="Grab Upper Body" /> - <menu_item_call label="Dolna część ciała" name="Grab Lower Body" /> - <menu_item_call label="Spódnica" name="Grab Skirt" /> + <menu label="Przesuń bakowaną teksturę" name="Grab Baked Texture"> + <menu_item_call label="Tęczówka oka" name="Grab Iris"/> + <menu_item_call label="Głowa" name="Grab Head"/> + <menu_item_call label="Górna część ciała" name="Grab Upper Body"/> + <menu_item_call label="Dolna część ciała" name="Grab Lower Body"/> + <menu_item_call label="Spódnica" name="Grab Skirt"/> </menu> <menu label="Testy postaci" name="Character Tests"> - <menu_item_call label="Wygląd do XML" name="Appearance To XML" /> - <menu_item_call label="Zmień geometrię postaci" name="Toggle Character Geometry" /> - <menu_item_call label="Testowy mężczyzna" name="Test Male" /> - <menu_item_call label="Testowa kobieta" name="Test Female" /> - <menu_item_check label="Pozwól na zaznaczanie awatarów" name="Allow Select Avatar" /> - </menu> - <menu label="Szybkość animacji" name="Animation Speed"> - <menu_item_call label="Wszystkie animacje 10% szybciej" name="All Animations 10 Faster" /> - <menu_item_call label="Wszystkie animacje 10% wolniej" name="All Animations 10 Slower" /> - <menu_item_call label="Resetuj szybkość wszystkich animacji" name="Reset All Animation Speed" /> - <menu_item_check label="Animacje w zwolnionym tempie" name="Slow Motion Animations" /> + <menu_item_call label="Przesuń geometrię postaci" name="Toggle Character Geometry"/> + <menu_item_check label="Pozwól na zaznaczanie awatarów" name="Allow Select Avatar"/> </menu> - <menu_item_call label="Powrót do domyślnych parametrów" name="Force Params to Default" /> - <menu_item_check label="Informacje o animacji" name="Animation Info" /> - <menu_item_check label="Pokaż na co patrzą inni" name="Show Look At" /> - <menu_item_check label="Pokaż na co wskazują inni" name="Show Point At" /> - <menu_item_check label="Debuguj aktualizacje stawów" name="Debug Joint Updates" /> - <menu_item_check label="Wyłącz poziomy detali (LOD)" name="Disable LOD" /> - <menu_item_check label="Debuguj VIs postaci" name="Debug Character Vis" /> - <menu_item_check label="Pokaż szkielet kolizji" name="Show Collision Skeleton" /> - <menu_item_check label="Wyświetl cel Agenta" name="Display Agent Target" /> - <menu_item_check label="Debugowanie rotacji" name="Debug Rotation" /> - <menu_item_call label="Zrzut przyłączonych dodatków" name="Dump Attachments" /> - <menu_item_call label="Debugowanie tekstur awatara" name="Debug Avatar Textures" shortcut="" /> - <menu_item_call label="Zrzut lokalnych tekstur" name="Dump Local Textures" /> - </menu> - <menu_item_check label="Tekstury przez HTTP" name="HTTP Textures" /> - <menu_item_call label="Kompresuj obrazki" name="Compress Images" /> - <menu_item_call label="Włącz wizualny detektor wycieków pamięci" name="Enable Visual Leak Detector" /> - <menu_item_check label="Mały zrzut wyjścia debugowania" name="Output Debug Minidump" /> - <menu_item_check label="Aktywacja okna konsoli podczas następnego uruchomienia" name="Console Window" /> - <menu label="Ustaw poziom logowania" name="Set Logging Level"> - <menu_item_check name="Debug" label="Debugowanie" /> - <menu_item_check name="Info" label="Informacje" /> - <menu_item_check name="Warning" label="Ostrzeżenia" /> - <menu_item_check name="Error" label="Błędy" /> - <menu_item_check name="None" label="Brak" /> - </menu> - <menu_item_call label="Zażądaj statusu administratora" name="Request Admin Options" /> - <menu_item_call label="Porzuć status administratora" name="Leave Admin Options" /> - <menu_item_check label="Pokaż menu administratora" name="View Admin Options" /> + <menu_item_call label="Powrót do domyślnych parametrów" name="Force Params to Default"/> + <menu_item_check label="Info o animacji" name="Animation Info"/> + <menu_item_check label="Wyłącz poziom detalu" name="Disable LOD"/> + <menu_item_check label="Pokaż szczegóły kolizji" name="Show Collision Skeleton"/> + <menu_item_check label="Wyświetl cel agenta" name="Display Agent Target"/> + <menu_item_call label="Debugowanie tekstur awatara" name="Debug Avatar Textures"/> + </menu> + <menu_item_check label="Tekstury HTTP" name="HTTP Textures"/> + <menu_item_check label="Aktywacja okna konsoli podczas następnego uruchomienia" name="Console Window"/> + <menu_item_call label="Uzyskaj status administratora" name="Request Admin Options"/> + <menu_item_call label="Opuść status administratora" name="Leave Admin Options"/> + <menu_item_check label="Pokaż menu administratora" name="View Admin Options"/> </menu> <menu label="Administrator" name="Admin"> - <menu label="Obiekt" name="AdminObject"> - <menu_item_call label="Weź kopię" name="Admin Take Copy" /> - <menu_item_call label="Wymuś ustawienie właściciela na mnie" name="Force Owner To Me" /> - <menu_item_call label="Wymuś ustawienie właściciela na mnie, ale liberalnie" name="Force Owner Permissive" /> - <menu_item_call label="Usuń" name="Delete" /> - <menu_item_call label="Zablokuj" name="Lock" /> - <menu_item_call label="Pobierz ID zasobów danych (assetów)" name="Get Assets IDs" /> - </menu> - <menu label="Działka" name="Parcel"> - <menu_item_call label="Wymuś ustawienie właściciela na mnie" name="Owner To Me" /> - <menu_item_call label="Ustaw na własność Lindenów" name="Set to Linden Content" /> - <menu_item_call label="Zażądaj działki publicznej" name="Claim Public Land" /> - </menu> - <menu name="Region"> - <menu_item_call label="Zrzuć tymczasowe informacje zasobów danych (assetów)" name="Dump Temp Asset Data" /> - <menu_item_call label="Zachowaj ustawienie Regionu" name="Save Region State" /> - </menu> - <menu_item_call label="Boskie narzędzia" name="God Tools" /> + <menu label="Object" name="AdminObject"> + <menu_item_call label="Weź kopię" name="Admin Take Copy"/> + <menu_item_call label="Reset właściciela" name="Force Owner To Me"/> + <menu_item_call label="Reset przyzwolenia właściciela" name="Force Owner Permissive"/> + <menu_item_call label="Usuń" name="Delete"/> + <menu_item_call label="Zablokuj" name="Lock"/> + </menu> + <menu label="Posiadłość" name="Parcel"> + <menu_item_call label="Reset właściciela" name="Owner To Me"/> + <menu_item_call label="Ustawienia treści Lindenów" name="Set to Linden Content"/> + <menu_item_call label="Odzyskaj posiadłość publiczną" name="Claim Public Land"/> + </menu> + <menu label="Region" name="Region"> + <menu_item_call label="Zachowaj tymczasowo bazę asset" name="Dump Temp Asset Data"/> + <menu_item_call label="Zachowaj ustawienie Regionu" name="Save Region State"/> + </menu> + <menu_item_call label="Boskie narzędzia" name="God Tools"/> </menu> - <menu name="Deprecated"> - <menu label="Przyłącz obiekt" name="Attach Object" /> - <menu label="Odłącz obiekt" name="Detach Object" /> - <menu label="Zdejmij ubrania" name="Take Off Clothing"> - <menu_item_call label="Koszula" name="Shirt" /> - <menu_item_call label="Spodnie" name="Pants" /> - <menu_item_call label="Buty" name="Shoes" /> - <menu_item_call label="Skarpetki" name="Socks" /> - <menu_item_call label="Kurtka" name="Jacket" /> - <menu_item_call label="Rękawiczki" name="Gloves" /> - <menu_item_call label="Podkoszulek" name="Menu Undershirt" /> - <menu_item_call label="Bielizna" name="Menu Underpants" /> - <menu_item_call label="Spódnica" name="Skirt" /> - <menu_item_call label="Tatuaż" name="Tattoo" /> - <menu_item_call label="Fizyka" name="Physics" /> - <menu_item_call label="Wszystkie ubrania" name="All Clothes" /> - </menu> - <menu label="Pomoc" name="DeprecatedHelp"> - <menu_item_call label="Oficjalny blog Lindenów" name="Official Linden Blog" /> - <menu_item_call label="Portal dla skrypterów" name="Scripting Portal" /> - <menu label="Raportowanie błędów" name="Bug Reporting"> - <menu_item_call label="Publiczny system śledzenia błędów" name="Public Issue Tracker" /> - <menu_item_call label="Pomoc publicznego systemu śledzenia błędów" name="Publc Issue Tracker Help" /> - <menu_item_call label="Raportowanie błędów 101" name="Bug Reporing 101" /> - <menu_item_call label="Problemy z bezpieczeństwem" name="Security Issues" /> - <menu_item_call label="Wiki kontroli jakości" name="QA Wiki" /> - </menu> + <menu label="Admin" name="Deprecated"> + <menu label="Take Off Clothing" name="Take Off Clothing"> + <menu_item_call label="Fizyka" name="Physics"/> </menu> </menu> </menu_bar> diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index 68ce94ea47..62fda0d601 100755 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -1,79 +1,178 @@ -<?xml version="1.0" encoding="utf-8" ?> +<?xml version="1.0" encoding="utf-8"?> <notifications> <global name="skipnexttime"> - Nie pokazuj tego następnym razem + Nie pokazuj tej opcji następnym razem </global> <global name="alwayschoose"> - Zawsze wybieraj tą opcję + Pozwalaj na wybór tej opcji </global> <global name="implicitclosebutton"> Zamknij </global> - <notification name="MissingAlert" label="Nieznany rodzaj komunikatu"> + <template name="okbutton"> + <form> + <button name="OK_okbutton" text="$yestext"/> + </form> + </template> + <template name="okignore"> + <form> + <button name="OK_okignore" text="$yestext"/> + </form> + </template> + <template name="okcancelbuttons"> + <form> + <button name="OK_okcancelbuttons" text="$yestext"/> + <button name="Cancel_okcancelbuttons" text="$notext"/> + </form> + </template> + <template name="okcancelignore"> + <form> + <button name="OK_okcancelignore" text="$yestext"/> + <button name="Cancel_okcancelignore" text="$notext"/> + </form> + </template> + <template name="okhelpbuttons"> + <form> + <button name="OK_okhelpbuttons" text="$yestext"/> + <button name="Help" text="$helptext"/> + </form> + </template> + <template name="yesnocancelbuttons"> + <form> + <button name="Yes" text="$yestext"/> + <button name="No" text="$notext"/> + <button name="Cancel_yesnocancelbuttons" text="$canceltext"/> + </form> + </template> + <notification functor="GenericAcknowledge" label="Nieznany rodzaj komunikatu" name="MissingAlert"> Twoja wersja klienta [APP_NAME] nie może wyświetlić odebranej wiadomości. Upewnij się, że posiadasz najnowszą wersję klienta. Szczegóły błędu: Błąd o nazwie '[_NAME]' nie został odnaleziony w pliku notifications.xml. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="FloaterNotFound"> Błąd: nie można znaleźć następujących elementów: [CONTROLS] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="TutorialNotFound"> Brak samouczka na ten temat + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="GenericAlert"> + [MESSAGE] </notification> <notification name="GenericAlertYesCancel"> [MESSAGE] - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/> + </notification> + <notification name="GenericAlertOK"> + [MESSAGE] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="BadInstallation"> - Podczas aktualizacji [APP_NAME] wystąpił błąd. Proszę [http://get.secondlife.com odwiedzić stronę] aby ściągnąć ostatnią wersję klienta. + Podczas aktualizacji [APP_NAME] wystąpił błąd. Proszę odwiedzić stronę [http://get.secondlife.com pobierz najnowsza wersję] aby ściągnąć ostatnią wersję klienta. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="LoginFailedNoNetwork"> Nie można połączyć z [SECOND_LIFE_GRID]. -'[DIAGNOSTIC]' + '[DIAGNOSTIC]' Upewnij się, że Twoje połączenie z internetem działa. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="MessageTemplateNotFound"> - Szablon komunikatu dla [PATH] nie został odnaleziony. + Wzór komunikatu dla [PATH] nie został odnaleziony. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="WearableSave"> Zapisać zmiany dotyczące ubrania/części ciała? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz" /> - </notification> - <notification name="ConfirmNoCopyToOutbox"> - Nie masz uprawnień do kopiowania jednego lub więcej obiektów do Skrzynki Nadawczej Kupca. Możesz je przenieść lub pozostawić. - <usetemplate name="okcancelbuttons" notext="Nie przenoś" yestext="Przenieś" /> - </notification> - <notification name="OutboxFolderCreated"> - Nowy folder został stworzony dla każdego przedmiotu przeniesionego do głównego poziomu Skrzynki Nadawczej Kupca. - <usetemplate ignoretext="Nowy folder został stworzony w Skrzynce Nadawczej Kupca" name="okignore" /> + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/> </notification> - <notification name="OutboxImportComplete"> - Powodzenie + <notification name="StockPasteFailed"> + Kopiowanie lub przeniesienie do folderu magazynowego nie powiodło się: -Wszystkie foldery zostały pomyślnie wysłane na Marketplace. - <usetemplate ignoretext="Wszystkie foldery wysłano na Marketplace" name="okignore" /> + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="OutboxImportHadErrors"> - Niektóre foldery nie zostały wysłane + <notification name="MerchantPasteFailed"> + Kopiowanie lub przenoszenie przedmiotów na Marketplace nie powiodło się: -Wystąpiły błędy w wysyłaniu pewnych folderów na Marketplace. Są one ciągle obecne w Skrzynce Nadawczej Kupca. +'[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + Transakcja z Marketplace nie powiodła się: -Zobacz [[MARKETPLACE_IMPORTS_URL] log błędów] aby uzyskać więcej informacji. + Powód: '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Wylistowanie tego produktu lub aktywowanie folderu z wersją nie było możliwe. Zazwyczaj jest to spowodowane brakującymi informacjami w formularzu z opisem przedmiotu, ale może to również wynikać z błędów w strukturze folderów. Zmień opis przedmiotu lub sprawdź foldery, aby znaleźć błędy. + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="OutboxImportFailed"> - Transfer nieudany, błąd '[ERROR_CODE]' + <notification name="MerchantListingFailed"> + Listowanie na Marketplace nie powiodło się: -Foldery nie zostały wysłane na Marketplace z powodu błędu sieci lub systemu. Spróbuj później. + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="OutboxInitFailed"> - Inicjalizacja Marketplace nieudana, błąd '[ERROR_CODE]' + <notification name="MerchantFolderActivationFailed"> + Aktywacja tego folderu wersji nie powiodła się: -Inicjalizacja Marketplace nieudana z powodu błędu sieci lub systemu. Spróbuj później. + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Jeśli kontynuujesz, to zmieni się aktywna zawartość tego przedmiotu. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed zmodyfikowaniem aktywnego przedmiotu na Marketplace" name="okcancelignore" notext="Anuluj" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Przedmioty przeciągnięte do okna listowania na Marketplace są przenoszone z ich oryginalnych lokalizacji, a nie kopiowane. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim prześlę na Marketplace przedmiot z mojej Szafy" name="okcancelignore" notext="Anuluj" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Przeniesienie lub usunięcie folderu usunie również Twój przedmiot na Marketplace. Jeśli chcesz, aby przedmiot był ciągle widoczny na Marketplace musisz przesunąć lub usunąć zawartość folderu z wersją, którą chcesz zmodyfikować. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim usunę lub przeniosę przedmiot na Marketplace" name="okcancelignore" notext="Anuluj" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Nie masz praw do skopiowania jednego lub więcej obiektów na Marketplace. Możesz je przenieść lub pozostawić. + <usetemplate canceltext="Anuluj" ignoretext="Potwierdź, zanim wyślę na Marketplace przedmioty bez praw kopiowania" name="yesnocancelbuttons" notext="Nie przenoś" yestext="Przenieś"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Jeśli kontynuujesz, to ten przedmiot zostanie usunięty z listy. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim usunę z listy przedmiot na Marketplace" name="okcancelignore" notext="Anuluj" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Jeśli kontynuujesz, to folder wersji tego przedmiotu zostanie zdeaktywowany. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed wyłączeniem folderu wersji dla przedmiotu na Marketplace" name="okcancelignore" notext="Anuluj" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Ten przedmiot nie może zostać zaktualizowany. +[[URL] Kliknij tutaj] aby zaktualizować go na Marketplace. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Nie możesz założyć ubrań lub części ciała, które znajdują się w folderze listingów Marketplace. + </notification> + <notification name="AlertMerchantListingInvalidID"> + Nieprawidłowy ID przedmiotu. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Istnieje kilka, lub żadna, wersji folderu dla tego przedmiotu. Będziesz musiała/ wybrać i uaktywnić jedną oddzielnie później. + <usetemplate ignoretext="Powiadamiaj o aktywacji folderu wersji, gdy tworzę przedmiot z kilkoma folderami wersji" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Przedmioty z ograniczonymi zasobami magazynowymi różnych typów zostały rozdzielone do osobnych folderów, aby ogólna hierarchia katalogów umożliwiała ich listowanie. + <usetemplate ignoretext="Powiadom, gdy folder magazynowy jest dzielony przed listowaniem" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Twój przedmiot został usunięty z listy, ponieważ nie ma go już w magazynie. Musisz dodać więcej jego jednostek do folderu magazynowego, aby można było go ponownie wyświetlać na liście. + <usetemplate ignoretext="Powiadom, gdy przedmiot jest zdjęty z listy, bo folder zasobów magazynowych jest pusty" name="okignore" yestext="OK"/> </notification> <notification name="CompileQueueSaveText"> - W trakcie ładowania tekstu dla skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut. + W trakcie ładwania tekstu dla skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut. </notification> <notification name="CompileQueueSaveBytecode"> W trakcie ładowania skompilowanego skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut. @@ -82,222 +181,202 @@ Inicjalizacja Marketplace nieudana z powodu błędu sieci lub systemu. Spróbuj Problem w zapisywaniu danych animacji. Spróbuj ponownie za kilka minut. </notification> <notification name="UploadAuctionSnapshotFail"> - W trakcie ładowania obrazu aukcji pojawił się problem z następującego powodu: [REASON]. + W trakcie ładwania obrazu aukcji pojawił się problem z następującego powodu: [REASON]. </notification> <notification name="UnableToViewContentsMoreThanOne"> Nie można przeglądać zawartości więcej niż jednego obiektu naraz. Wybierz pojedynczy obiekt i spróbuj jeszcze raz. </notification> <notification name="SaveClothingBodyChanges"> - Zapisać wszystkie zmiany dotyczące ubrania/części ciała? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz" /> + Zapisać wszystkie zmiany dotyczące ubrania/cześci ciała? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz"/> </notification> <notification name="FriendsAndGroupsOnly"> - Osoby spoza listy znajomych nie będą wiedzieć, że zdecydowałeś/aś się ignorować ich rozmowy głosowe i wiadomości IM. + Osoby spoza listy znajomych, których rozmowy głosowe i IM są ignorowane, nie wiedzą o tym. + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="FavoritesOnLogin"> - Pamiętaj: kiedy włączysz tą opcję to każdy kto używa tego komputera będzie mógł zobaczyć Twoją listę ulubionych miejsc. + <notification name="FavoritesOnLogin"> + Pamiętaj: kiedy wyłączysz tą opcję, każdy kto używa tego komputera, może zobaczyć Twoją listę ulubionych miejsc. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="GrantModifyRights"> Udzielenie praw modyfikacji innemu Rezydentowi umożliwia modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów. Używaj tej opcji z rozwagą! Czy chcesz udzielić prawa do modyfikacji [NAME]? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="GrantModifyRightsMultiple"> Udzielenie praw modyfikacji innym Rezydentom umożliwia im modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów. Używaj tej opcji z rozwagą! Czy chcesz dać prawa modyfikacji wybranym osobom? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="RevokeModifyRights"> Czy chcesz odebrać prawa do modyfikacji [NAME]? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="RevokeModifyRightsMultiple"> Czy chcesz odebrać prawa modyfikacji wybranym Rezydentom? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="UnableToCreateGroup"> Założenie grupy nie jest możliwe. [MESSAGE] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="PanelGroupApply"> [NEEDS_APPLY_MESSAGE] [WANT_APPLY_MESSAGE] - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Ignoruj zmiany" yestext="Zastosuj zmiany" /> + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Ignoruj zmiany" yestext="Zastosuj zmiany"/> </notification> <notification name="MustSpecifyGroupNoticeSubject"> Aby wysłać ogłoszenie do grupy musisz nadać mu tytuł. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="AddGroupOwnerWarning"> - Dodajesz osoby do funkcji [ROLE_NAME]. + Dodajesz członków do funkcji [ROLE_NAME]. Ta funkcja nie może być odebrana. -Osoby muszą same zrezygnować z pełnienia tej funkcji. +Członkowie muszą sami zrezygnować z pełnienia tej funkcji. Chcesz kontynuować? - <usetemplate ignoretext="Potwierdź przed dodaniem nowego właściciela grupy" name="okcancelignore" notext="Nie" yestext="Tak" /> + <usetemplate ignoretext="Przed dodaniem nowego właściciela do grupy, proszę potwierdzić swoją decyzję." name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="AssignDangerousActionWarning"> - Dodajesz przywilej '[ACTION_NAME]' do funkcji '[ROLE_NAME]'. + Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME]. *UWAGA* -Osoba w funkcji z tym przywilejem może przypisać siebie i inne osoby, które nie są właścicielami do funkcji dających więcej przywilejów niż posiadane obecnie, potencjalnie dające możliwości zbliżone do możliwości właściciela. -Udzielaj tego przywileju z rozwagą. +Członek w funkcji z tym przywilejem może przypisać siebie i innych członków nie będących właścicielami do funkcji dających więcej przywilejów niż posiadane obecnie potencjalnie dające możliwości zbliżone do możliwości właściciela. +Udzielaj tego przywileju z rozwagą." -Dodać ten przywilej do funkcji '[ROLE_NAME]'? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> +Dodać ten przywilej do funkcji [ROLE_NAME]? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="AssignDangerousAbilityWarning"> - Dodajesz przywilej '[ACTION_NAME]' do funkcji '[ROLE_NAME]' + Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME] *UWAGA* -Osoba w funkcji z tym przywilejem może przypisać sobie i innym osobom, które nie są właścicielami wszystkie przywileje potencjalnie dające możliwości zbliżone do możliwości właściciela. +Członek w funkcji z tym przywilejem może przypisać sobie i innychm członkom nie będącym właścicielami wszystkie przywileje potencjalnie dające możliwości zbliżone do możliwości właściciela. Udzielaj tego przywileju z rozwagą. -Dodać ten przywilej do funkcji '[ROLE_NAME]'? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> - </notification> - <notification name="AssignBanAbilityWarning"> - Dodajesz przywilej '[ACTION_NAME]' do funkcji '[ROLE_NAME]' - -*UWAGA* -Osoba w funkcji z tym przywilejem otrzyma również '[ACTION_NAME_2]' oraz '[ACTION_NAME_3]' - </notification> - <notification name="RemoveBanAbilityWarning"> - Zabierasz przywilej '[ACTION_NAME]' z funkcji '[ROLE_NAME]' - -*UWAGA* -Zabranie tej funkcji NIE usunie '[ACTION_NAME_2]' oraz '[ACTION_NAME_3]'. - -Jeśli nie chcesz, aby te przywileje były dłużej przypisane do tej roli, to wyłącz je natychmiast! - </notification> - <notification name="EjectGroupMemberWarning"> - Zamierzasz wyrzucić [AVATAR_NAME] z grupy. - <usetemplate ignoretext="Potwierdź wyrzucenie osoby z grupy" name="okcancelignore" notext="Anuluj" yestext="Wyrzuć" /> - </notification> - <notification name="EjectGroupMembersWarning"> - Zamierzasz wyrzucić [COUNT] osób z grupy. - <usetemplate ignoretext="Potwierdź wyrzucenie kilku osób z grupy" name="okcancelignore" notext="Anuluj" yestext="Wyrzuć" /> +Dodać ten przywilej do funkcji [ROLE_NAME]? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="AttachmentDrop"> - Wybrałeś/aś opcję upuszczenia swojego dodatku. -Czy chcesz kontynuować? - <usetemplate ignoretext="Potwierdź przed upuszczeniem dodatku" name="okcancelignore" notext="Nie" yestext="Tak" /> + Wybrałeś opcję opuszczenia swojego załącznika. + Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed zdjęciem załącznika." name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="JoinGroupCanAfford"> Dołączenie do tej grupy kosztuje [COST]L$. Chcesz kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz"/> </notification> <notification name="JoinGroupNoCost"> Dołączasz do grupy [NAME]. Czy chcesz kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Akceptuj"/> </notification> <notification name="JoinGroupCannotAfford"> - Członkostwo w tej grupie kosztuje [COST]L$. -Masz za mało L$ żeby do niej dołączyć. + Członkostwo w tej grupie kosztuje [COST]L$ +Masz za mało L$ żeby zostać członkiem. </notification> <notification name="CreateGroupCost"> - Stworzenie tej grupy kosztuje [COST]L$. -W grupie powinna być więcej niż jedna osoba, w przeciwnym razie zostanie ona na zawsze skasowana. -Zaproś kogoś w ciągu 48 godzin. - <usetemplate canceltext="Anuluj" name="okcancelbuttons" notext="Anuluj" yestext="Stwórz grupę za 100L$" /> + Stworzenie tej grupy kosztuje 100L$. +W grupie powinien być więcej niż jeden członek, albo zostanie na zawsze skasowana. +Zaproś proszę członków w ciągu 48 godzin. + <usetemplate canceltext="Anuluj" name="okcancelbuttons" notext="Anuluj" yestext="Stwórz grupę za 100L$"/> </notification> <notification name="LandBuyPass"> - Za [COST]L$ możesz odwiedzić tą działkę ('[PARCEL_NAME]') na [TIME] godzin. Chcesz kupić przepustkę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Za [COST]L$ możesz odwiedzić tą posiadłość ('[PARCEL_NAME]') na [TIME] godzin. Chcesz kupić przepustkę? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="SalePriceRestriction"> Cena sprzedaży musi być wyższa niż 0L$ jeżeli sprzedajesz komukolwiek. Musisz wybrać kupca jeżeli chcesz sprzedać za 0L$. </notification> <notification name="ConfirmLandSaleChange"> - Działka o powierzchni [LAND_SIZE] m² zostaje wystawiona na sprzedaż. -Cena wynosi [SALE_PRICE]L$, a sprzedaż będzie autoryzowana dla [NAME]. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Posiadłość o powierzchni [LAND_SIZE] m zostaje wystawiona na sprzedaż. +Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME]. + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmLandSaleToAnyoneChange"> - UWAGA: Wybierając opcję "Sprzedaj Każdemu" udostępniasz swoją działkę na sprzedaż dla jakiegokolwiek Rezydenta [SECOND_LIFE], nawet osób nieobecnych w tym regionie. + UWAGA: Wybierając opcję "Sprzedaj Każdemu" udostępniasz swoją posiadłość do sprzedaży dla jakiegokolwiek Rezydenta [SECOND_LIFE] , nawet osób nieobecnych w tym regionie. -Działka o powierzchni [LAND_SIZE] m² zostaje wystawiona na sprzedaż. -Cena wynosi [SALE_PRICE]L$, a sprzedaż będzie autoryzowana dla [NAME]. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Posiadłość o powierzchni [LAND_SIZE] m² zostaje wystawiona na sprzedaż. +Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME]. + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie '[NAME]' na tej działce do szaf ich poprzednich właścicieli? + Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie [NAME] na tej posiadłości do szafy ich poprzednich właścicieli? *UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu! Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsOwnedByUser"> - Czy na pewno chcesz zwrócić wszystkie obiekty należące do Rezydenta '[NAME]' znajdujące się na tej działce do szafy właściciela? + Czy na pewno chcesz zwrócić wszystkie obiekty należące do Rezydenta [NAME] znajdujące się na tej posiadłości do szafy właściciela? Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsOwnedBySelf"> - Czy na pewno chcesz zwrócić wszystkie Twoje obiekty znajdujące się na tej działce do swojej szafy? + Czy na pewno chcesz zwrócić wszystkie Twoje obiekty znajdujące się na tej posiadłości do swojej szafy? Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedBySelf"> - Czy na pewno chcesz zwrócić wszystkie obiekty, których NIE jesteś właścicielem znajdujące się na tej działce do szaf właścicieli? -Wszystkie obiekty udostępnione grupie z prawem transferu zostaną zwrócone poprzednim właścicielom. + Czy na pewno chcesz zwrócić wszystkie obiekty, których nie jesteś właścicielem znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom. *UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu! Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByUser"> - Czy na pewno chcesz zwrócić wszystkie obiekty, które NIE należą do [NAME], a znajdujące się na tej działce - do szaf właścicieli? -Wszystkie obiekty udostępnione grupie z prawem transferu zostaną zwrócone poprzednim właścicielom. + Czy na pewno chcesz zwrócić wszystkie obiekty, które nie należą do [NAME] znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom. *UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu! Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnAllTopObjects"> - Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej działce do szaf ich właścicieli? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej posiadłości do szaf ich właścicieli? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DisableAllTopObjects"> - Czy na pewno chcesz dezaktywować wszystkie obiekty w tym regionie? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Czy na pewno chcesz deaktywować wszystkie obiekty w tym Regionie? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Zwrócić obiekty z tej działki, które NIE są udostępnione grupie [NAME] do ich właścicieli? + Zwrócić obiekty z tej posiadłości, które nie są udosępnione grupie [NAME] do ich właścicieli? Obiekty: [N] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="UnableToDisableOutsideScripts"> - Nie można dezaktywować skryptów. + Nie można deaktywować skryptów. Ten region pozwala na uszkodzenia. Skrypty muszą pozostać aktywne dla prawidłowego działania broni. </notification> <notification name="MultipleFacesSelected"> Obecnie zaznaczono wiele powierzchni. -Jeśli kontynuujesz, to oddzielne instancje mediów będą ustawione na wielu powierzchniach obiektu. -W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z narzędzia wyboru powierzchni i kliknij na ten wybranej oraz na Dodaj. - <usetemplate ignoretext="Media zostaną ustawione na wielu zaznaczonych powierzchniach" name="okcancelignore" notext="Anuluj" /> +Jeśli działanie będzie kontynuowane, oddzielne media będą ustawione na wielu powierzchniach obiektu. +W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z Wybierz powierzchnię i kliknij na wybranej powierzchni obiektu oraz kliknij Dodaj. + <usetemplate ignoretext="Media zostaną ustawione na wielu zaznaczonych powierzchniach" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="MustBeInParcel"> - Musisz znajdować się wewnątrz działki, żeby wybrać punkt lądowania. + Musisz znajdować się wewnątrz posiadłości żeby wybrać punkt lądowania. </notification> <notification name="PromptRecipientEmail"> - Proszę wpisać prawidłowy adres e-mail odbiorcy. + Proszę wpisać adres emailowy odbiorcy. </notification> <notification name="PromptSelfEmail"> - Proszę wpisać swój adres e-mail. + Proszę wpisać swój adres emailowy. </notification> <notification name="PromptMissingSubjMsg"> - Wysłać zdjęcie z domyślnym tematem lub wiadomością? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Wysłać widokówkę z domyślnym tematem i wiadomością? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ErrorProcessingSnapshot"> Błąd w trakcie przetwarzania danych zdjęcia. @@ -316,61 +395,57 @@ W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z narzędzia </notification> <notification name="CouldNotPutOnOutfit"> Założenie stroju nie powiodło się. -Folder stroju nie zawiera żadnego ubrania, części ciała ani dodatków. +Folder stroju nie zawiera żadnego ubrania, części ciała ani załączników. </notification> <notification name="CannotWearTrash"> Nie możesz założyć ubrania, które znajduje się w koszu. </notification> <notification name="MaxAttachmentsOnOutfit"> Nie można dołączyć obiektu. -Limit [MAX_ATTACHMENTS] dodatków został przekroczony. Proszę najpierw odłączyć inny obiekt. +Limit [MAX_ATTACHMENTS] załączników został przekroczony. Proszę najpierw odłączyć inny obiekt. </notification> <notification name="CannotWearInfoNotComplete"> - Nie możesz założyć tego przedmiotu, ponieważ jeszcze się nie załadował do końca. Spróbuj ponownie za kilka minut. + Nie możesz założyć tego artkułu ponieważ nie załadował się poprawnie. Spróbuj ponownie za kilka minut. </notification> <notification name="MustHaveAccountToLogIn"> - Należy wprowadzić nazwę użytkownika. + Oops! Brakuje czegoś. +Należy wprowadzić nazwę użytkownika. Potrzebujesz konta aby się zalogować do [SECOND_LIFE]. Czy chcesz utworzyć je teraz? - <usetemplate name="okcancelbuttons" notext="Spróbuj ponownie" yestext="Nowe konto" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="InvalidCredentialFormat"> - Należy wprowadzić nazwę użytkownika lub imię oraz nazwisko Twojego awatara w pole nazwy użytkownika, a następnie ponownie się zalogować. - </notification> - <notification name="InvalidGrid"> - '[GRID]' nie jest prawidłowym identyfikatorem siatki. - </notification> - <notification name="InvalidLocationSLURL"> - Twój punkt startowy nie znajduje się na prawidłowej siatce. + Należy wprowadzić nazwę użytkownika lub imię oraz nazwisko Twojego awatara w pole nazwy użytkownika a następnie ponownie się zalogować. </notification> <notification name="DeleteClassified"> Usunąć reklamę '[NAME]'? Pamiętaj! Nie ma rekompensaty za poniesione koszta. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DeleteMedia"> Wybrano usunięcie mediów związanych z tą powierzchnią. Czy na pewno chcesz kontynuować? - <usetemplate ignoretext="Potwierdź przed usunięciem mediów z obiektu" name="okcancelignore" notext="Nie" yestext="Tak" /> + <usetemplate ignoretext="Potwierdź przed usunięciem mediów z obiektu" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="ClassifiedSave"> Zapisać zmiany w reklamie [NAME]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz" /> + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/> </notification> <notification name="ClassifiedInsufficientFunds"> Nie posiadasz wystarczających środków aby dodać reklamę. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="DeleteAvatarPick"> - Usunąć miejsce <nolink>[PICK]</nolink>? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Usuń zdjęcie <nolink>[PICK]</nolink>? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DeleteOutfits"> Skasować wybrane stroje? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="PromptGoToEventsPage"> - Odwiedzić internetową stronę imprez [SECOND_LIFE]? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Odwiedzić internetową stronę Imprez [SECOND_LIFE]? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="SelectProposalToView"> Wybierz propozycję, którą chcesz zobaczyć. @@ -378,14 +453,6 @@ Czy na pewno chcesz kontynuować? <notification name="SelectHistoryItemToView"> Wybierz obiekt z historii, który chcesz zobaczyć. </notification> - <notification name="ResetShowNextTimeDialogs"> - Czy chcesz aktywować ponownie wszystkie te powiadomienia, przy których wcześniej zaznaczono 'nie pokazuj ponownie'? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="SkipShowNextTimeDialogs"> - Czy chcesz dezaktywować wszystkie powiadomienia, jakie tylko można? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> <notification name="CacheWillClear"> Bufor danych zostanie wyczyszczony po restarcie aplikacji [APP_NAME]. </notification> @@ -397,40 +464,40 @@ Pamiętaj: Opcja ta wyczyszcza bufor danych. Ustawienia portu zostają zaktualizowane po restarcie aplikacji [APP_NAME]. </notification> <notification name="ChangeSkin"> - Nowa skórka pojawi się po restarcie aplikacji [APP_NAME]. + Nowa skórka zostanie wczytana po restarcie aplikacji [APP_NAME]. </notification> <notification name="ChangeLanguage"> Zmiana języka zadziała po restarcie [APP_NAME]. </notification> <notification name="GoToAuctionPage"> - Odwiedzić stronę internetową [SECOND_LIFE] żeby zobaczyć szczegóły aukcji lub zgłosić ofertę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Odwiedzić stronę internetową [SECOND_LIFE] żeby zobaczyć szczgóły aukcji lub zrobić ofertę? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="SaveChanges"> Zapisać zmiany? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz" /> + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz"/> </notification> <notification name="DeleteNotecard"> Usunąć notkę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="GestureSaveFailedTooManySteps"> - Nie można zapisać gestu. -Ten gest ma zbyt wiele etapów. + Nie można zapisać gesturki. +Ta gesturka ma zbyt wiele etapów. Usuń kilka etapów i zapisz jeszcze raz. </notification> <notification name="GestureSaveFailedTryAgain"> - Zapis gestu nie powiódł się. Spróbuj jeszcze raz za kilka minut. + Zapis gesturki nie powiódł się. Spróbuj jeszcze raz za kilka minut. </notification> <notification name="GestureSaveFailedObjectNotFound"> - Nie można zapisać gestu, ponieważ obiekt lub zawartość powiązanego obiektu nie została znaleziona. + Nie można zapisać gesturki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony. Obiekt może znajdować się zbyt daleko albo został usunięty. </notification> <notification name="GestureSaveFailedReason"> - Nie można zapisać gestu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. + Nie można zapisać gesturki z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. </notification> <notification name="SaveNotecardFailObjectNotFound"> - Nie można zapisać notki, ponieważ obiekt lub zawartość powiązanego obiektu nie została znaleziona. + Nie można zapisać notki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony. Obiekt może znajdować się zbyt daleko albo został usunięty. </notification> <notification name="SaveNotecardFailReason"> @@ -440,7 +507,7 @@ Obiekt może znajdować się zbyt daleko albo został usunięty. Nie można cofnąć wszystkich zmian w Twojej wersji skryptu. Czy chcesz załadować ostatnią wersję zapisaną na serwerze? (*UWAGA* Ta operacja jest nieodwracalna.) - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="SaveScriptFailReason"> Nie można zapisać skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. @@ -450,74 +517,57 @@ Czy chcesz załadować ostatnią wersję zapisaną na serwerze? Obiekt może znajdować się zbyt daleko albo został usunięty. </notification> <notification name="SaveBytecodeFailReason"> - Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. + Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej. </notification> <notification name="StartRegionEmpty"> - Twoje miejsce startu nie zostało określone. -Wpisz proszę nazwę regionu w lokalizację startu w polu Lokalizacja Startu lub wybierz 'Moja ostatnia lokalizacja' albo 'Miejsce Startu'. + Oops, Twoje miejsce startu nie zostało określone. +Wpisz proszę nazwę regionu w lokalizację startu w polu Lokalizacja Startu lub wybierz Moja ostatnia lokalizacja albo Miejsce Startu. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CouldNotStartStopScript"> Nie można uruchomić lub zatrzymać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony. Obiekt może znajdować się zbyt daleko albo został usunięty. </notification> <notification name="CannotDownloadFile"> - Nie można pobrać pliku + Nie można załadować pliku </notification> <notification name="CannotWriteFile"> Nie można zapisać pliku [[FILE]] </notification> <notification name="UnsupportedHardware"> - Niestety Twój komputer nie spełnia minimalnych wymogów sprzętowych dla poprawnego działania [APP_NAME]. Możesz odczuwać bardzo niską wydajność operacyjną. Niestety, portal pomocy [SUPPORT_SITE] nie jest w stanie zapewnić wsparcia technicznego dla Twojego systemu. - -Odwiedzić [_URL], aby uzyskać więcej informacji? - <usetemplate ignoretext="Sprzęt w moim komputerze nie jest wspierany" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="IntelOldDriver"> - Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. - -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="AMDOldDriver"> - Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. - -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="NVIDIAOldDriver"> - Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. + Niestety Twój komputer nie spełnia minimalnych wymogów sprzętowych dla poprawnego działania [APP_NAME]. Możesz odczuwać bardzo niską wydajność operacyjną. Niestety portal pomocy, [SUPPORT_SITE] nie posiada informacji na temat poprawnej konfiguracji technicznej Twojego systemu. -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> +Po więcej info, odwiedź stronę [_URL] . + <url name="url" option="0"> + http://www.secondlife.com/corporate/sysreqs.php + </url> + <usetemplate ignoretext="Dysk twardy mojego komputera nie jest wspomagany" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="UnknownGPU"> Twój system jest wyposażony w kartę graficzną, która nie jest rozpoznana przez [APP_NAME]. -Zdarza się to często w przypadku nowego sprzętu, który nie był testowany z [APP_NAME]. Prawdopodobnie wystarczy dostosowanie ustawień grafiki aby działanie było poprawne. -(Ja > Ustawienia > Grafika). +Zdarza się to często w przypadku nowego sprzętu, który nie był testowany z [APP_NAME]. Prawdopodobnie wystarczy dostosowanie ustawień grafiki aby działanie było poprawne. +(Ja > Właściwości > Grafika). <form name="form"> - <ignore name="ignore" text="Karta graficzna nie została zidentyfikowana" /> + <ignore name="ignore" text="Karta graficzna nie została zidentyfikowana."/> </form> </notification> <notification name="DisplaySettingsNoShaders"> [APP_NAME] zawiesił się podczas inicjalizacji sterowników graficznych. Jakość grafiki została zmniejszona - może to pomóc. -Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizację sterowników graficznych. +Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizcje sterowników graficznych. Możesz podnieść jakość grafiki pod Ustawienia > Grafika. </notification> <notification name="RegionNoTerraforming"> - Region [REGION] nie pozwala na zmianę powierzchni ziemi. - </notification> - <notification name="ParcelNoTerraforming"> - Działka [PARCEL] nie pozwala Ci na zmianę powierzchni ziemi. + Region [REGION] nie pozwala na formowanie powierzchni ziemi. </notification> <notification name="CannotCopyWarning"> Nie masz pozwolenia na kopiowanie następujących obiektów: [ITEMS] i stracisz je w momencie przekazania. Czy na pewno chcesz oddać te obiekty? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="CannotGiveItem"> - Przekazanie obiektu nie powiodło się. + Podarowanie obiektu nie powiodło się. </notification> <notification name="TransactionCancelled"> Transakcja anulowana @@ -526,53 +576,44 @@ i stracisz je w momencie przekazania. Czy na pewno chcesz oddać te obiekty? Jednorazowo możesz podarować maksymalnie 42 obiekty z szafy. </notification> <notification name="NoItems"> - Nie masz praw transferu dla wybranych obiektów. + Nie masz praw do transferu wybranych obiektów. </notification> <notification name="CannotCopyCountItems"> Nie masz praw do skopiowania [COUNT] wybranych obiektów. Obiekty znikną z Twojej szafy. Na pewno chcesz oddać te obiekty? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="CannotGiveCategory"> - Nie masz praw transferu dla wybranego folderu. + Nie masz praw do transferu wybranego foldera. </notification> <notification name="FreezeAvatar"> Unieruchomić tego awatara? -Awatar tymczasowo nie będzie mógł się poruszać, używać czatu (IM) lub oddziaływać na świat. - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom" /> +Awatar tymczasowo nie będzie mógł się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat. + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom"/> </notification> <notification name="FreezeAvatarFullname"> - Unieruchomić [AVATAR_NAME]? -Ta osoba tymczasowo nie będzie mogła się poruszać, używać czatu (IM) lub oddziaływać na świat. - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom" /> + Unieruchowmić [AVATAR_NAME]? +Ta osoba tymczasowo nie będzie mógła się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat. + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom"/> </notification> <notification name="EjectAvatarFullname"> - Wyrzucić [AVATAR_NAME] z Twojej działki? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wyrzuć i zabroń wstępu (ban)" yestext="Wyrzuć" /> - </notification> - <notification name="EjectAvatarNoBan"> - Wyrzucić tego awatara z Twojej działki? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć" /> - </notification> - <notification name="EjectAvatarFullnameNoBan"> - Wyrzucić [AVATAR_NAME] z Twojej działki? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć" /> + Wyrzucić [AVATAR_NAME] z Twojej posiadłości? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wyrzuć i zabroń wstępu (ban)" yestext="Wyrzuć"/> </notification> <notification name="EjectAvatarFromGroup"> - Wyrzuciłeś/aś [AVATAR_NAME] z grupy [GROUP_NAME] + Wyrzuć [AVATAR_NAME] z grupy [GROUP_NAME] </notification> <notification name="AcquireErrorTooManyObjects"> BŁĄD OTRZYMYWANIA: Zbyt wiele wybranych obiektów. </notification> <notification name="AcquireErrorObjectSpan"> - BŁĄD OTRZYMYWANIA: Obiekty przekraczają granicę regionów. -Przemieść wszystkie otrzymywane obiekty do jednego regionu. + BŁĄD OTRZYMYWANIA: Obiekty przekraczają granicę regionów. Przemieść wszystkie otrzymywane obiekty do jednego regionu. </notification> <notification name="PromptGoToCurrencyPage"> [EXTRA] -Odwiedzić [_URL] po więcej informacji na temat zakupu L$? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Odwiedź stronę [_URL] po więcej informacji na temat zakupu L$? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="UnableToLinkObjects"> Nie można połączyć [COUNT] obiektów. @@ -582,26 +623,24 @@ Maksymalnie można połączyć [MAX] obiektów. Możesz łączyć tylko kompletne zbiory obiektów i musisz wybrać więcej niż jeden obiekt. </notification> <notification name="CannotLinkModify"> - Nie możesz połączyć obiektów, ponieważ nie masz praw modyfikacji dla wszystkich. + Nie możesz połączyć obiektów ponieważ nie masz praw modyfikacji dla wszystkich obiektów. -Upewnij się, że żaden z obiektów nie jest zablokowany i wszystkie należą do Ciebie. - </notification> - <notification name="CannotLinkPermanent"> - Nie możesz łączyć obiektów przez granice regionów. +Upewnij się, że żaden z obiktów nie jest zablokowany i że wszystkie obiekty należą do Ciebie. </notification> <notification name="CannotLinkDifferentOwners"> - Nie możesz połączyć obiektów, ponieważ należą one do różnych osób. + Nie możesz połączyć obiektów ponieważ należą one do różnych osób. -Upewnij się, że wszystkie wybrane obiekty należą do Ciebie. +Upewnij sie, że wszystkie wybrane obiekty należą do Ciebie. </notification> <notification name="NoFileExtension"> - Brak rozszerzenia dla pliku: '[FILE]' + Niepoprawna końcówka nazwy pliku: '[FILE]' -Upewnij się, że nazwa pliku ma poprawne rozszerzenie. +Upewnij się, że nazwa pliku ma poprawaną końcówkę. </notification> <notification name="InvalidFileExtension"> - Niepoprawne rozszerzenie pliku: [EXTENSION] -Oczekiwane: [VALIDS] + Niepoprawna końcówka nazwy pliku - [EXTENSION] +Oczekiwana - [VALIDS] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CannotUploadSoundFile"> Nie można otworzyć załadowanego pliku dźwiękowego: @@ -620,7 +659,7 @@ Oczekiwane: [VALIDS] [FILE] </notification> <notification name="SoundFileInvalidSampleRate"> - Plik zawiera niewłaściwą częstotliwość (musi być 44.1k): + Plik zawiera niewłaścią częstotliwość (musi być 44.1k): [FILE] </notification> <notification name="SoundFileInvalidWordSize"> @@ -639,13 +678,8 @@ Oczekiwane: [VALIDS] Plik audio jest zbyt długi (10 sekund maksimum): [FILE] </notification> - <notification name="ProblemWithFile"> - Problem z plikiem [FILE]: - -[ERROR] - </notification> <notification name="CannotOpenTemporarySoundFile"> - Nie można otworzyć tymczasowego skompresowanego pliku dźwiękowego w celu zapisu: [FILE] + Nie można otworzyć tymczasowego skompresowango pliku dźwiękowego w celu zapisu: [FILE] </notification> <notification name="UnknownVorbisEncodeFailure"> Nieznany błąd kodowania Vorbis w: [FILE] @@ -654,11 +688,11 @@ Oczekiwane: [VALIDS] Kodowanie pliku: [FILE] nie powidło się. </notification> <notification name="CorruptedProtectedDataStore"> - Nie można zdekodować pliku zawierającego nazwy użytkowników i haseł. Jeśli teraz je zapiszesz lub usuniesz, to wymażesz te, które były trzymane w nim wcześniej. -To może się zdarzyć, kiedy zmieniasz ustawienia sieci. Zrestartowanie Przeglądarki z poprzednimi ustawieniami sieci może pomóc w odzyskaniu danych. + Nie można wpisać Twojego imienia użytkownika ani hasła. To może się zdarzyć kiedy zmieniasz ustawienia sieci. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CorruptResourceFile"> - Uszkodzony plik zasobów: [FILE] + Skorumpowany plik zasobów: [FILE] </notification> <notification name="UnknownResourceFileVersion"> Nieznana wersja pliku zasobów Linden w pliku: [FILE] @@ -667,20 +701,21 @@ To może się zdarzyć, kiedy zmieniasz ustawienia sieci. Zrestartowanie Przegl Nie można utworzyć pliku wyjściowego: [FILE] </notification> <notification name="DoNotSupportBulkAnimationUpload"> - [APP_NAME] obecnie nie wspomaga ładowania grupowego plików animacji w formacie BVH. + [APP_NAME] obecnie nie wspomaga ładowania grupowego plików animacji. </notification> <notification name="CannotUploadReason"> Ładowanie pliku [FILE] nie powiodło się z powodu: [REASON] -Spróbuj jeszcze raz później. +Spróbuj jeszcze raz póżniej. </notification> <notification name="LandmarkCreated"> - Dodano "[LANDMARK_NAME]" do folderu [FOLDER_NAME]. + Dodano "[LANDMARK_NAME]" do folderu [FOLDER_NAME]. </notification> <notification name="LandmarkAlreadyExists"> Posiadasz już landmark dla tej lokalizacji. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CannotCreateLandmarkNotOwner"> - Nie możesz zapamiętać tego miejsca (LM) ponieważ właściciel działki nie pozwala na to. + Nie możesz zapamiętać tego miejsca (LM) ponieważ właściciel posiadłości nie pozwala na to. </notification> <notification name="CannotRecompileSelectObjectsNoScripts"> 'Rekompilacja' nie powiodła się. @@ -719,27 +754,28 @@ Wybierz obiekty zawierające skrypty. Brak górnego okna do zapisu. </notification> <notification name="SeachFilteredOnShortWords"> - Twoje zapytanie wyszukiwania zostało zmienione - zbyt krótkie słowa zostały usunięte. + Twoje zapytanie wyszukiwania zostło zmienione - zbyt krótkie słowa zostały usunięte. Nowe zapytanie: [FINALQUERY] </notification> <notification name="SeachFilteredOnShortWordsEmpty"> - Użyte słowa wyszukiwania były zbyt krótkie - wyszukiwanie zostało anulowane. + Użyte terminy wyszukiwania były zbyt krótkie - wyszukiwanie zostało anulowane. </notification> <notification name="CouldNotTeleportReason"> Teleportacja nie powiodła się. [REASON] </notification> <notification name="invalid_tport"> - Niestety, pojawił się błąd podczas próby teleportacji. Proponujemy wylogowanie się i spróbowanie teleportacji ponownie. + Niestety, pojawił się błąd podczas próby teleportacji. Proponujemy wylogowanie się i spróbowanie teleportacji ponownie. Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPORT_SITE]. </notification> <notification name="invalid_region_handoff"> - Niestety, pojawił się błąd podczas próby przedostania się na drugi region. Proponujemy wylogowanie się i spróbowanie przedostania się na drugi region ponownie. + Niestety, pojawił się błąd podczas próby przedostania się na drugi region. Proponujemy wylogowanie się i spróbowanie przedostania się na drugi region ponownie. Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPORT_SITE]. </notification> <notification name="blocked_tport"> - Przepraszamy, teleportacja jest chwilowo niedostępna. Spróbuj jeszcze raz. Jeśli nadal nie możesz się teleportować wyloguj się i ponownie zaloguj. + Przepraszamy, teleportacja jest chwilowo niedostępna. Spróbuj jeszcze raz. +Jeśli nadal nie możesz się teleportować wyloguj się i ponownie zaloguj. </notification> <notification name="nolandmark_tport"> Przepraszamy, ale nie możemy znaleźć miejsca docelowego. @@ -751,10 +787,11 @@ Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPOR Przepraszamy, ale nie masz dostępu do miejsca docelowego. </notification> <notification name="missing_attach_tport"> - Czekamy na Twoje akcesoria. Możesz poczekać kilka sekund lub zrobić relog przed następną próbą teleportacji. + Czekamy na Twoje akcesoria. Możesz poczekać kilka minut lub zrobić relog przed następną próbą teleportacji. </notification> <notification name="too_many_uploads_tport"> - Obecnie ten region ma problemy z ładowaniem obiektów w związku z czym teleportacja bardzo się opóźnia. Spróbuj jeszcze raz za kilka minut albo teleportuj się do mniej zatłoczonego miejsca. + Obecnie ten region ma problemy z ładowaniem obiektów w związku z czym teleportacja bardzo sie opóźnia. +Spróbuj jeszcze raz za kilka minut albo teleportuj się do mniej zatłoczonego miejsca. </notification> <notification name="expired_tport"> Przepraszamy, ale nie udało się przeprowadzić teleportacji wystarczająco szybko. Spróbuj jeszcze raz za kilka minut. @@ -763,172 +800,173 @@ Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPOR Przepraszamy, ale nie udało się przeprowadzić zmiany regionu wystarczająco szybko. Spróbuj jeszcze raz za kilka minut. </notification> <notification name="no_host"> - Nie można znaleźć miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć. Spróbuj jeszcze raz za kilka minut. + Nie możemy znaleść miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć. +Spróbuj jeszcze raz za kilka minut. </notification> <notification name="no_inventory_host"> Szafa chwilowo nie działa. </notification> <notification name="CannotSetLandOwnerNothingSelected"> - Nie można wybrać właściciela działki. -Działka nie została wybrana. + Nie można wybrać właściciela posiadłości. +Posiadłość nie została wybrana. </notification> <notification name="CannotSetLandOwnerMultipleRegions"> - Nie można wybrać właściciela działki, ponieważ wybrany obszar przekracza granicę regionów. Wybierz mniejszy obszar i spróbuj jeszcze raz. + Nie można wybrać właściciela posiadłości ponieważ wybrany obszar przekracza granicę regionów. Wybierz mniejszy obszar i spróbuj jeszcze raz. </notification> <notification name="ForceOwnerAuctionWarning"> - Ta działka jest wystawiona na aukcję. Wymuszenie własności anuluje aukcję i potencjalnie może zdenerwować zainteresowanych Rezydentów, jeżeli licytacja już się rozpoczęła. + Ta posiadłość jest wystawiona na aukcję. Wymuszenie własności anuluje aukcję i potencjalnie może zdenerwować zainteresowanych Rezydentów, jeżeli licytacja już się rozpoczęła. Wymusić własność? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="CannotContentifyNothingSelected"> Nie można sfinalizować: -Działka nie została wybrana. +Posiadłość nie została wybrana. </notification> <notification name="CannotContentifyNoRegion"> Nie można sfinalizować: Region nie znaleziony. </notification> <notification name="CannotReleaseLandNothingSelected"> - Nie można porzucić działki: -Działka nie została wybrana. + Nie można porzucić posiadłości: +Posiadłość nie została wybrana. </notification> <notification name="CannotReleaseLandNoRegion"> - Nie można porzucić działki: + Nie można porzucić posiadłości: Region nie znaleziony. </notification> <notification name="CannotBuyLandNothingSelected"> - Nie można kupić działki: -Działka nie została wybrana. + Nie można kupić posiadłości: +Posiadłość nie została wybrana. </notification> <notification name="CannotBuyLandNoRegion"> - Nie można kupić działki: -Region nie został znaleziony. + Nie można kupić posiadłości: +Region nie znaleziony. </notification> <notification name="CannotCloseFloaterBuyLand"> - Okno zakupu ziemi nie może zostać zamknięte dopóki aplikacja [APP_NAME] nie określi ceny dla tej transakcji. + Okno zakupu landu nie może zostać zamknięte dopóki aplikacja [APP_NAME] nie określi ceny dla tej transkacji. </notification> <notification name="CannotDeedLandNothingSelected"> - Nie można przekazać działki: -Działka nie została wybrana. + Nie można przekazać posiadłości: +Posiadłość nie została wybrana. </notification> <notification name="CannotDeedLandNoGroup"> - Nie można przekazać działki: + Nie można przekazać posiadłości: Grupa nie została wybrana. </notification> <notification name="CannotDeedLandNoRegion"> - Brak możliwości przypisania działki grupie: -Region, gdzie działka się znajduje nie został odnaleziony. + Brak możliwości przepisania posiadłości grupie: +Region, gdzie posiadłość się znajduje nie został odnaleziony. </notification> <notification name="CannotDeedLandMultipleSelected"> - Nie można przekazać działki: -Wiele działek jest wybranych. + Nie można przekazać posiadłości: +Wiele posiadłości jest wybranych. -Spróbuj wybrać pojedynczą działkę. +Spróbuj wybrać pojedynczą posiadłość. </notification> <notification name="CannotDeedLandWaitingForServer"> - Nie można przekazać działki: + Nie można przekazać posiadłości: Serwer aktualizuje dane własności. -Spróbuj jeszcze raz później. +Spróbuj jeszcze raz póżniej. </notification> <notification name="CannotDeedLandNoTransfer"> - Nie możesz przekazać działki: -Region [REGION] nie pozwala na transfer działki. + Nie możesz przekazać posiadłości: +Region [REGION] nie pozwala na transfer posiadłości. </notification> <notification name="CannotReleaseLandWatingForServer"> - Nie można porzucić działki: -Serwer aktualizuje dane działki. + Nie można porzucić posiadłości: +Serwer aktualizuje dane posiadłości. -Spróbuj jeszcze raz później. +Spróbuj jeszcze raz póżniej. </notification> <notification name="CannotReleaseLandSelected"> - Nie możesz porzucić działki: -Nie jesteś właścicielem wszystkich wybranych działek. + Nie możesz porzucić posiadłości: +Nie jesteś właścicielem wszystkich wybranych posiadłości. -Wybierz pojedynczą działkę. +Wybierz pojedynczą posiadłość. </notification> <notification name="CannotReleaseLandDontOwn"> - Nie możesz porzucić działki: -Nie masz praw do porzucenia tej działki. -Twoje działki są podświetlone na zielono. + Nie możesz porzucić posiadłości: +Nie masz praw do porzucenia tej posiadłości. + +Twoje posiadłości są podkreślone na zielono. </notification> <notification name="CannotReleaseLandRegionNotFound"> - Brak możliwości porzucenia działki: -Region, gdzie działka się znajduje nie został odnaleziony. + Brak możliwości porzucenia posiadłości: +Region, gdzie posiadłość się znajduje nie został odnaleziony. </notification> <notification name="CannotReleaseLandNoTransfer"> - Nie możesz porzucić działki: -Region [REGION] nie pozwala na transfer działki. + Nie możesz porzucić posiadłości: +Region [REGION] nie pozwala na transfer posiadłości. </notification> <notification name="CannotReleaseLandPartialSelection"> - Nie można porzucić działki: -Musisz wybrać całą działkę by ją porzucić. - -Wybierz całą działkę albo najpierw ją podziel. + Nie można porzucić posiadłości: +Musisz wybrać całą posiadłość by ją porzucić. +Wybierz całą posiadłość albo najpierw ją podziel. </notification> <notification name="ReleaseLandWarning"> - Porzucasz działkę o powierzchni [AREA] m². -Porzucenie tej działki usunie ją z Twoich własności, ale nie otrzymasz za to żadnych L$. + Porzucasz posiadłość o powierzchni [AREA] m². +Porzucenie tej posiadłości usunie ją z Twoich własności. +Nie otrzymasz za to żadnej opłaty. -Porzucić działkę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Porzucić posiadłość? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="CannotDivideLandNothingSelected"> - Nie można podzielić działki: + Nie można podzielić posiadłości: -Działka nie została wybrana. +Posiadłość nie została wybrana. </notification> <notification name="CannotDivideLandPartialSelection"> - Nie można podzielić działki: + Nie można podzielić posiadłości: -Działka została wybrana w całości. -Spróbuj wybrać część działki. +Posiadłość została wybrana w całości. +Spróbuj wybrać część posiadłości. </notification> <notification name="LandDivideWarning"> - Podział tej działki stworzy dwie działki, z których każda będzie mogła mieć indywidualne ustawienia. + Podział tej posiadłości stworzy dwie posiadłości z których każda będzie mogła mieć indywidualne ustawienia. Niektóre ustawienia zostaną zmienione na domyślne po tej operacji. -Podzielić działkę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Podzielić posiadłość? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="CannotDivideLandNoRegion"> - Brak możliwości podziału działki: -Region, gdzie działka się znajduje nie został odnaleziony. + Brak możliwości podziału posiadłości: +Region, gdzie posiadłość się znajduje nie został odnaleziony. </notification> <notification name="CannotJoinLandNoRegion"> - Brak możliwości złączenia działek: -Region, gdzie działka się znajduje nie został odnaleziony. + Brak możliwości złączenia posiadłości: +Region, gdzie posiadłość się znajduje nie został odnaleziony. </notification> <notification name="CannotJoinLandNothingSelected"> - Nie można połączyć działek: -Działki nie zostały wybrane. + Nie można połączyć posiadłości: +Posiadłości nie zostały wybrane. </notification> <notification name="CannotJoinLandEntireParcelSelected"> - Nie można połączyć działek: -Tylko jedna działka została wybrana. + Nie można połączyć posiadłości: +Tylko jedna posiadłość została wybrana. -Wybierz obszar usytuowany na obu działkach. +Wybierz obaszar usytuowany na obu posiadłościach. </notification> <notification name="CannotJoinLandSelection"> - Nie można połączyć działek: -Musisz wybrać więcej niż jedną działkę. + Nie można połączyć posiadłości: +Musisz wybrać więcej niż jedną posiadłość. -Wybierz obszar usytuowany na obu działkach. +Wybierz obaszar usytuowany na obu posiadłościach. </notification> <notification name="JoinLandWarning"> - Połączenie tego obszaru utworzy jedną większą działkę ze wszystkich działek przecinających wybrany prostokąt. -Nazwa i opcje działki będą musiały zostać skonfigurowane. + Połączenie tego obszaru utworzy jedną większą posiadłość ze wszystkich posiadłości przecinających wybrany prostokąt. Nazwa i opcje posiadłości bedą musiały zostać skonfigurowane. -Połączyć działki? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Połączyć posiadłości? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmNotecardSave"> Ta notka musi być zapisana żeby mogła być skopiowana lub zobaczona. Zapisać notkę? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmItemCopy"> Skopiować ten obiekt do Twojej szafy? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Skopiuj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Skopiuj"/> </notification> <notification name="ResolutionSwitchFail"> Zmiana rozdzielczości do [RESX] x [RESY] nie powidła się @@ -937,7 +975,7 @@ Połączyć działki? Błąd: niezdefiniowane trawy: [SPECIES] </notification> <notification name="ErrorUndefinedTrees"> - Błąd: niezdefiniowane drzewa: [SPECIES] + Bład: niezdefiniowane drzewa: [SPECIES] </notification> <notification name="CannotSaveWearableOutOfSpace"> Nie można zapisać '[NAME]' do pliku stroju. Musisz zwolnić trochę miejsca na Twoim komputerze i zapisać strój jeszcze raz. @@ -948,63 +986,33 @@ Zazwyczaj jest to tymczasowy problem. Możesz kontynuować modyfikacje i zapisa </notification> <notification name="YouHaveBeenLoggedOut"> Nastąpiło wylogowanie z [SECOND_LIFE] -[MESSAGE] - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pokaż IM/czat" /> + [MESSAGE] + <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Kontynuuj"/> </notification> <notification name="OnlyOfficerCanBuyLand"> - Nie możesz kupić działek dla grupy. -Nie masz praw kupowania działek dla Twojej aktywnej grupy. + Nie możesz kupić posiadłości dla grupy. +Nie masz praw kupowania posiadłości dla Twojej aktywnej grupy. </notification> <notification label="Add Friend" name="AddFriendWithMessage"> - Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie informacji o statusie online. + Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie notyfikacji o logowaniu do [SECOND_LIFE]. Zaproponować znajomość [NAME]? <form name="form"> <input name="message"> - Chcesz zawrzeć ze mną znajomość? + Chcesz zawrzeć znajomość? </input> - <button name="Cancel" text="Anuluj" /> + <button name="Offer" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> - <notification label="Nowa lista autokorekty" name="AddAutoReplaceList"> - Nazwa nowej listy: - </notification> - <notification label="Zmiana nazwy listy autokorekty" name="RenameAutoReplaceList"> - Nazwa '[DUPNAME]' jest w użyciu -Wprowadź nową nazwę: - <form name="form"> - <button name="ReplaceList" text="Zastąp obecną listę" /> - <button name="SetName" text="Użyj nowej nazwy" /> - </form> - </notification> - <notification name="InvalidAutoReplaceEntry"> - Słowo kluczowe musi być pojedynczym ciągiem, a zamiennik nie może być pusty. - </notification> - <notification name="InvalidAutoReplaceList"> - Lista zamienników nie jest prawidłowa. - </notification> - <notification name="SpellingDictImportRequired"> - Musisz określić plik, nazwę i język. - </notification> - <notification name="SpellingDictIsSecondary"> - Wygląda na to, że słownik [DIC_NAME] nie ma pliku "aff"; znaczy to, że jest słownikiem drugorzędnym. -Może on być użyty jako dodatkowy, ale nie główny słownik. - -Zobacz https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries - </notification> - <notification name="SpellingDictImportFailed"> - Nie można skopiować -[FROM_NAME] -do -[TO_NAME] - </notification> <notification label="Zapisz strój" name="SaveOutfitAs"> Zapisz to co noszę jako nowy strój: <form name="form"> <input name="message"> - [DESC] (nowy) + [DESC] (nowe) </input> - <button name="Cancel" text="Anuluj" /> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification label="Zapisz część stroju" name="SaveWearableAs"> @@ -1013,40 +1021,45 @@ do <input name="message"> [DESC] (nowy) </input> - <button name="Cancel" text="Anuluj" /> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification label="Zmień nazwę stroju" name="RenameOutfit"> Nowa nazwa stroju: <form name="form"> - <button name="Cancel" text="Anuluj" /> + <input name="new_name"> + [NAME] + </input> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="RemoveFromFriends"> Czy chcesz usunąć <nolink>[NAME]</nolink> z listy znajomych? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="RemoveMultipleFromFriends"> Chcesz usunąć grupę osób z listy Twoich znajomych? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="GodDeleteAllScriptedPublicObjectsByUser"> Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do ** [AVATAR_NAME] ** -z działek innych w tym symulatorze? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +z posiadłości innych w tym symulatorze? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="GodDeleteAllScriptedObjectsByUser"> Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do ** [AVATAR_NAME] ** -ze wszystkich działek w tym symulatorze? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +ze wszystkich posiadłości w tym symulatorze? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="GodDeleteAllObjectsByUser"> Na pewno chcesz usunąć wszystkie obiekty (skryptowane i nie) należące do ** [AVATAR_NAME] ** -ze wszystkich działek w tym symulatorze? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +ze wszystkich posiadłości w tym symulatorze? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BlankClassifiedName"> Musisz nadać tytuł Twojej reklamie. @@ -1057,187 +1070,185 @@ ze wszystkich działek w tym symulatorze? Wybierz wyższą cenę. </notification> <notification name="ConfirmItemDeleteHasLinks"> - Co najmniej jeden z zaznaczonych przez Ciebie elementów ma połączone z nim obiekty. Jeśli go usuniesz połączenia zostaną usunięte na stałe. Zaleca się usunięcie połączeń w pierwszej kolejności. + Co najmiej jeden z elementów, które masz posiada połączone z nim obiekty. Jeśli go usuniesz połączenia zostaną usunięte na stałe. Zaleca się usunięcie połączeń w pierwszej kolejności. -Jesteś pewien/pewna, że chcesz usunąć te elementy? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Jesteś pewnien/pewna, że chcesz usunąć te elementy? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteLock"> - Przynajmniej jeden z wybranych obiektów jest zablokowany. + Przynajmnie jeden z wybranych obiektów jest zablokowany. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteNoCopy"> Przynajmniej jeden z wybranych obiektów jest niekopiowalny. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteNoOwn"> Przynajmniej jeden z wybranych obiektów nie należy do Ciebie. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteLockNoCopy"> - Przynajmniej jeden z wybranych obiektów jest zablokowany. -Przynajmniej jeden z wybranych obiektów jest niekopiowalny. + Przynajmnie jeden z wybranych obiektów jest zablokowany. +Przynajmniej jeden z wybranych obiektów jest niekopiwalny. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteLockNoOwn"> - Przynajmniej jeden z wybranych obiektów jest zablokowany. + Przynajmnie jeden z wybranych obiektów jest zablokowany. Przynajmniej jeden z wybranych obiektów nie należy do Ciebie. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteNoCopyNoOwn"> Przynajmniej jeden z wybranych obiektów jest niekopiowalny. Przynajmniej jeden z wybranych obiektów nie należy do Ciebie. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectDeleteLockNoCopyNoOwn"> - Przynajmniej jeden z wybranych obiektów jest zablokowany. -Przynajmniej jeden z wybranych obiektów jest niekopiowalny. + Przynajmnie jeden z wybranych obiektów jest zablokowany. +Przynajmniej jeden z wybranych obiektów jest niekopiwalny. Przynajmniej jeden z wybranych obiektów nie należy do Ciebie. Na pewno chcesz usunąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectTakeLock"> - Przynajmniej jeden obiekt jest zablokowany. + Przynajmnie jeden obiekt jest zablokowany. -Na pewno chcesz wziąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Na pewno chcesz usunąć te obiekty? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectTakeNoOwn"> Przynajmniej jeden obiekt nie należy do Ciebie. -Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane, co - potencjalnie - może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów. +Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów. -Na pewno chcesz wziąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Na pewno chcesz wziąść te obiekty? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmObjectTakeLockNoOwn"> - Przynajmniej jeden obiekt jest zablokowany. + Przynajmnie jeden obiekt jest zablokowany. Przynajmniej jeden obiekt nie należy do Ciebie. -Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co - potencjalnie - może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów. +Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów. -Na pewno chcesz wziąć te obiekty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Na pewno chcesz wziąść te obiekty? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="CantBuyLandAcrossMultipleRegions"> - Nie możesz kupić działki, ponieważ wybrany obszar przekracza granicę regionów. + Nie możesz kupić posiadłości ponieważ wybrany obszar przekracza granicę regionów. Wybierz mniejszy obszar i spróbuj jeszcze raz. </notification> <notification name="DeedLandToGroup"> - Po przekazaniu tej działki grupa będzie musiała mieć i utrzymywać wystarczający kredyt na używanie działki. -Cena zakupu działki nie jest zwracana właścicielowi. Jeżeli przekazana działka zostanie sprzedana, cena sprzedaży zostanie podzielona pomiędzy członków grupy. + Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy. -Przekazać tą działkę o powierzchni [AREA] m² grupie '[GROUP_NAME]'? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Przekazać tą posiadłość o powierzchni [AREA] m² grupie '[GROUP_NAME]'? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Po przekazaniu tej działki grupa będzie musiała mieć i utrzymywać wystarczający kredyt na używanie działki. -Przekazanie będzie zawierać równoczesne przypisanie działki do grupy od '[NAME]'. -Cena zakupu działki nie jest zwracana właścicielowi. Jeżeli przekazana działka zostanie sprzedana, cena sprzedaży zostanie podzielona pomiędzy członków grupy. + Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. +Przekazanie będzie zawierać równoczesne przypisanie posiadłości do grupy od '[NAME]'. +Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy. -Przekazać tą działkę o powierzchni [AREA] m² grupie '[GROUP_NAME]'? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +Przekazać tą posiadłość o powierzchni [AREA] m² grupie '[GROUP_NAME]'? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> Ustawienia grafiki zostały zmienione do bezpiecznego poziomu ponieważ opcja -safe została wybrana. </notification> - <notification name="DisplaySetToRecommendedGPUChange"> - Ustawienia grafiki zostały zmienione do zalecanego poziomu, ponieważ karta graficzna została zmieniona -z '[LAST_GPU]' -na '[THIS_GPU]' - </notification> - <notification name="DisplaySetToRecommendedFeatureChange"> - Ustawienia grafiki zostały zmienione do zalecanego poziomu ze względu na zmianę podsystemu renderingu. + <notification name="ErrorMessage"> + [ERROR_MESSAGE] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="AvatarMovedDesired"> - Miejsce, do którego chcesz się teleportować jest chwilowo niedostępne. -Zostałeś/aś przeniesiony/a do regionu sąsiedniego. + Miejsce, do którego chcesz się teleportować jest chwilowo nieobecne. +Zostałeś przeniesiony do regionu sąsiedniego. </notification> <notification name="AvatarMovedLast"> - Żądane przez Ciebie miejsce jest obecnie niedostępne. -Zostałeś/aś przeniesiony/a do sąsiedniego regionu. + Twoje miejsce startu jest obecnie niedostępne. +Zostałeś przeniesiony do sąsiedniego regionu. </notification> <notification name="AvatarMovedHome"> Twoje miejsce startu jest obecnie niedostępne. -Zostałeś/aś przeniesiony/a do sąsiedniego regionu. +Zostałeś przeniesiony do pobliskiego regionu. Możesz ustawić nowe miejsce startu. </notification> <notification name="ClothingLoading"> Twoje ubranie wciąż się ładuje. Możesz normalnie używać [SECOND_LIFE], inni użytkownicy będą Cię widzieli poprawnie. <form name="form"> - <ignore name="ignore" text="Ładowanie ubrań nadal trwa" /> + <ignore name="ignore" text="Ładowanie ubrań nadal trwa"/> </form> </notification> <notification name="FirstRun"> Instalacja [APP_NAME] zakończona. Jeżeli używasz [SECOND_LIFE] po raz pierwszy to musisz stworzyć konto żeby móc się zalogować. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Stwórz konto..." /> + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Nowe konto..."/> </notification> <notification name="LoginPacketNeverReceived"> Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie [SECOND_LIFE_GRID]. -Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kilka minut, połączyć się ze stroną pomocy technicznej ([SUPPORT_SITE]) lub wybrać Teleportuj, by teleportować się do swojego miejsca startu. +Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kilka minut lub połączyć się ze stroną pomocy technicznej tutaj [SUPPORT_SITE] lub wybrać Teleportuj by teleportować się do swojego miejsca startu. <form name="form"> - <button name="Help" text="Pomoc" /> - <button name="Teleport" text="Teleportuj" /> + <button name="OK" text="OK"/> + <button name="Help" text="Pomoc"/> + <button name="Teleport" text="Teleportuj"/> </form> </notification> <notification name="WelcomeChooseSex"> Twoja postać pojawi się za moment. -Używaj strzałek żeby się poruszać. +Używaj strzałek żeby sie poruszać. Naciśnij F1 w dowolnej chwili po pomoc albo żeby dowiedzieć się więcej o [SECOND_LIFE]. -Wybierz awatara właściwej płci. Ten wybór będzie można później zmienić. - <usetemplate name="okcancelbuttons" notext="Kobieta" yestext="Mężczyzna" /> +Wybierz awatara właściwej płci. +Ten wybór będzie można później zmienić. + <usetemplate name="okcancelbuttons" notext="Kobieta" yestext="Mężczyzna"/> </notification> <notification name="CantTeleportToGrid"> - Nie można teleportować do [SLURL], ponieważ jest na innej siatce ([GRID]) niż obecna siatka ([CURRENT_GRID]). Proszę zamknąć przeglądarkę i spróbować ponownie. + Nie można teleportować do [SLURL], ponieważ jest na innym gridzie ([GRID]) niż obecny grid ([CURRENT_GRID]). Proszę zamknąć przeglądarkę i spróbować ponownie. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="GeneralCertificateError"> Połączenie z serwerem nie mogło zostać nawiązane. [REASON] -Nazwa podmiotu: [SUBJECT_NAME_STRING] -Nazwa wydawcy: [ISSUER_NAME_STRING] -Ważny od: [VALID_FROM] -Ważny do: [VALID_TO] -Odcisk palca MD5: [SHA1_DIGEST] -Odcisk palca SHA1: [MD5_DIGEST] -Użycie klucza: [KEYUSAGE] -Rozszerzone użycie klucza: [EXTENDEDKEYUSAGE] -Identyfikator klucza podmiotu: [SUBJECTKEYIDENTIFIER] - +SubjectName: [SUBJECT_NAME_STRING] +IssuerName: [ISSUER_NAME_STRING] +Valid From: [VALID_FROM] +Valid To: [VALID_TO] +MD5 Fingerprint: [SHA1_DIGEST] +SHA1 Fingerprint: [MD5_DIGEST] +Key Usage: [KEYUSAGE] +Extended Key Usage: [EXTENDEDKEYUSAGE] +Subject Key Identifier: [SUBJECTKEYIDENTIFIER] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="TrustCertificateError"> Wydawca certyfikatu dla tego serwera nie jest znany. Informacje o certyfikacie: -Nazwa podmiotu: [SUBJECT_NAME_STRING] -Nazwa wydawcy: [ISSUER_NAME_STRING] -Ważny od: [VALID_FROM] -Ważny do: [VALID_TO] -Odcisk palca MD5: [SHA1_DIGEST] -Odcisk palca SHA1: [MD5_DIGEST] -Użycie klucza: [KEYUSAGE] -Rozszerzone użycie klucza: [EXTENDEDKEYUSAGE] -Identyfikator klucza podmiotu: [SUBJECTKEYIDENTIFIER] +SubjectName: [SUBJECT_NAME_STRING] +IssuerName: [ISSUER_NAME_STRING] +Valid From: [VALID_FROM] +Valid To: [VALID_TO] +MD5 Fingerprint: [SHA1_DIGEST] +SHA1 Fingerprint: [MD5_DIGEST] +Key Usage: [KEYUSAGE] +Extended Key Usage: [EXTENDEDKEYUSAGE] +Subject Key Identifier: [SUBJECTKEYIDENTIFIER] Czy chcesz zaufać temu wydawcy? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Zaufaj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Zaufaj"/> </notification> <notification name="NotEnoughCurrency"> [NAME] [PRICE]L$ Masz za mało L$. @@ -1251,46 +1262,45 @@ Czy chcesz zaufać temu wydawcy? <notification name="FlushMapVisibilityCaches"> To spowoduje wyczyszczenie buforów map regionu. Jest to użyteczne wyłącznie podczas szukania błędów. -(W normalnym użytkowaniu poczekaj 5 minut, a mapy wszystkich zostaną uaktualnione po relogu.) - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +(Podczas produkcji poczekaj 5 minut i mapy wszystkich zostaną uaktualnione po relogu.) + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyOneObjectOnly"> - Nie możesz zakupić więcej niż jednego obiektu w tym samym czasie. Proszę wybrać tylko jeden obiekt i spróbować ponownie. + Nie możesz zakupić więcej niż jednego obiektu w tym samym czasie. Proszę wybrać tylko jeden obiekt i spróbować ponowanie. </notification> <notification name="OnlyCopyContentsOfSingleItem"> Nie można kopiować zawartości więcej niż jednego obiektu naraz. Wybierz pojedynczy obiekt i spróbuj jeszcze raz. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="KickUsersFromRegion"> - Teleportować wszystkich Rezydentów z tego regionu do ich miejsc startu? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Teleportować wszystkich Rezydentów z tego regionu to ich miejsca startu? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="EstateObjectReturn"> - Na pewno chcesz odesłać wszystkie obiekty należące do [USER_NAME]? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Na pewno chcesz odesłać wszystkie obiekty należące do +[USER_NAME] ? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="InvalidTerrainBitDepth"> Nie można ustawić tekstur regionu: Tekstura terenu [TEXTURE_NUM] ma niewłaściwą głębię koloru - [TEXTURE_BIT_DEPTH]. - -Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub mniejszą i ponownie kliknij na "Zastosuj". +Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj. </notification> <notification name="InvalidTerrainSize"> Nie można ustawić tekstur regionu: Tekstura terenu [TEXTURE_NUM] jest za duża - [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]. - -Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub mniejszą i ponownie kliknij na "Zastosuj". +Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj. </notification> <notification name="RawUploadStarted"> Ładowanie rozpoczęte. Może potrwać do dwóch minut zależnie od prędkości Twojego połączenia. </notification> <notification name="ConfirmBakeTerrain"> - Na pewno chcesz zapisać obecne ukształtowanie terenu jako punkt odniesienia dla górnego i dolnego limitu terenu oraz jako domyślną wartość dla opcji 'Odtwórz'? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Na pewno chcesz zapisać obecne ukształtowanie terenu jako punkt odniesienia dla górnego i dolnego limitu terenu i jako domyślą wartość dla opcji Odtwórz? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="MaxAllowedAgentOnRegion"> - Maksymalna liczba Rezydentów wynosi [MAX_AGENTS]. + Maksymalna liczba gości wynosi [MAX_AGENTS]. </notification> <notification name="MaxBannedAgentsOnRegion"> Maksymalna liczba niepożądanych Rezydentów (banów) wynosi [MAX_BANNED]. @@ -1301,7 +1311,7 @@ Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub </notification> <notification name="MaxAllowedGroupsOnRegion"> Możesz mieć maksymalnie [MAX_GROUPS] dozwolonych grup. - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ustal" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ustal"/> </notification> <notification name="MaxManagersOnRegion"> Możesz mieć maksymalnie [MAX_MANAGER] zarządców Majątku. @@ -1310,316 +1320,277 @@ Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub Nie możesz dodać właściciela majątku do listy 'Niepożądanych Rezydentów (banów)' majątku. </notification> <notification name="CanNotChangeAppearanceUntilLoaded"> - Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtu. + Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtów. </notification> <notification name="ClassifiedMustBeAlphanumeric"> Tytuł Twojej reklamy musi zaczynać się od litery (A-Z) albo cyfry. Znaki przestankowe są niedozwolone. </notification> <notification name="CantSetBuyObject"> - Nie możesz wybrać 'Kup obiekt', ponieważ obiekt nie jest na sprzedaż. + Nie możesz wybrać Kup obiekt ponieważ obiekt nie jest na sprzedaż. Wybierz obiekt na sprzedaż i spróbuj jeszcze raz. </notification> <notification name="FinishedRawDownload"> - Plik surowego terenu pobrany do: + Plik surowego terenu załadowany pod: [DOWNLOAD_PATH]. </notification> <notification name="DownloadWindowsMandatory"> Nowa wersja [APP_NAME] została opublikowana. [MESSAGE] Musisz zainstalować nową wersję żeby używać [APP_NAME]. - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> + <usetemplate name="okcancelbuttons" notext="Wyłącz program" yestext="Załaduj"/> </notification> <notification name="DownloadWindows"> Uaktualniona wersja [APP_NAME] została opublikowana. [MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności. + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/> </notification> <notification name="DownloadWindowsReleaseForDownload"> Uaktualniona wersja [APP_NAME] została opublikowana. [MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności. + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/> </notification> <notification name="DownloadLinuxMandatory"> Nowa wersja [APP_NAME] jest dostępna. [MESSAGE] Musisz pobrać aktualizację aby korzystać z [APP_NAME]. - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> + <usetemplate name="okcancelbuttons" notext="Wyjdź" yestext="Pobieranie"/> </notification> <notification name="DownloadLinux"> Aktualizacja [APP_NAME] jest dostępna. [MESSAGE] -Ta aktualizacja nie jest wymagana, ale zaleca się jej instalację w celu poprawienia wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Ta aktualizacja nie jest wymagana ale zaleca się jej instalację w celu poprawienia szybkości i stabilności. + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobieranie"/> </notification> <notification name="DownloadLinuxReleaseForDownload"> Uaktualniona wersja [APP_NAME]została opublikowana. [MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności. + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobieranie"/> </notification> <notification name="DownloadMacMandatory"> Nowa wersja [APP_NAME] została opublikowana. [MESSAGE] Musisz zainstalować nową wersję żeby używać [APP_NAME]. -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> +Pobrać i zapisać w folderze Aplikacji? + <usetemplate name="okcancelbuttons" notext="Wyłącz program" yestext="Załaduj"/> </notification> <notification name="DownloadMac"> Uaktualniona wersja [APP_NAME] została opublikowana. [MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. +Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności. -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Pobrać i zapisać w folderze Aplikacji? + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/> </notification> <notification name="DownloadMacReleaseForDownload"> Uaktualniona wersja [APP_NAME] została opublikowana. [MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. +Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności. -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Pobrać i zapisać w folderze Aplikacji? + <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/> </notification> <notification name="FailedUpdateInstall"> - Podczas aktualizacji pojawił się błąd. -Proszę pobrać i zainstalować najnowszego klienta z -http://secondlife.com/download + Podczas aktualizacji pojawił się błąd. Proszę pobrać i zainstalować najnowszego klienta z http://secondlife.com/download. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="FailedRequiredUpdateInstall"> - Nie można zainstalować wymaganej aktualizacji. -Nie będzie można zalogować się dopóki [APP_NAME] nie zostanie zaktualizowana. -Proszę pobrać i zainstalować najnowszą wersję z -http://secondlife.com/download - <usetemplate name="okbutton" yestext="Wyjdź" /> + Nie można zainstalować wymaganej aktualizacji. Nie będzie można zalogować się dopóki [APP_NAME] nie zostanie zaktualizowana. + Proszę pobrać i zainstalować najnowszą wersję z http://secondlife.com/download. + <usetemplate name="okbutton" yestext="Rezygnuj"/> </notification> <notification name="UpdaterServiceNotRunning"> - Istnieje obowiązkowa aktualizacja dla Second Life. -Możesz ją pobrać z http://www.secondlife.com/downloads -lub zainstalować teraz. - <usetemplate name="okcancelbuttons" notext="Opuść Second Life" yestext="Pobierz i instaluj teraz" /> + Istnieje obowiązkowa aktualizacja dla Second Life. Możesz ją pobrać z http://www.secondlife.com/downloads lub zainstalować teraz. + <usetemplate name="okcancelbuttons" notext="Opuść Second Life" yestext="Pobierz i zainstaluj teraz"/> </notification> <notification name="DownloadBackgroundTip"> Aktualizacja dla [APP_NAME] została pobrana. -Wersja [VERSION] [[INFO_URL] Informacja o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i restartuj [APP_NAME]" /> +Wersja [VERSION] [[RELEASE_NOTES_FULL_URL] Informacja o tej aktualizacji] + <usetemplate name="okcancelbuttons" notext="Później..." yestext="Zainstaluj teraz i restartuj [APP_NAME]"/> </notification> <notification name="DownloadBackgroundDialog"> Aktualizacja [APP_NAME] została pobrana. -Wersja [VERSION] [[INFO_URL] Informacja o aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i restartuj [APP_NAME]" /> +Wersja [VERSION] [[RELEASE_NOTES_FULL_URL] Informacja o aktualizacji] + <usetemplate name="okcancelbuttons" notext="Później..." yestext="Zainstaluj teraz i restartuj [APP_NAME]"/> </notification> <notification name="RequiredUpdateDownloadedVerboseDialog"> Pobrano wymaganą aktualizację. -Wersja [VERSION] [[INFO_URL] Informacje o tej aktualizacji] - -W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. - </notification> - <notification name="RequiredUpdateDownloadedDialog"> - W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. -[[INFO_URL] Informacje o tej aktualizacji] - </notification> - <notification name="OtherChannelDownloadBackgroundTip"> - Została pobrana aktualizacja dla Twojej instalacji [APP_NAME]. Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i zrestartuj [APP_NAME]" /> - </notification> - <notification name="OtherChannelDownloadBackgroundDialog"> - Została pobrana aktualizacja dla Twojej instalacji [APP_NAME]. -Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i zrestartuj [APP_NAME]" /> - </notification> - <notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog"> - Została pobrana wymagana aktualizacja. -Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] -W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. +W celu instalacji aktualizacji musi zostać wykonany restart [APP_NAME]. + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="OtherChannelRequiredUpdateDownloadedDialog"> - W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] + <notification name="RequiredUpdateDownloadedDialog"> + W celu instalacji aktualizacji musi zostać wykonany restart [APP_NAME]. +[[INFO_URL] Information about this update] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="DeedObjectToGroup"> Przekazanie tego obiektu spowoduje, że grupa: * Otrzyma L$ zapłacone temu obiektowi - <usetemplate ignoretext="Potwierdź decyzję przypisania obiektu do grupy" name="okcancelignore" notext="Anuluj" yestext="Przekaż" /> + <usetemplate ignoretext="Proszę potwierdzić decyzję przed przepisaniem obiektu do grupy" name="okcancelignore" notext="Anuluj" yestext="Przekaż"/> </notification> <notification name="WebLaunchExternalTarget"> Czy chcesz otworzyć swoją przeglądarkę internetową by zobaczyć zawartość? -Otwieranie stron internetowych z nieznanego źródła może narazić Twój komputer na niebezpieczeństwo. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć stronę" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć stronę internetową" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchJoinNow"> - By dokonać zmian i aktualizacji swojego konta, odwiedź [http://secondlife.com/account/ Tablicę]. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by dokonać zmian w konfiguracji mojego konta" name="okcancelignore" notext="Anuluj" /> + By dokonać zmian i aktualizacji swojego konta, odwiedź [http://secondlife.com/account/ Dashboard]. + <usetemplate ignoretext="Uruchom przeglądarkę internetową by dokonać zmian w konfiguracji mojego konta" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchSecurityIssues"> Odwiedź [SECOND_LIFE] Wiki i zobacz jak zgłaszać problemy z bezpieczeństwem danych. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by dowiedzieć się więcej na temat zgłaszania problemów bezpieczeństwa" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by dowiedzieć się więcej na temat zgłaszania problemów bezpieczeństwa" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchQAWiki"> Odwiedź [SECOND_LIFE] Wiki pytań i odpowiedzi. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć QA Wiki" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć QA Wiki" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchPublicIssue"> Odwiedź [SECOND_LIFE] katalog publicznych problemów, gdzie możesz zgłaszać błędy i inne problemy. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by wysłać Błędy klienta" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by wysłać Błędy klienta" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchSupportWiki"> Otwórz oficjalny blog Lindenów żeby zobaczyć nowe wiadomości i informacje. - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć blog" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć blog" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchLSLGuide"> Czy chcesz otworzyć samouczek Języka skryptowania? - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć samouczek Języka skryptowania" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uruchom przeglądarkę internetową by samouczek Języka skryptowania" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="WebLaunchLSLWiki"> - Czy na pewno chcesz odwiedzić portal skrypterów LSL? - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć LSL Portal" name="okcancelignore" notext="Anuluj" yestext="Pokaż stronę" /> + Czy napewno chcesz odwiedzić portal LSL Portal? + <usetemplate ignoretext="Uruchom przeglądarkę internetową by LSL Portal" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="ReturnToOwner"> Czy na pewno chcesz zwrócić wybrane obiekty do ich właścicieli? Wszystkie udostępnione obiekty z prawem transferu zostaną zwrócone poprzednim właścicielom. *UWAGA* Wszystkie udostępnione obiekty bez prawa transferu zostaną usunięte! - <usetemplate ignoretext="Potwierdź zanim zwrócisz obiekty do ich właścicieli" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Potwierdź zanim zwrócisz obiekty do ich właścicieli" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="GroupLeaveConfirmMember"> Jesteś członkiem grupy <nolink>[GROUP]</nolink>. -Chcesz ją opuścić? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="OwnerCannotLeaveGroup"> - Nie możesz opuścić tej grupy, ponieważ jesteś ostatnim z jej właścicieli. Przydziel najpierw innemu użytkownikowi rolę właściciela. - </notification> - <notification name="GroupDepartError"> - Nie można opuścić grupy: [reason]. - </notification> - <notification name="GroupDepart"> - Opuściłeś/aś grupę [group_name]. +Chcesz opuścić grupę? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmKick"> - Na pewno chcesz wyrzucić wszystkich Rezydentów z siatki? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć Rezydentów" /> + Napewno chcesz wyrzucić wszystkich Rezydentów z gridu? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć wszystkich Rezydentów"/> </notification> <notification name="MuteLinden"> Przepraszamy, ale nie możesz zablokować Lindena. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CannotStartAuctionAlreadyForSale"> - Aukcja nie może zostać rozpoczęta dla działki, która została już wcześniej wystawiona na sprzedaż. Dezaktywuj opcję sprzedaży działki, jeżeli chcesz rozpocząć aukcję. + Aukcja nie może zostać rozpoczęta w posiadłości, która została już wcześniej wystawiona na aukcję. Deaktywuj opcję sprzedaży posiadłości jeżeli chcesz rozpocząć aukcję. </notification> - <notification label="Blokowanie obiektów według nazwy nie powiodło się" name="MuteByNameFailed"> + <notification label="Zablokuj obiekty według wpisanej nazwy" name="MuteByNameFailed"> Rezydent/obiekt jest już zablokowany. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="RemoveItemWarn"> - Pomimo, że jest to dozwolone, usunięcie zawartości może uszkodzić obiekt. Chcesz usunąć? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Pomimo, że jest to dozwolone, usunięcie zawartości może zniszczyć obiekt. Chcesz usunąć? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="CantOfferCallingCard"> Nie możesz dać wizytówki w tym momencie. Spróbuj jeszcze raz za chwilę. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CantOfferFriendship"> Nie możesz zaoferować znajomości w tym momencie. Spróbuj jeszcze raz za chwilę. - </notification> - <notification name="DoNotDisturbModeSet"> - Tryb Zajętości jest włączony. Nie będziesz powiadamiany/a o nadchodzących rozmowach. - -- Inni Rezydenci będą otrzymywać Twoją wiadomość Trybu Zajętości (Ustawienia > Prywatność > Autoodpowiedzi). -- Propozycje teleportacji będą odrzucane. -- Propozycje rozmów głosowych będą odrzucane. - <usetemplate ignoretext="Status zmieniony na Tryb Zajętości" name="okignore" /> + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="JoinedTooManyGroupsMember"> Należysz już do maksymalnej ilości grup. Opuść proszę przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo odmów. [NAME] oferuje Ci członkostwo w grupie. - <usetemplate name="okcancelbuttons" notext="Odmów" yestext="Przyjmij" /> + <usetemplate name="okcancelbuttons" notext="Odmów" yestext="Przyjmij"/> </notification> <notification name="JoinedTooManyGroups"> - Należysz już do maksymalnej ilości grup. Opuść proszę przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo odmów. + Należysz już do maksymalnej ilości grup. Opuść proszę przynajmiej jedną grupę żeby przyjąć członkostwo w tej grupie, albo odmów. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="KickUser"> Wyrzuć tego Rezydenta, wysyłając następujący komunikat. <form name="form"> <input name="message"> - Administrator wylogował Cię. - </input> - <button name="Cancel" text="Anuluj" /> + Administrator wylogował Cię. + </input> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="KickAllUsers"> Z jakim komunikatem wyrzucić wszystkich użytkowników z regionu? <form name="form"> <input name="message"> - Administrator wylogował Cię. - </input> - <button name="Cancel" text="Anuluj" /> + Administrator wylogował Cię. + </input> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="FreezeUser"> Unieruchom tego Rezydenta, wysyłając następujący komunikat. <form name="form"> <input name="message"> - Unieruchomiono Cię. Nie możesz się ruszać ani rozmawiać. Administrator skontaktuje się z Tobą poprzez IM. - </input> - <button name="Cancel" text="Anuluj" /> + Unieruchomiono Cię. Nie możesz się ruszać ani rozmawiać. Administrator skontaktuje się z Tobą poprzez IM. + </input> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="UnFreezeUser"> - Cofnij unieruchomienie (zamrożenie) tego Rezydenta, wysyłając następujący komunikat. + Cofnij unieruchomienie tego Rezydenta, wysyłając następujący komunikat. <form name="form"> <input name="message"> - Odblokowano Cię. - </input> - <button name="Cancel" text="Anuluj" /> + Odblokowano Cię. + </input> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="SetDisplayNameSuccess"> Witaj [DISPLAY_NAME]! -Podobnie jak w realnym życiu potrzeba trochę czasu zanim wszyscy dowiedzą się o nowym imieniu. Kolejne kilka dni zajmie [http://wiki.secondlife.com/wiki/Setting_your_display_name aktualizacja imienia] w obiektach, skryptach, wyszukiwarce, etc. +Podobnie jak w realnym życiu potrzeba trochę czasu zanim wszyscy dowiedzą się o nowej nazwie. Kolejne kilka dni zajmie [http://wiki.secondlife.com/wiki/Setting_your_display_name aktualizacja nazwy] w obiektach, skryptach, wyszukiwarce, etc. </notification> <notification name="SetDisplayNameBlocked"> - Przepraszamy, nie można zmienić Twojego Wyświetlanego Imienia. Jeśli uważasz, że jest to spowodowane błędem skontaktuj się z obsługą klienta. + Przepraszamy, nie można zmienić Twojej wyświetlanej nazwy. Jeśli uważasz ze jest to spowodowane błędem skontaktuj się z obsługą klienta. </notification> <notification name="SetDisplayNameFailedLength"> - Przepraszamy, to imię jest zbyt długie. Wyświetlane Imię może mieć maksymalnie [LENGTH] znaków. + Przepraszamy, ta nazwa jest zbyt długa. Wyświetlana nazwa może mieć maksymalnie [LENGTH] znaków. -Proszę wprowadzić krótsze imię. +Proszę wprowadzić krótszą nazwę. </notification> <notification name="SetDisplayNameFailedGeneric"> - Przepraszamy, nie można ustawić Twojego Wyświetlanego Imienia. Spróbuj ponownie później. + Przepraszamy, nie można ustawić Twojej wyświetlanej nazwy. Spróbuj ponownie później. </notification> <notification name="SetDisplayNameMismatch"> - Podane Wyświetlane Imię nie pasuje. Proszę wprowadzić je ponownie. + Podana wyświetlana nazwa nie pasuje. Proszę wprowadzić ją ponownie. </notification> <notification name="AgentDisplayNameUpdateThresholdExceeded"> - Przepraszamy, musisz jeszcze poczekać zanim będzie można zmienić Twoje Wyświetlane Imię. + Przepraszamy, musisz jeszcze poczekać zanim będzie można zmienić Twoją wyświetlaną nazwę. Zobacz http://wiki.secondlife.com/wiki/Setting_your_display_name Proszę spróbować ponownie później. </notification> <notification name="AgentDisplayNameSetBlocked"> - Przepraszamy, nie można ustawić wskazanego imienia, ponieważ zawiera zabronione słowa. - -Proszę spróbować wprowadzić inne imię. + Przepraszamy, nie można ustawić wskazanej nazwy, ponieważ zawiera zabronione słowa. + + Proszę spróbować wprowadzić inną nazwę. </notification> <notification name="AgentDisplayNameSetInvalidUnicode"> - Wyświetlane Imię, które chcesz ustawić zawiera niepoprawne znaki. + Wyświetlana nazwa, którą chcesz ustawić zawiera niepoprawne znaki. </notification> <notification name="AgentDisplayNameSetOnlyPunctuation"> - Twoje Wyświetlane Imię musi zawierać litery inne niż znaki interpunkcyjne. + Twoje wyświetlane imię musi zawierać litery inne niż znaki interpunkcyjne. </notification> <notification name="DisplayNameUpdate"> - [OLD_NAME] ([SLID]) jest od tej pory znana/y jako [NEW_NAME]. + [OLD_NAME] ([SLID]) jest od tej pory znana/znany jako [NEW_NAME]. </notification> <notification name="OfferTeleport"> Zaproponować teleportację do miejsca Twojego pobytu z tą wiadomością? @@ -1627,269 +1598,210 @@ Proszę spróbować wprowadzić inne imię. <input name="message"> Zapraszam do siebie. Region: [REGION] </input> - <button name="Cancel" text="Anuluj" /> - </form> - </notification> - <notification name="TeleportRequestPrompt"> - Poproś [NAME] o teleport z następującą wiadomością - <form name="form"> - <button name="Cancel" text="Anuluj" /> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> - <notification name="TooManyTeleportOffers"> - Próbujesz wysłać [OFFERS] ofert teleportu, -co przekracza limit [LIMIT]. - </notification> <notification name="OfferTeleportFromGod"> Wysłać propozycję teleportacji do Twojego miejsca? <form name="form"> <input name="message"> Zapraszam do siebie. Region: [REGION] </input> - <button name="Cancel" text="Anuluj" /> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="TeleportFromLandmark"> Na pewno chcesz się teleportować do <nolink>[LOCATION]</nolink>? - <usetemplate ignoretext="Potwierdź próbę teleportacji do zapisanego miejsca" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> + <usetemplate ignoretext="Potwierdź próbę teleportacji do zapisanego miejsca" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/> </notification> - <notification name="TeleportViaSLAPP"> - Na pewno chcesz się teleportować do <nolink>[LOCATION]</nolink>? - <usetemplate ignoretext="Potwierdź próbę teleportacji przez SLAPP" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> - </notification> <notification name="TeleportToPick"> - Teleportować do [PICK]? - <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do miejsca w Ulubionych" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> + Teleportuj do [PICK]? + <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do miejsca w Ulubionych" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/> </notification> <notification name="TeleportToClassified"> - Teleportować do [CLASSIFIED]? - <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do lokalizacji z reklamy" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> + Teleportuj do [CLASSIFIED]? + <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do lokalizacji z reklamy" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/> </notification> <notification name="TeleportToHistoryEntry"> - Teleportować do [HISTORY_ENTRY]? - <usetemplate ignoretext="Potwierdź teleportację do lokalizacji z historii" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> + Teleportuj do [HISTORY_ENTRY]? + <usetemplate ignoretext="Potwierdź teleportację do lokalizacji z historii" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/> </notification> - <notification label="Wiadomość do wszystkich w Twoim Majątku" name="MessageEstate"> + <notification label="Wiadomość do Wszystkich w Twoim Majątku" name="MessageEstate"> Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w Twoim majątku. <form name="form"> - <button name="Cancel" text="Anuluj" /> + <input name="message"/> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification label="Zmiana Majątku Lindenów" name="ChangeLindenEstate"> - Zamierzasz zmienić ustawienia majątku Lindenów (region główny, teen grid, orientacja, itp). + Czy napewno chcesz zmienić ustawienia majątku Linden (mainland, teen grid, orientacja, itp). -Jest to wyjątkowo niebezpieczna decyzja, odczuwalna przez wszystkich Rezydentów. Dla regionu głównego, spowoduje to zmianę tysięcy regionów oraz ich przestrzeń serwerową, spowoduje lagi. +Jest to wyjątkowo niebezpieczna decyzja, odczuwalna przez wszystkich Rezydentów. Dla mainland, spowoduje to zmianę tysięcy regionów oraz ich przestrzeń serwerową. Kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> - <notification label="Zmiana dostępu do Majątku Lindenów" name="ChangeLindenAccess"> + <notification label="Zmiana Dostępu do Majątku Lindenów" name="ChangeLindenAccess"> Dokonujesz zmiany w liście dostępu Regionu głównego należącego do Lindenów (Regiony Główne, Teen Grid, Orientacja). Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie i powinna być używana wyłącznie w celu zablokowania opcji pozwalającej na przeniesienie obiektów/L$ do/z sieci. Dodatkowo, zmiany dokonane w Regionie Głównym mogą spowodować problemy przestrzeni serwerowej innych regionów. Kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification label="Wybierz Majątek" name="EstateAllowedAgentAdd"> - Dodać do listy dostępu tylko do tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Dodać do listy dostępu do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateAllowedAgentRemove"> - Usunąć z listy dostępu tylko z tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Usunąć z listy dostępu do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateAllowedGroupAdd"> - Dodać do listy dostępu grup tylko do tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Dodać do listy dostępu grup do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateAllowedGroupRemove"> - Usunąć z listy dostępu grup tylko z tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Usunąć z listy dostępu grup do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateBannedAgentAdd"> - Zablokować dostęp tylko do tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Zablokować dostęp do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateBannedAgentRemove"> - Zdjąć tego Rezydenta z listy niepożądanych (bany) tylko dla tego majątku czy dla [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Zdjąć tego Rezydenta z listy niepożądanych (bany) dla tego majątku czy dla [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateManagerAdd"> - Dodać zarządcę majątku tylko do tego majątku czy do [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Dodać zarządce majątku do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Wybierz Majątek" name="EstateManagerRemove"> - Usunąć zarządcę majątku tylko z tego majątku czy z [ALL_ESTATES]? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> + Usunąć zarządce majątku z tego majątku czy z [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> </notification> <notification label="Potwierdź Wyrzucenie" name="EstateKickUser"> Wyrzucić [EVIL_USER] z tego majątku? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="EstateChangeCovenant"> - Na pewno chcesz zmienić treść umowy dla tego majątku? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Na pewno chcesz zminić treść umowy dla tego majątku? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="RegionEntryAccessBlocked"> - Region, który próbujesz odwiedzić zawiera treści przekraczające Twoje bieżące preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie. Może być to wynikiem braku informacji na temat weryfikacji Twojego wieku. + +Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z [SECOND_LIFE]:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera. + <usetemplate name="okbutton" yestext="OK"/> </notification> - <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. - <usetemplate ignoretext="Zmiana regionu: Region, który próbujesz odwiedzić zawiera treści, które są dostępne tylko dla dorosłych." name="okcancelignore" notext="Zamknij" yestext="Baza wiedzy" /> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] </notification> <notification name="RegionEntryAccessBlocked_Notify"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. - </notification> - <notification name="RegionEntryAccessBlocked_NotifyAdultsOnly"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. + Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie. </notification> <notification name="RegionEntryAccessBlocked_Change"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. Możesz zmienić swoje preferencje albo anulować. Gdy zostaną zmienione możesz spróbować wejść do regionu ponownie. - <form name="form"> - <button name="OK" text="Zmień preferencje" /> - <button name="Cancel" text="Anuluj" /> - <ignore name="ignore" text="Zmiana regionu: Region, który próbujesz odwiedzić zawiera treści, które są wykluczane przez Twoje preferencje." /> - </form> - </notification> - <notification name="RegionEntryAccessBlocked_PreferencesOutOfSync"> - Mamy trudności techniczne z Twoim wejściem w region, ponieważ Twoje preferencje są rozsynchronizowane z serwerem. - </notification> - <notification name="TeleportEntryAccessBlocked"> - Region, który próbujesz odwiedzić zawiera treści przekraczające Twoje bieżące preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. - </notification> - <notification name="TeleportEntryAccessBlocked_AdultsOnlyContent"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. - <usetemplate name="okcancelignore" yestext="Baza wiedzy" notext="Zamknij" ignoretext="Teleport: Region, który próbujesz odwiedzić zawiera treści, które są dostępne tylko dla dorosłych." /> - </notification> - <notification name="TeleportEntryAccessBlocked_Notify"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. - </notification> - <notification name="TeleportEntryAccessBlocked_NotifyAdultsOnly"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. - </notification> - <notification name="TeleportEntryAccessBlocked_ChangeAndReTeleport"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. Możesz zmienić swoje preferencje i kontynuować teleport albo anulować go. - <form name="form"> - <button name="OK" text="Zmień i kontynuuj" /> - <button name="Cancel" text="Anuluj" /> - <ignore name="ignore" text="Teleport (restartowalny): Region, który próbujesz odwiedzić zawiera treści, które są wykluczane przez Twoje preferencje." /> - </form> - </notification> - <notification name="TeleportEntryAccessBlocked_Change"> - Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. Możesz zmienić swoje preferencje albo anulować. Gdy zostaną zmienione możesz spróbować wejść do regionu ponownie. + Nie masz zezwolenia na przebywanie w tym Regionie z powodu Twojego statusu ustawień wieku. + +W celu uzyskania dostępu do tego regiony zmień proszę swój status ustawień wieku. Będziesz mógł/mogła szukać i mieć dostęp do treści [REGIONMATURITY]. W celu cofnięcia zmian wybierz z menu Ja > Ustawienia > Ogólne. <form name="form"> - <button name="OK" text="Zmień preferencje" /> - <button name="Cancel" text="Anuluj" /> - <ignore name="ignore" text="Teleport (nierestartowalny): Region, który próbujesz odwiedzić zawiera treści, które są wykluczane przez Twoje preferencje." /> + <button name="OK" text="Zmień ustawienia"/> + <button default="true" name="Cancel" text="Zamknij"/> + <ignore name="ignore" text="Moje ustawienia wieku nie dopuszczają do regionu"/> </form> </notification> - <notification name="TeleportEntryAccessBlocked_PreferencesOutOfSync"> - Mamy trudności techniczne z Twoim teleportem, ponieważ Twoje preferencje są rozsynchronizowane z serwerem. - </notification> - <notification name="RegionTPSpecialUsageBlocked"> - Nie można wejść do tego regionu. '[REGION_NAME]' jest miejscem z grami (Skill Gaming Region) - musisz spełnić określone wymagania, jeśli chcesz go odwiedzić. Aby dowiedzieć się więcej zapoznaj się z [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ]. - </notification> <notification name="PreferredMaturityChanged"> - Nie będziesz już otrzymywać żadnych powiadomień związanych z odwiedzaniem regionów z treściami [RATING]. Możesz zmienić swoją preferencję treści w przyszłości używając Ja > Ustawienia > Ogólne w pasku menu. - </notification> - <notification name="MaturityChangeError"> - Nie można zmienić Twoich preferencji odnośnie treści [PREFERRED_MATURITY] w tej chwili. Twoje preferencje zostały zresetowane do oglądania treści [ACTUAL_MATURITY]. Możesz spróbować zmienić swoją preferencję treści ponownie używając Ja > Ustawienia > Ogólne w pasku menu. + Twoja obecna klasyfikacja wieku to [RATING]. </notification> <notification name="LandClaimAccessBlocked"> - Ziemia, którą próbujesz odzyskać ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. - </notification> - <notification name="LandClaimAccessBlocked_AdultsOnlyContent"> - Tylko dorośli mogą odzyskać tą ziemię. - <usetemplate ignoretext="Tylko dorośli mogą odzyskać tą ziemię." name="okcancelignore" notext="Zamknij" yestext="Baza wiedzy" /> + W związku ze statusem ustawień Twojego wieku, nie możesz odzyskać tej posiadłości. Możesz potrzebować weryfikacji wieku bądź instalacji najnowszej wersji klienta. + +Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z [SECOND_LIFE]:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="LandClaimAccessBlocked_Notify"> - Ziemia, którą próbujesz odzyskać zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. - </notification> - <notification name="LandClaimAccessBlocked_NotifyAdultsOnly"> - Ziemia, którą próbujesz odzyskać zawiera treści [REGIONMATURITY], dostępne tylko dla dorosłych. + Ze względu na Twój wiek, nie możesz odzyskać tej posiadłości. </notification> <notification name="LandClaimAccessBlocked_Change"> - Region, który próbujesz odzyskać zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. Możesz zmienić swoje preferencje, a potem spróbować odzyskać region ponownie. - <form name="form"> - <button name="OK" text="Zmień preferencje" /> - <button name="Cancel" text="Anuluj" /> - <ignore name="ignore" text="Region, który próbujesz odzyskać zawiera treści, które są wykluczane przez Twoje preferencje." /> - </form> + W związku ze statusem ustawień Twojego wieku, nie możesz odzyskać tej posiadłości. + +Możesz wybrać 'Zmień Ustawienia' by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do regionu. Wówczas będziesz w stanie znaleźć oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Ja > Ustawienia > Główne. </notification> <notification name="LandBuyAccessBlocked"> - Ziemia, którą próbujesz kupić ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. - </notification> - <notification name="LandBuyAccessBlocked_AdultsOnlyContent"> - Tylko dorośli mogą kupić tą ziemię. - <usetemplate ignoretext="Tylko dorośli mogą kupić tą ziemię." name="okcancelignore" notext="Zamknij" yestext="Baza wiedzy" /> + Ze względu na Twój wiek, nie możesz kupić tej posiadłości. Może być to wynikiem braku informacji na temat weryfikacji Twojego wieku. + +Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z [SECOND_LIFE]:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="LandBuyAccessBlocked_Notify"> - Ziemia, którą próbujesz kupić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. - </notification> - <notification name="LandBuyAccessBlocked_NotifyAdultsOnly"> - Ziemia, którą próbujesz kupić zawiera treści [REGIONMATURITY], dostępne tylko dla dorosłych. + Ze względu na Twój wiek, nie możesz kupić tej posiadłości. </notification> <notification name="LandBuyAccessBlocked_Change"> - Region, który próbujesz kupić zawiera treści [REGIONMATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGIONMATURITY]. Możesz zmienić swoje preferencje, a potem spróbować kupić region ponownie. - <form name="form"> - <button name="OK" text="Zmień preferencje" /> - <button name="Cancel" text="Anuluj" /> - <ignore name="ignore" text="Region, który próbujesz kupić zawiera treści, które są wykluczane przez Twoje preferencje." /> - </form> + W związku ze statusem ustawień Twojego wieku, nie możesz kupić tej posiadłości. + +Możesz wybrać 'Zmień Ustawienia' by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do regionu. Wówczas będziesz w stanie znaleźć oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Ja > Ustawienia > Główne. </notification> <notification name="TooManyPrimsSelected"> Zbyt wiele wybranych obiektów. Wybierz [MAX_PRIM_COUNT] lub mniej i spróbuj ponownie </notification> <notification name="ProblemImportingEstateCovenant"> Problem z importem umowy majątku. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ProblemAddingEstateManager"> - Problemy z dodawaniem nowego zarządcy majątku. Jeden lub więcej majątków może mieć wypełnioną listę zarządców. - </notification> - <notification name="ProblemAddingEstateBanManager"> - Nie można dodać właściciela lub zarządcy majątku na listę banów. + Problemy z dodawaniem nowego zarządcy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę zarządców. </notification> <notification name="ProblemAddingEstateGeneric"> - Problemy z dodawaniem do listy majątku. Jeden lub więcej majątków może mieć wypełnioną listę. + Problemy z dodawaniem do listy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę. </notification> <notification name="UnableToLoadNotecardAsset"> Brak możliwości załadowania noty w tej chwili. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="NotAllowedToViewNotecard"> Niewystarczające prawa do zobaczenia notki przypisanej do wybranego ID. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="MissingNotecardAssetID"> - ID notki nie zostało znalezione w bazie danych. + ID notki nie znalezione w bazie danych. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="PublishClassified"> Pamiętaj: Opłaty za reklamę są bezzwrotne. Zamieścić tą reklamę za [AMOUNT]L$? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="SetClassifiedMature"> - Czy ta reklama zawiera treść Moderate? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie" yestext="Tak" /> + Czy ta reklama zawiera treść 'Mature'? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="SetGroupMature"> - Czy ta grupa zawiera treść Moderate? - <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie" yestext="Tak" /> + Czy ta grupa zawiera treść 'Mature'? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification label="Potwierdź Restart" name="ConfirmRestart"> Na pewno chcesz zrobić restart tego regionu za 2 minuty? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> - <notification label="Wiadomość do wszystkich w tym Regionie" name="MessageRegion"> + <notification label="Wiadomość do Wszystkich w tym Regionie" name="MessageRegion"> Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w tym regionie. <form name="form"> - <button name="Cancel" text="Anuluj" /> + <input name="message"/> + <button name="OK" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification label="Zmienione Restrykcje Wieku dla Regionu" name="RegionMaturityChange"> - Klasyfikacja wieku dla tego regionu została zmieniona. -Może minąć trochę czasu, zanim zmiana będzie odzwierciedlona na mapie. + Ustawienie restrykcji wieku dla regionu zostało zmienione. +Zazwyczaj musi upłynąć nieco czasu zanim ta zmiana zostanie odzwierciedlona na mapie. + +Aby wejść do regionu Adult, Rezydenci muszą posiadać zweryfikowane konto, albo w wyniku weryfikacji wieku albo płatości. </notification> <notification label="Wersja Niezgodna z Systemem Rozmów" name="VoiceVersionMismatch"> Ta wersja [APP_NAME] nie jest kompatybilna z systemem rozmów w tym Regionie. Musisz zainstalować aktualną wersję [APP_NAME] aby komunikacja głosowa działała poprawnie. @@ -1912,7 +1824,7 @@ Zostaniesz właścicielem tego obiektu z następującymi prawami: Modyfikacje: [MODIFYPERM] Kopiowanie: [COPYPERM] Odsprzedawanie i oddawanie: [RESELLPERM] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyOriginalNoOwner"> Kupić oryginalny obiekt za [PRICE]L$? @@ -1920,7 +1832,7 @@ Zostaniesz właścicielem tego obiektu z następującymi prawami: Modyfikacje: [MODIFYPERM] Kopiowanie: [COPYPERM] Odsprzedawanie i oddawanie: [RESELLPERM] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyCopy"> Kupić kopię obiektu od [OWNER] za [PRICE]L$? @@ -1928,7 +1840,7 @@ Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami: Modyfikacje: [MODIFYPERM] Kopiowanie: [COPYPERM] Odsprzedawanie i oddawanie: [RESELLPERM] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyCopyNoOwner"> Kupić kopię obiektu za [PRICE]L$? @@ -1936,46 +1848,48 @@ Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami: Modyfikacje: [MODIFYPERM] Kopiowanie: [COPYPERM] Odsprzedawanie i oddawanie: [RESELLPERM] - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyContents"> Kupić zawartość od [OWNER] za [PRICE]L$? Zawartość zostanie skopiowana do Twojej szafy. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BuyContentsNoOwner"> Kupić zawartość za [PRICE]L$? Zawartość zostanie skopiowana do Twojej szafy. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmPurchase"> Ta transakcja spowoduje: [ACTION] Na pewno chcesz dokonać tego zakupu? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmPurchasePassword"> Ta transakcja spowoduje: [ACTION] Na pewno chcesz dokonać tego zakupu? -Wpisz hasło ponownie i kliknij na OK. +Wpisz hasło ponownie i kliknij OK. <form name="form"> - <button name="Cancel" text="Anuluj" /> + <input name="message"/> + <button name="ConfirmPurchase" text="OK"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="SetPickLocation"> Uwaga: -Lokalizacja tego miejsca została zaktualizowana, ale pozostałe szczegóły zachowają oryginalne wartości. - +Lokalizacja tego wyboru została zaktualizowana ale pozostałe szczegóły zachowają oryginalne wartości. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="MoveInventoryFromObject"> Wybrane obiekty Szafy nie mają praw kopiowania. Obiekty zostaną przeniesione do Twojej Szafy, nie zostaną skopiowane. Przenieść obiekty Szafy? - <usetemplate ignoretext="Uprzedź przed przeniesieniem zawartości niekopiowalnej z obiektu" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uprzedź przed przeniesieniem zawartości niekopiowalnej z obiektu" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="MoveInventoryFromScriptedObject"> Wybrane obiekty Szafy nie mają praw kopiowania. @@ -1983,51 +1897,32 @@ Obiekty zostaną przeniesione do Twojej Szafy, nie zostaną skopiowane. Ponieważ obiekty zawierają skrypty, przeniesienie obiektów do Twojej Szafy może spowodować niepoprawne działanie skryptów. Przenieść obiekty szafy? - <usetemplate ignoretext="Uprzedź przed przeniesieniem zawartości niekopiowalnej z obiektu, które może uszkodzić skrypty obiektu" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Uprzedź przed przeniesieniem zawartości niekopiowalnej z obiektu, która może uszkodzić skrypty obiektu" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="ClickActionNotPayable"> - Uwaga: Opcja 'Zapłać obiektowi' została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money(). + Uwaga: Opcja Zapłać obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money(). <form name="form"> - <ignore name="ignore" text="Opcja 'Zapłać Obiektowi' została aktywowana podczas budowania obiektów bez skryptu z funkcją money()." /> + <ignore name="ignore" text="Opcja Zapłać Obiektowi została aktywowana podczas budowania obiektów bez skryptu z funkcją money()."/> </form> </notification> <notification name="PayConfirmation"> Potwierdź, że na pewno chcesz zapłacić [AMOUNT]L$ dla [TARGET]. - <usetemplate ignoretext="Potwierdź przed płaceniem (kwoty ponad 200 L$)" name="okcancelignore" notext="Anuluj" yestext="Zapłać" /> - </notification> - <notification name="PayObjectFailed"> - Płatność nie powiodła się: nie można znaleźć obiektu. + <usetemplate ignoretext="Potwierdź przed płaceniem (kwoty ponad 200 L$)" name="okcancelignore" notext="Anuluj" yestext="Płać"/> </notification> <notification name="OpenObjectCannotCopy"> W tym obiekcie nie ma elementów które możesz skopiować. </notification> <notification name="WebLaunchAccountHistory"> - Przejść na stronę [http://secondlife.com/account/ Tablicy] żeby zobaczyć historię konta? - <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć historię konta" name="okcancelignore" notext="Anuluj" yestext="Idź na stronę" /> - </notification> - <notification name="ConfirmAddingChatParticipants"> - Po dodaniu osoby do istniejącej rozmowy - nowa rozmowa zostanie utworzona. Wszyscy uczestnicy otrzymają powiadomienie o nowej rozmowie. - <usetemplate ignoretext="Potwierdź dodanie uczestników rozmowy" name="okcancelignore" notext="Anuluj" /> + Przejść na stronę [http://secondlife.com/account/ Dashboard] żeby zobaczyć historię konta? + <usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć historię konta" name="okcancelignore" notext="Anuluj" yestext="Idź na stronę"/> </notification> <notification name="ConfirmQuit"> - Na pewno chcesz zakończyć? - <usetemplate ignoretext="Na pewno chcesz zakończyć?" name="okcancelignore" notext="Nie kończ" yestext="Wyłącz" /> - </notification> - <notification name="ConfirmRestoreToybox"> - Ta akcja przywróci domyślny układ przycisków i pasków. - -Nie możesz tego cofnąć. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="ConfirmClearAllToybox"> - Ta akcja usunie wszystkie przyciski z pasków, będą one puste. - -Nie możesz tego cofnąć. - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Na pewno chcesz skończyć? + <usetemplate ignoretext="Na pewno chcesz skończyć?" name="okcancelignore" notext="Nie kończ" yestext="Wyłącz"/> </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Potwierdź, że na pewno chcesz skasować obiekty" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Potwierdź, że na pewno chcesz skasować obiekty" name="okcancelignore" notext="Cofnij" yestext="OK"/> </notification> <notification name="HelpReportAbuseEmailLL"> Używaj tej opcji do zgłaszania nadużyć [http://secondlife.com/corporate/tos.php Warunków Umowy (Terms of Service)] i [http://secondlife.com/corporate/cs.php Standardów Społeczeństwa (Community Standards)]. @@ -2036,31 +1931,31 @@ Wszystkie zgłoszone nadużycia są badane i rozwiązywane. </notification> <notification name="HelpReportAbuseSelectCategory"> Wybierz kategorię dla tego raportu o nadużyciu. -Określenie kategorii pomoże nam w klasyfikacji i przetwarzaniu raportu. +Określenie kategorii pomoże nam w klasyfikacji i prztwarzaniu raportu. </notification> <notification name="HelpReportAbuseAbuserNameEmpty"> - Wprowadź imię/nazwę osoby popełniającej nadużycie. -Dokładne dane pomogą nam w klasyfikacji i przetwarzaniu raportu. + Wprowadź imię i nazwisko osoby popełniającej nadużycie. +Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu. </notification> <notification name="HelpReportAbuseAbuserLocationEmpty"> Wprowadź nazwę miejsca gdzie popełniono nadużycie. -Dokładne dane pomogą nam w klasyfikacji i przetwarzaniu raportu. +Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu. </notification> <notification name="HelpReportAbuseSummaryEmpty"> - Wprowadź podsumowanie popełnionego nadużycia. -Dokładne dane pomogą nam w klasyfikacji i przetwarzaniu raportu. + Wprowadź opis popełnionego nadużycia. +Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu. </notification> <notification name="HelpReportAbuseDetailsEmpty"> - Wprowadź szczegółowy opis popełnionego nadużycia. -Podaj maksymalną ilość szczegółów oraz imiona/nazwy osób związanych z nadużyciem, które zgłaszasz. -Dokładne dane pomogą nam w klasyfikacji i przetwarzaniu raportu. + Wprowadź szczgółowy opis popełnionego nadużycia. +Podaj maksymalną ilość szczgółów oraz imiona i nazwiska osób związanych z nadużyciem które zgłaszasz. +Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu. </notification> <notification name="HelpReportAbuseContainsCopyright"> Szanowny Rezydencie, Jeżeli składasz raport dotyczący naruszenia praw autorskich proszę się upewnić, że robisz to poprawnie: -(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów [SECOND_LIFE], na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykroczenia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami [http://secondlife.com/corporate/tos.php Warunków Umowy] i [http://secondlife.com/corporate/cs.php Standardów Społeczeństwa] w [SECOND_LIFE]. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska [SECOND_LIFE]. +(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów [SECOND_LIFE], na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykroczenia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami Warunków Umowy [SECOND_LIFE] [http://secondlife.com/corporate/tos.php Terms of Service] i Standardów Społeczeństwa [http://secondlife.com/corporate/cs.php Community Standards]. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska [SECOND_LIFE]. (2) Przypadek DMCA lub Usuwanie Treści. Aby wystąpić z żądaniem o usunięcie treści ze środowiska [SECOND_LIFE] MUSISZ przedłożyć ważne zawiadomienie o nadużyciu zgodne z naszą polityką DMCA [http://secondlife.com/corporate/dmca.php DMCA Policy]. @@ -2078,64 +1973,47 @@ Linden Lab Obecnie masz już dołączony obiekt do tej części Twojego ciała. Chcesz go zamienić na wybrany obiekt? <form name="form"> - <ignore name="ignore" text="Zamień dodatek z wybranym obiektem" /> - <button ignore="Zamień automatycznie" name="Yes" /> - <button ignore="Nie zamieniaj" name="No" text="Anuluj" /> - </form> - </notification> - <notification name="TooManyWearables"> - Nie możesz założyć folderu, który zawiera więcej niż [AMOUNT] przedmiotów. Możesz zmienić ten limit w Zaawansowane > Pokaż ustawienia debugowania > WearFolderLimit. - </notification> - <notification label="Ostrzeżenie Trybu Zajętości" name="DoNotDisturbModePay"> - Jesteś w Trybie Zajętości co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę. - -Chcesz wyłączyć Tryb Zajętości przed zakończeniem tej transakcji? - <form name="form"> - <ignore name="ignore" text="Chcę zapłacić w Trybie Zajętości" /> - <button ignore="Zawsze wyłączaj tryb Zajętości" name="Yes" /> - <button ignore="Nigdy nie wyłączaj trybu Zajętości" name="No" text="Anuluj" /> + <ignore name="ignore" save_option="true" text="Obecnie masz już dołączony obiekt do tej części Twojego ciała.Chcesz go zamienić na wybrany obiekt?"/> + <button ignore="Zamień automatycznie" name="Yes" text="OK"/> + <button ignore="Nie zamieniaj" name="No" text="Anuluj"/> </form> </notification> <notification name="ConfirmDeleteProtectedCategory"> - Ten folder '[FOLDERNAME]' to folder systemowy. Usunięcie folderu systemowego spowoduje niestabilność. Czy na pewno chcesz go skasować? - <usetemplate ignoretext="Potwierdź zanim folder systemu zostanie skasowany" name="okcancelignore" notext="Anuluj" /> + Ten folder '[FOLDERNAME]' to folder systemowy. Usunięcie foldera systemowego spowoduje niestabilność. Czy na pewno chcesz go skasować? + <usetemplate ignoretext="Potwierdź zanim folder systemu zostanie skasowany" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmEmptyTrash"> Na pewno chcesz permanentnie usunąć zawartość Kosza? - <usetemplate ignoretext="Potwierdź przed usunięciem zawartości Kosza" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Potwierdź przed usunięciem zawartości Kosza" name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmClearBrowserCache"> - Na pewno chcesz wyczyścić bufory przeglądarki internetowej, wyszukiwania i podróży? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="ConfirmClearCache"> - Na pewno chcesz wyczyścić bufor Przeglądarki? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + Na pewno chcesz wyczyścić bufor przeglądarki? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="ConfirmClearCookies"> Na pewno chcesz wyczyścić ciasteczka? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/> </notification> <notification name="ConfirmClearMediaUrlList"> Na pewno chcesz wyczyścić listę zapisanych linków? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/> </notification> <notification name="ConfirmEmptyLostAndFound"> - Na pewno chcesz permanentnie usunąć zawartość Twojego folderu Zagubione i odnalezione? - <usetemplate ignoretext="Potwierdź przed usunięciem zawartości foldera Zagubione i odnalezione" name="okcancelignore" notext="Nie" yestext="Tak" /> + Na pewno chcesz permanentnie usunąć zawartość Twojego foldera Zgubione i odnalezione? + <usetemplate ignoretext="Potwierdź przed usunięciem zawartości foldera Zagubione i odnalezione" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="CopySLURL"> - Następujący link SLurl został skopiowany do schowka: -[SLURL] + Następujący link SLURL został skopiowany do schowka: + [SLURL] -Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do tego miejsca, albo wklej go do panelu adresu Twojej przeglądarki, żeby go otworzyć. +Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do tego miejsca, albo wklej go do panela adresu Twojej przeglądarki żeby go otworzyć. <form name="form"> - <ignore name="ignore" text="SLurl skopiowany do schowka" /> + <ignore name="ignore" text="SLurl skopiowany do schowka"/> </form> </notification> <notification name="WLSavePresetAlert"> - Chcesz nadpisać zapisane ustawienia? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + Chcesz zmienić zapisane ustawienia? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="WLNoEditDefault"> Nie możesz edytować lub usunąć domyślnych ustawień. @@ -2143,55 +2021,58 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t <notification name="WLMissingSky"> Ten plik cyklu dziennego używa brakującego pliku nieba: [SKY]. </notification> - <notification name="WLRegionApplyFail"> - Ustawienia nie mogą zostać zastosowane w regionie. Opuszczenie regionu, a następnie powrócenie do niego może naprawić problem. Powód: [FAIL_REASON] - </notification> - <notification name="EnvCannotDeleteLastDayCycleKey"> - Nie można usunąć ostatniego klucza w cyklu dnia, bo nie może on być pusty. Zmodyfikuj ten klucz zamiast go usuwać, a potem dodaj nowy. - </notification> - <notification name="DayCycleTooManyKeyframes"> - Nie możesz dodać więcej klatek kluczowych w tym cyklu dnia. Maksymalna liczba klatek kluczowych zakresu [SCOPE] wynosi [MAX]. - </notification> - <notification name="EnvUpdateRate"> - Możesz aktualizować ustawienia otoczenia co [WAIT] sekund. Poczekaj przynajmniej tyle i spróbuj ponownie. - </notification> <notification name="PPSaveEffectAlert"> - Efekt post-procesu już istnieje. Chcesz ciągle go nadpisać? - <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + Efekt post-procesu już istnieje. Chcesz zapisać nowy na jego miejsce? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/> </notification> <notification name="ChatterBoxSessionStartError"> Błąd podczas rozpoczynania czatu/IM z [RECIPIENT]. [REASON] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ChatterBoxSessionEventError"> + [EVENT] +[REASON] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ForceCloseChatterBoxSession"> Twój czat/IM z [NAME] zostanie zamknięty. [REASON] + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="Cannot_Purchase_an_Attachment"> - Rzeczy nie mogą być kupione jeżeli są częścią dodatku. + Rzeczy nie mogą być kupione jeżeli są częścią załącznika. </notification> <notification label="Prośba o Zgodę na Pobieranie L$" name="DebitPermissionDetails"> - Akceptując tą prośbę wyrażasz zgodę na ciągłe pobieranie Lindenów (L$) z Twojego konta. Żeby cofnąć to pozwolenie właściciel obiektu będzie musiał usunąć ten obiekt albo zresetować skrypty obiektu. + Akceptując tą prośbę wyrażasz zgodę na ciągłe pobieranie Lindenów (L$) z Twojego konta. Żeby cofnąć to pozwolenie właściciel obiektu będzie musiał usunąć ten obiekt albo zresetowć skrypty obieku. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="AutoWearNewClothing"> Czy chcesz automatycznie nosić ubranie które tworzysz? - <usetemplate ignoretext="Załóż ubranie automatycznie będąc w trybie Edycji Wyglądu" name="okcancelignore" notext="Nie" yestext="Tak" /> + <usetemplate ignoretext="Załóż ubranie automatycznie będąc w trybie Edycji Wyglądu" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="NotAgeVerified"> - Miejsce, które próbujesz odwiedzić jest dostępne dla osób mających 18 lat lub więcej. - <usetemplate ignoretext="Nie mam odpowiedniego wieku do odwiedzania ograniczonych wiekowo stref" name="okignore" /> - </notification> - <notification name="NotAgeVerified_Notify"> - Miejsce dostępne dla osób mających 18 lat lub więcej. + Nie masz dostępu do tej posiadłości ze względu na brak weryfikacji Twojego wieku. Czy chcesz odwiedzić stronę [SECOND_LIFE] żeby to zmienić? + +[_URL] </notification> <notification name="Cannot enter parcel: no payment info on file"> - Nie masz dostępu do tej działki ze względu na brak danych płatniczych o Twoim koncie. Czy chcesz odwiedzić stronę [SECOND_LIFE] żeby to zmienić? + Nie masz dostępu do tej posiadłości ze względu na brak danych o Twoim koncie. Czy chcesz odwiedzić stronę [SECOND_LIFE] żeby to zmienić? [_URL] - <usetemplate ignoretext="Brak danych płatniczych o koncie" name="okcancelignore" notext="Nie" yestext="Tak" /> + <url name="url" option="0"> + https://secondlife.com/account/ + </url> + <usetemplate ignoretext="Brak danych o koncie" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="MissingString"> - Ciąg [STRING_NAME] nie został znaleziony w strings.xml + Zdanie [STRING_NAME] nie znalezione w strings.xml + </notification> + <notification name="SystemMessageTip"> + [MESSAGE] + </notification> + <notification name="IMSystemMessageTip"> + [MESSAGE] </notification> <notification name="Cancelled"> Anulowane @@ -2200,44 +2081,41 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t Siadanie anulowane </notification> <notification name="CancelledAttach"> - Dołączanie anulowane + Dołączenie anulowane </notification> <notification name="ReplacedMissingWearable"> - Brakujące ubranie/części ciała zastąpiono domyślnymi obiektami. + Barkujące ubranie/części ciała zastąpiono domyślnymi obiektami. </notification> <notification name="GroupNotice"> Temat: [SUBJECT], Treść: [MESSAGE] </notification> - <notification name="FriendOnlineOffline"> - <nolink>[NAME]</nolink> jest [STATUS] - </notification> <notification name="AddSelfFriend"> - Niewątpliwie znasz siebie najlepiej, ale nie możesz dodać swojej własnej osoby do listy znajomych. + Nie możesz dodać siebie do listy znajomych. </notification> <notification name="UploadingAuctionSnapshot"> - Ładowanie obrazów z Internetu... + Ładowanie obrazu z Internetu... (Zajmuje około 5 minut.) </notification> <notification name="UploadPayment"> Ładowanie kosztowało [AMOUNT]L$. </notification> <notification name="UploadWebSnapshotDone"> - Ładowanie obrazu z Internetu zakończone pomyślnie. + Ładowanie obrazu z Internetu zakończne pomyślnie. </notification> <notification name="UploadSnapshotDone"> Ładowanie zdjęcia zakończone pomyślnie. </notification> <notification name="TerrainDownloaded"> - Plik terrain.raw ściągnięty. + Plik terrain.raw ściągniety. </notification> <notification name="GestureMissing"> - Gest [NAME] nie został znaleziony w bazie danych. + Gesturka [NAME] nie znaleziony w bazie danych. </notification> <notification name="UnableToLoadGesture"> - Ładowanie gestu [NAME] nie powiodło się. + Ładowanie gesturki [NAME] nie powiodło się. </notification> <notification name="LandmarkMissing"> - Miejsce (LM) nie zostało znalezione w bazie danych. + Miejsce (LM) nie znalezione w bazie danych. </notification> <notification name="UnableToLoadLandmark"> Ładowanie miejsca (LM) nie powiodło się. @@ -2245,39 +2123,32 @@ Spróbuj jeszcze raz. </notification> <notification name="CapsKeyOn"> Twój Caps Lock jest włączony. -Ponieważ ma to wpływ na wpisywane hasło, możesz chcieć go wyłączyć. +Ponieważ to ma wpływ na wpisywane hasło, możesz chcieć go wyłączyć. </notification> <notification name="NotecardMissing"> Notka nie została znaleziona w bazie danych. </notification> <notification name="NotecardNoPermissions"> - Nie masz uprawnień na zobaczenie notki. + Nie masz pozwolenia na zobaczenie notki. </notification> <notification name="RezItemNoPermissions"> - Nie masz uprawnień na stworzenie obiektu. - </notification> - <notification name="IMAcrossParentEstates"> - Nie można wysłać IM poprzez Majątki. - </notification> - <notification name="TransferInventoryAcrossParentEstates"> - Nie można przesłać przedmiotów poprzez Majątki. + Nie masz pozwolenia na stworzenie obiektu. </notification> <notification name="UnableToLoadNotecard"> - Nie można załadować notki w tym momencie. -Spróbuj jeszcze raz. + Nie można załadować danych notki w tym momencie. </notification> <notification name="ScriptMissing"> - Skrypt nie został znaleziony w bazie danych. + Skrypt nie znaleziony w bazie danych. </notification> <notification name="ScriptNoPermissions"> - Nie masz uprawnień na podejrzenie skryptu. + Nie masz pozwolenia na zobaczenie skryptu. </notification> <notification name="UnableToLoadScript"> Ładowanie skryptu nie powiodło się. Spróbuj jeszcze raz. </notification> <notification name="IncompleteInventory"> - Zawartość obiektów, którą chcesz podarować nie jest jeszcze dostępna lokalnie. Spróbuj podarować te obiekty jeszcze raz za jakiś czas. + Zawartość obiektów którą chcesz podarować nie jest dostępna lokalnie. Spróbuj podarować te obiekty jeszcze raz za jakiś czas. </notification> <notification name="CannotModifyProtectedCategories"> Nie możesz zmienić chronionych kategorii. @@ -2290,7 +2161,7 @@ Spróbuj jeszcze raz. Spróbuj jeszcze raz. </notification> <notification name="UnableToLinkWhileDownloading"> - Nie można scalać w trakcie ładowania danych obiektu. + Nie można łączyć w trakcie ładowania danych obiektu. Spróbuj jeszcze raz. </notification> <notification name="CannotBuyObjectsFromDifferentOwners"> @@ -2301,7 +2172,7 @@ Wybierz jeden obiekt. Obiekt nie jest na sprzedaż. </notification> <notification name="EnteringGodMode"> - Włączanie trybu boskiego, poziom [LEVEL] + Włącznie trybu boskiego, poziom [LEVEL] </notification> <notification name="LeavingGodMode"> Wyłączanie trybu boskiego, poziom [LEVEL] @@ -2315,6 +2186,9 @@ Wybierz jeden obiekt. <notification name="InventoryDeclined"> Podarunek od Ciebie został odrzucony przez [NAME]. </notification> + <notification name="ObjectMessage"> + [NAME]: [MESSAGE] + </notification> <notification name="CallingCardAccepted"> Twoja wizytówka została przyjęta. </notification> @@ -2322,132 +2196,128 @@ Wybierz jeden obiekt. Twoja wizytówka została odrzucona. </notification> <notification name="TeleportToLandmark"> - Aby teleportować się do innych miejsc, takich jak '[NAME]', kliknij na przycisk "Miejsca", -a następnie wybierz zakładkę Landmarki w oknie, które się otworzy. Kliknij na dowolną pozycję -by ją zaznaczyć, a potem wybierz 'Teleportuj' na spodzie okna. -(Możesz też kliknąć na nim podwójnie lub wybrać 'Teleportuj' z menu kontekstowego -dostępnego pod prawym przyciskiem myszy) + Jesteś w Głównym Regionie i możesz się stąd teleportować do innych miejsc jak '[NAME]' wybierając Moja Szafa w prawym dolnym rogu ekranu +i wybierając folder Zapisane Miejsca (LM). +(Kliknij dwa razy na miejsce (LM) i wybierz 'Teleport' żeby tam się przenieść.) </notification> <notification name="TeleportToPerson"> - Aby rozpocząć z kimś prywatną rozmowę, kliknij prawym przyciskiem myszy na jego/jej awatarze i wybierz 'IM' z menu. + Możesz skontaktować się z Rezydentem '[NAME]' poprzez otworzenie panelu Ludzie po prawej stronie ekranu. +Wybierz Rezydenta z listy, następnie kliknij 'IM' na dole panelu. +(Możesz także kliknąć podwójnie na ich imię na liście, lub prawym przyciskiem i wybrać 'IM'). </notification> <notification name="CantSelectLandFromMultipleRegions"> - Nie możesz przekraczać granic regionu wybierając obszar. + Nie możesz przekraczać granic serwera wybierając obszar. Spróbuj wybrać mniejszy obszar. </notification> <notification name="SearchWordBanned"> Pewne frazy podczas wyszukiwania zostały usunięte w związku z restrykcjami zawartymi w Standardach Społecznościowych (Community Standards). </notification> <notification name="NoContentToSearch"> - Proszę wybrać przynajmniej jeden z podanych rodzajów treści jaką zawiera region podczas wyszukiwania (General, Moderate lub Adult). + Proszę wybrać przynajmiej jeden z podanych rodzajów treści jaką zawiera region podczas wyszukiwania ('General', 'Moderate', lub 'Adult'). + </notification> + <notification name="SystemMessage"> + [MESSAGE] + </notification> + <notification name="PaymentReceived"> + [MESSAGE] + </notification> + <notification name="PaymentSent"> + [MESSAGE] </notification> <notification name="EventNotification"> - Zawiadomienie o zdarzeniu: + Zawiadomienie o imprezie: [NAME] [DATE] <form name="form"> - <button name="Details" text="Szczegóły" /> - <button name="Cancel" text="Anuluj" /> + <button name="Details" text="Szczegóły"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="TransferObjectsHighlighted"> - Obiekty na tej działce, które zostaną przekazane kupcowi tej działki są teraz podświetlone. + Obiekty na tej posiadłości które zostaną przekazane kupcowi tej posiadłości są teraz rozjaśnione. -* Drzewa i trawy, które zostaną przekazane nie są podświetlone. +* Drzewa i trawy które zostaną przekazne nie są rozjaśnione. <form name="form"> - <button name="Done" text="Gotowe" /> + <button name="Done" text="Zastosuj"/> </form> </notification> <notification name="DeactivatedGesturesTrigger"> - Zablokowane gesty z jednakowym aktywowaniem: + Zablokowane gesturki z jednakowym aktywowaniem: [NAMES] </notification> <notification name="NoQuickTime"> - Wygląda na to, że Apple QuickTime nie jest zainstalowany na Twoim komputerze. -Jeżeli chcesz odtwarzać media na tej działce, które używają QuickTime idź do [http://www.apple.com/quicktime strony QuickTime] i zainstaluj odtwarzacz. + Wygląda na to, że QuickTime z Apple nie jest zainstalowany na Twoim komputerze. +Jeżeli chcesz odtwarzać media na tej posiadłości które używają QuickTime idź do [http://www.apple.com/quicktime strona QuickTime] i zainstaluj odtwarzacz. </notification> <notification name="NoPlugin"> - Nie znaleziono wtyczki mediów dla typu mime "[MIME_TYPE]". Media tego typu będą niedostępne. + Nie znaleziono wtyczki mediów dla "[MIME_TYPE]" typu mime. Media tego typu będą niedostępne. </notification> <notification name="MediaPluginFailed"> Następujące wtyczki mediów nie działają: -[PLUGIN] + [PLUGIN] -Zainstaluj wtyczki ponownie lub skontaktuj się z dostawcą, jeśli problem nadal będzie występował. +Zainstaluj proszę wtyczki ponownie lub skontaktuj się z dostawcą jeśli nadal problem będzie występował. <form name="form"> - <ignore name="ignore" text="Wtyczka mediów nie działa" /> + <ignore name="ignore" text="Wtyczka mediów nie działa"/> </form> </notification> <notification name="OwnedObjectsReturned"> - Twoje obiekty z wybranej działki zostały zwrócone do Twojej Szafy. + Twoje obiekty z wybranej posiadłości zostały zwrócone do Twojej Szafy. </notification> <notification name="OtherObjectsReturned"> - Obiekty należące do [NAME] na wybranej działce zostały zwrócone do Szafy tej osoby. + Obiekty należące do [NAME] na wybranej posiadłości zostały zwrócone do Szafy tej osoby. </notification> <notification name="OtherObjectsReturned2"> - Obiekty z działki należącej do Rezydenta [NAME] zostały zwrócone do jego Szafy. + Obiekty z posiadłości należącej do Rezydenta'[NAME]' zostały zwrócone do właściciela. </notification> <notification name="GroupObjectsReturned"> - Obiekty z wybranej działki przypisane do grupy [GROUPNAME] zostały zwrócone do szaf ich właścicieli. -Przekazywalne obiekty przekazane grupie zostały zwrócone do ich poprzednich właścicieli. + Obiekty z wybranej posiadłości przypisane do grupy [GROUPNAME] zostały zwrócone do szafy ich właścicieli. +Przekazywalne obiekty przekazne grupie zostały zwrócone do ich poprzednich właścicieli. Nieprzekazywalne obiekty przekazane grupie zostały usunięte. </notification> <notification name="UnOwnedObjectsReturned"> - Obiekty z wybranej działki które nie należą do Ciebie zostały zwrócone do ich właścicieli. + Obiekty z wybranej posiadłości które nie należą do Ciebie zostały zwrócone do ich właścicieli. </notification> <notification name="ServerObjectMessage"> Wiadomość od [NAME]: <nolink>[MSG]</nolink> </notification> <notification name="NotSafe"> - Ta działka pozwala na uszkodzenia. + Ta posiadłość pozwala na uszkodzenia. Możesz doznać tutaj urazu. Jeżeli zginiesz nastąpi teleportacja do Twojego miejsca startu. </notification> <notification name="NoFly"> - Ta działka nie pozwala na latanie. + Ta posiadłość nie pozwala na latanie. Nie możesz tutaj latać. </notification> <notification name="PushRestricted"> - Popychanie niedozwolone. Nie możesz tutaj popychać innych chyba, że jesteś właścicielem tej działki. + Popychanie niedozwolone. Nie możesz tutaj popychać innych, chyba, że jesteś właścicielem tej posiadłości. </notification> <notification name="NoVoice"> - Ta działka nie pozwala na rozmowy głosowe. + Ta posiadłość nie pozwala na rozmowy. </notification> <notification name="NoBuild"> - Ta działka nie pozwala na budowanie. Nie możesz tworzyć tutaj obiektów. - </notification> - <notification name="PathfindingDirty"> - W tym regionie są oczekujące zmiany w odnajdywaniu ścieżek. Jeśli posiadasz prawa budowania możesz odświeżyć region klikając na przycisk “Odśwież region”. - </notification> - <notification name="DynamicPathfindingDisabled"> - Dynamiczne odnajdywanie ścieżek nie jest włączone w tym regionie. Oskryptowane obiekty używające odwołań LSL wykorzystujących odnajdywanie ścieżek mogą nie działać zgodnie z oczekiwaniami. - </notification> - <notification name="PathfindingCannotRebakeNavmesh"> - Wystąpił błąd. To może być problem sieci, serwera lub Twojego braku praw do budowania. Czasami wylogowanie się i zalogowanie ponownie może naprawić problem. - </notification> - <notification name="SeeAvatars"> - Ta działka ukrywa czat tekstowy i awatary z innych działek. Nie będziesz widzieć rezydentów na zewnątrz tej działki - ani oni Ciebie. Wspólny kanał czatu 0 również jest zablokowany. + Ta posiadłość nie pozwala na budowanie. Nie możesz tworzyć tutaj obiektów. </notification> <notification name="ScriptsStopped"> - Administrator tymczasowo zatrzymał skrypty w tym regionie. + Administrator czasowo zatrzymał skrypty w tym regionie. </notification> <notification name="ScriptsNotRunning"> Żadne skrypty nie działają w tym regionie. </notification> <notification name="NoOutsideScripts"> - Ta działka nie pozwala na zewnętrzne skrypty. + Ta posiadłość nie pozwala na zewnętrzne skrypty. -Żadne skrypty nie będą tutaj działać za wyjątkiem skryptów należących do właściciela działki. +Żadne skrypty nie będą tutaj działać za wyjątkiem skryptów należących do właściciela posiadłości. </notification> <notification name="ClaimPublicLand"> - Tylko publiczne działki w tym regionie, co Ty, mogą być przejęte. + Tylko publiczne posiadłości w tym regionie mogą być przejęte. </notification> <notification name="RegionTPAccessBlocked"> - Region, który próbujesz odwiedzić ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. - </notification> - <notification name="RegionAboutToShutdown"> - Region, do którego próbujesz się dostać, właśnie się wyłącza. + Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie. Możesz potrzebować weryfikacji wieku bądź instalacji najnowszej wersji klienta. + +Skorzystaj z [SECOND_LIFE]:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera. </notification> <notification name="URBannedFromRegion"> Zostałeś zbanowany w regionie. @@ -2458,11 +2328,8 @@ Nie możesz tutaj latać. <notification name="ImproperPaymentStatus"> Nie posiadasz odpowiedniego statusu płatniczego by uzyskać dostęp do regionu. </notification> - <notification name="MustGetAgeRegion"> - Musisz mieć 18 lat lub więcej, aby móc wejść do tego regionu. - </notification> <notification name="MustGetAgeParcel"> - Musisz mieć 18 lat lub więcej, aby móc wejść na tą działkę. + By móc przebywać na tej posiadłości wymagana jest weryfikacja Twojego wieku. </notification> <notification name="NoDestRegion"> Żądana lokalizacja regionu nie została odnaleziona. @@ -2471,10 +2338,10 @@ Nie możesz tutaj latać. Brak dostępu do podanej lokalizacji. </notification> <notification name="RegionParcelBan"> - Nie możesz przejść przez zamkniętą działkę. Spróbuj skorzystać z innej drogi. + Nie możesz przejść przez zamkniętą posiadłość. Spróbuj skorzystać z innej drogi. </notification> <notification name="TelehubRedirect"> - Zostałeś/aś przeniesiony/a do teleportera (telehuba). + Zostałeś przeniesiony do teleportera. </notification> <notification name="CouldntTPCloser"> Brak możliwości teleportacji do bliższej lokacji. @@ -2484,25 +2351,25 @@ Nie możesz tutaj latać. </notification> <notification name="FullRegionTryAgain"> Region, który chcesz odwiedzić jest w tej chwili pełny. -Spróbuj ponownie za kilka minut. +Spróbuj ponowanie za kilka minut. </notification> <notification name="GeneralFailure"> - Błąd ogólny. + Nieudana próba. </notification> <notification name="RoutedWrongRegion"> - Wysłano do niewłaściwego regionu. Proszę spróbować ponownie. + Wysłano niewłaściwe połączenie do regionu. Proszę spróbować ponownie. </notification> <notification name="NoValidAgentID"> - Brak poprawnego identyfikatora agenta. + Nieważny identyfikator agenta. </notification> <notification name="NoValidSession"> - Brak poprawnego identyfikatora sesji. + Nieważny identyfikator sesji. </notification> <notification name="NoValidCircuit"> - Brak poprawnego obwodu kodowania. + Nieważny obwód kodowania. </notification> <notification name="NoValidTimestamp"> - Brak poprawnego znacznika czasu. + Niewłaściwy czas zapisu. </notification> <notification name="NoPendingConnection"> Brak możliwości wykonania połączenia. @@ -2514,96 +2381,63 @@ Spróbuj ponownie za kilka minut. Brak lokalizacji punktu do teleportacji w podanym regionie. </notification> <notification name="InternalErrorRegionResolver"> - Podczas próby odnalezienia globalnych współrzędnych dla żądanej teleportacji pojawił się wewnętrzny błąd. Może być to wynikiem problemów serwera. + Podczas próby odnalezienia globalnych współrzędych dla żądanej teleportacji pojawił się wewnętrzny błąd. Może być to wynikiem problemów serwera. </notification> <notification name="NoValidLanding"> - Niepoprawny punkt lądowania. + Nieważny punkt lądowania. </notification> <notification name="NoValidParcel"> - Niepoprawna działka. + Nieważana posiadłość. </notification> <notification name="ObjectGiveItem"> - Obiekt o nazwie <nolink>[OBJECTFROMNAME]</nolink> należący do [NAME_SLURL] dał Tobie [OBJECTTYPE]: + Obiekt o nazwie <nolink>[OBJECTFROMNAME]</nolink>, należący do [NAME_SLURL] dał Tobie [OBJECTTYPE]: <nolink>[ITEM_SLURL]</nolink> <form name="form"> - <button name="Keep" text="Zachowaj" /> - <button name="Discard" text="Odrzuć" /> - <button name="Mute" text="Zablokuj" /> - </form> - </notification> - <notification name="OwnObjectGiveItem"> - Twój obiekt o nazwie <nolink>[OBJECTFROMNAME]</nolink> dał Tobie [OBJECTTYPE]: -<nolink>[ITEM_SLURL]</nolink> - <form name="form"> - <button name="Keep" text="Zachowaj" /> - <button name="Discard" text="Odrzuć" /> + <button name="Keep" text="Zachowaj"/> + <button name="Discard" text="Wyrzuć"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> <notification name="UserGiveItem"> [NAME_SLURL] dał Ci [OBJECTTYPE]: [ITEM_SLURL] <form name="form"> - <button name="Show" text="Pokaż" /> - <button name="Discard" text="Wyrzuć" /> - <button name="Mute" text="Zablokuj" /> + <button name="Show" text="Pokaż"/> + <button name="Discard" text="Wyrzuć"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> + <notification name="GodMessage"> + [NAME] + +[MESSAGE] + </notification> <notification name="JoinGroup"> [MESSAGE] <form name="form"> - <button name="Join" text="Zaakceptuj" /> - <button name="Decline" text="Odmów" /> + <button name="Join" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> + <button name="Info" text="Info"/> </form> </notification> <notification name="TeleportOffered"> [NAME_SLURL] proponuje Ci teleportację do siebie: -[MESSAGE] -<icon>[MATURITY_ICON]</icon> - [MATURITY_STR] - <form name="form"> - <button name="Teleport" text="Teleportuj" /> - <button name="Cancel" text="Anuluj" /> - </form> - </notification> - <notification name="TeleportOffered_MaturityExceeded"> - [NAME_SLURL] proponuje Ci teleportację do siebie: - -[MESSAGE] -<icon>[MATURITY_ICON]</icon> - [MATURITY_STR] - -Ten region zawiera treści [REGION_CONTENT_MATURITY], ale Twoje obecne preferencje są tak ustawione, aby odrzucać treści [REGION_CONTENT_MATURITY]. Możesz zmienić swoje preferencje i kontynuować teleport albo anulować go. +[MESSAGE] - [MATURITY_STR] <icon>[MATURITY_ICON]</icon> <form name="form"> - <button name="Teleport" text="Zmień i teleportuj" /> - <button name="Cancel" text="Anuluj" /> + <button name="Teleport" text="Teleportuj"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> - <notification name="TeleportOffered_MaturityBlocked"> - [NAME_SLURL] zaproponował/a Ci teleportację do siebie: - -[MESSAGE] -<icon>[MATURITY_ICON]</icon> - [MATURITY_STR] - -Ten region zawiera jednak treści tylko dla dorosłych. - </notification> <notification name="TeleportOfferSent"> Oferta teleportacji wysłana do [TO_NAME] </notification> - <notification name="TeleportRequest"> - [NAME_SLURL] prosi o teleportację do miejsca, w jakim się znajdujesz. -[MESSAGE] - -Zaproponować teleport? - <form name="form"> - <button name="Yes" text="Tak" /> - <button name="No" text="Nie" /> - </form> - </notification> <notification name="GotoURL"> [MESSAGE] [URL] <form name="form"> - <button name="Later" text="Później" /> - <button name="GoNow..." text="Teraz..." /> + <button name="Later" text="Póżniej"/> + <button name="GoNow..." text="Teraz..."/> </form> </notification> <notification name="OfferFriendship"> @@ -2613,20 +2447,20 @@ Zaproponować teleport? (Będziecie mogli widzieć swój status online) <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odrzuć" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> </form> </notification> <notification name="FriendshipOffered"> - Zaoferowałeś/aś znajomość osobie [TO_NAME] + Oferta znajomości dla [TO_NAME] </notification> <notification name="OfferFriendshipNoMessage"> [NAME_SLURL] proponuje Ci znajomość. -(Będziecie mogli widzieć swój status online) +(Z zalożenia będzie widzić swój status online.) <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odrzuć" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> </form> </notification> <notification name="FriendshipAccepted"> @@ -2645,27 +2479,27 @@ Zaproponować teleport? [NAME] oferuje swoją wizytówkę. Wizytówka w Twojej Szafie umożliwi szybki kontakt IM z tym Rezydentem. <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odrzuć" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> </form> </notification> <notification name="RegionRestartMinutes"> - Restart regionu "[NAME]" za [MINUTES] min. + Restart regionu za [MINUTES] min. Nastąpi wylogowanie jeżeli zostaniesz w tym regionie. </notification> <notification name="RegionRestartSeconds"> - Restart regionu "[NAME]" za [SECONDS] sek. + Restart regionu za [SECONDS] sec. Nastąpi wylogowanie jeżeli zostaniesz w tym regionie. </notification> <notification name="LoadWebPage"> - Załadować stronę [URL] ? + Załadować stronę [URL]? [MESSAGE] -Od obiektu: <nolink>[OBJECTNAME]</nolink>, właściciela: [NAME]? +Od obiektu: <nolink>[OBJECTNAME]</nolink>, właściciel właściciel: [NAME]? <form name="form"> - <button name="Gotopage" text="Załaduj" /> - <button name="Cancel" text="Anuluj" /> + <button name="Gotopage" text="Załaduj"/> + <button name="Cancel" text="Anuluj"/> </form> </notification> <notification name="FailedToFindWearableUnnamed"> @@ -2675,7 +2509,7 @@ Od obiektu: <nolink>[OBJECTNAME]</nolink>, właściciela: [NAME]? [TYPE] [DESC] - nie znaleziono w bazie danych. </notification> <notification name="InvalidWearable"> - Obiekt, który chcesz założyć używa funkcji nieobecnej w wersji klienta, którą używasz. By go założyć ściągnij najnowszą wersję [APP_NAME]. + Obiekt, który chcesz założyć używa narzędzia nieobecnego w wersji klienta, którą używasz. By go założyć ściągnij najnowszą wersję [APP_NAME]. </notification> <notification name="ScriptQuestion"> Obiekt '<nolink>[OBJECTNAME]</nolink>', którego właścicielem jest '[NAME]', chciałby: @@ -2683,82 +2517,63 @@ Od obiektu: <nolink>[OBJECTNAME]</nolink>, właściciela: [NAME]? [QUESTIONS] Czy się zgadzasz? <form name="form"> - <button name="Yes" text="Tak" /> - <button name="No" text="Nie" /> - <button name="Mute" text="Zablokuj" /> + <button name="Yes" text="Tak"/> + <button name="No" text="Nie"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> <notification name="ScriptQuestionCaution"> - Obiekt '<nolink>[OBJECTNAME]</nolink>' chciałby uzyskać zgodę na pobieranie Linden Dolarów (L$) z Twojego konta. Jeśli zezwolisz, to będzie on mógł brać z niego wszystkie lub część środków, w dowolnej chwili, bez dodatkowych ostrzeżeń. + Obiekt '<nolink>[OBJECTNAME]</nolink>', którego właścicielem jest '[NAME]' chciałby: -Zanim zezwolisz na dostęp upewnij się, że wiesz jaki to obiekt i dlaczego pyta o zgodę - oraz że ufasz jego twórcy. Jeśli nie masz pewności kliknij na Odmów. - <form name="form"> - <button name="Grant" text="Zezwól na dostęp" /> - <button name="Deny" text="Odmów" /> - </form> - </notification> - <notification name="UnknownScriptQuestion"> - Zezwolenia, o jakie prosi skrypt z '<nolink>[OBJECTNAME]</nolink>', którego właścicielem jest '[NAME]', nie są rozpoznawane przez przeglądarkę i nie mogą zostać udzielone. +[QUESTIONS] +Jeśli nie ufasz temu obiektowi i jego kreatorowi, odmów. -Aby ich udzielić prosimy zaktualizować przeglądarkę do najnowszej wersji z [DOWNLOADURL]. +Czy się zgadzasz? <form name="form"> - <button name="Deny" text="Ok, odmów jednorazowo" /> - <button name="Mute" text="Zablokuj/Wycisz" /> + <button name="Grant" text="Zaakceptuj"/> + <button name="Deny" text="Odmów"/> </form> </notification> <notification name="ScriptDialog"> - '<nolink>[TITLE]</nolink>' - [NAME] + [NAME]'s '<nolink>[TITLE]</nolink>' [MESSAGE] - <form name="form"> - <button name="Client_Side_Mute" text="Blokuj" /> - <button name="Client_Side_Ignore" text="Zignoruj" /> - </form> + <form name="form"/> </notification> <notification name="ScriptDialogGroup"> - '<nolink>[TITLE]</nolink>' - [GROUPNAME] + [GROUPNAME]'s '<nolink>[TITLE]</nolink>' [MESSAGE] - <form name="form"> - <button name="Client_Side_Mute" text="Blokuj" /> - <button name="Client_Side_Ignore" text="Zignoruj" /> - </form> - </notification> - <notification name="FirstBalanceIncrease"> - Właśnie otrzymałeś/aś [AMOUNT] L$. -Twój stan L$ jest widoczny w prawym górnym narożniku ekranu. - </notification> - <notification name="FirstBalanceDecrease"> - Właśnie wydałeś/aś [AMOUNT] L$. -Twój stan L$ jest widoczny w prawym górnym narożniku ekranu. + <form name="form"/> </notification> <notification name="BuyLindenDollarSuccess"> Dziękujemy za wpłatę! -Twój stan konta L$ zostanie zaktualizowany w momencie zakończenia transakcji. Jeżeli zajmie to ponad 20 minut, to Twój balans konta nie ulegnie zmianie, a transakcja zostanie anulowana. W tym przypadku pobrana kwota zostanie zwrócona na stan konta w US$. +Twój stan konta L$ zostanie zaktualizowany w momencie zakończenia transakcji. Jeżeli w ciągu 20 minut, Twój balans konta nie ulegnie zmianie, transakcja została anulowana. W tym przypadku, pobrana kwota zostanie zwrócona na stan konta w US$. -Status transakcji możesz sprawdzić odwiedzając Historię Transakcji swojego konta na [http://secondlife.com/account/ Tablicy] +Status transkacji możesz sprawdzić odwiedzając Historię Transakcji swojego konta na [http://secondlife.com/account/ Dashboard] </notification> <notification name="FirstOverrideKeys"> - Twoje klawisze sterujące zostały przejęte przez obiekt. + Twoje sterujące klawisze zostały przejęte przez obiekt. Użyj strzałek lub AWSD żeby sprawdzić ich działanie. -Niektóre obiekty (np broń) wymagają trybu pierwszej osoby. -Naciśnij 'M' żeby go włączyć. +Niektóre obiekty (np broń) wymagają trybu panoramicznego. +Nacisnij 'M' żeby go wybrać. </notification> <notification name="FirstSandbox"> - Ten region to piaskownica, jego celem jest pomóc rezydentom w nauce budowania. + Ten region to piaskownica. -Obiekty które tu zbudujesz zostaną usunięte gdy opuścisz ten obszar, a więc nie zapomnij ich zabrać ze sobą - kliknij prawym przyciskiem myszy na obiekcie i wybierz 'Weź'. +Obiekty które tu zbudujesz mogą zostać usunięte jak opuścisz ten obszar - piaskownice są regularnie czyszczone, sprawdź informacje na górze ekranu obok nazwy regionu. </notification> <notification name="MaxListSelectMessage"> - Maksymalnie możesz wybrać [MAX_SELECT] rzeczy z tej listy. + Maksymalnie możesz wybrać [MAX_SELECT] rzeczy +z tej listy. </notification> <notification name="VoiceInviteP2P"> - [NAME] zaprasza Cię do rozmowy głosowej. + [NAME] zaprasza Cię do rozmowy głosem. Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. -Wybierz Zablokuj żeby wyciszyć wszystkie wiadomości od tej osoby. +Wybierz Zablokuj żeby wyciszyć dzwoniącą osób <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odmów" /> - <button name="Mute" text="Zablokuj" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> <notification name="AutoUnmuteByIM"> @@ -2768,135 +2583,131 @@ Wybierz Zablokuj żeby wyciszyć wszystkie wiadomości od tej osoby. Przekazano [NAME] pieniądze i ta osoba została automatycznie odblokowana. </notification> <notification name="AutoUnmuteByInventory"> - Zaoferowano [NAME] obiekty i ta osoba została automatycznie odblokowana. + Zaoferowno [NAME] obiekty i ta osoba została automatycznie odblokowana. </notification> <notification name="VoiceInviteGroup"> - [NAME] zaczyna rozmowę głosową z grupą [GROUP]. -Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. -Wybierz Zablokuj żeby wyciszyć dzwoniącą osobę. + [NAME] zaczyna rozmowę z grupą [GROUP]. +Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. Wybierz Zablokuj żeby wyciszyć dzwoniącą osobę. <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odmów" /> - <button name="Mute" text="Zablokuj" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> <notification name="VoiceInviteAdHoc"> - [NAME] zaczyna konferencję głosową. -Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. -Wybierz Zablokuj żeby wyciszyć dzwoniącą osobę. + [NAME] zaczyna konferencję głosem. +Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. Wybierz Zablokuj żeby wyciszyć dzwoniącą osobę. <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odmów" /> - <button name="Mute" text="Zablokuj" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> + <button name="Mute" text="Zablokuj"/> </form> </notification> <notification name="InviteAdHoc"> [NAME] zaprasza Cię do konferencji poprzez Czat/IM. -Wybierz Zaakceptuj żeby zacząć czat albo Odmów żeby nie przyjąć zaproszenia. -Wybierz Zablokuj żeby wyciszyć tą osobę. +Wybierz Zaakceptuj żeby zacząć czat albo Odmów żeby nie przyjąć zaproszenia. Wybierz Zablokuj żeby wyciszyć tą osobę. <form name="form"> - <button name="Accept" text="Zaakceptuj" /> - <button name="Decline" text="Odmów" /> - <button name="Mute" text="Zablokuj" /> + <button name="Accept" text="Zaakceptuj"/> + <button name="Decline" text="Odmów"/> + <button name="Mute" text="Block"/> </form> </notification> <notification name="VoiceChannelFull"> - Rozmowa w której chcesz uczestniczyć, [VOICE_CHANNEL_NAME], nie akceptuje więcej rozmówców. Spróbuj później. + Rozmowa w której chcesz uczestniczyć, [VOICE_CHANNEL_NAME], nie akceptuje więcej rozmówców. Spróbuj póżniej. </notification> <notification name="ProximalVoiceChannelFull"> Przepraszamy. Limit rozmów został przekroczony w tym obszarze. Spróbuj w innym miejscu. </notification> <notification name="VoiceChannelDisconnected"> - [VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy przestrzennej. </notification> <notification name="VoiceChannelDisconnectedP2P"> - [VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy przestrzennej. </notification> <notification name="P2PCallDeclined"> - [VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy przestrzennej. </notification> <notification name="P2PCallNoAnswer"> - [VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy przestrzennej. </notification> <notification name="VoiceChannelJoinFailed"> - Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj później. Przełączanie do rozmowy w czacie lokalnym. + Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj póżniej. Przełączanie do rozmowy przestrzennej. </notification> <notification name="VoiceLoginRetry"> - Tworzymy kanał głosu dla Ciebie. To może potrwać minutę. + Tworzymy kanał głosu dla Ciebie. Moze potrwać minutę. </notification> <notification name="VoiceEffectsExpired"> - Subskrypcja jednego lub więcej Przekształceń Głosu wygasła. + Subskrypcja jednego lub więcej z Voice Morph wygasła. [[URL] Kliknij tutaj] oby odnowić subskrypcję. </notification> <notification name="VoiceEffectsExpiredInUse"> - Czas aktywności Przekształcenia Głosu wygasł, normalne ustawienia Twojego głosu zostały zastosowane. + Czas aktywności Voice Morph wygasł, normalne ustawienia Twojego głosu zostały zastosowane. [[URL] Kliknij tutaj] aby odnowić subskrypcję. </notification> <notification name="VoiceEffectsWillExpire"> - Jedno lub więcej z Twoich Przekształceń Głosu wygaśnie za mniej niż [INTERVAL] dni. -[[URL] Kliknij tutaj] aby odnowić subskrypcję. + Jedno lub więcej z Twoich Voice Morph wygaśnie za mniej niż [INTERVAL] dni. +[[URL] Klinij tutaj] aby odnowić subskrypcję. </notification> <notification name="VoiceEffectsNew"> - Nowe Przekształcenia Głosu są dostępne! + Nowe Voice Morph są dostępne! </notification> <notification name="Cannot enter parcel: not a group member"> - Nie masz dostępu do działki, nie należysz do właściwej grupy. + Nie masz dostępu do posiadłości, nie należysz do właściwej grupy. </notification> <notification name="Cannot enter parcel: banned"> - Masz wzbroniony wstęp na tą działkę (ban). + Masz wzbroniony wstęp na tą posiadłości (ban). </notification> <notification name="Cannot enter parcel: not on access list"> - Nie masz dostępu do działki, nie jesteś na liście dostępu. + Nie masz dostępu do posiadłości, nie jesteś na liście dostępu. </notification> <notification name="VoiceNotAllowed"> Nie masz pozwolenia na połączenie z rozmową [VOICE_CHANNEL_NAME]. </notification> <notification name="VoiceCallGenericError"> - Błąd podczas łączenia z rozmową [VOICE_CHANNEL_NAME]. Spróbuj później. + Błąd podczas łączenia z rozmową [VOICE_CHANNEL_NAME]. Spróbuj póżniej. </notification> <notification name="UnsupportedCommandSLURL"> - Wybrany SLurl nie jest obsługiwany. + Nie można otworzyć wybranego SLurl. </notification> <notification name="BlockedSLURL"> - SLurl został otrzymany z niezaufanej przeglądarki i został zablokowany dla bezpieczeństwa. + SLurl został otrzymany z niesprawdzonej przeglądarki i został zablokowany dla bezpieczeństwa. </notification> <notification name="ThrottledSLURL"> - Wiele SLurlów zostało otrzymanych w krótkim czasie od niezaufanej przeglądarki. + Wiele SLurlów zostało otrzymanych w krótkim czasie od niesprawdzonej przeglądarki. Zostaną zablokowane na kilka sekund dla bezpieczeństwa. </notification> <notification name="IMToast"> [MESSAGE] <form name="form"> - <button name="respondbutton" text="Odpowiedź" /> + <button name="respondbutton" text="Odpowiedź"/> </form> </notification> <notification name="ConfirmCloseAll"> Czy chcesz zamknąć wszystkie wiadomości IM? - <usetemplate ignoretext="Potwierdź przed zamknięciem wszystkich wiadomości prywatnych (IM)." name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Potwierdź, przed zamknięciem wszystkich wiadomości prywatnych (IM)." name="okcancelignore" notext="Anuluj" yestext="OK"/> </notification> <notification name="AttachmentSaved"> Załącznik został zapisany. </notification> <notification name="UnableToFindHelpTopic"> - Nie można znaleźć tematu pomocy dla tego elementu. + Nie można znależć tematu pomocy dla tego elementu. </notification> <notification name="ObjectMediaFailure"> Błąd serwera: aktualizacja mediów nie powiodła się. '[ERROR]' + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="TextChatIsMutedByModerator"> Twój czat został wyciszony przez moderatora. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="VoiceIsMutedByModerator"> Twoja rozmowa głosowa została wyciszona przez moderatora. - </notification> - <notification name="UploadCostConfirmation"> - Załadowanie tego na serwer będzie kosztować [PRICE]L$, chcesz kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Załaduj" /> + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ConfirmClearTeleportHistory"> Czy na pewno chcesz usunąć historię teleportacji? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="BottomTrayButtonCanNotBeShown"> Wybrany przycisk nie może zostać wyświetlony w tej chwili. @@ -2905,17 +2716,6 @@ Przycisk zostanie wyświetlony w przypadku dostatecznej ilości przestrzeni. <notification name="ShareNotification"> Zaznacz Rezydentów, z którymi chcesz się podzielić. </notification> - <notification name="MeshUploadError"> - Nie można załadować [LABEL]: [MESSAGE] [IDENTIFIER] - -Zobacz log, aby dowiedzieć się więcej. - </notification> - <notification name="MeshUploadPermError"> - Wystąpił błąd podczas pobierania uprawnień ładowania meszy. - </notification> - <notification name="RegionCapabilityRequestError"> - Nie udało się uzyskać zdolności regionu: '[CAPABILITY]'. - </notification> <notification name="ShareItemsConfirmation"> Czy na pewno chcesz udostępnić następujące obiekty: @@ -2923,20 +2723,8 @@ Zobacz log, aby dowiedzieć się więcej. następującym Rezydentom: -<nolink>[RESIDENTS]</nolink> - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="ShareFolderConfirmation"> - Możesz się podzielić tylko jednym folderem jednocześnie. - -Czy na pewno chcesz udostępnić następujące obiekty: - -<nolink>[ITEMS]</nolink> - -następującym Rezydentom: - -<nolink>[RESIDENTS]</nolink> - <usetemplate name="okcancelbuttons" notext="Anuluj" /> +[RESIDENTS] + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ok"/> </notification> <notification name="ItemsShared"> Obiekty zostały udostępnione. @@ -2944,26 +2732,13 @@ następującym Rezydentom: <notification name="DeedToGroupFail"> Przekazanie grupie nie powiodło się. </notification> - <notification name="ReleaseLandThrottled"> - Działka [PARCEL_NAME] nie może teraz zostać porzucona. - </notification> - <notification name="ReleasedLandWithReclaim"> - Działka '[PARCEL_NAME]' o obszarze [AREA] m² została porzucona. - -Masz [RECLAIM_PERIOD] godzin na odzyskanie jej za 0L$ zanim zostanie wystawiona na sprzedaż każdemu. - </notification> - <notification name="ReleasedLandNoReclaim"> - Działka '[PARCEL_NAME]' o obszarze [AREA] m² została porzucona. - -Jest teraz dostępna do kupienia dla każdego. - </notification> <notification name="AvatarRezNotification"> ( [EXISTENCE] sekund w Second Life) -Awatar '[NAME]' przestał/a być chmurą po [TIME] sekundach. +Awatar '[NAME]' rozchmurzył się po [TIME] sekundach. </notification> <notification name="AvatarRezSelfBakedDoneNotification"> ( [EXISTENCE] sekund w Second Life) -Skończono wstępne przetwarzanie stroju po [TIME] sekundach. +You finished baking your outfit after [TIME] seconds. </notification> <notification name="AvatarRezSelfBakedUpdateNotification"> ( [EXISTENCE] sekund w Second Life ) @@ -2993,14 +2768,16 @@ Awatar '[NAME]' opuścił edycję wyglądu. <notification name="NoConnect"> Występuje problem z połączeniem [PROTOCOL] [HOSTID]. Proszę sprawdź swoją sieć i ustawienia firewall. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="NoVoiceConnect"> - Występuje problem z Twoim połączeniem głosowym: + Występuje problem z Twoim połączniem głosowym: [HOSTID] Komunikacja głosowa nie będzie dostępna. Proszę sprawdź swoją sieć i ustawienia firewall. + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="AvatarRezLeftNotification"> ( [EXISTENCE] sekund w Second Life) @@ -3008,917 +2785,142 @@ Awatar '[NAME]' pozostał w pełni załadowany. </notification> <notification name="AvatarRezSelfBakedTextureUploadNotification"> ( [EXISTENCE] sekund w Second Life ) -Wstępnie przetworzone tekstury [RESOLUTION] dla '[BODYREGION]' zostały załadowane po [TIME] sekundach. +Zbakowane tekstury [RESOLUTION] dla '[BODYREGION]' zostały załadowane po[TIME] sekundach. </notification> <notification name="AvatarRezSelfBakedTextureUpdateNotification"> ( [EXISTENCE] sekund w Second Life ) -Wstępnie przetworzone tekstury [RESOLUTION] zostały lokalnie zaktualizowane dla '[BODYREGION]' po [TIME] sekundach. - </notification> - <notification name="CannotUploadTexture"> - Nie można załadować tekstury. -[REASON] - </notification> - <notification name="LivePreviewUnavailable"> - Nie można wyświetlić podglądu tej tekstury - jest niekopiowalna lub/oraz nietransferowalna. - <usetemplate ignoretext="Ostrzegaj, gdy podgląd na żywo nie może wyświetlić niekopiowalnych/nietransferowalnych tekstur" name="okignore" /> +Zbakowane tekstury zostały lokalnie zaktualizowane [RESOLUTION] dla '[BODYREGION]' po [TIME] sekundach. </notification> <notification name="ConfirmLeaveCall"> - Czy jesteś pewien/pewna, że chcesz zakończyć rozmowę? - <usetemplate ignoretext="Potwierdź zanim rozmowa głosowa zostanie zakończona" name="okcancelignore" notext="Nie" yestext="Tak" /> + Czy jestes pewien/pewna, że chcesz zakończyć rozmowę? + <usetemplate ignoretext="Potwierdź zanim rozmowa głosowa zostanie zakończona" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="ConfirmMuteAll"> Wybrano wyciszenie wszystkich uczestników rozmowy głosowej w grupie. -To spowoduje również wyciszenie wszystkich Rezydentów, którzy dołączą później -do rozmowy nawet, jeśli ją zakończysz. +To spowoduje również wyciszenie wszystkich Rezydentów, którzy dołączą póżniej do rozmowy, nawet jeśli zakończysz rozmowę. Wyciszyć wszystkich? - <usetemplate ignoretext="Potwierdź zanim zostaną wyciszeni wszyscy uczestnicy rozmowy głosowej w grupie" name="okcancelignore" notext="Anuluj" /> + <usetemplate ignoretext="Potwierdź zanim zostaną wyciszeni wszyscy uczestnicy rozmowy głosowej w grupie" name="okcancelignore" notext="Anuluj" yestext="Ok"/> </notification> <notification label="Czat" name="HintChat"> - W celu przyłączenia się do rozmowy zacznij pisać w poniższym polu czatu. + W celu przylączenia się do rozmowy zacznij pisać w poniższym polu czatu. </notification> <notification label="Wstań" name="HintSit"> Aby wstać i opuścić pozycję siedzącą, kliknij przycisk Wstań. </notification> <notification label="Mów" name="HintSpeak"> - Kliknij na przycisku "Mów" aby włączyć i wyłączyć Twój mikrofon. + Kliknij przycisk "Mów" aby włączyć i wyłączyć Twój mikrofon. Kliknij w strzałkę aby zobaczyć panel kontroli głosu. Ukrycie przycisku "Mów" zdezaktywuje głos. </notification> <notification label="Odkrywaj Świat" name="HintDestinationGuide"> - Cele podróży (Destination Guide) zawierają tysiące nowych miejsc do odkrycia. Wybierz lokalizację i teleportuj się, aby rozpocząć zwiedzanie. + Destination Guide zawiera tysiące nowych miejsc do odkrycia. Wybierz lokalizację i teleportuj się aby rozpocząć zwiedzanie. </notification> - <notification label="Panel boczny" name="HintSidePanel"> - Panel boczny umożliwia szybki dostęp do Twojej Szafy, ubrań, profili i innych rzeczy. + <notification label="Schowek" name="HintSidePanel"> + Schowek umożliwia szybki dostęp do Twojej Szafy, ubrań, profili i innych w panelu bocznym. </notification> <notification label="Ruch" name="HintMove"> Aby chodzić lub biegać, otwórz panel ruchu i użyj strzałek do nawigacji. Możesz także używać strzałek z klawiatury. </notification> - <notification name="HintMoveClick"> + <notification label="" name="HintMoveClick"> 1. Kliknij aby chodzić. Kliknij gdziekolwiek na ziemi aby przejść do wskazanego miejsca. 2. Kliknij i przeciągnij aby zmienić widok. Kliknij i przeciągnij gdziekolwiek aby obrócić widok. </notification> - <notification label="Wyświetlane Imię" name="HintDisplayName"> - Możesz zmieniać tutaj swoje Wyświetlane Imię. Jest ono dodatkiem do unikatowej nazwy użytkownika, która nie może być zmieniona. Możesz zmienić sposób w jaki widzisz imiona innych osób w Twoich Ustawieniach. + <notification label="Wyświetlana nazwa" name="HintDisplayName"> + Ustaw wyświetlaną nazwę, którą możesz zmieniać tutaj. Jest ona dodatkiem do unikatowej nazwy użytkownika, która nie może być zmieniona. Możesz zmienić sposób w jaki widzisz nazwy innych osób w Twoich Ustawieniach. </notification> <notification label="Widok" name="HintView"> - Aby zmienić widok kamery użyj narzędzi służących do okrążania i panoramowania. Zresetuj widok poprzez wciśnięcie klawisza Esc lub poruszając się. + To change your camera view, use the Orbit and Pan controls. Zresetuj widok poprzez wciśnięcie klawisza Esc lub chodzenie. </notification> <notification label="Szafa" name="HintInventory"> - Sprawdź swoją Szafę aby znaleźć obiekty. Najnowsze obiekty mogą być łatwo odnalezione w zakładce Ostatnie. + Sprawdź swoją Szafę aby znaleźć obiekty. Najnowsze obiekty mogą być łatwo odnalezione w zakładce Nowe obiekty. </notification> <notification label="Otrzymano L$!" name="HintLindenDollar"> - Tutaj znajduje się Twój bieżący bilans L$. Kliknij Kup aby kupić więcej L$. - </notification> - <notification name="LowMemory"> - Masz zbyt mały zapas pamięci. Pewne funkcje SL zostały wyłączone, aby zapobiec awarii. Wyłącz inne aplikacje. Zrestartuj SL, jeśli problem pozostanie. - </notification> - <notification name="ForceQuitDueToLowMemory"> - SL zostanie wyłączone za 30 sekund, brak pamięci. + Tutaj znajduje się Twoj bieżący bilans L$. Kliknij Kup aby kupić więcej L$. </notification> <notification name="PopupAttempt"> Wyskakujące okienko zostało zablokowane. <form name="form"> - <ignore name="ignore" text="Zezwól na wyskakujące okienka" /> - <button name="open" text="Otwórz wyskakujące okno" /> + <ignore name="ignore" text="Zezwól na wyskakujące okienka"/> + <button name="open" text="Otwórz wyskakujące okno."/> </form> </notification> - <notification name="SOCKS_NOT_PERMITTED"> - Serwer proxy SOCKS 5 "[HOST]:[PORT]" odmawia połączenia, brak dostępu na podstawie zestawu reguł. - </notification> - <notification name="SOCKS_CONNECT_ERROR"> - Serwer proxy SOCKS 5 "[HOST]:[PORT]" odmawia połączenia, nie można otworzyć kanału TCP. - </notification> - <notification name="SOCKS_NOT_ACCEPTABLE"> - Serwer proxy SOCKS 5 "[HOST]:[PORT]" odmówił połączenia na ustawionym sposobie autoryzacji. - </notification> - <notification name="SOCKS_AUTH_FAIL"> - Serwer proxy SOCKS 5 "[HOST]:[PORT]" określił Twoje dane uwierzytelniające jako nieprawidłowe. - </notification> - <notification name="SOCKS_UDP_FWD_NOT_GRANTED"> - Serwer proxy SOCKS 5 "[HOST]:[PORT]" odmówił skojarzonego żądania UDP. - </notification> - <notification name="SOCKS_HOST_CONNECT_FAILED"> - Nie można połączyć z serwerem proxy SOCKS 5 "[HOST]:[PORT]". - </notification> - <notification name="SOCKS_UNKNOWN_STATUS"> - Nieznany błąd proxy z serwerem "[HOST]:[PORT]". - </notification> - <notification name="SOCKS_INVALID_HOST"> - Nieprawidłowy adres lub port proxy SOCKS "[HOST]:[PORT]". - </notification> - <notification name="SOCKS_BAD_CREDS"> - Nieprawidłowy użytkownik lub hasło SOCKS 5. - </notification> - <notification name="PROXY_INVALID_HTTP_HOST"> - Nieprawidłowy adres lub port proxy HTTP "[HOST]:[PORT]". - </notification> - <notification name="PROXY_INVALID_SOCKS_HOST"> - Nieprawidłowy adres lub port proxy SOCKS "[HOST]:[PORT]". - </notification> - <notification name="ChangeProxySettings"> - Ustawienia proxy zaczną obowiązywać po restarcie [APP_NAME]. - </notification> <notification name="AuthRequest"> - Strona '<nolink>[HOST_NAME]</nolink>' w domenie '[REALM]' wymaga nazwy użytkownika i hasła. + Strpna '<nolink>[HOST_NAME]</nolink>' w domenie '[REALM]' wymaga nazwy użytkownika i hasła. <form name="form"> - <input name="username" text="Nazwa użytkownika" /> - <input name="password" text="Hasło" /> - <button name="ok" text="Wyślij" /> - <button name="cancel" text="Anuluj" /> + <input name="username" text="Nazwa użytkownika"/> + <input name="password" text="Hasło"/> + <button name="ok" text="Wyślij"/> + <button name="cancel" text="Anuluj"/> </form> </notification> - <notification name="NoClassifieds"> + <notification label="" name="NoClassifieds"> Tworzenie i edycja reklam jest możliwa tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoGroupInfo"> + <notification label="" name="NoGroupInfo"> Tworzenie i edycja grup jest możliwa tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoPlaceInfo"> - Oglądanie profilu miejsca jest możliwe tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" yestext="Zamknij" notext="Nie zamykaj" /> - </notification> - <notification name="NoPicks"> + <notification label="" name="NoPicks"> Tworzenie i edycja Ulubionych jest możliwa jedynie w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoWorldMap"> + <notification label="" name="NoWorldMap"> Oglądanie mapy świata jest możliwe tylko w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoVoiceCall"> - Rozmowy głosowe są możliwe tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <notification label="" name="NoVoiceCall"> + Rozmowy głosowe są możliwe tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoAvatarShare"> + <notification label="" name="NoAvatarShare"> Udostępnienie jest możliwe tylko w trybie zaawansowanym. Czy chcesz wylogować się i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> - <notification name="NoAvatarPay"> + <notification label="" name="NoAvatarPay"> Płacenie innym Rezydentom jest możliwe tylko w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij" /> - </notification> - <notification name="NoInventory"> - Przeglądanie Szafy jest możliwe tylko w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" yestext="Zamknij" notext="Nie zamykaj" /> - </notification> - <notification name="NoAppearance"> - Zmiana wyglądu jest możliwa tylko w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" yestext="Zamknij" notext="Nie zamykaj" /> - </notification> - <notification name="NoSearch"> - Wyszukiwanie jest możliwe tylko w trybie zaawansowanym. Czy chcesz się wylogować i zmienić tryb? Opcja wyboru trybu życia jest widoczna na ekranie logowania. - <usetemplate name="okcancelbuttons" yestext="Zamknij" notext="Nie zamykaj" /> - </notification> - <notification name="ConfirmHideUI"> - Ta akcja ukryje wszystkie menu i przyciski. Aby je pokazać użyj skrótu [SHORTCUT] ponownie. - <usetemplate name="okcancelignore" notext="Anuluj" ignoretext="Potwierdź przed ukryciem interfejsu" /> - </notification> - <notification name="PathfindingLinksets_WarnOnPhantom"> - Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_MismatchOnRestricted"> - Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]' ze względu na restrykcje zezwoleń zbioru części. Te zbiory części zostaną zamiast tego ustawione na '[RESTRICTED_TYPE]'. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione ze względu na restrykcje zezwoleń zbioru części." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_MismatchOnVolume"> - Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]', ponieważ kształt nie jest wypukły. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione, ponieważ kształt nie jest wypukły." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_WarnOnPhantom_MismatchOnRestricted"> - Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy. - -Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]' ze względu na restrykcje zezwoleń zbioru części. Te zbiory części zostaną zamiast tego ustawione na '[RESTRICTED_TYPE]'. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy, a inne nie mogą zostać ustawione ze względu na restrykcje zezwoleń zbioru części." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_WarnOnPhantom_MismatchOnVolume"> - Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy. - -Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]', ponieważ kształt nie jest wypukły. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy, a inne nie mogą zostać ustawione, ponieważ kształt nie jest wypukły." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_MismatchOnRestricted_MismatchOnVolume"> - Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]' ze względu na restrykcje zezwoleń zbioru części. Te zbiory części zostaną zamiast tego ustawione na '[RESTRICTED_TYPE]'. - -Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]', ponieważ kształt nie jest wypukły. Ich typ nie ulegnie zmianie. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione ze względu na restrykcje zezwoleń zbioru części i niewypukły kształt." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_WarnOnPhantom_MismatchOnRestricted_MismatchOnVolume"> - Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy. - -Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]' ze względu na restrykcje zezwoleń zbioru części. Te zbiory części zostaną zamiast tego ustawione na '[RESTRICTED_TYPE]'. - -Niektóre z zaznaczonych zbiorów części nie mogą zostać ustawione na '[REQUESTED_TYPE]', ponieważ kształt nie jest wypukły. Ich typ nie ulegnie zmianie. - -Czy chcesz kontynuować? - <usetemplate ignoretext="Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy, a inne nie mogą zostać ustawione ze względu na restrykcje zezwoleń zbioru części i niewypukły kształt." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PathfindingLinksets_ChangeToFlexiblePath"> - Wybrany obiekt ma wpływ na Navmesh. Dodanie elastyczności spowoduje usunięcie go z Navmesha. - <usetemplate ignoretext="Wybrany obiekt ma wpływ na Navmesh. Dodanie elastyczności spowoduje usunięcie go z Navmesha." name="okcancelignore" notext="Anuluj" /> + <usetemplate name="okcancelbuttons" notext="Nie zamykaj" yestext="Zamknij"/> </notification> <global name="UnsupportedGLRequirements"> Wygląda na to, że Twój system nie spełnia wymagań sprzętowych [APP_NAME]. [APP_NAME] wymaga karty graficznej kompatybilnej z OpenGL z multiteksturami. Jeżeli masz taką kartę zainstaluj najnowsze sterowniki do niej i uaktualnienia systemu operacyjnego. Jeżeli wciąż masz problemy sprawdź: [SUPPORT_SITE]. </global> + <global name="UnsupportedCPUAmount"> + 796 + </global> + <global name="UnsupportedRAMAmount"> + 510 + </global> <global name="UnsupportedGPU"> - Twoja karta graficzna nie spełnia minimalnych wymagań. </global> <global name="UnsupportedRAM"> - Pamięć Twojego systemu nie spełnia minimalnych wymagań. </global> - <global name="You can only set your 'Home Location' on your land or at a mainland Infohub."> - If you own a piece of land, you can make it your home location. -Otherwise, you can look at the Map and find places marked "Infohub". + <global name="You can only set your 'Home Location' on your land or at a mainland Infohub."> + Jeśli jesteś właścicielem posiadłości, możesz ustawić na niej miejsce startu. +W innym przypadku możesz poszukać na mapie miejsca oznaczone jako "Infohub". </global> <global name="You died and have been teleported to your home location"> Nastąpiła śmierć i teleportacja do Miejsca Startu. </global> - <notification name="LocalBitmapsUpdateFileNotFound"> - [FNAME] nie może zostać zaktualizowany, ponieważ plik nie może zostać znaleziony. -Aktualizacje dla tego pliku wyłączone. - </notification> - <notification name="LocalBitmapsUpdateFailedFinal"> - [FNAME] nie mógł zostać otwarty lub zdekodowany [NRETRIES] razy i został uznany za uszkodzony. -Aktualizacje dla tego pliku wyłączone. - </notification> - <notification name="LocalBitmapsVerifyFail"> - Próba dodania niewłaściwego lub niemożliwego do odczytania pliku graficznego [FNAME], który nie może zostać otwarty lub zdekodowany. -Anulowano. - </notification> - <notification name="PathfindingReturnMultipleItems"> - Zwracasz [NUM_ITEMS] przedmiotów. Na pewno chcesz kontynuować? - <usetemplate ignoretext="Na pewno chcesz zwrócić wiele przedmiotów?" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="PathfindingDeleteMultipleItems"> - Usuwasz [NUM_ITEMS] przedmiotów. Na pewno chcesz kontynuować? - <usetemplate ignoretext="Na pewno chcesz usunąć wiele przedmiotów?" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="AvatarFrozen"> - [AV_FREEZER] unieruchomił/a Cię. Nie możesz się poruszać ani podejmować interakcji ze światem. - </notification> - <notification name="AvatarFrozenDuration"> - [AV_FREEZER] unieruchomił/a Cię na [AV_FREEZE_TIME] sekund. Nie możesz się poruszać ani podejmować interakcji ze światem. - </notification> - <notification name="YouFrozeAvatar"> - Awatar unieruchomiony. - </notification> - <notification name="AvatarHasUnFrozenYou"> - [AV_FREEZER] odblokował/a Cię. - </notification> - <notification name="AvatarUnFrozen"> - Awatar odblokowany. - </notification> - <notification name="AvatarFreezeFailure"> - Unieruchomienie nie powiodło się, ponieważ nie masz uprawnień administratora na tej działce. - </notification> - <notification name="AvatarFreezeThaw"> - Czas Twojego unieruchomienia minął, możesz zająć się swoimi sprawami. - </notification> - <notification name="AvatarCantFreeze"> - Przepraszam, ale nie mogę unieruchomić tego użytkownika. - </notification> - <notification name="NowOwnObject"> - Jesteś od teraz właścicielem obiektu [OBJECT_NAME] - </notification> - <notification name="CantRezOnLand"> - Nie można zrezzować obiektu na pozycji [OBJECT_POS], ponieważ właściciel działki na to nie zezwala. Użyj narzędzia ziemi, aby zobaczyć kto nim jest. - </notification> - <notification name="RezFailTooManyRequests"> - Obiekt nie może zostać zrezzowany, ponieważ jest zbyt wiele żądań. - </notification> - <notification name="SitFailCantMove"> - Nie możesz usiąść, ponieważ nie możesz się teraz poruszać. - </notification> - <notification name="SitFailNotAllowedOnLand"> - Nie możesz usiąść, ponieważ nie masz zezwolenia do przebywania na tej ziemi. - </notification> - <notification name="SitFailNotSameRegion"> - Spróbuj podejść bliżej. Nie można usiąść na obiekcie, bo nie jest w tym samym regionie, co Ty. - </notification> - <notification name="NoNewObjectRegionFull"> - Nie można utworzyć nowego obiektu. Region jest pełny. - </notification> - <notification name="FailedToPlaceObject"> - Nie udało się ustawić obiektu w podanym miejscu. Spróbuj ponownie. - </notification> - <notification name="NoOwnNoGardening"> - Nie możesz tworzyć drzew i trawy na ziemi, która nie należy do Ciebie. - </notification> - <notification name="NoCopyPermsNoObject"> - Kopiowanie nie powiodło się, ponieważ nie masz zezwoleń na kopiowanie obiektu '[OBJ_NAME]'. - </notification> - <notification name="NoTransPermsNoObject"> - Kopiowanie nie powiodło się, ponieważ obiekt '[OBJ_NAME]' nie może zostać przetransferowany do Ciebie. - </notification> - <notification name="AddToNavMeshNoCopy"> - Kopiowanie nie powiodło się, ponieważ obiekt '[OBJ_NAME]' ma wpływ na Navmesh. - </notification> - <notification name="DupeWithNoRootsSelected"> - Wybrano duplikat bez obiektów głównych. - </notification> - <notification name="CantDupeCuzRegionIsFull"> - Nie można zduplikować obiektów, ponieważ region jest pełny. - </notification> - <notification name="CantDupeCuzParcelNotFound"> - Nie można zduplikować obiektów - nie można znaleźć działki, na której one są. - </notification> - <notification name="CantCreateCuzParcelFull"> - Nie można utworzyć obiektu, ponieważ działka jest pełna. - </notification> - <notification name="RezAttemptFailed"> - Próba zrezzowania obiektu nie powiodła się. - </notification> - <notification name="ToxicInvRezAttemptFailed"> - Nie można utworzyć obiektu, który spowodował problemy w tym regionie. - </notification> - <notification name="InvItemIsBlacklisted"> - Ten przedmiot znajduje się na czarnej liście. - </notification> - <notification name="NoCanRezObjects"> - W tej chwili nie masz zezwolenia na tworzenie obiektów. - </notification> - <notification name="LandSearchBlocked"> - Wyszukiwanie ziemi zablokowane. -Zostało wysłanych zbyt wiele żądań wyszukiwania w zbyt krótkim czasie. -Spróbuj ponownie za minutę. - </notification> - <notification name="NotEnoughResourcesToAttach"> - Za mało dostępnych zasobów skryptów, aby dołączyć obiekt! - </notification> - <notification name="YouDiedAndGotTPHome"> - Zginąłeś/aś i zostałeś/aś przeteleportowany/a do swojego miejsca startu - </notification> - <notification name="EjectComingSoon"> - Nie masz już dłużej pozwolenia na przebywanie w tym miejscu i w ciągu [EJECT_TIME] sekund musisz je opuścić. - </notification> - <notification name="NoEnterRegionMaybeFull"> - Nie możesz wejść do regionu "[NAME]", może być pełny lub właśnie restartuje. - </notification> - <notification name="SaveBackToInvDisabled"> - Zabieranie z powrotem do Szafy zostało wyłączone. - </notification> - <notification name="NoExistNoSaveToContents"> - Nie można zapisać '[OBJ_NAME]' do zawartości obiektu, ponieważ obiekt z którego został zrezzowany już nie istnieje. - </notification> - <notification name="NoModNoSaveToContents"> - Nie można zapisać '[OBJ_NAME]' do zawartości obiektu, ponieważ nie masz praw do modyfikacji obiektu '[DEST_NAME]'. - </notification> - <notification name="NoSaveBackToInvDisabled"> - Nie można zabrać '[OBJ_NAME]' z powrotem do Szafy -- ta operacja została wyłączona. - </notification> - <notification name="NoCopyNoSelCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ nie masz prawa do skopiowania obiektu '[OBJ_NAME]'. - </notification> - <notification name="NoTransNoSelCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można transferować. - </notification> - <notification name="NoTransNoCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można transferować. - </notification> - <notification name="NoPermsNoRemoval"> - Usunięcie obiektu '[OBJ_NAME]' z symulatora zostało wzbronione przez system zezwoleń. - </notification> - <notification name="NoModNoSaveSelection"> - Nie możesz zapisać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu '[OBJ_NAME]'. - </notification> - <notification name="NoCopyNoSaveSelection"> - Nie możesz zapisać tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można kopiować. - </notification> - <notification name="NoModNoTaking"> - Nie możesz zabrać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu '[OBJ_NAME]'. - </notification> - <notification name="RezDestInternalError"> - Błąd wewnętrzny: Nieznany typ lokalizacji docelowej. - </notification> - <notification name="DeleteFailObjNotFound"> - Usuwanie nie powiodło się, ponieważ obiekt nie został znaleziony - </notification> - <notification name="SorryCantEjectUser"> - Przepraszam, ale nie można wyrzucić tego użytkownika. - </notification> - <notification name="RegionSezNotAHome"> - Ten region nie pozwala Ci na ustawienie miejsca startu w tej lokalizacji. - </notification> - <notification name="HomeLocationLimits"> - Możesz ustawić 'miejsce startu' tylko na swojej własnej ziemi lub obok Infohuba na Mainlandzie. - </notification> - <notification name="HomePositionSet"> - Ustawiono miejsce startu. - </notification> - <notification name="AvatarEjected"> - Awatar wyrzucony. - </notification> - <notification name="AvatarEjectFailed"> - Wyrzucenie nie powiodło się, ponieważ nie masz uprawnień administratora na tej działce. - </notification> - <notification name="CantMoveObjectParcelFull"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ działka jest zbyt pełna. - </notification> - <notification name="CantMoveObjectParcelPerms"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ Twoje obiekty nie są dozwolone na tej działce. - </notification> - <notification name="CantMoveObjectParcelResources"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ nie ma wystarczającej ilości zasobów na tej działce. - </notification> - <notification name="CantMoveObjectRegionVersion"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ the region działa na starszej wersji symulatora, która nie obsługuje otrzymywania obiektów przez granice działek. - </notification> - <notification name="CantMoveObjectNavMesh"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ nie możesz modyfikować Navmesha przez granice regionów. - </notification> - <notification name="CantMoveObjectWTF"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME] ze względu na nieznany powód. ([FAILURE_TYPE]) - </notification> - <notification name="NoPermModifyObject"> - Nie masz uprawnień do modyfikowania tego obiektu - </notification> - <notification name="CantEnablePhysObjContributesToNav"> - Nie można włączyć fizyki dla obiektu, który ma wpływ na Navmesh. - </notification> - <notification name="CantEnablePhysKeyframedObj"> - Nie można włączyć fizyki dla obiektów, które używają animacji opartej o klatki kluczowe. - </notification> - <notification name="CantEnablePhysNotEnoughLandResources"> - Nie można włączyć fizyki dla obiektu -- niewystarczające zasoby na działce. - </notification> - <notification name="CantEnablePhysCostTooGreat"> - Nie można włączyć fizyki dla obiektu, którego łączny koszt zajmowanych zasobów fizycznych jest większy, niż [MAX_OBJECTS] - </notification> - <notification name="PhantomWithConcavePiece"> - Ten obiekt nie może mieć części wklęsłej, ponieważ jest widmowy i ma wpływ na Navmesh. - </notification> - <notification name="UnableAddItem"> - Nie można dodać przedmiotu! - </notification> - <notification name="UnableEditItem"> - Nie można tego edytować! - </notification> - <notification name="NoPermToEdit"> - Brak zezwoleń na zmianę tego. - </notification> - <notification name="NoPermToCopyInventory"> - Brak zezwoleń na kopiowanie tego przedmiotu. - </notification> - <notification name="CantSaveItemDoesntExist"> - Nie można zapisać do zawartości obiektu: Przedmiot już nie istnieje. - </notification> - <notification name="CantSaveItemAlreadyExists"> - Nie można zapisać do zawartości obiektu: Przedmiot z tą nazwą już w niej istnieje. - </notification> - <notification name="CantSaveModifyAttachment"> - Nie można zapisać do zawartości obiektu: To zmodyfikowałoby prawa dodatku. - </notification> - <notification name="TooManyScripts"> - Za dużo skryptów. - </notification> - <notification name="UnableAddScript"> - Nie można dodać skryptu! - </notification> - <notification name="AssetServerTimeoutObjReturn"> - Czas odpowiedzi z serwera zasobów danych przekroczył dozwolony limit. Obiekt został zwrócony do sima. - </notification> - <notification name="RegionDisablePhysicsShapes"> - Ten region nie ma włączonych kształtów fizycznych. - </notification> - <notification name="NoModNavmeshAcrossRegions"> - Nie możesz modyfikować Navmeshu przez granice regionów. - </notification> - <notification name="NoSetPhysicsPropertiesOnObjectType"> - Nie można ustawić właściwości fizycznych na tym typie obiektu. - </notification> - <notification name="NoSetRootPrimWithNoShape"> - Nie można ustawić primy głównej bez żadnego kształtu. - </notification> - <notification name="NoRegionSupportPhysMats"> - Ten region nie ma włączonych materiałów fizycznych. - </notification> - <notification name="OnlyRootPrimPhysMats"> - Tylko primy główne mogą mieć dostrajane materiały fizyczne. - </notification> - <notification name="NoSupportCharacterPhysMats"> - Ustawianie materiałów fizycznych na postaciach nie jest jeszcze wspierane. - </notification> - <notification name="InvalidPhysMatProperty"> - Jedna lub więcej właściwości określonego materiału fizycznego jest nieprawidłowa. - </notification> - <notification name="NoPermsAlterStitchingMeshObj"> - Nie możesz zmieniać typu zszywania obiektu meszowego. - </notification> - <notification name="NoPermsAlterShapeMeshObj"> - Nie możesz zmieniać kształtu obiektu meszowego. - </notification> - <notification name="FullRegionCantEnter"> - Nie możesz wejść do tego regionu, \nponieważ jest pełny. - </notification> - <notification name="LinkFailedOwnersDiffer"> - Scalanie nie powiodło się -- właściciele są różni - </notification> - <notification name="LinkFailedNoModNavmeshAcrossRegions"> - Scalanie nie powiodło się -- nie można modyfikować Navmeshu przez granice regionów. - </notification> - <notification name="LinkFailedNoPermToEdit"> - Scalanie nie powiodło się, ponieważ nie masz praw modyfikacji. - </notification> - <notification name="LinkFailedTooManyPrims"> - Scalanie nie powiodło się -- za dużo prim - </notification> - <notification name="LinkFailedCantLinkNoCopyNoTrans"> - Scalanie nie powiodło się -- nie można scalić obiektu niekopiowalnego z nietransferowalnym - </notification> - <notification name="LinkFailedNothingLinkable"> - Scalanie nie powiodło się -- nic nie wygląda na możliwe do scalenia. - </notification> - <notification name="LinkFailedTooManyPathfindingChars"> - Scalanie nie powiodło się -- zbyt dużo postaci odnajdywania ścieżek - </notification> - <notification name="LinkFailedInsufficientLand"> - Scalanie nie powiodło się -- niewystarczające zasoby ziemi - </notification> - <notification name="LinkFailedTooMuchPhysics"> - Obiekt zużywa zbyt dużo zasobów fizycznych -- jego cechy dynamiczne zostały wyłączone. - </notification> - <notification name="EstateManagerFailedllTeleportHome"> - Obiekt '[OBJECT_NAME]' na pozycji [SLURL] nie może teleportować zarządców majątku do ich miejsc startu. - </notification> - <notification name="TeleportedHomeByObjectOnParcel"> - Zostałeś/aś przeniesiony/a do lokalizacji startowej przez obiekt '[OBJECT_NAME]' na działce '[PARCEL_NAME]' - </notification> - <notification name="TeleportedHomeByObject"> - Zostałeś/aś przeniesiony/a do lokalizacji startowej przez obiekt '[OBJECT_NAME]' - </notification> <notification name="TeleportedByAttachment"> - Zostałeś/aś teleportowany/a przez dodatek na [ITEM_ID] - <usetemplate ignoretext="Teleport: Zostałeś/aś teleportowany/a przez dodatek" name="notifyignore" /> + You have been teleported by an attachment on [ITEM_ID] + <usetemplate ignoretext="Zostałeś/aś teleportowany/a przez dodatek" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> - Zostałeś/aś teleportowany/a przez obiekt '[OBJECT_NAME]' na działce '[PARCEL_NAME]' - <usetemplate ignoretext="Teleport: Zostałeś/aś teleportowany/a przez obiekt na działce" name="notifyignore" /> - </notification> - <notification name="TeleportedByObjectOwnedBy"> - Zostałeś/aś teleportowany/a przez obiekt '[OBJECT_NAME]' należący do [OWNER_ID] - </notification> - <notification name="TeleportedByObjectUnknownUser"> - Zostałeś/aś teleportowany/a przez obiekt '[OBJECT_NAME]' należący do nieznanej osoby. - </notification> - <notification name="CantCreateObjectRegionFull"> - Nie można utworzyć żądanego obiektu. Region jest pełny. - </notification> - <notification name="CantAttackMultipleObjOneSpot"> - Nie możesz podłączyć wielu obiektów do jednego punktu. - </notification> - <notification name="CantCreateMultipleObjAtLoc"> - Nie możesz tutaj stworzyć wielu obiektów. - </notification> - <notification name="UnableToCreateObjTimeOut"> - Nie można utworzyć żądanego obiektu. Obiektu nie ma w bazie danych. - </notification> - <notification name="UnableToCreateObjUnknown"> - Nie można utworzyć żądanego obiektu. Upłynął limit czasu żądania. Spróbuj jeszcze raz. - </notification> - <notification name="UnableToCreateObjMissingFromDB"> - Nie można utworzyć żądanego obiektu. Spróbuj jeszcze raz. - </notification> - <notification name="RezFailureTookTooLong"> - Rezzowanie nie powiodło się, żądany obiekt ładował się zbyt długo. - </notification> - <notification name="FailedToPlaceObjAtLoc"> - Nie udało się ustawić obiektu w podanej lokalizacji. Spróbuj ponownie. - </notification> - <notification name="CantCreatePlantsOnLand"> - Nie możesz tworzyć roślin na tej ziemi. - </notification> - <notification name="CantRestoreObjectNoWorldPos"> - Nie można przywrócić obiektu. Nie znaleziono pozycji w świecie. - </notification> - <notification name="CantRezObjectInvalidMeshData"> - Nie można zrezzować obiektu, ponieważ dane jego mesza są nieprawidłowe. - </notification> - <notification name="CantRezObjectTooManyScripts"> - Nie można zrezzować obiektu, ponieważ w regionie jest już zbyt dużo skryptów. - </notification> - <notification name="CantCreateObjectNoAccess"> - Twoje prawa dostępu nie zezwalają Ci na tworzenie tutaj obiektów. - </notification> - <notification name="CantCreateObject"> - W tej chwili nie masz pozwolenia na tworzenie obiektów. - </notification> - <notification name="InvalidObjectParams"> - Nieprawidłowe parametry obiektu - </notification> - <notification name="CantDuplicateObjectNoAcess"> - Twoje uprawnienia nie pozwalają Ci na duplikowanie obiektów w tym miejscu. - </notification> - <notification name="CantChangeShape"> - Nie masz pozwolenia na zmianę tego kształtu. - </notification> - <notification name="NoAccessToClaimObjects"> - Twoje uprawnienia nie pozwalają Ci na żądanie obiektów w tym miejscu. - </notification> - <notification name="DeedFailedNoPermToDeedForGroup"> - Przypisywanie obiektu na grupę nie powiodło się, ponieważ nie masz w niej na to uprawnień. - </notification> - <notification name="NoPrivsToBuyObject"> - Twoje uprawnienia nie pozwalają Ci na kupowanie obiektów w tym miejscu. - </notification> - <notification name="CantAttachObjectAvatarSittingOnIt"> - Nie można założyć obiektu, ponieważ siedzi na nim awatar. - </notification> - <notification name="WhyAreYouTryingToWearShrubbery"> - Drzewa i trawa nie mogą zostać założone jako dodatki. - </notification> - <notification name="CantAttachGroupOwnedObjs"> - Nie można zakładać obiektów, które należą do grupy. - </notification> - <notification name="CantAttachObjectsNotOwned"> - Nie możesz zakładać obiektów, jakie nie należą do Ciebie. - </notification> - <notification name="CantAttachNavmeshObjects"> - Nie możesz zakładać obiektów, jakie mają wpływ na Navmesh. - </notification> - <notification name="CantAttachObjectNoMovePermissions"> - Nie można założyć obiektu, ponieważ nie masz uprawnień do poruszenia go. - </notification> - <notification name="CantAttachNotEnoughScriptResources"> - Niewystarczające dostępne zasoby skryptowe, aby założyć obiekt! - </notification> - <notification name="CantAttachObjectBeingRemoved"> - Nie możesz odłączyć dodatku, ponieważ jest on już odłączony. - </notification> - <notification name="CantDropItemTrialUser"> - Nie możesz tutaj upuszczać obiektów; spróbuj w strefie Darmowej Próby. - </notification> - <notification name="CantDropMeshAttachment"> - Nie możesz upuszczać meszowych dodatków. Odłącz do Szafy, a potem zrezzuj w świecie. - </notification> - <notification name="CantDropAttachmentNoPermission"> - Upuszczenie dodatku nie powiodło się: nie masz uprawnień do ich upuszczania w tym miejscu. - </notification> - <notification name="CantDropAttachmentInsufficientLandResources"> - Upuszczenie dodatku nie powiodło się: niewystarczające zasoby ziemi. - </notification> - <notification name="CantDropAttachmentInsufficientResources"> - Upuszczenie dodatku nie powiodło się: niewystarczające dostępne zasoby. - </notification> - <notification name="CantDropObjectFullParcel"> - Nie można tutaj upuścić obiektu. Działka jest pełna. - </notification> - <notification name="CantTouchObjectBannedFromParcel"> - Nie można dotknąć/chwycić tego obiektu, ponieważ jesteś zbanowany/a z działki ziemi. - </notification> - <notification name="PlzNarrowDeleteParams"> - Sprecyzuj proszę swoje parametry usuwania. - </notification> - <notification name="UnableToUploadAsset"> - Nie można załadować zasobu danych (assetu). - </notification> - <notification name="CantTeleportCouldNotFindUser"> - Nie można znaleźć użytkownika, aby teleportować do domu - </notification> - <notification name="GodlikeRequestFailed"> - żądanie administracyjne nie powiodło się - </notification> - <notification name="GenericRequestFailed"> - żądanie ogólne nie powiodło się - </notification> - <notification name="CantUploadPostcard"> - Nie można załadować pocztówki. Spróbuj ponownie później. - </notification> - <notification name="CantFetchInventoryForGroupNotice"> - Nie można pobrać szczegółów dołączonego przedmiotu dla ogłoszenia grupy. - </notification> - <notification name="CantSendGroupNoticeNotPermitted"> - Nie można wysłać ogłoszenia grupy -- brak zezwoleń. - </notification> - <notification name="CantSendGroupNoticeCantConstructInventory"> - Nie można wysłać ogłoszenia grupy -- nie można stworzyć przedmiotu. - </notification> - <notification name="CantParceInventoryInNotice"> - Nie można zanalizować przedmiotu z ogłoszenia. - </notification> - <notification name="TerrainUploadFailed"> - Ładowanie podłoża na serwer nie powiodło się. - </notification> - <notification name="TerrainFileWritten"> - Plik podłoża zapisany. - </notification> - <notification name="TerrainFileWrittenStartingDownload"> - Plik podłoża zapisany, pobieranie rozpoczęte... - </notification> - <notification name="TerrainBaked"> - Podłoże zostało zrenderowane. - </notification> - <notification name="TenObjectsDisabledPlzRefresh"> - Tylko pierwszych 10 zaznaczonych obiektów zostało wyłączonych. Odśwież i zaznacz więcej, jeśli potrzeba. - </notification> - <notification name="UpdateViewerBuyParcel"> - Musisz zaktualizować swoją przeglądarkę, aby móc kupić tą działkę. - </notification> - <notification name="CantBuyParcelNotForSale"> - Nie można kupić, ta działka nie jest na sprzedaż. - </notification> - <notification name="CantBuySalePriceOrLandAreaChanged"> - Nie można kupić, cena sprzedaży lub obszar działki uległy zmianie. - </notification> - <notification name="CantBuyParcelNotAuthorized"> - Nie jesteś upoważnionym kupcem dla tej działki. - </notification> - <notification name="CantBuyParcelAwaitingPurchaseAuth"> - Nie możesz kupić tej działki, ponieważ oczekuje już ona na autoryzację zakupu. - </notification> - <notification name="CantBuildOverflowParcel"> - Nie możesz tutaj budować obiektów, ponieważ mogłoby to przekroczyć pojemność działki. - </notification> - <notification name="SelectedMultipleOwnedLand"> - Zaznaczona przez Ciebie ziemia ma różnych właścicieli. Zaznacz mniejszy obszar i spróbuj ponownie. - </notification> - <notification name="CantJoinTooFewLeasedParcels"> - Zbyt mało dzierżawionych działek w zaznaczeniu do przyłączenia. - </notification> - <notification name="CantDivideLandMultipleParcelsSelected"> - Nie można podzielić ziemi. -Zaznaczono więcej niż jedną działkę. -Spróbuj zaznaczyć mniejszy obszar ziemi. - </notification> - <notification name="CantDivideLandCantFindParcel"> - Nie można podzielić ziemi. -Nie można znaleźć działki. -Prosimy o zgłoszenie błędu, w menu Pomoc. - </notification> - <notification name="CantDivideLandWholeParcelSelected"> - Nie można podzielić ziemi. -Cała działka jest zaznaczona. -Spróbuj zaznaczyć mniejszy obszar ziemi. - </notification> - <notification name="LandHasBeenDivided"> - Ziemia została podzielona. - </notification> - <notification name="PassPurchased"> - Kupiłeś/aś przepustkę. - </notification> - <notification name="RegionDisallowsClassifieds"> - Region nie zezwala na ogłoszenia reklamowe. - </notification> - <notification name="LandPassExpireSoon"> - Twoja przepustka na tej ziemi za chwilę wygaśnie. - </notification> - <notification name="CantSitNoSuitableSurface"> - Nie znaleziono odpowiedniej powierzchni, aby usiąść. Spróbuj w innym miejscu. - </notification> - <notification name="CantSitNoRoom"> - Nie ma gdzie tutaj usiąść, spróbuj w innym miejscu. - </notification> - <notification name="ClaimObjectFailedNoPermission"> - Zażądanie obiektu nie powiodło się, ponieważ nie masz uprawnień - </notification> - <notification name="ClaimObjectFailedNoMoney"> - Zażądanie obiektu nie powiodło się, ponieważ nie masz wystarczającej ilości L$. - </notification> - <notification name="CantDeedGroupLand"> - Nie można przypisać ziemi, której właścicielem jest grupa. - </notification> - <notification name="BuyObjectFailedNoMoney"> - Kupowanie obiektu nie powiodło się, ponieważ nie masz wystarczającej ilości L$. - </notification> - <notification name="BuyInventoryFailedNoMoney"> - Kupowanie przedmiotu nie powiodło się, ponieważ nie masz wystarczającej ilości L$ - </notification> - <notification name="BuyPassFailedNoMoney"> - Nie masz wystarczającej ilości L$, any kupić przepustkę na tą ziemię. - </notification> - <notification name="CantBuyPassTryAgain"> - Nie można w tej chwili kupić przepustki. Spróbuj ponownie później. - </notification> - <notification name="CantCreateObjectParcelFull"> - Nie można utworzyć obiektu, \n ponieważ działka jest pełna. - </notification> - <notification name="FailedPlacingObject"> - Nie udało się umieścić obiektu w żądanej lokalizacji. Spróbuj ponownie. - </notification> - <notification name="CantCreateLandmarkForEvent"> - Nie można utworzyć landmarka dla wydarzenia. - </notification> - <notification name="GodBeatsFreeze"> - Twoje Boskie moce przezwyciężyły unieruchomienie! - </notification> - <notification name="SpecialPowersRequestFailedLogged"> - Zażądanie specjalnych uprawnień nie powiodło się. To żądanie zostało zapisane w logach serwera. - </notification> - <notification name="ExpireExplanation"> - System nie jest teraz w stanie przetworzyć Twojego żądania. Upłynął limit czasu. - </notification> - <notification name="DieExplanation"> - System nie jest w stanie przetworzyć Twojego żądania. - </notification> - <notification name="AddPrimitiveFailure"> - Niewystarczające fundusze do utworzenia primy. - </notification> - <notification name="RezObjectFailure"> - Niewystarczające fundusze do utworzenia obiektu. - </notification> - <notification name="ResetHomePositionNotLegal"> - Twoje miejsce startu zostało zresetowane, ponieważ poprzednie było nielegalne/niepoprawne. - </notification> - <notification name="CantInviteRegionFull"> - Nie możesz nikogo w tej chwili zaprosić do Twojej lokalizacji, ponieważ region jest pełny. Spróbuj ponownie później. - </notification> - <notification name="CantSetHomeAtRegion"> - Ten region nie pozwala Ci na ustawienie miejsca startu w tej lokalizacji. - </notification> - <notification name="ListValidHomeLocations"> - Możesz ustawić 'miejsce startu' tylko na swojej własnej ziemi lub obok Infohuba na Mainlandzie. - </notification> - <notification name="SetHomePosition"> - Ustawiono miejsce startu. - </notification> - <notification name="CantDerezInventoryError"> - Nie można zderezzować obiektu ze względu na błąd przedmiotu. - </notification> - <notification name="CantCreateRequestedInv"> - Nie można utworzyć żądanego przedmiotu. - </notification> - <notification name="CantCreateRequestedInvFolder"> - Nie można utworzyć żądanego folderu przedmiotów. - </notification> - <notification name="CantCreateInventory"> - Nie można utworzyć tego przedmiotu. - </notification> - <notification name="CantCreateLandmark"> - Nie można utworzyć landmarka. - </notification> - <notification name="CantCreateOutfit"> - Nie można utworzyć stroju w tej chwili. Spróbuj ponownie za minutę. - </notification> - <notification name="InventoryNotForSale"> - Przedmiot nie jest na sprzedaż. - </notification> - <notification name="CantFindInvItem"> - Nie można znaleźć przedmiotu. - </notification> - <notification name="CantFindObject"> - Nie można znaleźć obiektu. - </notification> - <notification name="CantTransfterMoneyRegionDisabled"> - Transfery pieniędzy do obiektów są obecnie wyłączone w tym regionie. - </notification> - <notification name="CantPayNoAgent"> - Nie udało się ustalić, komu zapłacić. - </notification> - <notification name="CantDonateToPublicObjects"> - Nie możesz dawać L$ publicznym obiektom. - </notification> - <notification name="InventoryCreationInWorldObjectFailed"> - Utworzenie przedmiotu w obiekcie będącym w świecie nie powiodło się. - </notification> - <notification name="UserBalanceOrLandUsageError"> - Błąd wewnętrzny uniemożliwił poprawną aktualizację danych przeglądarki. Stan konta L$ lub posiadane działki wyświetlane w przeglądarce mogą nie odzwierciedlać faktycznego stanu posiadania na serwerach. - </notification> - <notification name="LargePrimAgentIntersect"> - Nie można utworzyć wielkich prim, które nachodzą na innych rezydentów. Spróbuj jeszcze raz, gdy przesuną się oni. - </notification> - <notification name="PreferenceChatClearLog"> - Ta opcja usunie dzienniki poprzednich rozmów i wszelkie kopie zapasowe tego pliku. - <usetemplate ignoretext="Potwierdź, zanim usunę dzienniki poprzednich rozmów." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PreferenceChatDeleteTranscripts"> - Ta opcja usunie logi wszystkich poprzednich rozmów. Nie będzie to miało wpływu na listę rozmów odbytych w przeszłości. Wszystkie pliki z przyrostkami .txt oraz txt.backup w folderze [FOLDER] zostaną usunięte. - <usetemplate ignoretext="Potwierdź, zanim usunę logi rozmów." name="okcancelignore" notext="Anuluj" /> - </notification> - <notification name="PreferenceChatPathChanged"> - Nie można przenieść plików. Przywrócono poprzednią ścieżkę. - <usetemplate ignoretext="Nie można przenieść plików. Przywrócono poprzednią ścieżkę." name="okignore" /> + You have been teleported by the object '[OBJECT_NAME]' on the parcel '[PARCEL_NAME]' + <usetemplate ignoretext="Zostałeś/aś teleportowany/a przez obiekt na działce" name="notifyignore"/> </notification> <notification name="DefaultObjectPermissions"> Wystąpił problem z zapisywaniem domyślnych zezwoleń obiektu: [REASON]. Spróbuj ustawić je ponownie później. - </notification> - <notification name="ChatHistoryIsBusyAlert"> - Plik historii czatu jest w tej chwili przetwarzany przez poprzednią operację. Spróbuj ponownie za kilka minut lub wybierz czat innej osoby. + <usetemplate name="okbutton" yestext="OK"/> </notification> </notifications> diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml index 2d6e40ce91..42809a8afb 100755 --- a/indra/newview/skins/default/xui/pl/panel_login.xml +++ b/indra/newview/skins/default/xui/pl/panel_login.xml @@ -1,19 +1,11 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> - <combo_box label="Użytkownik" tool_tip="Nazwa użytkownika wybrana przy rejestracji, np. bobsmith12 lub Steller Sunshine" name="username_combo" /> - <line_editor name="password_edit" label="Hasło" /> - <combo_box label="Moje ulubione miejsca" name="start_location_combo"> - <combo_box.item label="Ostatnia lokalizacja" name="MyLastLocation" /> - <combo_box.item label="Moje miejsce startu" name="MyHome" /> + <combo_box label="My favorite places" name="start_location_combo"> + <combo_box.item label="Ostatnia lokalizacja" name="MyLastLocation"/> </combo_box> - <button label="Zaloguj" name="connect_btn" /> - <check_box label="Pamiętaj mnie" name="remember_check" /> - <text name="forgot_password_text"> - Zapomniałem/am hasła - </text> - <combo_box label="Wybierz siatkę" name="server_combo" /> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/pl/panel_marketplace_listings.xml new file mode 100644 index 0000000000..7db98a106d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Marketplace" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Opcje widoku/sortowania"/> + <button name="add_btn" tool_tip="Utwórz nowy folder"/> + <button label="Zweryfikuj" name="audit_btn" tool_tip="Sprawdź swoje przedmioty na Marketplace"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Filtruj przedmioty" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..be4be5b80f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="WSZYSTKO" name="All Items" tool_tip="Przeciągnij tutaj przedmioty, aby je wylistować"/> diff --git a/indra/newview/skins/default/xui/pl/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..3b17298742 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NA LIŚCIE" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..f818da6821 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NIEPRZYPISANE" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..8031fe78f7 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="UKRYTE" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/pl/panel_status_bar.xml b/indra/newview/skins/default/xui/pl/panel_status_bar.xml index d50ed3387c..22e228e460 100755 --- a/indra/newview/skins/default/xui/pl/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pl/panel_status_bar.xml @@ -1,22 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Utracone pakiety - </panel.string> - <panel.string name="bandwidth_tooltip"> - Przepustowość - </panel.string> - <panel.string name="time"> - [hour, datetime, slt]:[min, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - [AMT] L$ - </panel.string> + <panel.string name="StatBarDaysOfWeek">Niedziela:Poniedziałek:Wtorek:Środa:Czwartek:Piątek:Sobota</panel.string> + <panel.string name="StatBarMonthsOfYear">Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Styczeń:Wrzesień:Październik:Listopad:Grudzień</panel.string> + <panel.string name="packet_loss_tooltip">Utracone pakiety</panel.string> + <panel.string name="bandwidth_tooltip">Przepustowość</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel name="balance_bg"> - <text name="balance" tool_tip="Kliknij aby odświeżyć saldo L$" /> + <text name="balance" tool_tip="Kliknij aby odświeżyć bilans L$" value="L$??"/> <button label="Kup L$" name="buyL" tool_tip="Kliknij aby kupić więcej L$" /> <button label="Sklep" name="goShop" tool_tip="Otwórz witrynę Second Life Marketplace" /> </panel> - <text name="TimeText" tool_tip="Obecny czas (Pacyficzny)" /> - <button name="media_toggle_btn" tool_tip="Odtwórz/Zatrzymaj wszystkie media (Muzyka, Wideo, WWW)" /> + <text name="TimeText" tool_tip="Obecny czas (Pacyficzny)">24:00 AM PST</text> </panel> diff --git a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml index db048e9ef8..bdf91d7633 100755 --- a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml @@ -64,9 +64,9 @@ </panel> <check_box label="Na sprzedaż" name="CheckPurchase" /> <combo_box name="ComboBoxSaleType"> - <combo_box.item label="Kopia" name="Copy" /> - <combo_box.item label="Zawartość" name="Contents" /> - <combo_box.item label="Oryginał" name="Original" /> + <combo_box.item label="Kopia" name="Copy"/> + <combo_box.item label="Zawartość" name="Contents"/> + <combo_box.item label="Oryginał" name="Original"/> </combo_box> <spinner name="Edit Cost" label="Cena: L$" /> </panel> diff --git a/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml index 5499762748..d9c6b2d55d 100755 --- a/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml @@ -1,71 +1,35 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="object properties" title="Profil obiektu"> - <panel.string name="text deed continued"> - Przypisz - </panel.string> - <panel.string name="text deed"> - Przypisz - </panel.string> - <panel.string name="text modify info 1"> - Możesz modyfikować ten obiekt - </panel.string> - <panel.string name="text modify info 2"> - Możesz modyfikować te obiekty - </panel.string> - <panel.string name="text modify info 3"> - Nie możesz modyfikować tego obiektu - </panel.string> - <panel.string name="text modify info 4"> - Nie możesz modyfikować tych obiektów - </panel.string> + <panel.string name="text deed continued">Przypisz</panel.string> + <panel.string name="text deed">Przypisz</panel.string> + <panel.string name="text modify info 1">Możesz modyfikować ten obiekt</panel.string> + <panel.string name="text modify info 2">Możesz modyfikować te obiekty</panel.string> + <panel.string name="text modify info 3">Nie możesz modyfikować tego obiektu</panel.string> + <panel.string name="text modify info 4">Nie możesz modyfikować tych obiektów</panel.string> + <panel.string name="text modify warning">Ten obiekt ma części zgrupowane</panel.string> + <panel.string name="Cost Default">Cena: L$</panel.string> + <panel.string name="Cost Total">Suma: L$</panel.string> + <panel.string name="Cost Per Unit">Cena za jednostkę: L$</panel.string> + <panel.string name="Cost Mixed">Cena mieszana</panel.string> + <panel.string name="Sale Mixed">Sprzedaż mieszana</panel.string> <panel.string name="text modify info 5"> Nie możesz modyfikować tego obiektu przez granicę regionu </panel.string> <panel.string name="text modify info 6"> Nie możesz modyfikować tych obiektów przez granicę regionu </panel.string> - <panel.string name="text modify warning"> - Ten obiekt ma części zgrupowane - </panel.string> - <panel.string name="Cost Default"> - Cena: L$ - </panel.string> - <panel.string name="Cost Total"> - Suma: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Cena za jedn.: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Cena mieszana - </panel.string> - <panel.string name="Sale Mixed"> - Sprzedaż mieszana - </panel.string> <text name="title" value="Profil obiektu" /> <text name="where" value="(W świecie)" /> <panel name="properties_panel"> - <text name="Name:"> - Nazwa: - </text> - <text name="Description:"> - Opis: - </text> - <text name="CreatorNameLabel"> - Twórca: - </text> - <text name="Owner:"> - Właściciel: - </text> - <text name="Group_label"> - Grupa: - </text> + <text name="Name:">Nazwa:</text> + <text name="Description:">Opis:</text> + <text name="CreatorNameLabel">Twórca:</text> + <text name="Owner:">Właściciel:</text> + <text name="Group_label">Grupa:</text> <button name="button set group" tool_tip="Wybierz grupę by udostępnić jej prawa do tego obiektu" /> <name_box initial_value="Ładowanie..." name="Group Name Proxy" /> <button label="Przypisz" label_selected="Przypisz" name="button deed" tool_tip="Opcja przypisania udostępnia obiektowi takie same prawa jak zostały zaznaczone dla następnego właściciela. Obiekty udostępnione grupie mogą zostać przypisane dla grupy przez oficera grupy." /> - <text name="label click action"> - Po kliku: - </text> + <text name="label click action">Kliknij by:</text> <combo_box name="clickaction"> <combo_box.item label="Dotknij (domyślne)" name="Touch/grab(default)" /> <combo_box.item label="Usiądź na obiekcie" name="Sitonobject" /> @@ -75,21 +39,13 @@ <combo_box.item label="Przybliż" name="Zoom" /> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Możesz modyfikować ten obiekt - </text> - <text name="Anyone can:"> - Każdy: - </text> + <text name="perm_modify">Możesz modyfikować ten obiekt</text> + <text name="Anyone can:">Każdy:</text> <check_box label="Kopiowanie" name="checkbox allow everyone copy" /> <check_box label="Przesuwanie" name="checkbox allow everyone move" /> - <text name="GroupLabel"> - Grupa: - </text> + <text name="GroupLabel">Grupie:</text> <check_box label="Udostępnij" name="checkbox share with group" tool_tip="Pozwól wszystkim osobom z ustawionej grupy na dzielenie prawa do modyfikacji dla tego obiektu. Musisz przypisać obiekt grupie aby aktywować ograniczenia wynikające z funkcji." /> - <text name="NextOwnerLabel"> - Nast. właściciel: - </text> + <text name="NextOwnerLabel">Następny Właściciel:</text> <check_box label="Modyfikacja" name="checkbox next owner can modify" /> <check_box label="Kopiowanie" name="checkbox next owner can copy" /> <check_box label="Transferowanie" name="checkbox next owner can transfer" tool_tip="Następny właściciel może sprzedać lub oddać ten obiekt" /> @@ -102,9 +58,12 @@ </combo_box> <spinner name="Edit Cost" label="Cena: L$" /> <check_box label="Pokaż w wyszukiwarce" name="search_check" tool_tip="Udostępnij widzialność tego obiektu w wyszukiwarce" /> - <text name="pathfinding_attributes_label"> - Atrybuty odnajd. ścieżek: - </text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Otwórz" name="open_btn" /> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index 7dfb3ccc2b..7801d50457 100755 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -1,10 +1,17 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- This file contains strings that used to be hardcoded in the source. + It is only for those strings which do not belong in a floater. + For example, the strings used in avatar chat bubbles, and strings + that are returned from one component and may appear in many places--> <strings> + <string name="CAPITALIZED_APP_NAME"> + SECOND LIFE + </string> <string name="SUPPORT_SITE"> Portal Pomocy Second Life </string> <string name="StartupDetectingHardware"> - Detekcja konfiguracji sprzętowej... + Wykrywanie dysku twardego... </string> <string name="StartupLoading"> Ładowanie [APP_NAME]... @@ -16,45 +23,7 @@ Inicjowanie bufora danych tekstur... </string> <string name="StartupInitializingVFS"> - Inicjowanie wirtualnego systemu plików... - </string> - <string name="StartupRequireDriverUpdate"> - Nie można zainicjować grafiki. Zaktualizuj sterowniki! - </string> - <string name="AboutCompiler"> - Zbudowane za pomocą [COMPILER] w wersji [COMPILER_VERSION] - </string> - <string name="AboutPosition"> -Położenie [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] w [REGION] zlokalizowanym w <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(koordynaty globalne [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </string> - <string name="AboutSystem"> -Procesor (CPU): [CPU] -Pamięć (Memory): [MEMORY_MB] MB -Wersja OS (OS Version): [OS_VERSION] -Sprzedawca karty graficznej (Graphics Card Vendor): [GRAPHICS_CARD_VENDOR] -Karta graficzna (Graphics Card): [GRAPHICS_CARD] - </string> - <string name="AboutDriver"> - Sterownik karty graficznej Windows (Driver Version): [GRAPHICS_DRIVER_VERSION] - </string> - <string name="AboutLibs"> -Wersja OpenGL: [OPENGL_VERSION] - -Wersja libcurl: [LIBCURL_VERSION] -Wersja dekodera J2C: [J2C_VERSION] -Wersja sterownika dźwięku (Audio Driver): [AUDIO_DRIVER_VERSION] -Wersja Qt Webkit: [QT_WEBKIT_VERSION] -Wersja serwera głosu (Voice Server): [VOICE_VERSION] - </string> - <string name="AboutTraffic"> - Pakiety utracone: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </string> - <string name="ErrorFetchingServerReleaseNotesURL"> - Błąd podczas pobierania informacji o wydaniu. + Inicjowanie VFS... </string> <string name="ProgressRestoring"> Przywracanie... @@ -62,11 +31,8 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] <string name="ProgressChangingResolution"> Zmiana rozdzielczości... </string> - <string name="Fullbright"> - Pełna jasność - </string> <string name="LoginInProgress"> - Trwa logowanie. [APP_NAME] może wydawać się zawieszony. Proszę czekać. + Trwa logowanie. [APP_NAME] Proszę czekać. </string> <string name="LoginInProgressNoFrozen"> Logowanie... @@ -75,10 +41,10 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] Autoryzacja </string> <string name="LoginMaintenance"> - Przeprowadzanie konserwacji konta... + W trakcie obslugi konta... </string> <string name="LoginAttempt"> - Poprzednie logowanie nie udało się. Logowanie ponowne, próba [NUMBER] + Poprzednie logowanie nie udalo się. Logowanie, próba numer [NUMBER] </string> <string name="LoginPrecaching"> Ładowanie świata... @@ -99,26 +65,20 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] Przetwarzanie odpowiedzi... </string> <string name="LoginInitializingWorld"> - Inicjalizacja świata... + Inicjacja świata... </string> <string name="LoginDecodingImages"> Przetwarzanie obrazów... </string> <string name="LoginInitializingQuicktime"> - Inicjalizacja QuickTime... + Inicjacja QuickTime... </string> <string name="LoginQuicktimeNotFound"> - QuickTime nie został znaleziony - inicjalizacja przerwana. + QuickTime nie został znaleziony - inicjacja przerwana. </string> <string name="LoginQuicktimeOK"> QuickTime zainicjowany. </string> - <string name="LoginRequestSeedCapGrant"> - Sprawdzanie możliwości regionu... - </string> - <string name="LoginRetrySeedCapGrant"> - Sprawdzanie możliwości regionu, próba [NUMBER]... - </string> <string name="LoginWaitingForRegionHandshake"> Oczekiwanie na połączenie z regionem... </string> @@ -126,25 +86,25 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] Łączenie z regionem... </string> <string name="LoginDownloadingClothing"> - Pobieranie ubrania... + Ładowanie ubrania... </string> <string name="InvalidCertificate"> - Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem siatki. + Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem Grida. </string> <string name="CertInvalidHostname"> - Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta siatki. + Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta Grida. </string> <string name="CertExpired"> - Termin ważności certyfikatu zwróconego przez siatkę minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem siatki. + Termin ważności certyfikatu zwróconego przez Grid minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem Grida. </string> <string name="CertKeyUsage"> - Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem siatki. + Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem Grida. </string> <string name="CertBasicConstraints"> - Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem siatki. + Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem Grida. </string> <string name="CertInvalidSignature"> - Podpis certyfikatu zwrócony przez siatkę nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem siatki. + Podpis certyfikatu zwrócony przez Grid nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem Grida. </string> <string name="LoginFailedNoNetwork"> Błąd sieci: Brak połączenia z siecią, sprawdź status swojego połączenia internetowego. @@ -153,149 +113,16 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] Logowanie nie powiodło się. </string> <string name="Quit"> - Wyłącz - </string> - <string name="LoginFailedViewerNotPermitted"> - Przeglądarka używana przez Ciebie nie ma już dostępu do Second Life. Proszę przejść na poniższą stronę i pobrać nową: -http://secondlife.com/download - -Więcej informacji w naszym FAQ: -http://secondlife.com/viewer-access-faq - </string> - <string name="LoginIntermediateOptionalUpdateAvailable"> - Opcjonalna aktualizacja jest dostępna: [VERSION]. - </string> - <string name="LoginFailedRequiredUpdate"> - Wymagana aktualizacja: [VERSION]. - </string> - <string name="LoginFailedAlreadyLoggedIn"> - Ten Rezydent jest już zalogowany. - </string> - <string name="LoginFailedAuthenticationFailed"> - Przepraszamy, ale nie możemy Cię zalogować. -Upewnij się, że wpisano poprawnie: - * Login (np. bobsmith12 czy steller.sunshine) - * Hasło -Sprawdź też, czy klawisz Caps Lock nie jest wciśnięty. - </string> - <string name="LoginFailedPasswordChanged"> - W celu zwiększenia bezpieczeństwa Twoje hasło zostało zmienione. -Przejdź na stronę swojego konta: http://secondlife.com/password -i odpowiedz na pytanie zabezpieczające, aby zresetować hasło. -Bardzo przepraszamy za utrudnienia. - </string> - <string name="LoginFailedPasswordReset"> - Wprowadziliśmy pewne zmiany do systemu, które wymagają zresetowania hasła. -Przejdź na stronę swojego konta: http://secondlife.com/password -i odpowiedz na pytanie zabezpieczające, aby zresetować hasło. -Bardzo przepraszamy za utrudnienia. - </string> - <string name="LoginFailedEmployeesOnly"> - Second Life jest tymczasowo niedostępne, bo trwa konserwacja. -Logować się mogą w tej chwili tylko pracownicy Linden Lab. -Odwiedź www.secondlife.com/status i śledź wiadomości. - </string> - <string name="LoginFailedPremiumOnly"> - Logowanie do Second Life jest tymczasowo ograniczone aby mieć pewność, że osoby już zalogowane nie stracą na wydajności. - -Osoby posiadające darmowe konta nie mogą się teraz zalogować, aby ludzie posiadający te płatne mogli to zrobić. - </string> - <string name="LoginFailedComputerProhibited"> - Second Life odmawia dostępu temu komputerowi. -Jeśli myślisz, że to błąd skontaktuj się z -support@secondlife.com - </string> - <string name="LoginFailedAcountSuspended"> - Twoje konto jest niedostępne do -[TIME] czasu pacyficznego. - </string> - <string name="LoginFailedAccountDisabled"> - Nie jesteśmy w stanie na tą chwilę wykonać Twojego żądania. -Aby uzyskać pomoc skontaktuj się ze wsparciem: http://secondlife.com/support -Jeśli nie możesz zmienić swojego hasła zadzwoń pod numer (866) 476-9763. - </string> - <string name="LoginFailedTransformError"> - Podczas logowania wykryto niespójność danych. -Skontaktuj się z nami: support@secondlife.com - </string> - <string name="LoginFailedAccountMaintenance"> - Twoje konto jest w trakcie drobnych konserwacji. -Nie będzie ono dostępne do -[TIME] czasu pacyficznego. -Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com - </string> - <string name="LoginFailedPendingLogoutFault"> - Prośba o wylogowanie spotkała się z błędem ze strony symulatora. - </string> - <string name="LoginFailedPendingLogout"> - System w tej chwili Cię wylogowywuje. -Twoje konto będzie niedostępne do -[TIME] czasu pacyficznego. - </string> - <string name="LoginFailedUnableToCreateSession"> - Nie można utworzyć poprawnej sesji. - </string> - <string name="LoginFailedUnableToConnectToSimulator"> - Nie można połączyć się z symulatorem. - </string> - <string name="LoginFailedRestrictedHours"> - Twoje konto może się łączyć z Second Life tylko -pomiędzy [START] i [END] czasu pacyficznego. -Wróć proszę w tych godzinach. -Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com - </string> - <string name="LoginFailedIncorrectParameters"> - Nieprawidłowe parametry. -Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com - </string> - <string name="LoginFailedFirstNameNotAlphanumeric"> - Parametr imienia musi być alfanumeryczny. -Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com - </string> - <string name="LoginFailedLastNameNotAlphanumeric"> - Parametr nazwiska musi być alfanumeryczny. -Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com - </string> - <string name="LogoutFailedRegionGoingOffline"> - Region przechodzi w tryb offline. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutFailedAgentNotInRegion"> - Rezydent nie znajduje się w regionie. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutFailedPendingLogin"> - Region był w trakcie logowania innej sesji. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutFailedLoggingOut"> - Region był w trakcie wylogowywania poprzedniej sesji. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutFailedStillLoggingOut"> - Region ciągle wylogowywuje poprzednią sesję. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutSucceeded"> - Region wylogował ostatnią sesję. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LogoutFailedLogoutBegun"> - Region rozpoczął proces wylogowywania. -Spróbuj zalogować się ponownie za minutę. - </string> - <string name="LoginFailedLoggingOutSession"> - System rozpoczął wylogowywanie Twojej ostatniej sesji. -Spróbuj zalogować się ponownie za minutę. + Wyłącz program </string> <string name="AgentLostConnection"> Ten region może mieć problemy. Sprawdź podłączenie do Internetu. </string> <string name="SavingSettings"> - Zachowywanie ustawień... + Zachowanie ustawień... </string> <string name="LoggingOut"> - Wylogowywanie... + Trwa wylogowanie... </string> <string name="ShuttingDown"> Zamykanie... @@ -307,97 +134,13 @@ Spróbuj zalogować się ponownie za minutę. Region jest niedostępny. </string> <string name="TestingDisconnect"> - Testowanie rozłączenia klienta - </string> - <string name="SocialFacebookConnecting"> - Łączenie z Facebookiem... - </string> - <string name="SocialFacebookPosting"> - Wysyłanie... - </string> - <string name="SocialFacebookDisconnecting"> - Rozłączanie z Facebookiem... - </string> - <string name="SocialFacebookErrorConnecting"> - Problem z łączeniem z Facebookiem - </string> - <string name="SocialFacebookErrorPosting"> - Problem z wysyłaniem na Facebooka - </string> - <string name="SocialFacebookErrorDisconnecting"> - Problem z rozłączaniem z Facebookiem - </string> - <string name="SocialFlickrConnecting"> - Łączenie z Flickr... - </string> - <string name="SocialFlickrPosting"> - Wysyłanie... - </string> - <string name="SocialFlickrDisconnecting"> - Rozłączanie z Flickr... - </string> - <string name="SocialFlickrErrorConnecting"> - Problem z łączeniem z Flickr - </string> - <string name="SocialFlickrErrorPosting"> - Problem z wysyłaniem na Flickr - </string> - <string name="SocialFlickrErrorDisconnecting"> - Problem z rozłączaniem z Flickr - </string> - <string name="SocialTwitterConnecting"> - Łączenie z Twitterem... - </string> - <string name="SocialTwitterPosting"> - Wysyłanie... - </string> - <string name="SocialTwitterDisconnecting"> - Rozłączanie z Twitterem... - </string> - <string name="SocialTwitterErrorConnecting"> - Problem z łączeniem z Twitterem - </string> - <string name="SocialTwitterErrorPosting"> - Problem z wysyłaniem na Twittera - </string> - <string name="SocialTwitterErrorDisconnecting"> - Problem z rozłączaniem z Twittera - </string> - <string name="BlackAndWhite"> - Czerń i biel - </string> - <string name="Colors1970"> - Kolory lat 1970 - </string> - <string name="Intense"> - Intensywne - </string> - <string name="Newspaper"> - Papier gazetowy - </string> - <string name="Spotlight"> - Reflektor - </string> - <string name="Video"> - Wideo - </string> - <string name="Autocontrast"> - Autokontrast - </string> - <string name="LensFlare"> - Flara - </string> - <string name="Miniature"> - Miniatura - </string> - <string name="Toycamera"> - Zabawkowy aparat + Nastąpiło rozłączenie testowania klienta </string> <string name="TooltipPerson"> Osoba </string> <string name="TooltipNoName"> - (bez nazwy) + (brak nazwy) </string> <string name="TooltipOwner"> Właściciel: @@ -409,7 +152,7 @@ Spróbuj zalogować się ponownie za minutę. (Grupa) </string> <string name="TooltipForSaleL$"> - Na sprzedaż: [AMOUNT]L$ + Na sprzedaż: L$[AMOUNT] </string> <string name="TooltipFlagGroupBuild"> Budowanie grupowe @@ -433,44 +176,53 @@ Spróbuj zalogować się ponownie za minutę. Skrypty zabronione </string> <string name="TooltipLand"> - Działka: + Posiadłość: </string> <string name="TooltipMustSingleDrop"> Tylko pojedynczy obiekt może być tutaj przeciągnięty </string> - <string name="TooltipTooManyWearables"> - Nie możesz założyć folderu, który zawiera więcej niż [AMOUNT] przedmiotów. Możesz zmienić ten limit w Zaawansowane > Pokaż ustawienia debugowania > WearFolderLimit. - </string> - <string name="TooltipPrice" value="[AMOUNT]L$: "/> + <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - Nie możesz rezzować obiektów w skrzynce nadawczej kupca - </string> - <string name="TooltipOutboxNoTransfer"> - Jeden lub kilka z tych obiektów nie może zostać sprzedany / przetransferowany. - </string> - <string name="TooltipOutboxNotInInventory"> - Twoja skrzynka nadawcza kupca akceptuje tylko przedmioty bezpośrednio z Twojej Szafy. + Nie możesz rezzować obiektów z folderu rzeczy na Marketplace </string> <string name="TooltipOutboxWorn"> - Nie możesz umieszczać w skrzynce nadawczej kupca przedmiotów, które masz na sobie założone - </string> - <string name="TooltipOutboxCallingCard"> - Nie możesz umieszczać wizytówek w skrzynce nadawczej kupca + Nie możesz umieszczać na Marketplace przedmiotów, które masz na sobie założone </string> <string name="TooltipOutboxFolderLevels"> - Głębokość zagnieżdżonych folderów przekracza 3 + Głębokość zagnieżdżonych folderów przekracza [AMOUNT]. Zmniejsz ilość zagdzieżdżeń; Spakuj przedmioty w pudełka, jeśli to pomoże. </string> <string name="TooltipOutboxTooManyFolders"> - Ilość podfolderów w folderze najwyższego poziomu przekracza 20 + Ilość podfolderów w folderze najwyższego poziomu przekracza [AMOUNT]. Zmniejsz ilość folderów; Spakuj przedmioty w pudełka, jeśli to pomoże. </string> <string name="TooltipOutboxTooManyObjects"> - Ilość pozycji w folderze najwyższego poziomu przekracza 200 + Ilość pozycji w folderze najwyższego poziomu przekracza [AMOUNT]. Jeśli chcesz sprzedać więcej, niż [AMOUNT] przedmiotów jako jedną pozycję, to musisz je spakować w pudełka. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Ilość przedmiotów w folderze magazynowym przekracza [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Możesz przenosić foldery lub przedmioty wyłącznie do karty WSZYSTKO. Wybierz teraz tą kartę i spróbuj ponownie. + </string> + <string name="TooltipOutboxNoTransfer"> + Jeden lub kilka z tych obiektów nie może zostać sprzedany / przetransferowany + </string> + <string name="TooltipOutboxNotInInventory"> + Marketplace akceptuje tylko przedmioty bezpośrednio z Twojej Szafy. + </string> + <string name="TooltipOutboxLinked"> + Nie możesz sprzedać zlinkowanych folderów lub przedmiotów na Marketplace </string> - <string name="TooltipDragOntoOwnChild"> - Nie możesz przenieść folderu do jego obiektu podrzędnego + <string name="TooltipOutboxCallingCard"> + Nie możesz umieszczać wizytówek na Marketplace + </string> + <string name="TooltipOutboxDragActive"> + Nie można przenieść wylistowanego przedmiotu + </string> + <string name="TooltipOutboxCannotMoveRoot"> + Nie możesz przenieść folderu głównego przedmiotów na Marketplace </string> - <string name="TooltipDragOntoSelf"> - Nie możesz przenieść folderu do wewnątrz niego samego + <string name="TooltipOutboxMixedStock"> + Wszystkie przedmioty w folderze magazynowym muszą mieć ten sam typ i zezwolenia </string> <string name="TooltipHttpUrl"> Kliknij aby zobaczyć zawartość tej strony internetowej @@ -479,16 +231,16 @@ Spróbuj zalogować się ponownie za minutę. Kliknij aby zobaczyć szczegóły tego miejsca </string> <string name="TooltipAgentUrl"> - Kliknij aby zobaczyć profil Rezydenta + Kliknij aby zobaczyc profil Rezydenta </string> <string name="TooltipAgentInspect"> Dowiedz się więcej o tym Rezydencie </string> <string name="TooltipAgentMute"> - Kliknij aby wyciszyć tego Rezydenta + Kliknij aby wyciszyc tego Rezydenta </string> <string name="TooltipAgentUnmute"> - Kliknij aby cofnąć wyciszenie tego Rezydenta + Kliknij aby cofnąć zablokowanie tego Rezydenta </string> <string name="TooltipAgentIM"> Kliknij aby wysłać wiadomość IM do tego Rezydenta @@ -497,7 +249,7 @@ Spróbuj zalogować się ponownie za minutę. Kliknij aby zapłacić temu Rezydentowi </string> <string name="TooltipAgentOfferTeleport"> - Kliknij aby zaoferować teleport temu Rezydentowi + Kliknij aby oferować teleport temu Rezydentowi </string> <string name="TooltipAgentRequestFriend"> Kliknij aby wysłać temu Rezydentowi zaproszenie do Znajomych @@ -506,13 +258,13 @@ Spróbuj zalogować się ponownie za minutę. Kliknij aby zobaczyć opis tej grupy </string> <string name="TooltipEventUrl"> - Kliknij aby zobaczyć szczegóły tego wydarzenia + Klinij aby zobaczyć szczegóły tego wydarzenia </string> <string name="TooltipClassifiedUrl"> Kliknij aby zobaczyć tę reklamę </string> <string name="TooltipParcelUrl"> - Kliknij aby zobaczyć opis tej działki + Kliknij aby zobaczyć opis tej posiadłości </string> <string name="TooltipTeleportUrl"> Kliknij aby teleportować się do tego miejsca @@ -524,9 +276,9 @@ Spróbuj zalogować się ponownie za minutę. Kliknij aby zobaczyć to miejsce na mapie </string> <string name="TooltipSLAPP"> - Kliknij aby uruchomić komendę secondlife:// + Kliknij aby uruchomić secondlife:// command </string> - <string name="CurrentURL" value=" Obecny URL: [CurrentURL]"/> + <string name="CurrentURL" value=" Obecny Adres: [CurrentURL]"/> <string name="SLurlLabelTeleport"> Teleportuj do </string> @@ -537,22 +289,22 @@ Spróbuj zalogować się ponownie za minutę. Zablokuj </string> <string name="SLappAgentUnmute"> - Odblokuj + Cofnij zablokowanie + </string> + <string name="SLappAgentIM"> + IM </string> <string name="SLappAgentPay"> Zapłać </string> <string name="SLappAgentOfferTeleport"> - Oferta teleportu dla + Teleportuj do </string> <string name="SLappAgentRequestFriend"> Oferta znajomości </string> - <string name="SLappAgentRemoveFriend"> - Usunięcie znajomego - </string> <string name="BUTTON_CLOSE_DARWIN"> - Zamknij (⌘W) + Zamknij (⌘W) </string> <string name="BUTTON_CLOSE_WIN"> Zamknij (Ctrl+W) @@ -561,7 +313,7 @@ Spróbuj zalogować się ponownie za minutę. Zamknij </string> <string name="BUTTON_RESTORE"> - Przywróć + Odzyskaj </string> <string name="BUTTON_MINIMIZE"> Minimalizuj @@ -579,16 +331,19 @@ Spróbuj zalogować się ponownie za minutę. Wyszukiwanie... </string> <string name="NoneFound"> - Nie nie znaleziono. + Nie odnaleziono. </string> <string name="RetrievingData"> - Pobieranie... + Odzyskiwanie danych... </string> <string name="ReleaseNotes"> - Informacje o wydaniu + O tej wersji + </string> + <string name="RELEASE_NOTES_BASE_URL"> + http://wiki.secondlife.com/wiki/Release_Notes/ </string> <string name="LoadingData"> - Wczytywanie... + Ładowanie danych... </string> <string name="AvatarNameNobody"> (brak danych) @@ -596,9 +351,6 @@ Spróbuj zalogować się ponownie za minutę. <string name="AvatarNameWaiting"> (ładowanie) </string> - <string name="AvatarNameMultiple"> - (kilka) - </string> <string name="GroupNameNone"> (brak danych) </string> @@ -606,7 +358,7 @@ Spróbuj zalogować się ponownie za minutę. Avaline [ORDER] </string> <string name="AssetErrorNone"> - Brak błędu + OK </string> <string name="AssetErrorRequestFailed"> Pobieranie danych: błąd @@ -657,10 +409,10 @@ Spróbuj zalogować się ponownie za minutę. ubrania </string> <string name="object"> - obiekt + obiek </string> <string name="note card"> - noty + notatki </string> <string name="folder"> folder @@ -684,7 +436,7 @@ Spróbuj zalogować się ponownie za minutę. zdjęcia </string> <string name="lost and found"> - Zagubione i odnalezione + Zgubione i odnalezione </string> <string name="targa image"> obraz typu targa @@ -699,29 +451,26 @@ Spróbuj zalogować się ponownie za minutę. animacja </string> <string name="gesture"> - gest + gesturka </string> <string name="simstate"> - stan sima + simstate </string> <string name="favorite"> ulubione </string> + <string name="symbolic link"> + link + </string> <string name="symbolic folder link"> link folderu </string> - <string name="mesh"> - mesz - </string> <string name="AvatarEditingAppearance"> - (Edycja wyglądu) + (Edycja Wygląd) </string> <string name="AvatarAway"> Śpi </string> - <string name="AvatarDoNotDisturb"> - Zajęty - </string> <string name="AvatarMuted"> Wyciszony </string> @@ -801,7 +550,7 @@ Spróbuj zalogować się ponownie za minutę. Udało się! </string> <string name="anim_yoga_float"> - Joga + Yoga </string> <string name="anim_express_frown"> Grymas @@ -876,7 +625,7 @@ Spróbuj zalogować się ponownie za minutę. Smutek </string> <string name="anim_salute"> - Salutuj + Pozdrów </string> <string name="anim_shout"> Krzycz @@ -932,18 +681,6 @@ Spróbuj zalogować się ponownie za minutę. <string name="anim_yes_head"> Tak </string> - <string name="multiple_textures"> - Wiele - </string> - <string name="use_texture"> - Użyj tekstury - </string> - <string name="manip_hint1"> - Przesuń kursor nad linijkę - </string> - <string name="manip_hint2"> - by przyciągać do siatki - </string> <string name="texture_loading"> Ładowanie... </string> @@ -951,22 +688,19 @@ Spróbuj zalogować się ponownie za minutę. Mapa Świata jest niedostępna </string> <string name="worldmap_item_tooltip_format"> - [AREA] m² [PRICE]L$ ([SQMPRICE] L$/m²) + [AREA] m² L$[PRICE] </string> <string name="worldmap_results_none_found"> - Miejsce nie zostało odnalezione. + Miejsce nieodnalezione. + </string> + <string name="Ok"> + OK </string> <string name="Premature end of file"> - Przedwczesny koniec pliku + Przedwczesna końcówka pliku </string> <string name="ST_NO_JOINT"> - Nie można znaleźć Podstawy lub Stawu. - </string> - <string name="NearbyChatTitle"> - Czat lokalny - </string> - <string name="NearbyChatLabel"> - (Czat lokalny) + PODSTAWA lub ŁĄCZNIK nieodnaleziona/y </string> <string name="whisper"> szepcze: @@ -975,13 +709,13 @@ Spróbuj zalogować się ponownie za minutę. krzyczy: </string> <string name="ringing"> - Łączenie z serwerem rozmów głosowych... + Łączenie z rozmowami głosem w Świecie... </string> <string name="connected"> Połączenie uzyskane. </string> <string name="unavailable"> - Niestety, rozmowy głosowe są niedozwolone w tym miejscu. + Niestety, rozmowy głosem są niedozwolone w tym miejscu. </string> <string name="hang_up"> Połączenie rozmowy utracone. @@ -990,76 +724,53 @@ Spróbuj zalogować się ponownie za minutę. Przełączanie do pobliskich rozmów głosowych </string> <string name="ScriptQuestionCautionChatGranted"> - '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] w [REGIONPOS], dostał zezwolenie na: [PERMISSIONS]. + '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] [REGIONPOS], pozwala Ci na: [PERMISSIONS]. </string> <string name="ScriptQuestionCautionChatDenied"> - '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] w [REGIONPOS], nie dostał zezwolenia na: [PERMISSIONS]. - </string> - <string name="AdditionalPermissionsRequestHeader"> - Jeśli zezwolisz na dostęp do konta, to obiekt będzie mógł także: + '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] [REGIONPOS], nie pozwala Ci na: [PERMISSIONS]. </string> <string name="ScriptTakeMoney"> - Zabierać Lindeny (L$) od Ciebie + Zabiera Lindeny (L$) od Ciebie </string> <string name="ActOnControlInputs"> - Używać klawiszy sterowania + Używaj klawiszy sterowania </string> <string name="RemapControlInputs"> - Zmienić klawisze sterowania + Zmień klawisze sterowania </string> <string name="AnimateYourAvatar"> - Animować Awatara + Animuj Awatara </string> <string name="AttachToYourAvatar"> - Dołączać do Awatara + Dołącz do Awatara </string> <string name="ReleaseOwnership"> - Usunąć prawo własności (zmienić na publiczne) + Usuń prawo własności (zmień na publiczne) </string> <string name="LinkAndDelink"> - Łączyć/rozłączać z innymi obiektami + Łącz / rozłącz z innymi obiektami </string> <string name="AddAndRemoveJoints"> - Dodawać/usuwać połączenia z innymi obiektami + Dodaj / usuń połączenia z innymi obiektami </string> <string name="ChangePermissions"> - Zmieniać zezwolenia + Ustaw zezwolenia </string> <string name="TrackYourCamera"> - Śledzić kamerę + Chodź za kamerą </string> <string name="ControlYourCamera"> - Kontrolować kamerę - </string> - <string name="TeleportYourAgent"> - Teleportować Cię - </string> - <string name="ManageEstateSilently"> - Zarządzać Twoimi majątkami bez powiadomień - </string> - <string name="ChangeYourDefaultAnimations"> - Zmieniać Twoje domyślne animacje - </string> - <string name="NotConnected"> - Brak połączenia - </string> - <string name="AgentNameSubst"> - (Ty) + Kontroluj kamerę </string> - <string name="JoinAnExperience"> - Rozpocznij przygodę + <string name="JoinAnExperience"/><!-- intentionally blank --> + <string name="SIM_ACCESS_PG"> + 'General' </string> - <string name="SilentlyManageEstateAccess"> - Wyciszyć powiadomienia o zmianach zezwoleń Majątku + <string name="SIM_ACCESS_MATURE"> + 'Moderate' </string> - <string name="OverrideYourAnimations"> - Zastąpić animacje Twojego awatara - </string> - <string name="ScriptReturnObjects"> - Zwróć przedmioty w swoim imieniu - </string> - <string name="UnknownScriptPermission"> - (nieznane)! + <string name="SIM_ACCESS_ADULT"> + 'Adult' </string> <string name="SIM_ACCESS_DOWN"> Niedostępny @@ -1068,16 +779,19 @@ Spróbuj zalogować się ponownie za minutę. Nieznany </string> <string name="land_type_unknown"> - (nieznany) + (nieznane) </string> <string name="Estate / Full Region"> - Majątek / Pełny Region + Majątek / Region </string> <string name="Estate / Homestead"> - Majątek / Homestead + Estate / Homestead + </string> + <string name="Mainland / Homestead"> + Mainland / Homestead </string> <string name="Mainland / Full Region"> - Mainland / Pełny Region + Mainland / Region </string> <string name="all_files"> Wszystkie pliki @@ -1122,7 +836,7 @@ Spróbuj zalogować się ponownie za minutę. Plik RAW </string> <string name="compressed_image_files"> - Obrazy skompresowane + Obrazy skomprensowane </string> <string name="load_files"> Załaduj pliki @@ -1130,17 +844,11 @@ Spróbuj zalogować się ponownie za minutę. <string name="choose_the_directory"> Wybierz katalog </string> - <string name="script_files"> - Skrypty - </string> - <string name="dictionary_files"> - Słowniki - </string> <string name="shape"> Kształt </string> <string name="skin"> - Skóra + Skórka </string> <string name="hair"> Włosy @@ -1149,7 +857,7 @@ Spróbuj zalogować się ponownie za minutę. Oczy </string> <string name="shirt"> - Koszula + Koszulka </string> <string name="pants"> Spodnie @@ -1167,7 +875,7 @@ Spróbuj zalogować się ponownie za minutę. Rękawiczki </string> <string name="undershirt"> - Podkoszulek + Podkoszulka </string> <string name="underpants"> Bielizna @@ -1175,6 +883,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="skirt"> Spódnica </string> + <string name="alpha"> + Ubranie Alpha + </string> <string name="tattoo"> Tatuaż </string> @@ -1182,10 +893,10 @@ Spróbuj zalogować się ponownie za minutę. Fizyka </string> <string name="invalid"> - nieprawidłowy + niewłaściwa funkcja </string> <string name="none"> - brak + żadne </string> <string name="shirt_not_worn"> Koszula nie jest założona @@ -1215,22 +926,22 @@ Spróbuj zalogować się ponownie za minutę. Spódnica nie jest założona </string> <string name="alpha_not_worn"> - Alpha nie jest założona + Alpha nie jest założone </string> <string name="tattoo_not_worn"> Tatuaż nie jest założony </string> <string name="physics_not_worn"> - Fizyka nie jest założona + Fizyka niezałożona </string> <string name="invalid_not_worn"> - nieprawidłowy + nieważny </string> <string name="create_new_shape"> Nowy kształt </string> <string name="create_new_skin"> - Nowa skóra + Nowa skórka </string> <string name="create_new_hair"> Nowe włosy @@ -1272,16 +983,19 @@ Spróbuj zalogować się ponownie za minutę. Nowy tatuaż </string> <string name="create_new_physics"> - Nową fizyka + Stwórz nową fizykę </string> <string name="create_new_invalid"> - nieprawidłowy + nieważny </string> <string name="NewWearable"> Nowa [WEARABLE_ITEM] </string> <string name="next"> - Dalej + Następne + </string> + <string name="ok"> + OK </string> <string name="GroupNotifyGroupNotice"> Ogłoszenie grupowe @@ -1308,7 +1022,7 @@ Spróbuj zalogować się ponownie za minutę. Oferta teleportacji </string> <string name="StartUpNotifications"> - Pojawiły się nowe powiadomienia kiedy byłeś/aś z dala od klawiatury... + Nowe zawiadomienia zostały wysłane kiedy byłeś/byłaś w trybie oddalenia... </string> <string name="OverflowInfoChannelString"> Masz jeszcze [%d] powiadomień @@ -1341,119 +1055,151 @@ Spróbuj zalogować się ponownie za minutę. Wysoka </string> <string name="LeaveMouselook"> - Naciśnij ESC aby powrócić do trybu widoku normalnego + Wybierz ESC aby powrócić do trybu widoku normalnego </string> <string name="InventoryNoMatchingItems"> - Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Wyszukiwarki]. + Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj]. </string> <string name="PlacesNoMatchingItems"> - Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Wyszukiwarki]. + Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Szukaj]. </string> <string name="FavoritesNoMatchingItems"> Przeciągnij landmark tutaj aby dodać go do swoich ulubionych. </string> + <string name="MarketplaceNoMatchingItems"> + Niczego nie znaleziono. Sprawdź pisownię i spróbuj ponownie. + </string> <string name="InventoryNoTexture"> - Nie posiadasz kopii tej tekstury w swojej Szafie. + Nie posiadasz kopii tej tekstury w Twojej Szafie. </string> - <string name="InventoryInboxNoItems"> - Przedmioty zakupione na Marketplace pojawią się tutaj. Możesz następnie przeciągnąć je do głównej części Szafy. + <string name="InventoryMarketplaceError"> + Ta funkcjonalność jest obecnie w fazie Beta. Dodaj proszę swoje imię do tego [http://goo.gl/forms/FCQ7UXkakz formularza Google] (w języku angielskim), jeśli chcesz wziąć udział w programie Beta i pomóc. </string> - <string name="InventoryOutboxNotMerchantTitle"> - Każdy może sprzedawać przedmioty na Marketplace. + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Twój folder przedmiotów na Marketplace jest pusty. </string> - <string name="InventoryOutboxNotMerchant"> - Jeśli chcesz zostać kupcem i sprzedawać przedmioty, to musisz najpierw [[MARKETPLACE_CREATE_STORE_URL] założyć sklep na Marketplace]. + <string name="InventoryMarketplaceListingsNoItems"> + Przeciągnij foldery do tego obszaru, aby dodać je na listę sprzedaży w [[MARKETPLACE_DASHBOARD_URL] Marketplace]. </string> - <string name="InventoryOutboxNoItemsTitle"> - Twoja skrzynka nadawcza kupca jest pusta. + <string name="Marketplace Validation Warning Stock"> + folder magazynowy musi być zawarty w folderze wersji </string> - <string name="InventoryOutboxNoItems"> - Przeciągnij foldery do tego obszaru i kliknij "Wyślij na Marketplace", aby dodać je na listę sprzedaży w [[MARKETPLACE_DASHBOARD_URL] Marketplace]. + <string name="Marketplace Validation Error Mixed Stock"> + : Błąd: wszystkie przedmioty w folderze magazynowym muszą mieć ten sam typ i być niekopiowalne </string> - <string name="InventoryOutboxInitializingTitle"> - Inicjalizacja Marketplace. + <string name="Marketplace Validation Error Subfolder In Stock"> + : Błąd: folder magazynowy nie może zawierać podfolderów </string> - <string name="InventoryOutboxInitializing"> - Uzyskiwanie dostępu do Twojego konta [[MARKETPLACE_CREATE_STORE_URL] sklepu na Marketplace]. + <string name="Marketplace Validation Warning Empty"> + : Uwaga: folder jest pusty </string> - <string name="InventoryOutboxErrorTitle"> - Błędy Marketplace. + <string name="Marketplace Validation Warning Create Stock"> + : Uwaga: tworzę folder magazynowy </string> - <string name="InventoryOutboxError"> - [[MARKETPLACE_CREATE_STORE_URL] Sklep na Marketplace] zwraca błędy. + <string name="Marketplace Validation Warning Create Version"> + : Uwaga: tworzę folder wersji </string> - <string name="Marketplace Error None"> - Brak błędów + <string name="Marketplace Validation Warning Move"> + : Uwaga: przenoszę przedmioty </string> - <string name="Marketplace Error Not Merchant"> - Błąd: Przed wysłaniem przedmiotów na Marketplace musisz zostać kupcem (darmowe). + <string name="Marketplace Validation Warning Delete"> + : Uwaga: zawartość folderu przeniesiona do folderu magazynowego, usuwam pusty katalog + </string> + <string name="Marketplace Validation Error Stock Item"> + : Błąd: przedmioty bez praw kopiowania muszą się znajdować w folderze magazynowym + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Uwaga: przedmioty muszą się znajdować w folderze wersji + </string> + <string name="Marketplace Validation Error"> + : Błąd: + </string> + <string name="Marketplace Validation Warning"> + : Uwaga: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Uwaga: folder wersji musi zawierać przynajmniej jedną pozycję + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Uwaga: folder magazynowy musi zawierać przynajmniej jedną pozycję </string> - <string name="Marketplace Error Empty Folder"> - Błąd: Ten folder nie ma zawartości. + <string name="Marketplace Validation No Error"> + Brak błędów lub ostrzeżeń </string> - <string name="Marketplace Error Unassociated Products"> - Błąd: Ta pozycja nie może zostać załadowana, ponieważ Twoje konto kupca ma zbyt wiele nieprzypisanych przedmiotów. Aby naprawić ten błąd zaloguj się na stronę Marketplace i zmniejsz ilość nieprzypisanych (unassociated) przedmiotów. + <string name="Marketplace Error Prefix"> + Błąd: </string> - <string name="Marketplace Error Object Limit"> - Błąd: Ta pozycja zawiera zbyt wiele elementów. Umieść przedmioty razem w pudełkach, aby zmniejszyć ich całkowitą liczbę do mniej niż 200. + <string name="Marketplace Error Not Merchant"> + Przed wysłaniem przedmiotów na Marketplace musisz zostać kupcem (darmowe). </string> - <string name="Marketplace Error Folder Depth"> - Błąd: Ta pozycja zawiera zbyt wiele zagnieżdżonych folderów. Zreorganizuj wszystko tak, aby były obecne maksymalnie 3 poziomy zagnieżdżonych folderów. + <string name="Marketplace Error Not Accepted"> + Nie można przenieść tego przedmiotu. </string> <string name="Marketplace Error Unsellable Item"> - Błąd: Ta pozycja nie może być sprzedana na Marketplace. + Ta pozycja nie może być sprzedana na Marketplace. + </string> + <string name="MarketplaceNoID"> + no Mkt ID + </string> + <string name="MarketplaceLive"> + na liście + </string> + <string name="MarketplaceActive"> + aktywne + </string> + <string name="MarketplaceMax"> + maks </string> - <string name="Marketplace Error Internal Import"> - Błąd: Wystąpił problem z tą pozycją. Spróbuj ponownie później. + <string name="MarketplaceStock"> + magazyn </string> - <string name="Open landmarks"> - Otwórz landmarki + <string name="MarketplaceNoStock"> + brak w magazynie + </string> + <string name="MarketplaceUpdating"> + aktualizacja... </string> <string name="Unconstrained"> Swobodny </string> - <string name="no_transfer" value=" (bez transferowania)"/> - <string name="no_modify" value=" (bez modyfikowania)"/> - <string name="no_copy" value=" (bez kopiowania)"/> - <string name="worn" value=" (założone)"/> - <string name="broken_link" value=" (zepsuty_link)"/> + <string name="no_transfer" value=" (brak oddawania)"/> + <string name="no_modify" value=" (brak modyfikowania)"/> + <string name="no_copy" value=" (brak kopiowania)"/> + <string name="worn" value=" (załóż)"/> + <string name="link" value=" (link)"/> + <string name="broken_link" value=" (broken_link)"/> <string name="LoadingContents"> Ładowanie zawartości... </string> <string name="NoContents"> Brak zawartości </string> - <string name="WornOnAttachmentPoint" value=" (założone na [ATTACHMENT_POINT])"/> - <string name="ActiveGesture" value="[GESLABEL] (aktywny)"/> - <string name="PermYes"> - Tak - </string> - <string name="PermNo"> - Nie - </string> - <string name="Chat Message" value=" Czat: "/> - <string name="Sound" value=" Dźwięk: "/> - <string name="Wait" value=" --- Czekaj: "/> - <string name="AnimFlagStop" value=" Zatrzymaj animację:"/> - <string name="AnimFlagStart" value=" Rozpocznij animację:"/> + <string name="WornOnAttachmentPoint" value=" (założony na [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> + <string name="ActiveGesture" value="[GESLABEL] (aktywne)"/> + <string name="Chat Message" value="Czat:"/> + <string name="Sound" value=" Dźwięk :"/> + <string name="Wait" value=" --- Zaczekaj :"/> + <string name="AnimFlagStop" value=" Zatrzymaj animację :"/> + <string name="AnimFlagStart" value=" Rozpocznij animację :"/> <string name="Wave" value=" Wave"/> - <string name="GestureActionNone" value="Brak"/> + <string name="GestureActionNone" value="Żadne"/> <string name="HelloAvatar" value=" Witaj, Awatarze!"/> - <string name="ViewAllGestures" value="Zobacz wszystkie >>"/> - <string name="GetMoreGestures" value="Więcej gestów >>"/> + <string name="ViewAllGestures" value=" Zobacz wszystkie >>"/> + <string name="GetMoreGestures" value="Więcej gesturek >>"/> <string name="Animations" value=" Animacje,"/> <string name="Calling Cards" value=" Wizytówki,"/> <string name="Clothing" value=" Ubrania,"/> - <string name="Gestures" value=" Gesty,"/> - <string name="Landmarks" value=" Landmarki,"/> - <string name="Notecards" value=" Noty,"/> + <string name="Gestures" value=" Gesturki,"/> + <string name="Landmarks" value=" Ulubione miejsca,"/> + <string name="Notecards" value=" Notki,"/> <string name="Objects" value=" Obiekty,"/> <string name="Scripts" value=" Skrypty,"/> <string name="Sounds" value=" Dźwięki,"/> <string name="Textures" value=" Tekstury,"/> <string name="Snapshots" value=" Zdjęcia,"/> <string name="No Filters" value="Nie "/> - <string name="Since Logoff" value=" - od wylogowania"/> + <string name="Since Logoff" value=" - od wylogowania się"/> <string name="InvFolder My Inventory"> Moja Szafa </string> @@ -1512,19 +1258,13 @@ Spróbuj zalogować się ponownie za minutę. Animacje </string> <string name="InvFolder Gestures"> - Gesty + Gesturki </string> <string name="InvFolder Favorite"> - Ulubione + Moje ulubione </string> <string name="InvFolder favorite"> - Ulubione - </string> - <string name="InvFolder Favorites"> - Ulubione - </string> - <string name="InvFolder favorites"> - Ulubione + Moje ulubione </string> <string name="InvFolder Current Outfit"> Obecny strój @@ -1538,27 +1278,12 @@ Spróbuj zalogować się ponownie za minutę. <string name="InvFolder Accessories"> Akcesoria </string> - <string name="InvFolder Meshes"> - Mesze - </string> - <string name="InvFolder Received Items"> - Odebrane przedmioty - </string> - <string name="InvFolder Merchant Outbox"> - Skrzynka nadawcza kupca - </string> <string name="InvFolder Friends"> Znajomi </string> <string name="InvFolder All"> Wszystkie </string> - <string name="no_attachments"> - Brak założonych dodatków - </string> - <string name="Attachments remain"> - Dodatki ([COUNT] wolnych) - </string> <string name="Buy"> Kup </string> @@ -1568,6 +1293,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="Stone"> Kamień </string> + <string name="Metal"> + Metal + </string> <string name="Glass"> Szkło </string> @@ -1575,7 +1303,7 @@ Spróbuj zalogować się ponownie za minutę. Drewno </string> <string name="Flesh"> - Ciało + Tkanka </string> <string name="Plastic"> Plastik @@ -1584,7 +1312,13 @@ Spróbuj zalogować się ponownie za minutę. Guma </string> <string name="Light"> - Jasny + Lekkie + </string> + <string name="KBShift"> + Shift + </string> + <string name="KBCtrl"> + Ctrl </string> <string name="Chest"> Klatka piersiowa @@ -1638,7 +1372,7 @@ Spróbuj zalogować się ponownie za minutę. Nos </string> <string name="R Upper Arm"> - P ramię + P Ramię </string> <string name="R Forearm"> P przedramię @@ -1671,19 +1405,13 @@ Spróbuj zalogować się ponownie za minutę. Brzuch </string> <string name="Left Pec"> - Lewa pierś + Lewy Pec </string> <string name="Right Pec"> - Prawa pierś - </string> - <string name="Neck"> - Szyja - </string> - <string name="Avatar Center"> - Środek awatara + Prawy Pec </string> <string name="Invalid Attachment"> - Nieprawidłowy punkt dodatku + Nieważny punkt załącznika </string> <string name="ATTACHMENT_MISSING_ITEM"> Błąd: brakujący przedmiot @@ -1749,37 +1477,37 @@ Spróbuj zalogować się ponownie za minutę. [COUNT] dni </string> <string name="GroupMembersA"> - [COUNT] osoba + [COUNT] członek </string> <string name="GroupMembersB"> - [COUNT] osób + [COUNT] członków </string> <string name="GroupMembersC"> - [COUNT] osób + [COUNT] członków </string> <string name="AcctTypeResident"> Rezydent </string> <string name="AcctTypeTrial"> - Próbne + Proces </string> <string name="AcctTypeCharterMember"> - Założyciel + Wyróżniony członek </string> <string name="AcctTypeEmployee"> Pracownik Linden Lab </string> <string name="PaymentInfoUsed"> - Płatności: Dane użyte + Dane konta używane </string> <string name="PaymentInfoOnFile"> - Płatności: Dane znane + Dane płatnicze na koncie </string> <string name="NoPaymentInfoOnFile"> - Płatności: Dane nieznane + Brak danych na koncie </string> <string name="AgeVerified"> - Zweryfikowany wiekowo + Weryfikacja wieku przeprowadzona </string> <string name="NotAgeVerified"> Brak weryfikacji wieku @@ -1809,10 +1537,7 @@ Spróbuj zalogować się ponownie za minutę. Prawy dół </string> <string name="CompileQueueDownloadedCompiling"> - Pobieranie zakończone, trwa kompilowanie - </string> - <string name="CompileQueueServiceUnavailable"> - Usługa kompilacji skryptów nie jest w tej chwili dostępna + Pobieranie zakończone, rozpoczęcie kompilacji </string> <string name="CompileQueueScriptNotFound"> Skrypt nie został odnaleziony na serwerze. @@ -1821,43 +1546,43 @@ Spróbuj zalogować się ponownie za minutę. Problem z pobieraniem </string> <string name="CompileQueueInsufficientPermDownload"> - Brak uprawnień do pobrania skryptu. + Brak odpowiedniej zgody do pobrania skryptu. </string> <string name="CompileQueueInsufficientPermFor"> - Brak uprawnień dla + Brak odpowiedniej zgody dla </string> <string name="CompileQueueUnknownFailure"> - Nieznany błąd podczas pobierania + Nieznany błąd podczas próby pobierania </string> <string name="CompileQueueTitle"> Postęp rekompilacji </string> <string name="CompileQueueStart"> - Rekompiluj + rekompiluj </string> <string name="ResetQueueTitle"> - Postęp resetowania + Zresetuj </string> <string name="ResetQueueStart"> - Resetuj + zresetuj </string> <string name="RunQueueTitle"> - Postęp włączania + Ustaw uruchomiaj progres </string> <string name="RunQueueStart"> - Włącz + ustaw uruchom </string> <string name="NotRunQueueTitle"> - Postęp wyłączania + Ustaw nie uruchamiaj progres </string> <string name="NotRunQueueStart"> - Wyłącz + ustaw nie uruchamiaj </string> <string name="CompileSuccessful"> - Kompilacja zakończona pomyślnie! + Kompliacja zakończona pomyślnie! </string> <string name="CompileSuccessfulSaving"> - Kompilacja zakończona pomyślnie, zapisywanie... + Komplilacja zakończona pomyślnie, zapisywanie... </string> <string name="SaveComplete"> Zapisywanie zakończone. @@ -1872,43 +1597,40 @@ Spróbuj zalogować się ponownie za minutę. Obiekt [OBJECT] należący do [OWNER] </string> <string name="GroupsNone"> - brak + żadne </string> - <string name="Group" value=" (grupa)"/> + <string name="Group" value=" (groupa)"/> <string name="Unknown"> (nieznane) </string> <string name="SummaryForTheWeek" value="Podsumowanie dla tego tygodnia, począwszy od "/> - <string name="NextStipendDay" value="Następna wypłata będzie w "/> - <string name="GroupPlanningDate"> - [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] - </string> - <string name="GroupIndividualShare" value=" Grupa Udziały Indywidualne"/> - <string name="GroupColumn" value=" Grupa"/> + <string name="NextStipendDay" value=". Następna wypłata będzie w "/> + <string name="GroupIndividualShare" value=" Groupa Udziały Indywidualne"/> + <string name="GroupColumn" value="Grupa"/> <string name="Balance"> Stan </string> <string name="Credits"> - Uznania + Kredyty </string> <string name="Debits"> - Obciążenia + Debet </string> <string name="Total"> Suma </string> <string name="NoGroupDataFound"> - Brak informacji na temat grupy + Brak informacji na temat podanej grupy </string> <string name="IMParentEstate"> - majątek rodziców + parent estate + </string> + <string name="IMMainland"> + główny </string> <string name="IMTeen"> dla niepełnoletnich </string> - <string name="Anyone"> - każdy - </string> <string name="RegionInfoError"> błąd </string> @@ -1925,25 +1647,13 @@ Spróbuj zalogować się ponownie za minutę. Dozwoleni Rezydenci: ([ALLOWEDAGENTS], maks. [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Dozwolone Grupy: ([ALLOWEDGROUPS], maks. [MAXACCESS]) - </string> - <string name="RegionInfoEstateManagers"> - Zarządcy Majątku: ([ESTATEMANAGERS], maks. [MAXMANAGERS]) - </string> - <string name="RegionInfoBannedResidents"> - Zbanowani Rezydenci: ([BANNEDAGENTS], maks. [MAXBANNED]) - </string> - <string name="RegionInfoListTypeAllowedAgents"> - Dozwoleni Rezydenci - </string> - <string name="RegionInfoListTypeBannedAgents"> - Zbanowani Rezydenci + Grupy mające dostęp: ([ALLOWEDGROUPS], max [MAXACCESS]) </string> <string name="ScriptLimitsParcelScriptMemory"> - Pamięć skryptów działki + Pamięć skryptów Posiadłości </string> <string name="ScriptLimitsParcelsOwned"> - Działki: [PARCELS] + Posiadłości: [PARCELS] </string> <string name="ScriptLimitsMemoryUsed"> Pamięć wykorzystana: [COUNT] kb z [MAX] kb; [AVAILABLE] kb pozostało @@ -1952,7 +1662,7 @@ Spróbuj zalogować się ponownie za minutę. Pamięć wykorzystana: [COUNT] kb </string> <string name="ScriptLimitsParcelScriptURLs"> - Skrypty URL działki + Skrypty URL Posiadłości </string> <string name="ScriptLimitsURLsUsed"> URL: [COUNT] z [MAX]; [AVAILABLE] dostępne @@ -1964,7 +1674,7 @@ Spróbuj zalogować się ponownie za minutę. Błąd wyszukiwania informacji </string> <string name="ScriptLimitsRequestNoParcelSelected"> - Działka nie została wybrana + Posiadłość nie została wybrana </string> <string name="ScriptLimitsRequestWrongRegion"> Błąd: informacja o skrypcie jest dostępna tylko w obecnym regionie. @@ -1973,7 +1683,7 @@ Spróbuj zalogować się ponownie za minutę. Wyszukiwanie informacji... </string> <string name="ScriptLimitsRequestDontOwnParcel"> - Nie masz pozwolenia na sprawdzenie działki. + Nie masz pozwolenia na sprawdzenie pasiadłości. </string> <string name="SITTING_ON"> Usiądź na @@ -2015,7 +1725,7 @@ Spróbuj zalogować się ponownie za minutę. Podbródek </string> <string name="ATTACH_LEAR"> - Lewe ucho + Ucho lewe </string> <string name="ATTACH_REAR"> Prawe ucho @@ -2036,7 +1746,7 @@ Spróbuj zalogować się ponownie za minutę. Prawe dolne ramię </string> <string name="ATTACH_LUARM"> - Lewe górne ramię + Ramię L Górne </string> <string name="ATTACH_LLARM"> Lewe dolne ramię @@ -2054,7 +1764,7 @@ Spróbuj zalogować się ponownie za minutę. Biodro lewe </string> <string name="ATTACH_LULEG"> - Lewa górna noga + Lewa gorna noga </string> <string name="ATTACH_LLLEG"> Lewa dolna noga @@ -2063,10 +1773,10 @@ Spróbuj zalogować się ponownie za minutę. Brzuch </string> <string name="ATTACH_RPEC"> - Prawa pierś + Prawa klatka </string> <string name="ATTACH_LPEC"> - Lewa pierś + Lewa klatka </string> <string name="ATTACH_HUD_CENTER_2"> HUD środek 2 @@ -2078,7 +1788,7 @@ Spróbuj zalogować się ponownie za minutę. HUD środek górny </string> <string name="ATTACH_HUD_TOP_LEFT"> - HUD lewa góra + HUD lewa gora </string> <string name="ATTACH_HUD_CENTER_1"> HUD środek 1 @@ -2092,30 +1802,18 @@ Spróbuj zalogować się ponownie za minutę. <string name="ATTACH_HUD_BOTTOM_RIGHT"> HUD prawa dolna strona </string> - <string name="ATTACH_NECK"> - Szyja - </string> - <string name="ATTACH_AVATAR_CENTER"> - Środek awatara - </string> <string name="CursorPos"> Linia [LINE], Kolumna [COLUMN] </string> <string name="PanelDirCountFound"> [COUNT] odnalezionych </string> - <string name="PanelDirTimeStr"> - [hour,datetime,slt]:[min,datetime,slt] - </string> <string name="PanelContentsTooltip"> Zawartość obiektu </string> <string name="PanelContentsNewScript"> Nowy skrypt </string> - <string name="DoNotDisturbModeResponseDefault"> - Rezydent, do którego wysłałeś/aś wiadomość prywatną znajduje się w trybie zajętości i nie chce, aby mu przeszkadzano. Oznacza to, iż Twoja wiadomość zostanie zapisana do przejrzenia na później. - </string> <string name="MuteByName"> (Nazwa) </string> @@ -2126,7 +1824,7 @@ Spróbuj zalogować się ponownie za minutę. (Obiekt) </string> <string name="MuteGroup"> - (Grupa) + (Grupę) </string> <string name="MuteExternal"> (Zewnętrzne) @@ -2135,10 +1833,10 @@ Spróbuj zalogować się ponownie za minutę. Brak umowy dla tego majątku. </string> <string name="RegionNoCovenantOtherOwner"> - Brak umowy dla tego majątku. Działka w tym majątku została sprzedana przez właściciela majątku, a nie przez Linden Lab. Skontaktuj się z właścicielem majątku w celu uzyskania szczegółów sprzedaży. + Brak umowy dla tego majątku. Każda posiadłość w tym majątku została sprzedana przez właściciela majątku nie Linden Lab. Skontaktuj się z właścicielem majątku w celu uzuskania szczegółów sprzedaży. </string> - <string name="covenant_last_modified" value="Ostatnia modyfikacja: "/> - <string name="none_text" value=" (brak) "/> + <string name="covenant_last_modified" value="Ostatnio modyfikowano: "/> + <string name="none_text" value=" (żadne) "/> <string name="never_text" value=" (nigdy) "/> <string name="GroupOwned"> Własność grupy @@ -2146,12 +1844,6 @@ Spróbuj zalogować się ponownie za minutę. <string name="Public"> Publiczny </string> - <string name="LocalSettings"> - Ustawienia lokalne - </string> - <string name="RegionSettings"> - Ustawienia regionu - </string> <string name="ClassifiedClicksTxt"> Kliknij: [TELEPORT] teleportuj, [MAP] mapa, [PROFILE] profil </string> @@ -2159,7 +1851,7 @@ Spróbuj zalogować się ponownie za minutę. (zostanie zaktualizowane po publikacji) </string> <string name="NoPicksClassifiedsText"> - Nie dodałeś/aś nic do Ulubionych i Reklam. Kliknij na przycisk + poniżej, aby dodać miejsce do Ulubionych lub Reklam. + Nie dodałeś nic do Ulubionych i Reklam. Kliknij na poniższy przycisk Dodaj aby dodać miejsce do Ulubionych lub Reklamy. </string> <string name="NoAvatarPicksClassifiedsText"> Brak ulubionych miejsc/reklam @@ -2177,19 +1869,19 @@ Spróbuj zalogować się ponownie za minutę. Obiekt o nazwie </string> <string name="InvOfferOwnedByGroup"> - należący do grupy + należacy do grupy </string> <string name="InvOfferOwnedByUnknownGroup"> należący do nieznanej grupy </string> <string name="InvOfferOwnedBy"> - należący do + należy do </string> <string name="InvOfferOwnedByUnknownUser"> należący do nieznanego właściciela </string> <string name="InvOfferGaveYou"> - dał Ci + oddany Tobie </string> <string name="InvOfferDecline"> Odrzucono [DESC] od <nolink>[NAME]</nolink>. @@ -2213,22 +1905,19 @@ Spróbuj zalogować się ponownie za minutę. zapłać opłatę za wydarzenie </string> <string name="GroupMoneyPaidPrizeForEvent"> - zapłać nagrodę za wydarzenie + zapłać za wydarzenia </string> <string name="GroupMoneyBalance"> Stan </string> <string name="GroupMoneyCredits"> - Uznania + Kredyty </string> <string name="GroupMoneyDebits"> - Obciążenia - </string> - <string name="GroupMoneyDate"> - [weekday,datetime,utc], [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] + Debet </string> <string name="AcquiredItems"> - Nabyte obiekty + Zdobyte obiekty </string> <string name="Cancel"> Anuluj @@ -2237,35 +1926,59 @@ Spróbuj zalogować się ponownie za minutę. Załadowanie [NAME] kosztuje [AMOUNT]L$ </string> <string name="BuyingCosts"> - Cena zakupu tego wynosi [AMOUNT]L$ + Cena zakupu tego wynosi L$ [AMOUNT] </string> <string name="UnknownFileExtension"> - Nieznane rozszerzenie pliku .%s -Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh + Nieznane rozszerzenie dla pliku [.%s] +Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh </string> <string name="MuteObject2"> Zablokuj </string> - <string name="MuteAvatar"> - Zablokuj + <string name="AddLandmarkNavBarMenu"> + Dodaj Ulubione Miejsce... </string> - <string name="UnmuteObject"> - Odblokuj + <string name="EditLandmarkNavBarMenu"> + Edytuj Ulubione Miejce... </string> - <string name="UnmuteAvatar"> - Odblokuj + <string name="accel-mac-control"> + ⌃ </string> - <string name="AddLandmarkNavBarMenu"> - Dodaj do Landmarków... + <string name="accel-mac-command"> + ⌘ </string> - <string name="EditLandmarkNavBarMenu"> - Edytuj Landmarka... + <string name="accel-mac-option"> + ⌥ + </string> + <string name="accel-mac-shift"> + ⇧ + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ </string> <string name="FileSaved"> - Plik zapisany + Zapisane pliki </string> <string name="Receiving"> - Odbieranie + Otrzymane + </string> + <string name="AM"> + AM + </string> + <string name="PM"> + PM + </string> + <string name="PST"> + PST + </string> + <string name="PDT"> + PDT </string> <string name="Direction_Forward"> Do przodu @@ -2277,7 +1990,7 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh Prawo </string> <string name="Direction_Back"> - W tył + Wstecz </string> <string name="Direction_North"> Północ @@ -2307,7 +2020,7 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh Wynajem ziemi </string> <string name="Property Rental"> - Wynajem działek + Wynajem Posiadłości </string> <string name="Special Attraction"> Specjalne Oferty @@ -2322,7 +2035,7 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh Poszukiwane </string> <string name="Service"> - Usługi + Serwis </string> <string name="Personal"> Personalne @@ -2331,7 +2044,10 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh Żadne </string> <string name="Linden Location"> - Lokalizacja Lindenów + Linden Lokalizacja + </string> + <string name="Adult"> + 'Adult' </string> <string name="Arts&Culture"> Sztuka i Kultura @@ -2373,13 +2089,13 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh Ty </string> <string name="Multiple Media"> - Wiele mediów + Multimedia </string> <string name="Play Media"> Uruchom/Zatrzymaj media </string> <string name="MBCmdLineError"> - Podczas realizacji podanej komendy wystąpił błąd. + Podczas realizacji podanej komendy, wystąpił błąd. Prosimy odwiedzić stronę internetową: http://wiki.secondlife.com/wiki/Client_parameters Błąd: </string> @@ -2389,7 +2105,7 @@ Błąd: <string name="MBUnableToAccessFile"> Aplikacja [APP_NAME] nie odnalazła poszukiwanego pliku. -Może być to spowodowane aktywnością kilku kopii oprogramowania w tej samej chwili lub Twój system błędnie odczytuje proces zakończenia dla uruchomionych aplikacji. +Może być to spowodowane aktywnością kilku kopii oprogramowania w tej samej chwili lub Twój system błędnie odczytuje proces zakończenia dla uruchomionuch aplikacji. Jeżeli nadal otrzymujesz ten komunikat, uruchom swój komputer ponownie. Jeżeli problem nadal występuje, proponujemy całkowite odinstalowanie aplikacji [APP_NAME] oraz ponowną jej instalację. </string> @@ -2397,7 +2113,7 @@ Jeżeli problem nadal występuje, proponujemy całkowite odinstalowanie aplikacj Błąd krytyczny </string> <string name="MBRequiresAltiVec"> - Aplikacja [APP_NAME] wymaga procesora z AltiVec (wersja G4 lub nowsza). + Aplikacja [APP_NAME] wymaga procesora z AltiVec (wersja G4 lub starsza). </string> <string name="MBAlreadyRunning"> Aplikacja [APP_NAME] została już uruchomiona. @@ -2413,7 +2129,7 @@ Czy chcesz wysłać raport na temat zawieszenia? </string> <string name="MBNoDirectX"> Aplikacja [APP_NAME] nie wykryła oprogramowania DirectX 9.0b lub wersji nowszej. -[APP_NAME] używa oprogramowaniu DirectX w celu wykrycia dysku twardego i/lub nieaktualizowanych dysków twardych, które mogą przyczynić się do obniżenia stabilności, wydajności systemowej oraz zawieszeń. Jeżeli chcesz uruchomić aplikację [APP_NAME] bez problemów, doradzamy korzystanie z uruchomionym oprogramowaniem min. DirectX 9.0b. +[APP_NAME] używa oprogramowaniau DirectX w celu wykrycia dysku twardego i/lub nieaktualizowanych dysków twardych, które mogą przyczynić się do obniżenia stabilności, wydajności systemowej oraz zawieszeń. Jeżeli chcesz uruchomić aplikację [APP_NAME] bez problemów, doradzamy korzystanie z uruchomionym oprogramowaniem min. DirectX 9.0b. Czy chcesz kontynuować? </string> @@ -2425,42 +2141,42 @@ Czy chcesz kontynuować? Prosimy o pobranie najnowszej wersji ze strony internetowej: www.secondlife.com. </string> <string name="MBRegClassFailed"> - Błąd RegisterClass + błąd rejestru </string> <string name="MBError"> Błąd </string> <string name="MBFullScreenErr"> - Nie można uruchomić trybu pełnoekranowego w rozdzielczości [WIDTH] x [HEIGHT]. + Nie można uruchomić trybu pełnoekranowego w proporcji [WIDTH] x [HEIGHT]. Uruchomione w oknie. </string> <string name="MBDestroyWinFailed"> - Błąd wyłączania podczas zamykania okna (DestroyWindow() failed) + Błąd w próbie wyłączenia podczas zamykania okna (DestroyWindow() failed) </string> <string name="MBShutdownErr"> - Błąd wyłączania + Błąd w próbie wyłączenia </string> <string name="MBDevContextErr"> Brak możliwości stworzenia zawartości GL dla sterownika </string> <string name="MBPixelFmtErr"> - Nie odnaleziono właściwego formatu pikselowego + Brak odnalezienia właściwego formatu pikselowego </string> <string name="MBPixelFmtDescErr"> - Nie otrzymano opisu formatu pikselowego + Brak otrzymania formatu pikselowego opisu </string> <string name="MBTrueColorWindow"> Aplikacja [APP_NAME] wymaga ustawienia koloru na (32-bit) do uruchomienia. -Ustaw tryb koloru swojego wyświetlacza na 32-bity. +Sprawdź swoje ustawienia dla wyświetlacza i ustaw tryb koloru na 32-bity. </string> <string name="MBAlpha"> - Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie jest możliwe dostanie się na kanał 8 bitowy alpha. Najczęściej jest to spowodowane błędami sterowników karty video. + Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie jest możliwe dostanie się na kanał 8 bitowy alpha. Najcześciej jest to spowodowane błędami sterowników karty video. Upewnij się, że posiadasz najnowsze aktualizacje sterowników karty video. -Dodatkowo, sprawdź czy Twój monitor posiada poprawną konfigurację koloru (32-bity) w Panel Sterowania > Ekran > Ustawienia. +Dodatkowo, sprawdź czy Twój monitor posiada poprawną konfigurację koloru (32-bity) w Panelu Kontroli > Display > Ustawienia. Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. </string> <string name="MBPixelFmtSetErr"> - Nie można ustawić formatu pikselowego + Brak ustawienie formatu pikselowego </string> <string name="MBGLContextErr"> Brak możliwości stworzenia renderowania zawartości GL @@ -2469,21 +2185,21 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Brak aktywacji renderowania zawartości GL </string> <string name="MBVideoDrvErr"> - Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ sterowniki Twojej karty wideo są niepoprawnie zainstalowane, niezaktualizowane lub przeznaczone dla nieobsługiwanego rodzaju sprzętu. Upewnij się, że Twoja karta wideo została zaktualizowana poprawnie, spróbuj zainstalować sterowniki ponownie. + Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ Twoja karta video jest niepoprawnie zainstalowana, nieaktualizowana lub przeznaczona jest dla innego rodzaju dysków twardych. Upewnij się, że Twoja karta video została zaktualizowana poprawnie lub spróbuj zainstalować ponownie. Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. </string> <string name="5 O'Clock Shadow"> - Cień na godzinie 5 + Cień o godzinie 5 </string> <string name="All White"> - Wszystko siwe + Wszystko białe </string> <string name="Anime Eyes"> - Oczy z anime + Animuj oczy </string> <string name="Arced"> - Wygięty + Obrócony </string> <string name="Arm Length"> Długość ramienia @@ -2495,7 +2211,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Płatki uszu dołączone </string> <string name="Back Fringe"> - Tylna grzywka + Tylnia grzywka </string> <string name="Baggy"> Wypchane @@ -2513,7 +2229,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Duży </string> <string name="Big Butt"> - Duże pośladki + Duży pośladek </string> <string name="Big Hair Back"> Duże włosy: z tyłu @@ -2528,13 +2244,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Duża głowa </string> <string name="Big Pectorals"> - Duże mięśnie + Duże mięśnie piersiowe </string> <string name="Big Spikes"> Duże kolce </string> <string name="Black"> - Czerń + Czarne </string> <string name="Blonde"> Blond @@ -2555,7 +2271,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Detale ciała </string> <string name="Body Fat"> - Puszystość + Zawartość tkanki tłuszczowej </string> <string name="Body Freckles"> Piegi @@ -2570,7 +2286,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Szczupłość </string> <string name="Bow Legged"> - Pałąkowate nogi + Bow Legged </string> <string name="Breast Buoyancy"> Jędrność piersi @@ -2723,13 +2439,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Grawitacja pośladków </string> <string name="bustle skirt"> - Uniesienie spódnicy + Bustle Skirt </string> <string name="no bustle"> - Nie unoś + No Bustle </string> <string name="more bustle"> - Bardziej unoś + More Bustle + </string> + <string name="Chaplin"> + Chaplin </string> <string name="Cheek Bones"> Kości policzkowe @@ -2750,13 +2469,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Długość podbródka </string> <string name="Chin Heavy"> - Więcej podbródka + Ciężar podbródka </string> <string name="Chin In"> - Podbródek wewn. + Podbródek wewnątrz </string> <string name="Chin Out"> - Podbródek zewn. + Podbródek zewnętrzny </string> <string name="Chin-Neck"> Podwójny podbródek @@ -2768,7 +2487,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Rozszczepienie </string> <string name="Close Set Eyes"> - Wąski + Oczy blisko ustawione </string> <string name="Closed"> Zamknięte @@ -2780,13 +2499,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Zamknięte z przodu </string> <string name="Closed Left"> - Zamknięte z lewej + Lewe oko zamknięte </string> <string name="Closed Right"> - Zamknięte z prawej + Prawe oko zamknięte </string> <string name="Coin Purse"> - Portmonetka + Coin Purse </string> <string name="Collar Back"> Kołnierz z tyłu @@ -2801,7 +2520,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Kącik w górę </string> <string name="Creased"> - Z fałdami + Pognieciony </string> <string name="Crooked Nose"> Skrzywienie nosa @@ -2810,31 +2529,31 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Szeroki rękaw </string> <string name="Dark"> - Ciemny + Ciemne </string> <string name="Dark Green"> - Ciemna zieleń + Ciemne zielone </string> <string name="Darker"> Ciemniejsze </string> <string name="Deep"> - Głębokie + Glębokie </string> <string name="Default Heels"> Domyślne buty na obcasie </string> <string name="Dense"> - Gęste + Gęstość </string> <string name="Double Chin"> Podwójny podbródek </string> <string name="Downturned"> - Zwrócony w dół + Downturned </string> <string name="Duffle Bag"> - Torba + Duffle Bag </string> <string name="Ear Angle"> Odstawanie uszu @@ -2858,10 +2577,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Głębokość osadzenia oczu </string> <string name="Eye Lightness"> - Jasność oczu + Ustawienie jasności oczu </string> <string name="Eye Opening"> - Otwarcie oczu + Oczy otwarte </string> <string name="Eye Pop"> Różnica w wielkości oczu @@ -2894,19 +2613,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Kredka do oczu </string> <string name="Eyeliner Color"> - Kolor kredki do oczu + Kolor kredki do oczu'a </string> <string name="Eyes Bugged"> Wytrzeszczone oczy </string> <string name="Face Shear"> - Ścięcie twarzy + Usunięcie twarzy </string> <string name="Facial Definition"> Detale twarzy </string> <string name="Far Set Eyes"> - Szeroki + Oczy szeroko rozstawione </string> <string name="Fat Lips"> Grube usta @@ -2924,7 +2643,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Rozszerzane rękawy </string> <string name="Flat"> - Płaski + Płaskość </string> <string name="Flat Butt"> Płaskie pośladki @@ -2942,7 +2661,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Kształt czoła </string> <string name="Forehead Heavy"> - Więcej czoła + Ciężar czoła </string> <string name="Freckles"> Piegi @@ -2951,7 +2670,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Przednia grzywka </string> <string name="Full Back"> - Gęsty tył + Gęstość włosów po bokach </string> <string name="Full Eyeliner"> Gęsta kredka do oczu @@ -2966,7 +2685,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Gęste boki </string> <string name="Glossy"> - Błyszcząca + Błyszczące </string> <string name="Glove Fingers"> Rękawiczki @@ -2996,13 +2715,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Grubość włosów </string> <string name="Hair Tilt"> - Przechylenie + Przes. fryzury </string> <string name="Hair Tilted Left"> - W lewo + Przes. fryzury L </string> <string name="Hair Tilted Right"> - W prawo + Przes. fryzury P </string> <string name="Hair Volume"> Włosy: objętość @@ -3011,7 +2730,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Rozmiar dłoni </string> <string name="Handlebars"> - Kucyki + Handlebars </string> <string name="Head Length"> Długość głowy @@ -3029,13 +2748,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Wysokość obcasa </string> <string name="Heel Shape"> - Kształt obcasa + Ksztalt obcasa </string> <string name="Height"> Wysokość </string> <string name="High"> - Wysoko + Wysoka </string> <string name="High Heels"> Wysokie obcasy @@ -3058,11 +2777,8 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="Hip Width"> Szerokość bioder </string> - <string name="Hover"> - Uniesienie - </string> <string name="In"> - Wewnętrznie + W </string> <string name="In Shdw Color"> Wewnętrzny kolor cienia @@ -3125,10 +2841,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Mniej </string> <string name="Less Body Fat"> - Mniej tłuszczu + Mniejsza zawartości tkanki tłuszczowej </string> <string name="Less Curtains"> - Mniejsze kurtynki + Less Curtains </string> <string name="Less Freckles"> Mniej piegów @@ -3140,7 +2856,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Mniej ciężaru </string> <string name="Less Love"> - Mniej + Less Love </string> <string name="Less Muscles"> Mniej mięśni @@ -3149,13 +2865,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Mniej umięśnienia </string> <string name="Less Rosy"> - Mniej + Mniej zaróżowione </string> <string name="Less Round"> - Mniej zaokrąglone + Mniej zaaokrąglone </string> <string name="Less Saddle"> - Mniej siodłowate + Less Saddle </string> <string name="Less Square"> Mniej kwadratowe @@ -3164,16 +2880,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Mniej objętości </string> <string name="Less soul"> - Mniej + Less soul </string> <string name="Lighter"> - Jaśniejsze + Lżejsze </string> <string name="Lip Cleft"> - Szer. rozszcz. górnej wargi + Szerokość rozszczepienia górnej wargi </string> <string name="Lip Cleft Depth"> - Gł. rozszcz. górnej wargi + Głębokość rozszczepienia górnej wargi </string> <string name="Lip Fullness"> Pełne usta @@ -3200,7 +2916,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Kolor szminki </string> <string name="Long"> - Długość + Dlugość </string> <string name="Long Head"> Długa głowa @@ -3215,7 +2931,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Długi kark </string> <string name="Long Pigtails"> - Długie warkocze + Długi warkocz </string> <string name="Long Ponytail"> Długi kucyk @@ -3224,7 +2940,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Długi tułów </string> <string name="Long arms"> - Długie ramiona + Dlugie ramiona </string> <string name="Loose Pants"> Luźne spodnie @@ -3236,7 +2952,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Luźne rękawy </string> <string name="Love Handles"> - Sadełko + Love Handles </string> <string name="Low"> Nisko @@ -3272,16 +2988,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Więcej </string> <string name="More Blush"> - Zarumienione + Bardziej zarumienione </string> <string name="More Body Fat"> - Więcej tłuszczu + Więcej zawartości tkanki tłuszczowej </string> <string name="More Curtains"> - Większe kurtynki + More Curtains </string> <string name="More Eyeshadow"> - Ciemny cień oczu + Ciemniejszy cień oczu </string> <string name="More Freckles"> Więcej piegów @@ -3296,7 +3012,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Więcej szminki </string> <string name="More Love"> - Więcej + More Love </string> <string name="More Lower Lip"> Więcej dolnej wargi @@ -3308,19 +3024,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Więcej umięśnienia </string> <string name="More Rosy"> - Więcej + Bardziej zaróżowione </string> <string name="More Round"> Więcej zaokrąglenia </string> <string name="More Saddle"> - Bardziej siodłowate + More Saddle </string> <string name="More Sloped"> Bardziej spadziste </string> <string name="More Square"> - Bardziej kwadratowy + Więcej kwadratowy </string> <string name="More Upper Lip"> Więcej górnej wargi @@ -3332,7 +3048,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Więcej objętości </string> <string name="More soul"> - Więcej + More soul </string> <string name="Moustache"> Wąsy @@ -3350,7 +3066,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Umięśnienie </string> <string name="Mutton Chops"> - Baczki - wąsy + Mutton Chops </string> <string name="Nail Polish"> Lakier na paznokciach @@ -3383,10 +3099,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Brak rumieńca </string> <string name="No Eyeliner"> - Brak kredki do oczu + Brak kredki do oczu's </string> <string name="No Eyeshadow"> - Brak cienia + Brak cienia pod powieką </string> <string name="No Lipgloss"> Brak połysku @@ -3395,19 +3111,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Brak szminki </string> <string name="No Part"> - Brak podziału + No Part </string> <string name="No Polish"> Brak lakieru </string> <string name="No Red"> - Brak rudego + Brak czerwieni </string> <string name="No Spikes"> Brak szpiców </string> <string name="No White"> - Brak siwego + Brak białego </string> <string name="No Wrinkles"> Brak zmarszczek @@ -3464,7 +3180,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Otwarte z prawej </string> <string name="Orange"> - Pomarańczowy + Pomarańczowe </string> <string name="Out"> Zewnętrznie @@ -3488,10 +3204,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Przodozgryz górny </string> <string name="Package"> - Pakunek + Package </string> <string name="Painted Nails"> - Pomalowane + Pomalowane paznokcie </string> <string name="Pale"> Blady @@ -3512,10 +3228,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Zmarszczki spodni </string> <string name="Part"> - Podział + Część </string> <string name="Part Bangs"> - Podział grzywki + Część grzywki </string> <string name="Pectorals"> Mięśnie klatki piersiowej @@ -3524,13 +3240,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Pigment </string> <string name="Pigtails"> - Warkocze + Warkocz </string> <string name="Pink"> - Róż + Różowe </string> <string name="Pinker"> - Bardziej różowe + Róż </string> <string name="Platform Height"> Wysokie obcasy @@ -3539,34 +3255,34 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Szerokie obcasy </string> <string name="Pointy"> - W czubek + Pointy </string> <string name="Pointy Heels"> - Obcasy z czubkiem + Obcasy pointy </string> <string name="Ponytail"> Kucyk </string> <string name="Poofy Skirt"> - Szeroka spódnica + Poofy Skirt </string> <string name="Pop Left Eye"> - Wybałuszone lewe + Wybałuszone lewe oko </string> <string name="Pop Right Eye"> - Wybałuszone prawe + Wybałuszone prawe oko </string> <string name="Puffy"> - Opuchnięte + Opuchnięty </string> <string name="Puffy Eyelids"> Spuchnięte powieki </string> <string name="Rainbow Color"> - Kolory tęczy + Kolor tęczy </string> <string name="Red Hair"> - Rude włosy + Czerwone włosy </string> <string name="Regular"> Regularne @@ -3575,52 +3291,52 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Prawa część </string> <string name="Rosy Complexion"> - Różowa cera + Kompleksowość różu </string> <string name="Round"> Zaokrąglenie </string> <string name="Ruddiness"> - Rumieńce + Rudowatość </string> <string name="Ruddy"> - Rumiany + Rudy </string> <string name="Rumpled Hair"> Włosy w nieładzie </string> <string name="Saddle Bags"> - Tłuszczyk na nogach + Saddle Bags </string> <string name="Scrawny Leg"> Koścista noga </string> <string name="Separate"> - Oddzielne + Odzielne </string> <string name="Shallow"> Płytkie </string> <string name="Shear Back"> - Tylne wycięcie włosów + Tylne usunięcie włosów </string> <string name="Shear Face"> - Ścięcie twarzy + Usunięcie twarzy </string> <string name="Shear Front"> - Przednie wycięcie włosów + Przednie usunięcie włosów </string> <string name="Shear Left Up"> - Wycięcie od lewej + Usunięcie od lewej strony do góry </string> <string name="Shear Right Up"> - Wycięcie od prawej + Usunięcie od prawej strony do góry </string> <string name="Sheared Back"> - Wycięty tył + Tylnie usunięcie włosów </string> <string name="Sheared Front"> - Wycięty przód + Przednie usunięcie włosów </string> <string name="Shift Left"> Przesuń w lewo @@ -3644,7 +3360,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Wysokość buta </string> <string name="Short"> - Krótkość + Krótkie </string> <string name="Short Arms"> Krótkie ramiona @@ -3656,7 +3372,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Krótki kark </string> <string name="Short Pigtails"> - Krótkie warkocze + Krótkie warkoczyki </string> <string name="Short Ponytail"> Krótki kucyk @@ -3740,7 +3456,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Zarost na dolnej wardze </string> <string name="Sparse"> - Rzadkie + Rzadki </string> <string name="Spiked Hair"> Kolczaste włosy @@ -3761,16 +3477,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Zapadnięte </string> <string name="Sunken Chest"> - Zapadnięta klatka + Zapadnięta klatka piersiowa </string> <string name="Sunken Eyes"> Zapadnięte oczy </string> <string name="Sweep Back"> - Zaczesanie w tył + Sweep Back </string> <string name="Sweep Forward"> - Zaczesanie w przód + Sweep Forward </string> <string name="Tall"> Wysokość @@ -3791,7 +3507,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Gruby palec </string> <string name="Thin"> - Wąskie + Wąski </string> <string name="Thin Eyebrows"> Wąskie brwi @@ -3809,10 +3525,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Obcisłe rękawy </string> <string name="Tight Pants"> - Obcisłe spodnie + Obciesłe spodnie </string> <string name="Tight Shirt"> - Obcisła koszulka + Obcisły podkoszulek </string> <string name="Tight Skirt"> Wąska spódnica @@ -3839,7 +3555,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Nieprzyłączone </string> <string name="Uncreased"> - Bez fałd + Uncreased </string> <string name="Underbite"> Przodozgryz @@ -3854,25 +3570,25 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Górne policzki </string> <string name="Upper Chin Cleft"> - Rozszcz. górnego podbr. + Roszczepienie górnego podbródka </string> <string name="Upper Eyelid Fold"> Górna powieka </string> <string name="Upturned"> - Zadarty + Zadarta </string> <string name="Very Red"> - Bardzo rude + Bardzo czerwona </string> <string name="Waist Height"> Wysokość talii </string> <string name="Well-Fed"> - Dobrze odżywione + Dobrze odżywiony </string> <string name="White Hair"> - Siwe włosy + Białe włosy </string> <string name="Wide"> Szerokie @@ -3887,7 +3603,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Szerokie usta </string> <string name="Wild"> - Szalone + Dzikość </string> <string name="Wrinkles"> Zmarszczki @@ -3904,27 +3620,6 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="LocationCtrlComboBtnTooltip"> Historia odwiedzonych miejsc </string> - <string name="LocationCtrlForSaleTooltip"> - Kup tą działkę - </string> - <string name="LocationCtrlVoiceTooltip"> - Głos niedostępny w tym miejscu - </string> - <string name="LocationCtrlFlyTooltip"> - Latanie zabronione - </string> - <string name="LocationCtrlPushTooltip"> - Popychanie zabronione - </string> - <string name="LocationCtrlBuildTooltip"> - Budowanie/rezzowanie zabronione - </string> - <string name="LocationCtrlScriptsTooltip"> - Skrypty niedozwolone - </string> - <string name="LocationCtrlDamageTooltip"> - Zdrowie - </string> <string name="LocationCtrlAdultIconTooltip"> Region Adult </string> @@ -3932,28 +3627,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Region Moderate </string> <string name="LocationCtrlGeneralIconTooltip"> - Region General - </string> - <string name="LocationCtrlSeeAVsTooltip"> - Awatary wewnątrz tej działki nie mogą być widziane lub słyszane przez awatary, które są poza nią - </string> - <string name="LocationCtrlPathfindingDirtyTooltip"> - Obiekty poruszające się mogą nie zachowywać się poprawnie, póki region nie zostanie odświeżony. - </string> - <string name="LocationCtrlPathfindingDisabledTooltip"> - Odnajdywanie ścieżek jest wyłączone w tym regionie. + Region </string> <string name="UpdaterWindowTitle"> - Aktualizacja [APP_NAME] + [APP_NAME] Aktualizacja </string> <string name="UpdaterNowUpdating"> Pobieranie [APP_NAME]... </string> <string name="UpdaterNowInstalling"> - Instalowanie [APP_NAME]... + Instalizacja [APP_NAME]... </string> <string name="UpdaterUpdatingDescriptive"> - Twoja wersja klienta [APP_NAME] jest aktualizowana do najnowszej wersji. Prosimy o cierpliwość. + Twoja [APP_NAME] wersja klienta jest aktualizowana do najnowszej wersji. Prosimy o cierpliwość. </string> <string name="UpdaterProgressBarTextWithEllipses"> Pobieranie aktualizacji... @@ -3986,7 +3672,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. [NAME] pisze... </string> <string name="Unnamed"> - (Bez nazwy) + (Brak nazwy) </string> <string name="IM_moderated_chat_label"> (Moderacja: Komunikacja głosowa wyłączona domyślnie) @@ -3995,10 +3681,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Czat tekstowy jest nieaktywny dla tej rozmowy. </string> <string name="IM_muted_text_label"> - Twój czat tekstowy w grupie został wyłączony przez Moderatora Grupy. + Twój tekst w czacie grupowym został wyłączony przez Moderatora Grupy. </string> <string name="IM_default_text_label"> - Kliknij tutaj by wysłać wiadomość prywatną (IM). + Klknij tutaj by wysłać wiadomość prywatną (IM). </string> <string name="IM_to_label"> Do @@ -4009,15 +3695,6 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="Saved_message"> (Zapisano [LONG_TIMESTAMP]) </string> - <string name="IM_unblock_only_groups_friends"> - Aby zobaczyć tą wiadomość musisz odznaczyć 'Tylko znajomi i grupy mogą wysyłać mi wiad. prywatne (IM) oraz rozmowy głosowe' w Ustawieniach/Prywatności. - </string> - <string name="OnlineStatus"> - dostępny/a - </string> - <string name="OfflineStatus"> - niedostępny/a - </string> <string name="answered_call"> Twoja rozmowa głosowa została odebrana </string> @@ -4025,10 +3702,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Rozmowa głosowa została rozpoczęta </string> <string name="you_joined_call"> - Dołączyłeś/aś do rozmowy głosowej - </string> - <string name="you_auto_rejected_call-im"> - Rozmowa głosowa została automatycznie odrzucona, ponieważ Tryb Zajętości był włączony. + Dołączyłeś/Dołączyłaś do rozmowy głosowej </string> <string name="name_started_call"> [NAME] zaczyna rozmowę głosową @@ -4042,30 +3716,9 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="hang_up-im"> Rozmowa głosowa zakończona </string> - <string name="answering-im"> - Łączenie... - </string> - <string name="conference-title"> - Konferencja wieloosobowa - </string> <string name="conference-title-incoming"> Konferencja z [AGENT_NAME] </string> - <string name="inventory_item_offered-im"> - Zaoferowano przedmiot - </string> - <string name="share_alert"> - Przeciągaj tutaj rzeczy z Szafy - </string> - <string name="facebook_post_success"> - Wysłałeś/aś post na Facebooka. - </string> - <string name="flickr_post_success"> - Wysłałeś/aś post na Flickr. - </string> - <string name="twitter_post_success"> - Wysłałeś/aś post na Twittera. - </string> <string name="no_session_message"> (Sesja IM wygasła) </string> @@ -4076,10 +3729,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. [NAME] opuszcza Second Life. </string> <string name="invite_message"> - Kliknij na przycisk [BUTTON NAME] by zaakceptować/dołączyć do tej rozmowy. + Kliknij na [BUTTON NAME] przycisk by zaakceptować/dołączyć do tej rozmowy. </string> <string name="muted_message"> - Zablokowałeś/aś tego Rezydenta. Wysłanie wiadomości odblokuje go automatycznie. + Zablokowałeś tego Rezydenta. Wysłanie wiadomości automatycznie odblokuje go. </string> <string name="generic"> Błąd zapytania, proszę spróbować później @@ -4088,22 +3741,22 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Błąd. Spróbuj ponownie za kilka minut. </string> <string name="insufficient_perms_error"> - Nie masz wystarczających uprawnień. + Nie posiadasz praw do kontynuacji. </string> <string name="session_does_not_exist_error"> Ta konferencja jest już zakończona. </string> <string name="no_ability_error"> - Nie posiadasz tego przywileju. + Nie posiadesz tego przywileju. </string> <string name="no_ability"> - Nie posiadasz tego przywileju. + Nie posiadesz tego przywileju. </string> <string name="not_a_mod_error"> Nie jesteś moderatorem konferencji. </string> <string name="muted"> - Moderator grupy wyłączył Twój czat. + Moderator grupy wyłączył czat. </string> <string name="muted_error"> Moderator wyciszył Cię. @@ -4112,18 +3765,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Nie można dodać nikogo do czatu z [RECIPIENT]. </string> <string name="message"> - Wiadomość wysłana do [RECIPIENT] jest ciągle przetwarzana. -Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pominięta przez serwer. + Nie można wysłać Twojej wiadomości do sesji czatu z [RECIPIENT]. </string> <string name="message_session_event"> - Wiadomość wysłana do [RECIPIENT] jest ciągle przetwarzana. -Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pominięta przez serwer. + Nie można wysłać Twojej wiadomości do sesji czatu z [RECIPIENT]. </string> <string name="mute"> - Błąd podczas moderacji. + Błąd poczas moderacji. </string> <string name="removed"> - Zostałeś usunięty/a z grupy + Zostałeś usunięty z grupy </string> <string name="removed_from_group"> Usunięto Cię z grupy. @@ -4138,22 +3789,22 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom [SOURCES] powiedział/a coś nowego </string> <string name="session_initialization_timed_out_error"> - Inicjalizacja sesji wygasła + Inicjacja sesji wygasła </string> - <string name="Home position set."> - Ustawiono miejsce startu. + <string name="voice_morphing_url"> + http://secondlife.com/landing/voicemorphing </string> <string name="paid_you_ldollars"> - [NAME] zapłacił/a Tobie [AMOUNT]L$ [REASON]. + [NAME] zapłaciła/zapłacił Tobie [AMOUNT]L$ [REASON]. </string> <string name="paid_you_ldollars_no_reason"> - [NAME] zapłacił/a Tobie [AMOUNT]L$. + [NAME] zapłacił/zapłaciła Tobie L$[AMOUNT]. </string> <string name="you_paid_ldollars"> Zapłacono [NAME] [AMOUNT]L$ [REASON]. </string> <string name="you_paid_ldollars_no_info"> - Zapłacono [AMOUNT]L$. + Zapłacono L$[AMOUNT]. </string> <string name="you_paid_ldollars_no_reason"> Zapłacono [NAME] [AMOUNT]L$. @@ -4161,29 +3812,17 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom <string name="you_paid_ldollars_no_name"> Zapłacono [AMOUNT]L$ [REASON]. </string> - <string name="you_paid_failure_ldollars"> - Nie udało się zapłacić [NAME] [AMOUNT]L$ [REASON]. - </string> - <string name="you_paid_failure_ldollars_no_info"> - Nie udało się zapłacić [AMOUNT]L$. - </string> - <string name="you_paid_failure_ldollars_no_reason"> - Nie udało się zapłacić [NAME] [AMOUNT]L$. - </string> - <string name="you_paid_failure_ldollars_no_name"> - Nie udało się zapłacić [AMOUNT]L$ [REASON]. - </string> <string name="for item"> dla [ITEM] </string> <string name="for a parcel of land"> - za działkę + za Posiadłość </string> <string name="for a land access pass"> - za przepustkę na działkę + za przepustkę na Posiadłość </string> <string name="for deeding land"> - dla przypisania działki + dla przypisania Posiadłości </string> <string name="to create a group"> aby stworzyć grupę @@ -4192,13 +3831,13 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom aby dołączyć do grupy </string> <string name="to upload"> - aby załadować + aby pobrać </string> <string name="to publish a classified ad"> publikacja reklamy </string> <string name="giving"> - Dajesz [AMOUNT]L$ + Dajesz L$ [AMOUNT] </string> <string name="uploading_costs"> Ładowanie kosztuje [AMOUNT]L$ @@ -4207,7 +3846,7 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom To kosztuje [AMOUNT]L$ </string> <string name="buying_selected_land"> - Kupno wybranej działki za [AMOUNT]L$ + Kupno wybranej Posiadłości [AMOUNT]L$ </string> <string name="this_object_costs"> Ten obiekt kosztuje [AMOUNT]L$ @@ -4225,15 +3864,15 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom Obecnie w SL </string> <string name="uploading_abuse_report"> - Ładowanie... - + Pobieranie... + Raport o Nadużyciu </string> <string name="New Shape"> - Nowy kształt + Nowy ksztalt </string> <string name="New Skin"> - Nowa skóra + Nowa skórka </string> <string name="New Hair"> Nowe włosy @@ -4281,13 +3920,13 @@ Raport o Nadużyciu Nieaktualne ubranie/część ciała </string> <string name="New Gesture"> - Nowy gest + Nowa gesturka </string> <string name="New Script"> Nowy skrypt </string> <string name="New Note"> - Nowa notka + Stwórz nowe ogłoszenie </string> <string name="New Folder"> Nowy folder @@ -4296,28 +3935,28 @@ Raport o Nadużyciu Zawartość </string> <string name="Gesture"> - Gesty + Gesturki </string> <string name="Male Gestures"> - Gesty dla mężczyzn + Gesturki dla mężczyzn </string> <string name="Female Gestures"> - Gesty dla kobiet + Gesturki dla kobiet </string> <string name="Other Gestures"> - Inne gesty + Inne gesturki </string> <string name="Speech Gestures"> - Gesty dźwiękowe + Gesturki przemówienia </string> <string name="Common Gestures"> - Gesty + Gesturki </string> <string name="Male - Excuse me"> - Mężczyzna - Ja bardzo przepraszam + Mężczyzna - Excuse me </string> <string name="Male - Get lost"> - Mężczyzna - Znikaj z oczu + Mężczyzna - Get lost </string> <string name="Male - Blow kiss"> Mężczyzna - Całusek @@ -4329,7 +3968,7 @@ Raport o Nadużyciu Mężczyzna - Znudzony </string> <string name="Male - Hey"> - Mężczyzna - Hej + Mężczyzna - Hey </string> <string name="Male - Laugh"> Mężczyzna - Śmiech @@ -4356,10 +3995,10 @@ Raport o Nadużyciu Kobieta - Zakłopotana </string> <string name="Female - Excuse me"> - Kobieta - Ja bardzo przepraszam + Kobieta - Excuse me </string> <string name="Female - Get lost"> - Kobieta - Znikaj z oczu + Kobieta - Get lost </string> <string name="Female - Blow kiss"> Kobieta - Całusek @@ -4371,22 +4010,22 @@ Raport o Nadużyciu Kobieta - Znudzona </string> <string name="Female - Hey"> - Kobieta - Hej + Kobieta - Hey </string> <string name="Female - Hey baby"> - Kobieta - Hej słonko + Kobieta - Hey baby </string> <string name="Female - Laugh"> Kobieta - Śmiech </string> <string name="Female - Looking good"> - Kobieta - Wygląda nieźle + Kobieta - Looking good </string> <string name="Female - Over here"> - Kobieta - Tutaj + Kobieta - Over here </string> <string name="Female - Please"> - Kobieta - Proszę + Kobieta - Please </string> <string name="Female - Repulsed"> Kobieta - Odrzucenie @@ -4401,19 +4040,20 @@ Raport o Nadużyciu Kobieta - Wow </string> <string name="AvatarBirthDateFormat"> - [day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] + [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] </string> <string name="DefaultMimeType"> - brak/brak + żadne/żadne </string> <string name="texture_load_dimensions_error"> - Nie można załadować obrazów większych niż [WIDTH]*[HEIGHT] + Nie można załadować zdjęcia większego niż [WIDTH]*[HEIGHT] </string> + <string name="words_separator" value=","/> <string name="server_is_down"> Pomimo naszych najlepszych starań wystąpił niespodziewany problem. -Proszę sprawdzić czy na stronie status.secondlifegrid.net nie zostały umieszczone informacje o rozpoznanych problemach serwera. -Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia firewall. + Proszę sprawdzić czy na stronie status.secondlifegrid.net nie zostały umieszczone informacje o rozpoznanych problemach serwera. + Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia firewall. </string> <string name="dateTimeWeekdaysNames"> Niedziela:Poniedziałek:Wtorek:Środa:Czwartek:Piątek:Sobota @@ -4425,13 +4065,19 @@ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Sierpień:Wrzesień:Październik:Listopad:Grudzień </string> <string name="dateTimeMonthShortNames"> - Sty:Lut:Mar:Kwi:Maj:Cze:Lip:Sie:Wrz:Paź:Lis:Gru + St.:Lt.:Mrz.:Kw.:Maj:Cz.:Lp.:Sie.:Wrz.:Li.:Paź.:Gru. </string> - <string name="LocalEstimateUSD"> - [AMOUNT] US$ + <string name="dateTimeDayFormat"> + [MDAY] + </string> + <string name="dateTimeAM"> + AM </string> - <string name="Group Ban"> - Bany grupowe + <string name="dateTimePM"> + PM + </string> + <string name="LocalEstimateUSD"> + US$ [AMOUNT] </string> <string name="Membership"> Członkostwo @@ -4443,40 +4089,40 @@ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia Status grupy </string> <string name="Parcel Management"> - Zarządzanie działką + Parcel Management </string> <string name="Parcel Identity"> - Status działki + Parcel Identity </string> <string name="Parcel Settings"> - Ustawienia działki + Parcel Settings </string> <string name="Parcel Powers"> - Możliwości działki + Parcel Powers </string> <string name="Parcel Access"> - Dostęp do działki + Dostęp do posiadłości </string> <string name="Parcel Content"> - Zawartość działki + Parcel Content </string> <string name="Object Management"> - Zarządzanie obiektami + Object Management </string> <string name="Accounting"> - Rachunki + Accounting </string> <string name="Notices"> Ogłoszenia </string> - <string name="Chat"> + <string name="Chat" value=" Czat :"> Czat </string> <string name="DeleteItems"> - Usunąć zaznaczone obiekty? + Usuń wybrane obiekty? </string> <string name="DeleteItem"> - Usunąć zaznaczony obiekt? + Usuń wybrane obiekty? </string> <string name="EmptyOutfitText"> W tym stroju nie ma elementów @@ -4485,9 +4131,9 @@ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia Wybierz edytor używając ustawień ExternalEditor. </string> <string name="ExternalEditorNotFound"> - Nie odnaleziono zewnętrznego edytora wskazanego przez Ciebie. + Nie odnaleziono zewnętrzego edytora wskazanego przez Ciebie. Spróbuj załączyć ścieżkę do edytora w cytowaniu. -(np. "/ścieżka do mojego/edytora" "%s") +(np. "/ścieżka do mojego/edytora" "%s") </string> <string name="ExternalEditorCommandParseError"> Błąd w składni komendy zewnętrznego edytora. @@ -4495,11 +4141,86 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="ExternalEditorFailedToRun"> Uruchomienie zewnętrznego edytora nie powiodło się. </string> - <string name="TranslationFailed"> - Tłumaczenie nie powiodło się: [REASON] + <string name="Esc"> + Esc + </string> + <string name="Space"> + Space + </string> + <string name="Enter"> + Enter + </string> + <string name="Tab"> + Tab + </string> + <string name="Ins"> + Ins + </string> + <string name="Del"> + Del + </string> + <string name="Backsp"> + Backsp + </string> + <string name="Shift"> + Shift + </string> + <string name="Ctrl"> + Ctrl + </string> + <string name="Alt"> + Alt + </string> + <string name="CapsLock"> + CapsLock + </string> + <string name="Home"> + Miejsce Startu + </string> + <string name="End"> + End + </string> + <string name="PgUp"> + PgUp + </string> + <string name="PgDn"> + PgDn + </string> + <string name="F1"> + F1 + </string> + <string name="F2"> + F2 + </string> + <string name="F3"> + F3 + </string> + <string name="F4"> + F4 + </string> + <string name="F5"> + F5 + </string> + <string name="F6"> + F6 + </string> + <string name="F7"> + F7 </string> - <string name="TranslationResponseParseError"> - Wystąpił błąd podczas przetwarzania odpowiedzi translatora. + <string name="F8"> + F8 + </string> + <string name="F9"> + F9 + </string> + <string name="F10"> + F10 + </string> + <string name="F11"> + F11 + </string> + <string name="F12"> + F12 </string> <string name="Add"> Dodaj @@ -4508,270 +4229,252 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. Odejmij </string> <string name="Multiply"> - Pomnóż + Mnożenie </string> <string name="Divide"> Podziel </string> - <string name="BeaconParticle"> - Emitery cząsteczek (niebieski) - </string> - <string name="BeaconPhysical"> - Emitery fizycznych obiektów (zielony) - </string> - <string name="BeaconScripted"> - Emitery obiektów skryptowanych (czerwony) - </string> - <string name="BeaconScriptedTouch"> - Emitery obiektów skryptowanych z opcją dotyku (czerwony) - </string> - <string name="BeaconSound"> - Emitery dźwięków (żółty) - </string> - <string name="BeaconMedia"> - Emitery mediów (biały) - </string> - <string name="ParticleHiding"> - Ukryj cząsteczki + <string name="PAD_DIVIDE"> + PAD_DIVIDE </string> - <string name="Command_AboutLand_Label"> - O działce + <string name="PAD_LEFT"> + PAD_LEFT </string> - <string name="Command_Appearance_Label"> - Wygląd + <string name="PAD_RIGHT"> + PAD_RIGHT </string> - <string name="Command_Avatar_Label"> - Awatar + <string name="PAD_DOWN"> + PAD_DOWN </string> - <string name="Command_Build_Label"> - Buduj + <string name="PAD_UP"> + PAD_UP </string> - <string name="Command_Chat_Label"> - Rozmowy + <string name="PAD_HOME"> + PAD_HOME </string> - <string name="Command_Conversations_Label"> - Rozmowy + <string name="PAD_END"> + PAD_END </string> - <string name="Command_Compass_Label"> - Kompas + <string name="PAD_PGUP"> + PAD_PGUP </string> - <string name="Command_Destinations_Label"> - Cele podróży + <string name="PAD_PGDN"> + PAD_PGDN </string> - <string name="Command_Gestures_Label"> - Gesty + <string name="PAD_CENTER"> + PAD_CENTER </string> - <string name="Command_HowTo_Label"> - Samouczek + <string name="PAD_INS"> + PAD_INS </string> - <string name="Command_Inventory_Label"> - Szafa + <string name="PAD_DEL"> + PAD_DEL </string> - <string name="Command_Map_Label"> - Mapa + <string name="PAD_Enter"> + PAD_Enter </string> - <string name="Command_Marketplace_Label"> - Marketplace + <string name="PAD_BUTTON0"> + PAD_BUTTON0 </string> - <string name="Command_MiniMap_Label"> - Minimapa + <string name="PAD_BUTTON1"> + PAD_BUTTON1 </string> - <string name="Command_Move_Label"> - Ruch + <string name="PAD_BUTTON2"> + PAD_BUTTON2 </string> - <string name="Command_Outbox_Label"> - Skrzynka nadawcza kupca + <string name="PAD_BUTTON3"> + PAD_BUTTON3 </string> - <string name="Command_People_Label"> - Ludzie + <string name="PAD_BUTTON4"> + PAD_BUTTON4 </string> - <string name="Command_Picks_Label"> - Miejsca + <string name="PAD_BUTTON5"> + PAD_BUTTON5 </string> - <string name="Command_Places_Label"> - Landmarki + <string name="PAD_BUTTON6"> + PAD_BUTTON6 </string> - <string name="Command_Preferences_Label"> - Preferencje + <string name="PAD_BUTTON7"> + PAD_BUTTON7 </string> - <string name="Command_Profile_Label"> - Profil + <string name="PAD_BUTTON8"> + PAD_BUTTON8 </string> - <string name="Command_Search_Label"> - Szukaj + <string name="PAD_BUTTON9"> + PAD_BUTTON9 </string> - <string name="Command_Snapshot_Label"> - Zdjęcie + <string name="PAD_BUTTON10"> + PAD_BUTTON10 </string> - <string name="Command_Speak_Label"> - Głos + <string name="PAD_BUTTON11"> + PAD_BUTTON11 </string> - <string name="Command_View_Label"> - Kamera + <string name="PAD_BUTTON12"> + PAD_BUTTON12 </string> - <string name="Command_Voice_Label"> - Pobliski głos + <string name="PAD_BUTTON13"> + PAD_BUTTON13 </string> - <string name="Command_AboutLand_Tooltip"> - Informacje o miejscu, które odwiedzasz + <string name="PAD_BUTTON14"> + PAD_BUTTON14 </string> - <string name="Command_Appearance_Tooltip"> - Zmień swojego awatara + <string name="PAD_BUTTON15"> + PAD_BUTTON15 </string> - <string name="Command_Avatar_Tooltip"> - Wybierz kompletnego awatara + <string name="-"> + - </string> - <string name="Command_Build_Tooltip"> - Budowanie obiektów i zmiana terenu + <string name="="> + = </string> - <string name="Command_Chat_Tooltip"> - Rozmawiaj z ludźmi w pobliżu używając tekstu + <string name="`"> + ` </string> - <string name="Command_Conversations_Tooltip"> - Rozmawiaj ze wszystkimi + <string name=";"> + ; </string> - <string name="Command_Compass_Tooltip"> - Kompas + <string name="["> + [ </string> - <string name="Command_Destinations_Tooltip"> - Punkty, jakie mogą być interesujące + <string name="]"> + ] </string> - <string name="Command_Facebook_Tooltip"> - Wyślij na Facebooka + <string name="\"> + \ </string> - <string name="Command_Flickr_Tooltip"> - Wyślij na Flickr + <string name="0"> + 0 </string> - <string name="Command_Gestures_Tooltip"> - Gesty Twojego awatara + <string name="1"> + 1 </string> - <string name="Command_HowTo_Tooltip"> - Jak wykonywać zwyczajne rzeczy + <string name="2"> + 2 </string> - <string name="Command_Inventory_Tooltip"> - Przeglądaj i używaj rzeczy, jakie należą do Ciebie + <string name="3"> + 3 </string> - <string name="Command_Map_Tooltip"> - Mapa świata + <string name="4"> + 4 </string> - <string name="Command_Marketplace_Tooltip"> - Idź na zakupy + <string name="5"> + 5 </string> - <string name="Command_MiniMap_Tooltip"> - Pokaż ludzi w pobliżu + <string name="6"> + 6 </string> - <string name="Command_Move_Tooltip"> - Poruszanie Twoim awatarem + <string name="7"> + 7 </string> - <string name="Command_Outbox_Tooltip"> - Przenieś przedmioty na Marketplace, aby je sprzedać + <string name="8"> + 8 </string> - <string name="Command_People_Tooltip"> - Znajomi, grupy i ludzie w pobliżu + <string name="9"> + 9 </string> - <string name="Command_Picks_Tooltip"> - Miejsca, które są pokazywane jako ulubione w Twoim profilu + <string name="A"> + A </string> - <string name="Command_Places_Tooltip"> - Miejsca (landmarki) zapisane przez Ciebie + <string name="B"> + B </string> - <string name="Command_Preferences_Tooltip"> - Ustawienia + <string name="C"> + C </string> - <string name="Command_Profile_Tooltip"> - Edytuj lub zobacz swój profil + <string name="D"> + D </string> - <string name="Command_Search_Tooltip"> - Znajdź miejsca, wydarzenia i ludzi + <string name="E"> + E </string> - <string name="Command_Snapshot_Tooltip"> - Zrób zdjęcie + <string name="F"> + F </string> - <string name="Command_Speak_Tooltip"> - Rozmawiaj z ludźmi w pobliżu używając mikrofonu + <string name="G"> + G </string> - <string name="Command_View_Tooltip"> - Zmiana kąta patrzenia kamery + <string name="H"> + H </string> - <string name="Command_Voice_Tooltip"> - Sterowanie głośnością rozmów oraz ludzi wokół Ciebie + <string name="I"> + I </string> - <string name="Toolbar_Bottom_Tooltip"> - obecnie na Twoim dolnym pasku + <string name="J"> + J </string> - <string name="Toolbar_Left_Tooltip"> - obecnie na Twoim lewym pasku + <string name="K"> + K </string> - <string name="Toolbar_Right_Tooltip"> - obecnie na Twoim prawym pasku + <string name="L"> + L </string> - <string name="Retain%"> - %Zachowania + <string name="M"> + M </string> - <string name="Detail"> - Szczegóły + <string name="N"> + N </string> - <string name="Better Detail"> - Więcej szczegółów + <string name="O"> + O </string> - <string name="Surface"> - Powierzchnia + <string name="P"> + P </string> - <string name="Solid"> - Stałe + <string name="Q"> + Q </string> - <string name="Wrap"> - Zawiń + <string name="R"> + R </string> - <string name="Preview"> - Podgląd + <string name="S"> + S </string> - <string name="Normal"> - Normalne + <string name="T"> + T </string> - <string name="Pathfinding_Object_Attr_None"> - Brak + <string name="U"> + U </string> - <string name="Pathfinding_Object_Attr_Permanent"> - Wpływ na Navmesh + <string name="V"> + V </string> - <string name="Pathfinding_Object_Attr_Character"> - Postać + <string name="W"> + W </string> - <string name="Pathfinding_Object_Attr_MultiSelect"> - (Wiele) + <string name="X"> + X </string> - <string name="snapshot_quality_very_low"> - Bardzo niska + <string name="Y"> + Y </string> - <string name="snapshot_quality_low"> - Niska + <string name="Z"> + Z </string> - <string name="snapshot_quality_medium"> - Średnia + <string name="BeaconParticle"> + Podgląd lokalizatorów cząsteczek (niebieski) </string> - <string name="snapshot_quality_high"> - Wysoka + <string name="BeaconPhysical"> + Podgląd lokalizatorów fizycznych obiektów (zielony) </string> - <string name="snapshot_quality_very_high"> - Bardzo wysoka + <string name="BeaconScripted"> + Podgląd lokalizatorów obiektów skryptowanych (czerwony) </string> - <string name="TeleportMaturityExceeded"> - Rezydent nie może odwiedzić tego regionu. + <string name="BeaconScriptedTouch"> + Podgląd lokalizatorów obiektów skryptowanych z opcją dotyku (czerwony) </string> - <string name="UserDictionary"> - [Użytkownika] + <string name="BeaconSound"> + Podgląd lokalizatorów dźwięków (żółty) </string> - <string name="logging_calls_disabled_log_empty"> - Rozmowy nie są zapisywane do dziennika. Jeśli chcesz zacząć je logować wybierz "Zapisywanie: tylko dziennik" lub "Zapisywanie: dziennik i logi rozmów" w Preferencje > Czat. + <string name="BeaconMedia"> + Podgląd lokalizatorów mediów (biały) </string> - <string name="logging_calls_disabled_log_not_empty"> - Rozmowy nie będą więcej zapisywane. Jeśli chcesz kontynuować ich logowanie wybierz "Zapisywanie: tylko dziennik" lub "Zapisywanie: dziennik i logi rozmów" w Preferencje > Czat. + <string name="ParticleHiding"> + Ukryj cząsteczki </string> - <string name="logging_calls_enabled_log_empty"> - Nie ma zapisanych rozmów. Jeśli skontaktujesz się z kimś, lub ktoś z Tobą, to wpis dziennika pojawi się tutaj. + <string name="Command_MarketplaceListings_Label"> + Marketplace </string> - <string name="loading_chat_logs"> - Wczytywanie... + <string name="Command_MarketplaceListings_Tooltip"> + Sprzedaj owoce swojej twórczości </string> </strings> diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml index 47975a6386..1e2edd7a2f 100755 --- a/indra/newview/skins/default/xui/pt/floater_about.xml +++ b/indra/newview/skins/default/xui/pt/floater_about.xml @@ -1,73 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="SOBRE [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Construído com [COMPILER] versão [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Você está em [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] em [REGION] localizado em <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(coordenadas globais [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -Memória: [MEMORY_MB] MBs -Versão OS: [OS_VERSION] -Placa de vídeo: [GRAPHICS_CARD_VENDOR] -Placa gráfica: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Versão do driver de vídeo Windows: [GRAPHICS_CARD_VENDOR] - </floater.string> - <floater.string name="AboutLibs"> - Versão OpenGL: [OPENGL_VERSION] - -Versão libcurl: [LIBCURL_VERSION] -Versão J2C Decoder: [J2C_VERSION] -Versão do driver de áudio: [AUDIO_DRIVER_VERSION] -Versão Qt Webkit: [QT_WEBKIT_VERSION] -Versão do servidor de voz: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (nenhum) - </floater.string> - <floater.string name="AboutTraffic"> - Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Erro ao obter URL de notas de versão do servidor. - </floater.string> <tab_container name="about_tab"> <panel label="Info" name="support_panel"> <button label="Copiar" name="copy_btn"/> </panel> <panel label="Créditos" name="credits_panel"> - <text name="linden_intro"> - O Second Life é trazido a você pela Lindens: - </text> - <text_editor name="linden_names"> - Philip, Andrew, Doug, Richard, Phoenix, Ian, Mark, Robin, Dan, Char, Ryan, Eric, Jim, Lee, Jeff, Michael, Kelly, Steve, Catherine, Bub, Ramzi, Jill, Jeska, Don, Kona, Callum, Charity, Jack, Shawn, babbage, James, Lauren, Blue, Brent, Reuben, Pathfinder, Jesse, Patsy, Torley, Bo, Cyn, Jonathan, Gia, Annette, Ginsu, Harry, Lex, Runitai, Guy, Cornelius, Beth, Swiss, Thumper, Wendy, Teeple, Seth, Dee, Mia, Sally, Liana, Aura, Beez, Milo, Red, Gulliver, Marius, Joe, Jose, Dore, Justin, Nora, Morpheus, Lexie, Amber, Chris, Xan, Leyla, Walker, Sabin, Joshua, Hiromi, Tofu, Fritz, June, Jean, Ivy, Dez, Ken, Betsy, Which, Spike, Rob, Zee, Dustin, George, Claudia, del, Matthew, jane, jay, Adrian, Yool, Rika, Yoz, siobhan, Qarl, Benjamin, Beast, Everett, madhavi, Christopher, Izzy, stephany, Jeremy, sean, adreanne, Pramod, Tobin, sejong, Iridium, maurice, kj, Meta, kari, JP, bert, kyle, Jon, Socrates, Bridie, Ivan, maria, Aric, Coco, Periapse, sandy, Storrs, Lotte, Colossus, Brad, Pastrami, Zen, BigPapi, Banzai, Sardonyx, Mani, Garry, Jaime, Neuro, Samuel, Niko, CeeLo, Austin, Soft, Poppy, emma, tessa, angelo, kurz, alexa, Sue, CG, Blake, Erica, Brett, Bevis, kristen, Q, simon, Enus, MJ, laurap, Kip, Scouse, Ron, Ram, kend, Marty, Prospero, melissa, kraft, Nat, Seraph, Hamilton, Lordan, Green, miz, Ashlei, Trinity, Ekim, Echo, Charlie, Rowan, Rome, Jt, Doris, benoc, Christy, Bao, Kate, Tj, Patch, Cheah, Johan, Brandy, Angela, Oreh, Cogsworth, Lan, Mitchell, Space, Bambers, Einstein, Bender, Malbers, Matias, Maggie, Rothman, Milton, Niall, Marin, Allison, Mango, Andrea, Katt, Yi, Ambroff, Rico, Raymond, Gail, Christa, William, Dawn, Usi, Dynamike, M, Corr, Dante, Molly, kaylee, Danica, Kelv, Lil, jacob, Nya, Rodney, elsie, Blondin, Grant, Nyx, Devin, Monty, Minerva, Keira, Katie, Jenn, Makai, Clare, Joy, Cody, Gayathri, FJ, spider, Oskar, Landon, Jarv, Noelle, Al, Doc, Gray, Vir, t, Maestro, Simone, Shannon, yang, Courtney, Scott, charlene, Quixote, Susan, Zed, Amanda, Katelin, Esbee, JoRoan, Enkidu, roxie, Scarlet, Merov, Kevin, Judy, Rand, Newell, Les, Dessie, Galen, Michon, Geo, Siz, Calyle, Pete, Praveen, Callen, Sheldon, Pink, Nelson, jenelle, Terrence, Nathan, Juan, Sascha, Huseby, Karina, Kaye, Kotler, Lis, Darv, Charrell, Dakota, Kimmora, Theeba, Taka, Mae, Perry, Ducot, dana, Esther, Dough, gisele, Doten, Viale, Fisher, jessieann, ashley, Torres, delby, rountree, kurt, Slaton, Madison, Rue, Gino, Wen, Casssandra, Brodesky, Squid, Gez, Rakesh, Gecko, Ladan, Tony, Tatem, Squire, Falcon, BK, Crimp, Tiggs, Bacon, Coyot, Carmilla, Webb, Sea, Arch, Jillian, Jason, Bernard, Vogt, Peggy, dragon, Pup, xandix, Wallace, Bewest, Inoshiro, Rhett, AG, Aimee, Ghengis, Itiaes, Eli, Steffan, Epic, Grapes, Stone, Prep, Scobu, Robert, Alain, Carla, Vicky, Tia, Alec, Taras, Lisa, Oz, Ariane, Log, House, Kazu, Kim, Drofnas, Tyler, Campbell, Michele, Madeline, Nelly, Baron, Thor, Lori, Hele, Fredrik, Teddy, Pixie, Berry, Gabrielle, Alfonso, Brooke, Wolf, Ringo, Cru, Charlar, Rodvik, Gibson, Elise, Bagman, Greger, Leonidas, Jerm, Leslie, CB, Brenda, Durian, Carlo, mm, Zeeshan, Caleb, Max, Elikak, Mercille, Steph, Chase - </text_editor> - <text name="contrib_intro"> - com contribuições de código aberto de: - </text> - <text_editor name="contrib_names"> - Dummy Name substituído durante a execução - </text_editor> - <text name="trans_intro"> - e traduções de: - </text> - <text_editor name="trans_names"> - Dummy Name substituído durante a execução - </text_editor> + <text name="linden_intro">O Second Life é trazido a você pela Lindens, +com contribuições de código aberto de:</text> + <text_editor name="contrib_names">Dummy Name substituído durante a execução</text_editor> </panel> <panel label="Licenças" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -94,8 +37,7 @@ Versão do servidor de voz: [VOICE_VERSION] Todos os direitos reservados. Consulte licenses.txt para obter detalhes. - Codificação de áudio da conversa com voz: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Codificação de áudio da conversa com voz: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_associate_listing.xml b/indra/newview/skins/default/xui/pt/floater_associate_listing.xml new file mode 100644 index 0000000000..1fac5643b0 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="ASSOCIAR LISTAGEM"> + <text name="message">ID de listagem:</text> + <line_editor name="listing_id">Digite a ID aqui</line_editor> + <button label="OK" name="OK"/> + <button label="Cancelar" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/pt/floater_edit_hover_height.xml new file mode 100644 index 0000000000..163ab440ea --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="DEFINIR ALTURA DE FOCO"> + <slider label="Altura" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml index 8a8f1f5b34..5f04c08531 100755 --- a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="PROPRIEDADES DE ITEM NO INVENTÁRIO"> - <floater.string name="unknown"> - (desconhecido) - </floater.string> - <floater.string name="public"> - (público) - </floater.string> - <floater.string name="you_can"> - Você pode: - </floater.string> - <floater.string name="owner_can"> - Proprietário pode : - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Nome: - </text> - <text name="LabelItemDescTitle"> - Descrição: - </text> - <text name="LabelCreatorTitle"> - Criador: - </text> + <floater.string name="unknown">(desconhecido)</floater.string> + <floater.string name="public">(público)</floater.string> + <floater.string name="you_can">Você pode:</floater.string> + <floater.string name="owner_can">Proprietário pode :</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Nome:</text> + <text name="LabelItemDescTitle">Descrição:</text> + <text name="LabelCreatorTitle">Criador:</text> <button label="Perfil..." label_selected="" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Dono: - </text> + <text name="LabelOwnerTitle">Dono:</text> <button label="Perfil..." label_selected="" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Adquirido: - </text> - <text name="LabelAcquiredDate"> - Qua Mai 24 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Você: - </text> + <text name="LabelAcquiredTitle">Adquirido:</text> + <text name="LabelAcquiredDate">Qua Mai 24 12:50:46 2006</text> + <text name="OwnerLabel">Você:</text> <check_box label="Editar" name="CheckOwnerModify"/> <check_box label="Copiar" name="CheckOwnerCopy"/> <check_box label="Revender" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Todos: - </text> + <text name="AnyoneLabel">Todos:</text> <check_box label="Cortar" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Grupo: - </text> + <text name="GroupLabel">Grupo:</text> <check_box label="Compartilhar" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel" width="230"> - Próximo proprietário: - </text> + <text name="NextOwnerLabel" width="230">Próximo proprietário:</text> <check_box label="Editar" name="CheckNextOwnerModify"/> <check_box label="Copiar" name="CheckNextOwnerCopy"/> <check_box label="Revender" name="CheckNextOwnerTransfer"/> <check_box label="À venda" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Cortar" name="Copy"/> + <combo_box.item label="Conteúdo" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Preço:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_item_properties.xml b/indra/newview/skins/default/xui/pt/floater_item_properties.xml new file mode 100644 index 0000000000..400196c3c3 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="PROPRIEDADES DO ITEM"/> diff --git a/indra/newview/skins/default/xui/pt/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/pt/floater_marketplace_listings.xml new file mode 100644 index 0000000000..fa4ac50ab0 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="LISTAGENS DO MARKETPLACE"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Carregando...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/pt/floater_marketplace_validation.xml new file mode 100644 index 0000000000..39e59a687f --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Auditar Listagens do Marketplace"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_openobject.xml b/indra/newview/skins/default/xui/pt/floater_openobject.xml index 164bfee3aa..e8b72700c9 100755 --- a/indra/newview/skins/default/xui/pt/floater_openobject.xml +++ b/indra/newview/skins/default/xui/pt/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Copiar para inventário" label_selected="Copiar para inventário" name="copy_to_inventory_button" width="132"/> - <button label="Copiar e adicionar à roupa" label_selected="Copiar e adicionar à roupa" left="152" name="copy_and_wear_button"/> + <text name="border_note"> + Copiar para inventário e vestir + </text> + <button label="Adicionar ao look" label_selected="Adicionar ao look" left="152" name="copy_and_wear_button"/> + <button label="Substituir look" label_selected="Substituir look" name="copy_and_replace_button"/> + <button label="Apenas copiar para inventário" label_selected="Apenas copiar para inventário" name="copy_to_inventory_button" width="132"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml index 8094ad376c..77e814b575 100755 --- a/indra/newview/skins/default/xui/pt/floater_pay.xml +++ b/indra/newview/skins/default/xui/pt/floater_pay.xml @@ -1,25 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string name="payee_group"> - Pagar grupo - </string> - <string name="payee_resident"> - Pagar residente - </string> - <text left="5" name="payee_label"> - Pagar: - </text> - <icon name="icon_person" tool_tip="Pessoa"/> - <text name="payee_name"> - Test Name That Is Extremely Long To Check Clipping - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - Outro valor: - </text> - <button label="Pagar" label_selected="Pagar" name="pay btn"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + <string name="payee_group">Pagar grupo</string> + <string name="payee_resident">Pagar residente</string> + <text name="paying_text">Você está pagando:</text> + <text name="payee_name">Test Name That Is Extremely Long To Check Clipping</text> + <panel label="Buscar" name="PatternsPanel"> + <button label="Pagar L$ 1" label_selected="Pagar L$ 1" name="fastpay 1"/> + <button label="Pagar L$ 5" label_selected="Pagar L$ 5" name="fastpay 5"/> + <button label="Pagar L$ 10" label_selected="Pagar L$ 10" name="fastpay 10"/> + <button label="Pagar L$ 20" label_selected="Pagar L$ 20" name="fastpay 20"/> + </panel> + <panel label="Buscar" name="InputPanel"> + <text name="amount text">Outro valor:</text> + <button label="Pagar" label_selected="Pagar" name="pay btn"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/indra/newview/skins/default/xui/pt/floater_pay_object.xml index a5579f03bf..4f7fa6ca67 100755 --- a/indra/newview/skins/default/xui/pt/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/pt/floater_pay_object.xml @@ -1,30 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <string halign="left" name="payee_group" width="100"> - Pagar grupo - </string> - <string halign="left" name="payee_resident" width="120"> - Pagar residente - </string> - <icon name="icon_person" tool_tip="Pessoa"/> - <text left="105" name="payee_name"> - Ericacita Moostopolison - </text> - <text halign="left" left="5" name="object_name_label" width="95"> - Via objeto: - </text> + <string halign="left" name="payee_group" width="100">Pagar grupo</string> + <string halign="left" name="payee_resident" width="120">Pagar residente</string> + <text name="paying_text">Você está pagando:</text> + <text left="105" name="payee_name">Ericacita Moostopolison</text> + <text halign="left" left="5" name="object_name_label" width="95">Via objeto:</text> <icon name="icon_object" tool_tip="Objects"/> - <text left="105" name="object_name_text"> - Meu objeto maravilho, fantástico e com nome comprido e imaginativo - </text> - <button label="L$1" label_selected="L$1" left="125" name="fastpay 1" width="70"/> - <button label="L$5" label_selected="L$5" left="200" name="fastpay 5" width="70"/> - <button label="L$10" label_selected="L$10" left="125" name="fastpay 10" width="70"/> - <button label="L$20" label_selected="L$20" left="200" name="fastpay 20" width="70"/> - <text halign="left" left="5" name="amount text"> - Outro valor: - </text> - <line_editor left="60" name="amount" width="50"/> - <button label="Pagar" label_selected="Pagar" name="pay btn"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + <text left="105" name="object_name_text">Meu objeto maravilho, fantástico e com nome comprido e imaginativo</text> + <panel label="Buscar" name="PatternsPanel"> + <button label="Pagar L$ 1" label_selected="Pagar L$ 1" name="fastpay 1"/> + <button label="Pagar L$ 5" label_selected="Pagar L$ 5" name="fastpay 5"/> + <button label="Pagar L$ 10" label_selected="Pagar L$ 10" name="fastpay 10"/> + <button label="Pagar L$ 20" label_selected="Pagar L$ 20" name="fastpay 20"/> + </panel> + <panel label="Buscar" name="InputPanel"> + <text name="amount text">Outro valor:</text> + <button label="Pagar" label_selected="Pagar" name="pay btn"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml index 2d4cd670e6..ac79422110 100755 --- a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Minha aparência" name="Change Outfit"/> <menu_item_call label="Editar meu look" name="Edit Outfit"/> <menu_item_call label="Editar meu corpo" name="Edit My Shape"/> + <menu_item_call label="Altura de foco" name="Hover Height"/> <menu_item_call label="Meus amigos" name="Friends..."/> <menu_item_call label="Meus grupos" name="Groups..."/> <menu_item_call label="Meu perfil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml index 447b77657b..a0ac71e018 100755 --- a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Minha aparência" name="Chenge Outfit"/> <menu_item_call label="Editar meu look" name="Edit Outfit"/> <menu_item_call label="Editar meu corpo" name="Edit My Shape"/> + <menu_item_call label="Altura de foco" name="Hover Height"/> <menu_item_call label="Meus amigos" name="Friends..."/> <menu_item_call label="Meus grupos" name="Groups..."/> <menu_item_call label="Meu perfil" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml index 636b356c8b..79261ceb1f 100755 --- a/indra/newview/skins/default/xui/pt/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Criar listagem" name="Marketplace Create Listing"/> + <menu_item_call label="Associar listagem" name="Marketplace Associate Listing"/> + <menu_item_call label="Obter listagem (Atualizar)" name="Marketplace Get Listing"/> + <menu_item_call label="Verificar erros" name="Marketplace Check Listing"/> + <menu_item_call label="Editar listagem" name="Marketplace Edit Listing"/> + <menu_item_call label="Listar" name="Marketplace List"/> + <menu_item_call label="Parar de oferecer" name="Marketplace Unlist"/> + <menu_item_call label="Ativar" name="Marketplace Activate"/> + <menu_item_call label="Desativar" name="Marketplace Deactivate"/> <menu_item_call label="Compartilhar" name="Share"/> <menu_item_call label="Comprar" name="Task Buy"/> <menu_item_call label="Abrir" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Adicionar" name="Wearable Add"/> <menu_item_call label="Tirar" name="Take Off"/> <menu_item_call label="Copiar para Caixa de saída do lojista" name="Merchant Copy"/> - <menu_item_call label="Enviar para Mercado" name="Marketplace Send"/> + <menu_item_call label="Copiar para Listagens do Marketplace" name="Marketplace Copy"/> + <menu_item_call label="Mover para Listagens do Marketplace" name="Marketplace Move"/> <menu_item_call label="--Sem opções--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/pt/menu_marketplace_view.xml b/indra/newview/skins/default/xui/pt/menu_marketplace_view.xml new file mode 100644 index 0000000000..2236df5c87 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Ordenar por quantidade em estoque stock (baixo a alto)" name="sort_by_stock_amount"/> + <menu_item_check label="Exibir apenas pastas da listagem" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml index b5af342754..9b3b6077ed 100755 --- a/indra/newview/skins/default/xui/pt/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="Comprar L$..." name="Buy and Sell L$"/> <menu_item_call label="Caixa de saída do lojista..." name="MerchantOutbox"/> + <menu_item_call label="Listagens do Marketplace..." name="MarketplaceListings"/> <menu_item_call label="Painel da conta..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=pt"/> </menu_item_call> @@ -177,7 +178,7 @@ <menu_item_call label="Blogs do [SECOND_LIFE]" name="Second Life Blogs"/> <menu_item_call label="Denunciar abuso" name="Report Abuse"/> <menu_item_call label="Relatar bug" name="Report Bug"/> - <menu_item_call label="Empurrões, trombadas e tapas" name="Bumps, Pushes &amp; Hits"/> + <menu_item_call label="Bumps, Pushes & Hits" name="Bumps, Pushes &amp; Hits"/> <menu_item_call label="Sobre [APP_NAME]" name="About Second Life"/> </menu> <menu label="Avançado" name="Advanced"> @@ -250,6 +251,7 @@ <menu_item_check label="Painel de textura" name="Texture Console"/> <menu_item_check label="Console de depuração" name="Debug Console"/> <menu_item_call label="Painel de avisos" name="Notifications"/> + <menu_item_check label="Console de depuração de região" name="Region Debug Console"/> <menu_item_check label="Tempos" name="Fast Timers"/> <menu_item_check label="Memória" name="Memory"/> <menu_item_check label="Estatísticas da cena" name="Scene Statistics"/> @@ -325,7 +327,7 @@ <menu label="Rede" name="Network"> <menu_item_check label="Pausar avatar" name="AgentPause"/> <menu_item_call label="Drop a Packet" name="Drop a Packet"/> - </menu> + </menu> <menu label="Mundo" name="DevelopWorld"> <menu_item_check label="Impor sobre sol de simulação" name="Sim Sun Override"/> <menu_item_check label="Clima fixo" name="Fixed Weather"/> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index a01c9c757b..29b85d9e97 100755 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -128,6 +128,88 @@ Nenhuma pasta foi enviada ao Marketplace devido a um erro do sistema ou da rede. Ocorreu uma falha na inicialização do Marketplace devido a um erro do sistema ou da rede. Tente novamente mais tarde. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Copiar ou mover para Pasta de estoque com falha com o erro: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Copiar ou mover para Listagens do Marketplace com falha com o erro: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + Ocorreu uma falha na transação com o Marketplace com o seguinte erro: + + Motivo: '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Não foi possível listar este produto ou ativar a pasta de versões. Geralmente, isso é causado por ausência de informações no formulário de descrição da listagem, mas pode ser causado por erros na estrutura de pastas. Edite a listagem ou verifique se há erros na pasta de listagem. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Falha ao listar no Marketplace com erro: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Falha ao ativar esta pasta de versões com erro: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Esta ação alterará o conteúdo ativo desta listagem. Deseja continuar? + <usetemplate ignoretext="Confirmar antes de alterar uma listagem ativa no Marketplace" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Os itens arrastados para a janela Listagens do Marketplace são movidos de seus locais originais e não copiados. Deseja continuar? + <usetemplate ignoretext="Confirmar antes de mover um item do inventário para o Marketplace" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Mover ou excluir uma pasta de listagem excluirá sua listagem do Marketplace. Se você deseja manter a listagem do Marketplace, mova ou exclua o conteúdo da pasta de versões que você deseja modificar. Deseja continuar? + <usetemplate ignoretext="Confirmar antes de mover ou excluir uma listagem do Marketplace" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Você não tem permissão para copiar um ou mais deste itens para o Marketplace. Você pode movê-los ou deixá-los para trás. + <usetemplate canceltext="Cancelar" ignoretext="Confirmar antes de tentar copiar uma seleção que contenha itens de cópia proibida para o Marketplace" name="yesnocancelbuttons" notext="Não mover item(ns)" yestext="Mover item(ns)"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Esta ação removerá esta listagem. Deseja continuar? + <usetemplate ignoretext="Confirmar antes de remover uma listagem ativa no Marketplace" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Esta ação desativará a pasta de versões da listagem atual. Deseja continuar? + <usetemplate ignoretext="Confirmar antes de desativar a pasta de versões de uma listagem no Marketplace" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + A listagem não pode ser atualizada. +[[URL] Clique aqui] para editá-la no Marketplace. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Não é possível usar roupas ou partes do corpo que estejam na pasta Listagens do Marketplace. + </notification> + <notification name="AlertMerchantListingInvalidID"> + ID de listagem inválida. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Há várias pastas sem versão ou com várias versões nesta listagem. Você precisará selecionar e ativar uma delas separadamente mais tarde. + <usetemplate ignoretext="Alertar sobre a ativação da pasta de versões quando criar uma listagem com várias pastas de versões" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Separamos itens de estoque de tipos diferentes em pastas de estoque diferentes para que sua pasta fique organizada de maneira que possamos listá-la. + <usetemplate ignoretext="Alertar quando a pasta de estoque for dividida antes de ser listada" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Removemos sua listagem porque o estoque está vazio. Você precisa adicionar mais unidades à pasta de estoque para que a listagem seja exibida novamente. + <usetemplate ignoretext="Alertar quando uma listagem não for listada porque a pasta de estoque está vazia" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> Houve um problema com o carregamento do texto para um script devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde. </notification> @@ -467,6 +549,10 @@ Nota: Este procedimento limpa o cache. Salvar alterações? <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Não Salvar" yestext="Salvar"/> </notification> + <notification name="DeleteNotecard"> + Excluir nota? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Falha ao salvar Gesto. Este gesto possui muitos passos. @@ -1860,6 +1946,9 @@ Isto mudará milhares de regiões e fará o spaceserver soluçar. A região que você está tentando visitar tem conteúdo que excede suas preferências atuais. Você pode alterar suas preferências acessando Eu > Preferências > Geral. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> A região que você está tentando visitar tem conteúdo [REGIONMATURITY], acessível apenas para adultos. <url name="url"> @@ -2148,6 +2237,10 @@ Mover para o inventário o(s) item(s)? <ignore name="ignore" text="Definir 'Pagar por objeto' ao construir um objeto sem script money()"/> </form> </notification> + <notification name="PayConfirmation"> + Confirme que você deseja pagar L$[AMOUNT] a [TARGET]. + <usetemplate ignoretext="Confirmar antes de pagar (somas acima de L$ 200)" name="okcancelignore" notext="Cancelar" yestext="Pagar"/> + </notification> <notification name="OpenObjectCannotCopy"> Não há itens neste objeto que você está autorizado a copiar. </notification> @@ -3829,9 +3922,11 @@ Tente novamente em instantes. </notification> <notification name="TeleportedByAttachment"> Você foi teletransportado por um anexo em [ITEM_ID] + <usetemplate ignoretext="Teletransportar: Você foi teletransportado por um anexo" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Você foi teletransportado pelo objeto '[OBJECT_NAME]' no lote '[PARCEL_NAME]' + <usetemplate ignoretext="Teletransportar: Você foi teletransportado por um objeto em um lote" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Você foi teletransportado pelo objeto '[OBJECT_NAME]' de propriedade de [OWNER_ID] @@ -4163,7 +4258,7 @@ Tente selecionar uma quantidade menor de terreno. <usetemplate ignoretext="Não foi possível mover arquivos. Caminho anterior restaurado." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Ocorreu um problema ao salvar as permissões padrão devido ao seguinte motivo: [REASON]. Tente definir as permissões padrão mais tarde. + Ocorreu um problema ao salvar as permissões padrão do objeto: [REASON]. Tente definir as permissões padrão mais tarde. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml index 8ac3e57c4c..ffcf72b1b4 100755 --- a/indra/newview/skins/default/xui/pt/panel_login.xml +++ b/indra/newview/skins/default/xui/pt/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php?lang=pt - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=pt</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Nome de usuário" name="username_combo" tool_tip="O nome de usuário que você escolheu ao fazer seu cadastro, como zecazc12 ou Magia Solar"/> <line_editor label="Senha" name="password_edit"/> - <check_box label="Lembrar-me" name="remember_check"/> - <text name="forgot_password_text"> - Senha esquecida - </text> - <button label="Login" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - no último local - </text> <combo_box label="Meus locais favoritos" name="start_location_combo"> + <combo_box.item label="Última posição" name="MyLastLocation"/> <combo_box.item label="Minha casa" name="MyHome"/> </combo_box> - <button label="Login" name="connect_favorite_btn"/> - <line_editor label="Digite um local" name="location_edit"/> - <button label="Login" name="connect_location_btn"/> + <button label="Login" name="connect_btn"/> + <check_box label="Lembrar-me" name="remember_check"/> + <text name="forgot_password_text">Senha esquecida</text> <combo_box label="Selecionar grade" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/pt/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/pt/panel_marketplace_listings.xml new file mode 100644 index 0000000000..cfa0e10038 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Marketplace" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Opções de exibição/ordenação"/> + <button name="add_btn" tool_tip="Cria uma nova pasta de listagem"/> + <button label="Verificar erros" name="audit_btn" tool_tip="Verificar suas listagens do Marketplace"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Filtrar listagens do Marketplace" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..5967f24628 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="TUDO" name="All Items" tool_tip="Arraste e solte os itens aqui para listá-los"/> diff --git a/indra/newview/skins/default/xui/pt/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..6549f82b5c --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="PUBLICADA" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..1797be5ae8 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="DESASSOCIADA" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..79b8557ec3 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="NÃO PUBLICADA" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/indra/newview/skins/default/xui/pt/panel_status_bar.xml index cb9a6eb757..cfe52ff404 100755 --- a/indra/newview/skins/default/xui/pt/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pt/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Perda de pacote - </panel.string> - <panel.string name="bandwidth_tooltip"> - Banda - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">Perda de pacote</panel.string> + <panel.string name="bandwidth_tooltip">Banda</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel left="-410" name="balance_bg" width="200"> - <text name="balance" tool_tip="Atualizar saldo de L$" value="L$20"/> + <text name="balance" tool_tip="Atualizar saldo de L$" value="L$??"/> <button label="Comprar L$" name="buyL" tool_tip="Comprar mais L$"/> <button label="Comprar" name="goShop" tool_tip="Abrir Mercado do Second Life" width="80"/> </panel> - <text name="TimeText" tool_tip="Hora atual (Pacífico)"> - 24:00 AM PST - </text> + <text name="TimeText" tool_tip="Hora atual (Pacífico)">24:00 AM PST</text> <button name="media_toggle_btn" tool_tip="Tocar/Pausar todas mídias (música, vídeo, páginas web)"/> <button name="volume_btn" tool_tip="Volume geral"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml index cf8f12fad8..47ffffaf15 100755 --- a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Transferir" name="CheckNextOwnerTransfer" tool_tip="O próximo dono poderá revender ou dar este objeto"/> </panel> <check_box label="À venda" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> - <combo_box.item label="Copiar" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="Cortar" name="Copy"/> + <combo_box.item label="Conteúdo" name="Contents"/> <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Preço: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml index f0fd438cef..bbfaa4a4f5 100755 --- a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Perfil do objeto"> - <panel.string name="text deed continued"> - Doar - </panel.string> - <panel.string name="text deed"> - Doar - </panel.string> - <panel.string name="text modify info 1"> - Você pode modificar este objeto - </panel.string> - <panel.string name="text modify info 2"> - Você pode modificar estes objetos - </panel.string> - <panel.string name="text modify info 3"> - Você não pode modificar este objeto - </panel.string> - <panel.string name="text modify info 4"> - Você não pode modificar estes objetos - </panel.string> - <panel.string name="text modify info 5"> - Não é possível modificar este objeto através de uma demarcação da região - </panel.string> - <panel.string name="text modify info 6"> - Não é possível modificar estes objetos através de uma demarcação da região - </panel.string> - <panel.string name="text modify warning"> - O objeto contém links ligando suas partes - </panel.string> - <panel.string name="Cost Default"> - Preço: L$ - </panel.string> - <panel.string name="Cost Total"> - Preço total: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Preço unitário: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Preço misto - </panel.string> - <panel.string name="Sale Mixed"> - Venda mista - </panel.string> + <panel.string name="text deed continued">Doar</panel.string> + <panel.string name="text deed">Doar</panel.string> + <panel.string name="text modify info 1">Você pode modificar este objeto</panel.string> + <panel.string name="text modify info 2">Você pode modificar estes objetos</panel.string> + <panel.string name="text modify info 3">Você não pode modificar este objeto</panel.string> + <panel.string name="text modify info 4">Você não pode modificar estes objetos</panel.string> + <panel.string name="text modify info 5">Não é possível modificar este objeto através de uma demarcação da região</panel.string> + <panel.string name="text modify info 6">Não é possível modificar estes objetos através de uma demarcação da região</panel.string> + <panel.string name="text modify warning">O objeto contém links ligando suas partes</panel.string> + <panel.string name="Cost Default">Preço: L$</panel.string> + <panel.string name="Cost Total">Preço total: L$</panel.string> + <panel.string name="Cost Per Unit">Preço unitário: L$</panel.string> + <panel.string name="Cost Mixed">Preço misto</panel.string> + <panel.string name="Sale Mixed">Venda mista</panel.string> <text name="title" value="Perfil do objeto"/> <text name="where" value="(Inworld)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Nome: - </text> - <text name="Description:"> - Descrição: - </text> - <text name="CreatorNameLabel"> - Criador: - </text> - <text name="Owner:"> - Proprietário: - </text> - <text name="Group_label"> - Grupo: - </text> + <text name="Name:">Nome:</text> + <text name="Description:">Descrição:</text> + <text name="CreatorNameLabel">Criador:</text> + <text name="Owner:">Proprietário:</text> + <text name="Group_label">Grupo:</text> <button name="button set group" tool_tip="Selecione o grupo que terá acesso à autorização do objeto"/> <name_box initial_value="Carregando..." name="Group Name Proxy"/> <button label="Doar" label_selected="Doar" name="button deed" tool_tip="Ao doar este item, o próximo dono terá permissões de próximo dono. Objetos de grupos podem ser doados por um oficial do grupo."/> - <text name="label click action"> - Clique para: - </text> + <text name="label click action">Clique para:</text> <combo_box name="clickaction"> <combo_box.item label="Tocar (padrão)" name="Touch/grab(default)"/> <combo_box.item label="Sentar em objeto" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Zoom" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Você pode modificar este objeto - </text> - <text name="Anyone can:"> - Todos: - </text> + <text name="perm_modify">Você pode modificar este objeto</text> + <text name="Anyone can:">Todos:</text> <check_box label="Copiar" name="checkbox allow everyone copy"/> <check_box label="Movimentar" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Grupo: - </text> + <text name="GroupLabel">Grupo:</text> <check_box label="Compartilhar" name="checkbox share with group" tool_tip="Permitir que todos os membros do grupo tenham o seu nível de modificação para este objeto. Faça uma doação para ativar restrições de função."/> - <text name="NextOwnerLabel"> - Próximo proprietário: - </text> + <text name="NextOwnerLabel">Próximo proprietário:</text> <check_box label="Modificar" name="checkbox next owner can modify"/> <check_box label="Copiar" name="checkbox next owner can copy"/> <check_box label="Transferir" name="checkbox next owner can transfer" tool_tip="O próximo dono poderá revender ou dar este objeto"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Preço: L$" name="Edit Cost"/> <check_box label="Mostrar nos resultados de busca" name="search_check" tool_tip="Incluir o objeto nos resultados de busca"/> - <text name="pathfinding_attributes_label"> - Atributos do pathfinding: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Atributos do pathfinding:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Abrir" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 6c1e6ab7f6..3eef691d8d 100755 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -406,28 +406,46 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para </string> <string name="TooltipPrice" value="L$[AMOUNT]"/> <string name="TooltipOutboxDragToWorld"> - Não é possível fazer rez do itens em sua caixa de saída do lojista + Não é possível fazer rez de itens da pasta Listagens do Marketplace + </string> + <string name="TooltipOutboxWorn"> + Não é possível colocar itens que você estiver usando na pasta Listagens do Marketplace + </string> + <string name="TooltipOutboxFolderLevels"> + A profundidade das pastas aninhadas excede [AMOUNT]. Diminua a profundidade das pastas dentro de pastas. Agrupe os itens se necessário. + </string> + <string name="TooltipOutboxTooManyFolders"> + O número de subpastas excede [AMOUNT]. Diminua a o número de pastas em sua listagem. Agrupe os itens se necessário. + </string> + <string name="TooltipOutboxTooManyObjects"> + O número de itens excede [AMOUNT]. Para vender mais que [AMOUNT] itens em uma listagem, você deve agrupar alguns deles. + </string> + <string name="TooltipOutboxTooManyStockItems"> + O número de itens de estoque excede [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Você pode soltar somente itens ou pastas na aba TUDO. Selecione essa aba e mova seus itens ou pastas novamente. </string> <string name="TooltipOutboxNoTransfer"> - Um ou mais destes objetos não podem ser vendidos ou transferidos. + Um ou mais objetos não podem ser vendidos ou transferidos </string> <string name="TooltipOutboxNotInInventory"> - Sua caixa de saída do lojista aceita apenas itens direto do seu inventário + É possível colocar somente itens do seu inventário no Marketplace </string> - <string name="TooltipOutboxWorn"> - Você não pode colocar os itens que está vestindo na sua caixa de saída do lojista + <string name="TooltipOutboxLinked"> + Não é possível colocar itens ou pastas vinculadas no Marketplace </string> <string name="TooltipOutboxCallingCard"> - Não é possível colocar cartões de visita em sua caixa de saída do lojista + Não é possível colocar cartões de visitas no Marketplace </string> - <string name="TooltipOutboxFolderLevels"> - A profundidade das pastas aninhadas excede 3 + <string name="TooltipOutboxDragActive"> + Não é possível mover uma listagem publicada </string> - <string name="TooltipOutboxTooManyFolders"> - A contagem de subpastas na pasta de nível superior excede 20 + <string name="TooltipOutboxCannotMoveRoot"> + Não é possível mover a pasta raiz das listagens do Marketplace </string> - <string name="TooltipOutboxTooManyObjects"> - A contagem de itens na pasta de nível superior excede 200 + <string name="TooltipOutboxMixedStock"> + Todos os itens em uma pasta de estoque têm o mesmo tipo e permissão </string> <string name="TooltipDragOntoOwnChild"> Não é possível mover uma pasta para seu filho @@ -1009,7 +1027,7 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="AgentNameSubst"> (Você) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Suprimir alertas ao gerenciar listas de acesso ao terreno </string> @@ -1076,6 +1094,12 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="bitmap_image_files"> Imagens Bitmap </string> + <string name="png_image_files"> + Imagens PNG + </string> + <string name="save_texture_image_files"> + Imagens targa ou PNG + </string> <string name="avi_movie_file"> Arquivo de vídeo AVI </string> @@ -1325,6 +1349,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="FavoritesNoMatchingItems"> Arraste um marco para adicioná-lo aos seus favoritos. </string> + <string name="MarketplaceNoMatchingItems"> + Nenhum item correspondente encontrado. Verifique a ortografia de sua cadeia de pesquisa e tente novamente. + </string> <string name="InventoryNoTexture"> Você não possui uma cópia desta textura no seu inventário </string> @@ -1372,29 +1399,95 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="InventoryOutboxError"> A loja [[MARKETPLACE_CREATE_STORE_URL] no Marketplace] está retornando erros. </string> + <string name="InventoryMarketplaceError"> + Esse recurso está em beta. Inscreva-se neste [http://goo.gl/forms/FCQ7UXkakz formulário do Google] se você deseja participar. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Sua pasta Listagens do Marketplace está vazia. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Arraste pastas para esta área para listá-las para venda no [Marketplace [MARKETPLACE_DASHBOARD_URL]]. + </string> + <string name="Marketplace Validation Warning Stock"> + a pasta de estoque deve estar em uma pasta de versões + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Erro: todos os itens em uma pasta de estoque devem ser de cópia proibida e todos do mesmo tipo + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Erro: a pasta de estoque não pode ter subpastas + </string> + <string name="Marketplace Validation Warning Empty"> + : Aviso: a pasta não contém itens + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Aviso: criando pasta de estoque + </string> + <string name="Marketplace Validation Warning Create Version"> + : Aviso: criando pasta de versões + </string> + <string name="Marketplace Validation Warning Move"> + : Aviso: movendo itens + </string> + <string name="Marketplace Validation Warning Delete"> + : Aviso: conteúdo da pasta transferido para pasta de estoque, removendo pasta vazia + </string> + <string name="Marketplace Validation Error Stock Item"> + : Erro: itens de cópia proibida devem estar em uma pasta de estoque + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Aviso: os itens devem estar em uma pasta de versões + </string> + <string name="Marketplace Validation Error"> + : Erro: + </string> + <string name="Marketplace Validation Warning"> + : Aviso: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Aviso: a pasta de versões deve conter pelo menos 1 item + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Aviso: a pasta de estoque deve conter pelo menos 1 item + </string> + <string name="Marketplace Validation No Error"> + Não há erros ou avisos + </string> <string name="Marketplace Error None"> Sem erros </string> + <string name="Marketplace Error Prefix"> + Erro: + </string> <string name="Marketplace Error Not Merchant"> - Erro: antes de enviar os itens para o Mercado, é necessário que você se defina como um lojista (sem custos). + antes de enviar os itens para o Marketplace, é necessário que você se defina como um lojista (sem custos). + </string> + <string name="Marketplace Error Not Accepted"> + Não é possível mover o item nessa pasta. </string> - <string name="Marketplace Error Empty Folder"> - Erro: esta pasta está vazia. + <string name="Marketplace Error Unsellable Item"> + Este item não pode ser vendido no Marketplace. </string> - <string name="Marketplace Error Unassociated Products"> - Erro: ocorreu uma falha ao enviar este item, pois sua conta de lojista tem muitos itens não associados a produtos. Para corrigir esse erro, faça o login no site do mercado e reduza a contagem de itens não associados. + <string name="MarketplaceNoID"> + no Mkt ID </string> - <string name="Marketplace Error Object Limit"> - Erro: este item contém muitos objetos. Corrija esse erro unindo os objetos em caixa para reduzir a contagem total a menos de 200. + <string name="MarketplaceLive"> + publicada </string> - <string name="Marketplace Error Folder Depth"> - Erro: este item contém muitos níveis de pastas aninhadas. Reorganize-o em até 3 níveis de pastas aninhadas, no máximo. + <string name="MarketplaceActive"> + ativo </string> - <string name="Marketplace Error Unsellable Item"> - Erro: este item não pode ser vendido no mercado. + <string name="MarketplaceMax"> + máx </string> - <string name="Marketplace Error Internal Import"> - Erro: ocorreu um problema com este item. Tente novamente mais tarde. + <string name="MarketplaceStock"> + estoque + </string> + <string name="MarketplaceNoStock"> + esgotado + </string> + <string name="MarketplaceUpdating"> + atualizando... </string> <string name="Open landmarks"> Marcos abertos @@ -1415,6 +1508,7 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para Nenhum conteúdo </string> <string name="WornOnAttachmentPoint" value="(vestido em [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (ativado)"/> <string name="Chat Message" value="Bate-papo:"/> <string name="Sound" value="Som"/> @@ -1679,6 +1773,15 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="Invalid Attachment"> Ponto de encaixe inválido </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Erro: item ausente + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Erro: item base ausente + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Erro: o objeto está no look atual, mas não foi anexado + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] de idade </string> @@ -1814,9 +1917,6 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="CompileQueueUnknownFailure"> Falha desconhecida para download </string> - <string name="CompileNoExperiencePerm"> - Pulando script [SCRIPT] com experiência [EXPERIENCE] - </string> <string name="CompileQueueTitle"> Progresso do recompilamento </string> @@ -1850,6 +1950,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="SaveComplete"> Salvo. </string> + <string name="UploadFailed"> + Falha ao carregar arquivo: + </string> <string name="ObjectOutOfRange"> Script (objeto fora de alcance) </string> @@ -1859,6 +1962,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="GroupsNone"> nenhum </string> + <string name="CompileNoExperiencePerm"> + Pulando script [SCRIPT] com experiência [EXPERIENCE] + </string> <string name="Group" value="(grupo)"/> <string name="Unknown"> (Desconhecido) @@ -4940,6 +5046,9 @@ Tente colocar o caminho do editor entre aspas. <string name="Command_Marketplace_Label"> Mercado </string> + <string name="Command_MarketplaceListings_Label"> + Marketplace + </string> <string name="Command_MiniMap_Label"> Mini Mapa </string> @@ -5027,6 +5136,9 @@ Tente colocar o caminho do editor entre aspas. <string name="Command_Marketplace_Tooltip"> Faça compras </string> + <string name="Command_MarketplaceListings_Tooltip"> + Venda suas criações + </string> <string name="Command_MiniMap_Tooltip"> Mostrar quem está aqui </string> @@ -5138,6 +5250,18 @@ Tente colocar o caminho do editor entre aspas. <string name="UserDictionary"> [Usuário] </string> + <string name="logging_calls_disabled_log_empty"> + As conversas não estão sendo registradas. Para começar a manter um registro, selecione "Salvar: apenas registro" ou "Salvar: registro e transcrições" em Preferências> Bate-papo. + </string> + <string name="logging_calls_disabled_log_not_empty"> + Nenhuma conversa será registrada. Para recomeçar a gravação de registros, selecione "Salvar: apenas registro" ou "Salvar: registro e transcrições" em Preferências> Bate-papo. + </string> + <string name="logging_calls_enabled_log_empty"> + Não há conversas registradas. Depois que você entrar em contato com alguém, ou alguém entrar em contato com você, um registro será exibido aqui. + </string> + <string name="loading_chat_logs"> + Carregando... + </string> <string name="experience_tools_experience"> Experiência </string> @@ -5219,16 +5343,4 @@ Tente colocar o caminho do editor entre aspas. <string name="ExperiencePermissionShort12"> Autorização </string> - <string name="logging_calls_disabled_log_empty"> - As conversas não estão sendo registradas. Para começar a manter um registro, selecione "Salvar: apenas registro" ou "Salvar: registro e transcrições" em Preferências> Bate-papo. - </string> - <string name="logging_calls_disabled_log_not_empty"> - Nenhuma conversa será registrada. Para recomeçar a gravação de registros, selecione "Salvar: apenas registro" ou "Salvar: registro e transcrições" em Preferências> Bate-papo. - </string> - <string name="logging_calls_enabled_log_empty"> - Não há conversas registradas. Depois que você entrar em contato com alguém, ou alguém entrar em contato com você, um registro será exibido aqui. - </string> - <string name="loading_chat_logs"> - Carregando... - </string> </strings> diff --git a/indra/newview/skins/default/xui/ru/floater_about.xml b/indra/newview/skins/default/xui/ru/floater_about.xml index 9494106e96..0f75856a91 100755 --- a/indra/newview/skins/default/xui/ru/floater_about.xml +++ b/indra/newview/skins/default/xui/ru/floater_about.xml @@ -1,70 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="О [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - Использован компилятор [COMPILER], версия [COMPILER_VERSION] - </floater.string> - <floater.string name="AboutPosition"> - Вы в точке [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] в регионе «[REGION]», расположенном на <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(глобальные координаты [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - ЦП: [CPU] -Память: [MEMORY_MB] МБ -Версия ОС: [OS_VERSION] -Производитель графической платы: [GRAPHICS_CARD_VENDOR] -Графическая плата: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Версия графического драйвера Windows: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - Версия OpenGL: [OPENGL_VERSION] -Версия libcurl: [LIBCURL_VERSION] -Версия декодера J2C: [J2C_VERSION] -Версия драйвера звука: [AUDIO_DRIVER_VERSION] -Версия Qt Webkit: [QT_WEBKIT_VERSION] -Версия голосового сервера: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (нет) - </floater.string> - <floater.string name="AboutTraffic"> - Потеряно пакетов: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Ошибка при получении URL-адреса заметок о выпуске сервера. - </floater.string> <tab_container name="about_tab"> <panel label="Данные" name="support_panel"> <button label="Копировать в буфер обмена" name="copy_btn"/> </panel> <panel label="Создатели" name="credits_panel"> - <text name="linden_intro"> - Игра Second Life разработана лабораторией Lindens: - </text> - <text name="contrib_intro"> - в написании открытого кода участвовали: - </text> - <text_editor name="contrib_names"> - Псевдо-имя изменено при запуске - </text_editor> - <text name="trans_intro"> - перевод: - </text> - <text_editor name="trans_names"> - Псевдо-имя изменено при запуске - </text_editor> + <text name="linden_intro">Игра Second Life разработана лабораторией Lindens, +в написании открытого кода участвовали:</text> + <text_editor name="contrib_names">Псевдо-имя изменено при запуске</text_editor> </panel> <panel label="Лицензии" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK (C) 1992-2009 3Dconnexion APR (C) 2011 The Apache Software Foundation Collada DOM (C) 2006 Sony Computer Entertainment Inc. cURL (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -91,8 +37,7 @@ SLURL: <nolink>[SLURL]</nolink> Все права защищены. Подробные сведения см. в файле licenses.txt. - Кодирование звука для голосового чата: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Кодирование звука для голосового чата: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_associate_listing.xml b/indra/newview/skins/default/xui/ru/floater_associate_listing.xml new file mode 100644 index 0000000000..fc9a19730b --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="СВЯЗАТЬ СПИСОК"> + <text name="message">ID списка:</text> + <line_editor name="listing_id">Введите ID</line_editor> + <button label="OK" name="OK"/> + <button label="Отмена" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/ru/floater_edit_hover_height.xml new file mode 100644 index 0000000000..292128d295 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="ЗАДАЙТЕ ВЫСОТУ ПАРЕНИЯ"> + <slider label="Высота" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml index 9021b71fe2..c988825756 100755 --- a/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="СВОЙСТВА ПРЕДМЕТА"> - <floater.string name="unknown"> - (неизвестно) - </floater.string> - <floater.string name="public"> - (публичное) - </floater.string> - <floater.string name="you_can"> - Вы можете: - </floater.string> - <floater.string name="owner_can"> - Владелец может: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local], [day,datetime,local] [mth,datetime,local] [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Название: - </text> - <text name="LabelItemDescTitle"> - Описание: - </text> - <text name="LabelCreatorTitle"> - Создатель: - </text> + <floater.string name="unknown">(неизвестно)</floater.string> + <floater.string name="public">(публичное)</floater.string> + <floater.string name="you_can">Вы можете:</floater.string> + <floater.string name="owner_can">Владелец может:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local], [day,datetime,local] [mth,datetime,local] [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Название:</text> + <text name="LabelItemDescTitle">Описание:</text> + <text name="LabelCreatorTitle">Создатель:</text> <button label="Профиль…" name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Владелец: - </text> + <text name="LabelOwnerTitle">Владелец:</text> <button label="Профиль…" name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Приобретено: - </text> - <text name="LabelAcquiredDate"> - Ср 24 Май 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Вы: - </text> + <text name="LabelAcquiredTitle">Приобретено:</text> + <text name="LabelAcquiredDate">Ср 24 Май 12:50:46 2006</text> + <text name="OwnerLabel">Вы:</text> <check_box label="Изменить" name="CheckOwnerModify"/> <check_box label="Копировать" name="CheckOwnerCopy"/> <check_box label="Перепродать" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Все: - </text> + <text name="AnyoneLabel">Все:</text> <check_box label="Копировать" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Группа: - </text> + <text name="GroupLabel">Группа:</text> <check_box label="Поделиться" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel"> - Следующий владелец: - </text> + <text name="NextOwnerLabel">Следующий владелец:</text> <check_box label="Изменить" name="CheckNextOwnerModify"/> <check_box label="Копировать" name="CheckNextOwnerCopy"/> <check_box label="Перепродать" name="CheckNextOwnerTransfer"/> <check_box label="Для продажи" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Копировать" name="Copy"/> + <combo_box.item label="Содержимое" name="Contents"/> <combo_box.item label="Оригинал" name="Original"/> </combo_box> <spinner label="Цена:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_item_properties.xml b/indra/newview/skins/default/xui/ru/floater_item_properties.xml new file mode 100644 index 0000000000..abd75902fd --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="СВОЙСТВА ПРЕДМЕТА"/> diff --git a/indra/newview/skins/default/xui/ru/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/ru/floater_marketplace_listings.xml new file mode 100644 index 0000000000..b231997307 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="СПИСКИ ТОВАРОВ В ТОРГОВОМ ЦЕНТРЕ"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Загрузка...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/ru/floater_marketplace_validation.xml new file mode 100644 index 0000000000..6b293014bc --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Проверить списки товаров в торговом центре"> + <button label="OK" label_selected="OK" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_openobject.xml b/indra/newview/skins/default/xui/ru/floater_openobject.xml index 5459604268..a4b6e2af11 100755 --- a/indra/newview/skins/default/xui/ru/floater_openobject.xml +++ b/indra/newview/skins/default/xui/ru/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Копировать в инвентарь" label_selected="Копировать в инвентарь" name="copy_to_inventory_button"/> - <button label="Копировать и добавить в костюм" label_selected="Копировать и добавить в костюм" name="copy_and_wear_button"/> + <text name="border_note"> + Копировать в инвентарь и надеть + </text> + <button label="Добавить в костюм" label_selected="Добавить в костюм" name="copy_and_wear_button"/> + <button label="Заменить костюм" label_selected="Заменить костюм" name="copy_and_replace_button"/> + <button label="Только копировать в инвентарь" label_selected="Только копировать в инвентарь" name="copy_to_inventory_button"/> + <button label="Отмена" label_selected="Отмена" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_pay.xml b/indra/newview/skins/default/xui/ru/floater_pay.xml index 1471a7e133..0a269b9e00 100755 --- a/indra/newview/skins/default/xui/ru/floater_pay.xml +++ b/indra/newview/skins/default/xui/ru/floater_pay.xml @@ -1,21 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - Заплатить группе - </string> - <string name="payee_resident"> - Заплатить жителю - </string> - <text name="payee_name"> - Слишком длинное тестовое имя для проверки обрезания - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - Или введите количество: - </text> - <button label="Заплатить" label_selected="Заплатить" name="pay btn"/> - <button label="Отмена" label_selected="Отмена" name="cancel btn"/> + <string name="payee_group">Заплатить группе</string> + <string name="payee_resident">Заплатить жителю</string> + <text name="paying_text">Вы платите:</text> + <text name="payee_name">Слишком длинное тестовое имя для проверки обрезания</text> + <panel label="Поиск" name="PatternsPanel"> + <button label="Оплатить L$ 1" label_selected="Оплатить L$ 1" name="fastpay 1"/> + <button label="Оплатить L$ 5" label_selected="Оплатить L$ 5" name="fastpay 5"/> + <button label="Оплатить L$ 10" label_selected="Оплатить L$ 10" name="fastpay 10"/> + <button label="Оплатить L$ 20" label_selected="Оплатить L$ 20" name="fastpay 20"/> + </panel> + <panel label="Поиск" name="InputPanel"> + <text name="amount text">Другая сумма:</text> + <button label="Оплатить" label_selected="Оплатить" name="pay btn"/> + <button label="Отмена" label_selected="Отмена" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_pay_object.xml b/indra/newview/skins/default/xui/ru/floater_pay_object.xml index 7d2da44ac1..9a7b233ca2 100755 --- a/indra/newview/skins/default/xui/ru/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/ru/floater_pay_object.xml @@ -1,28 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - Заплатить группе - </string> - <string name="payee_resident"> - Заплатить жителю - </string> - <text name="payee_name"> - Ericacita Moostopolison - </text> - <text name="object_name_label"> - Через объект: - </text> + <string name="payee_group">Заплатить группе</string> + <string name="payee_resident">Заплатить жителю</string> + <text name="paying_text">Вы платите:</text> + <text name="payee_name">Ericacita Moostopolison</text> + <text name="object_name_label">Через объект:</text> <icon name="icon_object" tool_tip="Объекты"/> - <text name="object_name_text"> - Мой офигенный объект с неэпически длинным названием - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - Или введите количество: - </text> - <button label="Заплатить" label_selected="Заплатить" name="pay btn"/> - <button label="Отмена" label_selected="Отмена" name="cancel btn"/> + <text name="object_name_text">Мой офигенный объект с неэпически длинным названием</text> + <panel label="Поиск" name="PatternsPanel"> + <button label="Оплатить L$ 1" label_selected="Оплатить L$ 1" name="fastpay 1"/> + <button label="Оплатить L$ 5" label_selected="Оплатить L$ 5" name="fastpay 5"/> + <button label="Оплатить L$ 10" label_selected="Оплатить L$ 10" name="fastpay 10"/> + <button label="Оплатить L$ 20" label_selected="Оплатить L$ 20" name="fastpay 20"/> + </panel> + <panel label="Поиск" name="InputPanel"> + <text name="amount text">Другая сумма:</text> + <button label="Оплатить" label_selected="Оплатить" name="pay btn"/> + <button label="Отмена" label_selected="Отмена" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ru/menu_attachment_self.xml b/indra/newview/skins/default/xui/ru/menu_attachment_self.xml index 2b1291a8d5..033d36484b 100755 --- a/indra/newview/skins/default/xui/ru/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/ru/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Мой внешний вид" name="Change Outfit"/> <menu_item_call label="Изменить костюм" name="Edit Outfit"/> <menu_item_call label="Изменить фигуру" name="Edit My Shape"/> + <menu_item_call label="Высота парения" name="Hover Height"/> <menu_item_call label="Мои друзья" name="Friends..."/> <menu_item_call label="Мои группы" name="Groups..."/> <menu_item_call label="Мой профиль" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_self.xml b/indra/newview/skins/default/xui/ru/menu_avatar_self.xml index e09117226c..8feaa3b99a 100755 --- a/indra/newview/skins/default/xui/ru/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/ru/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Мой внешний вид" name="Chenge Outfit"/> <menu_item_call label="Изменить костюм" name="Edit Outfit"/> <menu_item_call label="Изменить фигуру" name="Edit My Shape"/> + <menu_item_call label="Высота парения" name="Hover Height"/> <menu_item_call label="Мои друзья" name="Friends..."/> <menu_item_call label="Мои группы" name="Groups..."/> <menu_item_call label="Мой профиль" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/ru/menu_inventory.xml b/indra/newview/skins/default/xui/ru/menu_inventory.xml index 308549c254..b8cbef8246 100755 --- a/indra/newview/skins/default/xui/ru/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ru/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="Создать список" name="Marketplace Create Listing"/> + <menu_item_call label="Связать список" name="Marketplace Associate Listing"/> + <menu_item_call label="Получить (обновить) список" name="Marketplace Get Listing"/> + <menu_item_call label="Проверка на ошибки" name="Marketplace Check Listing"/> + <menu_item_call label="Изменить список" name="Marketplace Edit Listing"/> + <menu_item_call label="Опубликовать" name="Marketplace List"/> + <menu_item_call label="Отменить публикацию" name="Marketplace Unlist"/> + <menu_item_call label="Активировать" name="Marketplace Activate"/> + <menu_item_call label="Деактивировать" name="Marketplace Deactivate"/> <menu_item_call label="Поделиться" name="Share"/> <menu_item_call label="Купить" name="Task Buy"/> <menu_item_call label="Открыть" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Добавить" name="Wearable Add"/> <menu_item_call label="Снять" name="Take Off"/> <menu_item_call label="Копировать в «Торговые исходящие»" name="Merchant Copy"/> - <menu_item_call label="Отправить в торговый центр" name="Marketplace Send"/> + <menu_item_call label="Копировать в списки товаров торгового центра" name="Marketplace Copy"/> + <menu_item_call label="Переместить в списки товаров торгового центра" name="Marketplace Move"/> <menu_item_call label="- нет действий -" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/ru/menu_marketplace_view.xml b/indra/newview/skins/default/xui/ru/menu_marketplace_view.xml new file mode 100644 index 0000000000..b299c8202f --- /dev/null +++ b/indra/newview/skins/default/xui/ru/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Сортировать по объему запасов (от малых к большим)" name="sort_by_stock_amount"/> + <menu_item_check label="Показывать только папки списков" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml index 69bb4c4af9..958105a70f 100755 --- a/indra/newview/skins/default/xui/ru/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="Купить L$..." name="Buy and Sell L$"/> <menu_item_call label="Торговые исходящие..." name="MerchantOutbox"/> + <menu_item_call label="Списки товаров торгового центра..." name="MarketplaceListings"/> <menu_item_call label="Информационная панель аккаунта..." name="Manage My Account"/> <menu_item_call label="Настройки..." name="Preferences"/> <menu_item_call label="Кнопки панели инструментов..." name="Toolbars"/> @@ -248,6 +249,7 @@ <menu_item_check label="Консоль текстур" name="Texture Console"/> <menu_item_check label="Консоль отладки" name="Debug Console"/> <menu_item_call label="Консоль уведомлений" name="Notifications"/> + <menu_item_check label="Консоль отладки региона" name="Region Debug Console"/> <menu_item_check label="Оперативные таймеры" name="Fast Timers"/> <menu_item_check label="Память" name="Memory"/> <menu_item_check label="Статистика по сцене" name="Scene Statistics"/> @@ -351,7 +353,7 @@ <menu_item_check label="Прикрепить объекты для интерполяции" name="Ping Interpolate Object Positions"/> <menu_item_call label="Опустить пакет" name="Drop a Packet"/> </menu> - <menu_item_call label="Дамп камеры со скриптами" name="Dump Scripted Camera"/> + <menu_item_call label="Дамп камеры со скриптами" name="Dump Scripted Camera"/> <menu label="Диктофон" name="Recorder"> <menu_item_call label="Начать воспроизведение" name="Start Playback"/> <menu_item_call label="Остановить воспроизведение" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index 206be2e2df..acf3ce608f 100755 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -129,6 +129,88 @@ Не удалось инициализировать торговый центр из-за ошибки системы или сети. Повторите попытку позже. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="StockPasteFailed"> + Не удалось скопировать или переместить в папку запасов, ошибка: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantPasteFailed"> + Не удалось скопировать или переместить в списки товаров торгового центра, ошибка: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantTransactionFailed"> + Не удалось выполнить транзакцию с торговым центром, ошибка: + + Причина: '[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Не удалось опубликовать этот продукт или активировать папку версии. Обычно это происходит из-за отсутствия информации в форме описания списка, но также может быть связано с ошибками в структуре папки. Отредактируйте список или проверьте папку списка на отсутствие ошибок. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantListingFailed"> + Не удалось опубликовать в торговом центре, ошибка: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Не удалось активировать эту папку версии, ошибка: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Это действие вызовет изменение активного содержимого данного списка. Продолжить? + <usetemplate ignoretext="Подтверждать смену активного списка в торговом центре" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + При перетаскивании в окно списков товаров торгового центра предметы перемещаются со своего исходного места, а не копируются. Продолжить? + <usetemplate ignoretext="Подтверждать перемещение предмета из инвентаря в торговый центр" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + В результате перемещения или удаления папки списка будет удален ваш список товаров в торговом центре. Если требуется сохранить список в торговом центре, переместите или удалите содержимое папки версии, которое необходимо изменить. Продолжить? + <usetemplate ignoretext="Подтверждать перемещение или удаление списка из торгового центра" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + У вас нет прав на копирование этих предметов в торговый центр. Переместите их или оставьте здесь. + <usetemplate canceltext="Отмена" ignoretext="Подтверждать попытку копирования некопируемых предметов в торговый центр" name="yesnocancelbuttons" notext="Не перемещать предмет(ы)" yestext="Переместить предмет(ы)"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Это действие вызовет отмену публикации списка. Продолжить? + <usetemplate ignoretext="Подтверждать отмену публикации активного списка в торговом центре" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Это действие вызовет деактивацию папки версии текущего списка. Продолжить? + <usetemplate ignoretext="Подтверждать деактивирование папки версии списка в торговом центре" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Не удалось обновить этот список. +[[URL] Щелкните здесь], чтобы изменить его в торговом центре. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Нельзя надеть одежду или часть тела, если они находятся в папке списков товаров торгового центра. + </notification> + <notification name="AlertMerchantListingInvalidID"> + Неверный идентификатор списка. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + В этом списке несколько папок версий или нет ни одной. Самостоятельно выберите и активируйте одну папку позже. + <usetemplate ignoretext="Предупреждать об активировании папки версии, если создан список с несколькими папками версий" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Предметы разных типов распределены по отдельным папкам запасов, поэтому папка систематизирована так, чтобы ее можно было опубликовать. + <usetemplate ignoretext="Предупреждать о разделении папки запасов перед публикацией" name="okignore" yestext="OK"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Публикация вашего списка прекращена, так как папка запасов пуста. Добавьте предметы в папку запасов, чтобы опубликовать список снова. + <usetemplate ignoretext="Оповещать о неудавшейся публикации списка из-за того, что папка запасов пуста" name="okignore" yestext="OK"/> + </notification> <notification name="CompileQueueSaveText"> Ошибка при передаче текста скрипта по следующей причине: [REASON]. Повторите попытку позже. </notification> @@ -473,6 +555,10 @@ Сохранить изменения? <usetemplate canceltext="Отмена" name="yesnocancelbuttons" notext="Не сохранять" yestext="Сохранить"/> </notification> + <notification name="DeleteNotecard"> + Удалить заметку? + <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Не удалось сохранить жест. Жест содержит слишком много этапов. @@ -1868,6 +1954,9 @@ http://secondlife.com/download. Вы пытаетесь посетить регион, контент в котором не соответствует вашим настройкам. Попробуйте изменить настройки в меню «Я > Настройки > Общие». <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> Вы пытаетесь посетить регион, контент в котором имеет рейтинг [REGIONMATURITY] и предназначен только для взрослых. <url name="url"> @@ -2155,6 +2244,10 @@ http://secondlife.com/download. <ignore name="ignore" text="Установлено действие «Заплатить за объект» при построении объекта без скрипта money()"/> </form> </notification> + <notification name="PayConfirmation"> + Подтвердите оплату L$[AMOUNT] для [TARGET]. + <usetemplate ignoretext="Подтверждать перед оплатой (для сумм более L$200)" name="okcancelignore" notext="Отмена" yestext="Оплатить"/> + </notification> <notification name="OpenObjectCannotCopy"> В этом объекте нет вещей, которые вам разрешено копировать. </notification> @@ -3841,9 +3934,11 @@ http://secondlife.com/download. </notification> <notification name="TeleportedByAttachment"> Вы были телепортированы прикрепленным объектом [ITEM_ID] + <usetemplate ignoretext="Телепортация: вы были телепортированы прикрепленным объектом" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> Вы были телепортированы объектом «[OBJECT_NAME]» на участке «[PARCEL_NAME]» + <usetemplate ignoretext="Телепортация: вы были телепортированы объектом на участке" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Вы были телепортированы объектом «[OBJECT_NAME]», владелец – [OWNER_ID] @@ -4175,7 +4270,7 @@ http://secondlife.com/download. <usetemplate ignoretext="Невозможно переместить файлы. Восстановлен прежний путь." name="okignore" yestext="OK"/> </notification> <notification name="DefaultObjectPermissions"> - Ошибка при сохранении стандартных разрешений по следующей причине: [REASON]. Попробуйте задать стандартные разрешения через некоторое время. + Ошибка при сохранении стандартных разрешений на объект: [REASON]. Попробуйте задать стандартные разрешения через некоторое время. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/ru/panel_login.xml b/indra/newview/skins/default/xui/ru/panel_login.xml index a19304f2fd..2e0ae89b28 100755 --- a/indra/newview/skins/default/xui/ru/panel_login.xml +++ b/indra/newview/skins/default/xui/ru/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Имя пользователя" name="username_combo" tool_tip="Имя пользователя, которое вы выбрали при регистрации, например, «bobsmith12» или «Steller Sunshine»"/> <line_editor label="Пароль" name="password_edit"/> - <check_box label="Запомнить меня" name="remember_check"/> - <text name="forgot_password_text"> - Забыли пароль? - </text> - <button label="Войти" name="connect_btn"/> - <text name="At_My_Last_Location_Label" font="SansSerifSmall"> - В последнее место - </text> <combo_box label="Мои любимые места" name="start_location_combo"> + <combo_box.item label="Последнее местоположение" name="MyLastLocation"/> <combo_box.item label="Мой дом" name="MyHome"/> </combo_box> - <button label="Войти" name="connect_favorite_btn"/> - <line_editor label="Введите местоположение" name="location_edit" font="SansSerifSmall" /> - <button label="Войти" name="connect_location_btn"/> + <button label="Войти" name="connect_btn"/> + <check_box label="Запомнить меня" name="remember_check"/> + <text name="forgot_password_text">Забыли пароль?</text> <combo_box label="Выберите сетку" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/ru/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/ru/panel_marketplace_listings.xml new file mode 100644 index 0000000000..1f903b1046 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Торговый центр" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Параметры просмотра/сортировки"/> + <button name="add_btn" tool_tip="Создать новую папку списка"/> + <button label="Проверка на ошибки" name="audit_btn" tool_tip="Проверьте свои списки товаров в торговом центре"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Фильтровать списки товаров в торговом центре" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..ff7b30188f --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="ВСЕ" name="All Items" tool_tip="Перетащите сюда предметы, чтобы внести их в список"/> diff --git a/indra/newview/skins/default/xui/ru/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..b42a82084f --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="ОПУБЛИКОВАННЫЕ" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..fc69e3c362 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="НЕ СВЯЗАННЫЕ" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..c630129d44 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="НЕОПУБЛИКОВАННЫЕ" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/ru/panel_status_bar.xml b/indra/newview/skins/default/xui/ru/panel_status_bar.xml index 9c84ff1fd8..630925fa60 100755 --- a/indra/newview/skins/default/xui/ru/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ru/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Потери пакетов - </panel.string> - <panel.string name="bandwidth_tooltip"> - Ширина канала - </panel.string> - <panel.string name="time"> - [hour, datetime, slt]:[min, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">Потери пакетов</panel.string> + <panel.string name="bandwidth_tooltip">Ширина канала</panel.string> + <panel.string name="time">[hour, datetime, slt]:[min, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel left="-450" name="balance_bg" width="240"> - <text name="balance" tool_tip="Щелкните для обновления вашего баланса L$" value="L$20"/> + <text name="balance" tool_tip="Щелкните для обновления вашего баланса L$" value="L$??"/> <button label="Купить L$" name="buyL" tool_tip="Щелкните для покупки L$"/> <button label="Торговый центр" name="goShop" tool_tip="Открыть торговый центр Second Life" width="121"/> </panel> - <text name="TimeText" tool_tip="Текущее время (тихоокеанское)"> - 00:00 (тихоокеанское время) - </text> + <text name="TimeText" tool_tip="Текущее время (тихоокеанское)">00:00 (тихоокеанское время)</text> <button name="media_toggle_btn" tool_tip="Запуск/остановка всех медиа (музыка, видео, веб-страницы)"/> <button name="volume_btn" tool_tip="Регулятор громкости"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml index c42586b7b8..c434dcd6a8 100755 --- a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Передать" name="CheckNextOwnerTransfer" tool_tip="Следующий владелец может отдать или перепродать объект"/> </panel> <check_box label="Для продажи" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Копировать" name="Copy"/> + <combo_box.item label="Содержимое" name="Contents"/> <combo_box.item label="Оригинал" name="Original"/> </combo_box> <spinner label="Цена: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml index 5502530ca4..4059a800f0 100755 --- a/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Профиль объекта"> - <panel.string name="text deed continued"> - Сделка - </panel.string> - <panel.string name="text deed"> - Сделка - </panel.string> - <panel.string name="text modify info 1"> - Этот объект можно изменять - </panel.string> - <panel.string name="text modify info 2"> - Эти объекты можно изменять - </panel.string> - <panel.string name="text modify info 3"> - Этот объект нельзя изменять - </panel.string> - <panel.string name="text modify info 4"> - Эти объекты нельзя изменять - </panel.string> - <panel.string name="text modify info 5"> - Этот объект нельзя изменять через границу региона - </panel.string> - <panel.string name="text modify info 6"> - Эти объекты нельзя изменять через границу региона - </panel.string> - <panel.string name="text modify warning"> - Этот объект содержит объединенные части - </panel.string> - <panel.string name="Cost Default"> - Цена: L$ - </panel.string> - <panel.string name="Cost Total"> - Всего: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Цена за: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Смешанная цена - </panel.string> - <panel.string name="Sale Mixed"> - Смешанная продажа - </panel.string> + <panel.string name="text deed continued">Сделка</panel.string> + <panel.string name="text deed">Сделка</panel.string> + <panel.string name="text modify info 1">Этот объект можно изменять</panel.string> + <panel.string name="text modify info 2">Эти объекты можно изменять</panel.string> + <panel.string name="text modify info 3">Этот объект нельзя изменять</panel.string> + <panel.string name="text modify info 4">Эти объекты нельзя изменять</panel.string> + <panel.string name="text modify info 5">Этот объект нельзя изменять через границу региона</panel.string> + <panel.string name="text modify info 6">Эти объекты нельзя изменять через границу региона</panel.string> + <panel.string name="text modify warning">Этот объект содержит объединенные части</panel.string> + <panel.string name="Cost Default">Цена: L$</panel.string> + <panel.string name="Cost Total">Итоговая цена: L$</panel.string> + <panel.string name="Cost Per Unit">Цена за: L$</panel.string> + <panel.string name="Cost Mixed">Смешанная цена</panel.string> + <panel.string name="Sale Mixed">Смешанная продажа</panel.string> <text name="title" value="Профиль объекта"/> <text name="where" value="(в мире)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Название: - </text> - <text name="Description:"> - Описание: - </text> - <text name="CreatorNameLabel"> - Создатель: - </text> - <text name="Owner:"> - Владелец: - </text> - <text name="Group_label"> - Группа: - </text> + <text name="Name:">Название:</text> + <text name="Description:">Описание:</text> + <text name="CreatorNameLabel">Создатель:</text> + <text name="Owner:">Владелец:</text> + <text name="Group_label">Группа:</text> <button name="button set group" tool_tip="Выберите группу для передачи ей прав доступа к объекту"/> <name_box initial_value="Загрузка..." name="Group Name Proxy"/> <button label="Сделка" label_selected="Сделка" name="button deed" tool_tip="В результате сделки объект передается группе, при этом права на него будут соответствовать правам следующего владельца. Переданный группе объект может передаваться должностным лицом группы."/> - <text name="label click action"> - Действие по щелчку: - </text> + <text name="label click action">Действие по щелчку:</text> <combo_box name="clickaction"> <combo_box.item label="Коснуться (по умолчанию)" name="Touch/grab(default)"/> <combo_box.item label="Сесть на объект" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Приблизить" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Этот объект можно изменять - </text> - <text name="Anyone can:"> - Все: - </text> + <text name="perm_modify">Этот объект можно изменять</text> + <text name="Anyone can:">Все:</text> <check_box label="Копировать" name="checkbox allow everyone copy"/> <check_box label="Переместить" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Группа: - </text> + <text name="GroupLabel">Группа:</text> <check_box label="Поделиться" name="checkbox share with group" tool_tip="Позволить всем участникам выбранной группы получить установленные вам права на этот объект. Для включения ролевых ограничений необходимо произвести сделку."/> - <text name="NextOwnerLabel"> - Следующий владелец: - </text> + <text name="NextOwnerLabel">Следующий владелец:</text> <check_box label="Изменять" name="checkbox next owner can modify"/> <check_box label="Копировать" name="checkbox next owner can copy"/> <check_box label="Передать" name="checkbox next owner can transfer" tool_tip="Следующий владелец может отдать или перепродать объект"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Цена: L$" name="Edit Cost"/> <check_box label="Показать в результатах поиска" name="search_check" tool_tip="Показывать объект в результатах поиска"/> - <text name="pathfinding_attributes_label"> - Атрибуты поиска пути: - </text> - <text name="B:"> - Н: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - В: - </text> - <text name="N:"> - С: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Атрибуты поиска пути:</text> + <text name="B:">Н:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">В:</text> + <text name="N:">С:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Открыть" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index ba63881094..0d64b2cae9 100755 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -454,28 +454,46 @@ support@secondlife.com. </string> <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - Нельзя выложить предметы из папке «Торговые исходящие» + Нельзя выложить предметы из папки списков товаров торгового центра + </string> + <string name="TooltipOutboxWorn"> + Нельзя поместить предметы, которые вы носите, в папку списков товаров торгового центра + </string> + <string name="TooltipOutboxFolderLevels"> + Глубина вложения папок превышает [AMOUNT]. Уменьшите глубину вложения; при необходимости сгруппируйте предметы. + </string> + <string name="TooltipOutboxTooManyFolders"> + Количество подпапок не может превышать [AMOUNT]. Уменьшите количество папок в списке; при необходимости сгруппируйте предметы. + </string> + <string name="TooltipOutboxTooManyObjects"> + Количество предметов не может превышать [AMOUNT]. Для продажи более чем [AMOUNT] предм. в одном списке некоторые из них следует сгруппировать. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Количество предметов не может превышать [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Можно перетаскивать предметы или папки только на вкладку «ВСЕ». Выберите эту вкладку и переместите предметы или папки снова. </string> <string name="TooltipOutboxNoTransfer"> - Часть этих объектов нельзя продать или передать. + Часть этих объектов нельзя продать или передать </string> <string name="TooltipOutboxNotInInventory"> - Ваша папка «Торговые исходящие» может получать вещи только непосредственно из вашего инвентаря + В торговый центр можно поместить только предметы из своего инвентаря </string> - <string name="TooltipOutboxWorn"> - Носимые предметы нельзя поместить в папку «Торговые исходящие» + <string name="TooltipOutboxLinked"> + Привязанные предметы или папки нельзя поместить в торговый центр </string> <string name="TooltipOutboxCallingCard"> - Визитки нельзя поместить в папку «Торговые исходящие» + Нельзя поместить визитки в торговый центр </string> - <string name="TooltipOutboxFolderLevels"> - Глубина вложения папок превышает 3 + <string name="TooltipOutboxDragActive"> + Опубликованный список нельзя переместить </string> - <string name="TooltipOutboxTooManyFolders"> - В папке верхнего уровня более 20 подпапок + <string name="TooltipOutboxCannotMoveRoot"> + Корневую папку списков товаров торгового центра нельзя перемещать </string> - <string name="TooltipOutboxTooManyObjects"> - В папке верхнего уровня более 200 предметов + <string name="TooltipOutboxMixedStock"> + У всех предметов в папке запасов должен быть один и тот же тип и разрешение </string> <string name="TooltipDragOntoOwnChild"> Папку нельзя переместить в ее подпапку @@ -1060,7 +1078,7 @@ support@secondlife.com. <string name="AgentNameSubst"> (Вы) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Отключить извещения при управлении списками доступа к землевладениям </string> @@ -1127,6 +1145,12 @@ support@secondlife.com. <string name="bitmap_image_files"> Изображения BMP </string> + <string name="png_image_files"> + Изображения PNG + </string> + <string name="save_texture_image_files"> + Изображения Targa или PNG + </string> <string name="avi_movie_file"> Видео AVI </string> @@ -1376,6 +1400,9 @@ support@secondlife.com. <string name="FavoritesNoMatchingItems"> Перетащите сюда закладку, чтобы добавить ее в список избранного. </string> + <string name="MarketplaceNoMatchingItems"> + Предметы не найдены. Проверьте правильность строки поиска и повторите попытку. + </string> <string name="InventoryNoTexture"> В вашем инвентаре нет копии этой текстуры </string> @@ -1423,29 +1450,95 @@ support@secondlife.com. <string name="InventoryOutboxError"> [[MARKETPLACE_CREATE_STORE_URL] Магазин] возвращает ошибки. </string> + <string name="InventoryMarketplaceError"> + Это бета-версия функции. Если вы хотите участвовать в ее тестировании, заполните эту [http://goo.gl/forms/FCQ7UXkakz форму Google]. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Папка списков товаров торгового центра пуста. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Перетащите папки в эту область, чтобы выставить их на продажу в [[MARKETPLACE_DASHBOARD_URL] Торговом центре]. + </string> + <string name="Marketplace Validation Warning Stock"> + В папке версии должна быть папка запасов + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Ошибка: все предметы в папке запасов должны быть некопируемыми и одного типа + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Ошибка: папка запасов не может содержать подпапки + </string> + <string name="Marketplace Validation Warning Empty"> + : Предупреждение: папка не содержит предметов + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Предупреждение: создается папка запасов + </string> + <string name="Marketplace Validation Warning Create Version"> + : Предупреждение: создается папка версии + </string> + <string name="Marketplace Validation Warning Move"> + : Предупреждение: перемещаются предметы + </string> + <string name="Marketplace Validation Warning Delete"> + : Предупреждение: содержимое папки переносится в папку запасов, пустая папка удаляется + </string> + <string name="Marketplace Validation Error Stock Item"> + : Ошибка: в папке запасов должны содержаться некопируемые предметы + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Предупреждение: в папке версии должны быть предметы + </string> + <string name="Marketplace Validation Error"> + : Ошибка: + </string> + <string name="Marketplace Validation Warning"> + : Предупреждение: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Предупреждение: папка версии должна содержать хотя бы 1 предмет + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Предупреждение: папка запасов должна содержать хотя бы 1 предмет + </string> + <string name="Marketplace Validation No Error"> + Нет ошибок и предупреждений + </string> <string name="Marketplace Error None"> Ошибок нет </string> + <string name="Marketplace Error Prefix"> + Ошибка: + </string> <string name="Marketplace Error Not Merchant"> - Ошибка. Прежде чем отправлять вещи в магазин, необходимо зарегистрироваться как торговец (бесплатно). + Прежде чем отправлять предметы в торговый центр, необходимо зарегистрироваться как торговец (бесплатно). + </string> + <string name="Marketplace Error Not Accepted"> + Невозможно переместить предмет в эту папку. </string> - <string name="Marketplace Error Empty Folder"> - Ошибка. В этой папке нет контента. + <string name="Marketplace Error Unsellable Item"> + Этот предмет нельзя продать в торговом центре. </string> - <string name="Marketplace Error Unassociated Products"> - Ошибка. Не удается передать эту вещь, поскольку в вашем торговом аккаунте слишком много вещей, не связанных с продуктами. Чтобы исправить эту ошибку, войдите на веб-сайт торгового центра и уменьшите число своих вещей, которые ни с чем не связаны. + <string name="MarketplaceNoID"> + нет ID торг. центра </string> - <string name="Marketplace Error Object Limit"> - Ошибка. Эта вещь содержит слишком много объектов. Исправьте эту ошибку, сложив объекты в коробки и уменьшив их общее число (должно быть меньше 200). + <string name="MarketplaceLive"> + опубликовано </string> - <string name="Marketplace Error Folder Depth"> - Ошибка. Эта вещь содержит слишком много уровней вложенных папок. Измените структуру так, чтобы уровней вложенных папок было не более 3. + <string name="MarketplaceActive"> + активно </string> - <string name="Marketplace Error Unsellable Item"> - Ошибка. Эту вещь нельзя продать в магазине. + <string name="MarketplaceMax"> + макс. </string> - <string name="Marketplace Error Internal Import"> - Ошибка. Эта вещь создает проблему. Повторите попытку позже. + <string name="MarketplaceStock"> + запас + </string> + <string name="MarketplaceNoStock"> + нет в запасе + </string> + <string name="MarketplaceUpdating"> + обновление... </string> <string name="Open landmarks"> Открыть закладки @@ -1466,6 +1559,7 @@ support@secondlife.com. Нет контента </string> <string name="WornOnAttachmentPoint" value="(где носится: [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (активно)"/> <string name="PermYes"> Да @@ -1736,6 +1830,15 @@ support@secondlife.com. <string name="Invalid Attachment"> Неверная точка присоединения </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Ошибка: отсутствует предмет + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Ошибка: отсутствует базовый предмет + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Ошибка: объект входит в текущий костюм, но не прикреплен + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS] </string> @@ -1871,9 +1974,6 @@ support@secondlife.com. <string name="CompileQueueUnknownFailure"> Неизвестный сбой загрузки </string> - <string name="CompileNoExperiencePerm"> - Пропуск скрипта [SCRIPT] с приключением [EXPERIENCE]. - </string> <string name="CompileQueueTitle"> Ход повторной компиляции </string> @@ -1907,6 +2007,9 @@ support@secondlife.com. <string name="SaveComplete"> Сохранение завершено. </string> + <string name="UploadFailed"> + Не удалось загрузить файл: + </string> <string name="ObjectOutOfRange"> Скрипт (объект вне области) </string> @@ -1916,6 +2019,9 @@ support@secondlife.com. <string name="GroupsNone"> нет </string> + <string name="CompileNoExperiencePerm"> + Пропуск скрипта [SCRIPT] с приключением [EXPERIENCE]. + </string> <string name="Group" value="(группа)"/> <string name="Unknown"> (Неизвестно) @@ -5076,6 +5182,9 @@ support@secondlife.com. <string name="Command_Marketplace_Label"> Торговый центр </string> + <string name="Command_MarketplaceListings_Label"> + Торговый центр + </string> <string name="Command_MiniMap_Label"> Миникарта </string> @@ -5163,6 +5272,9 @@ support@secondlife.com. <string name="Command_Marketplace_Tooltip"> Покупки </string> + <string name="Command_MarketplaceListings_Tooltip"> + Продайте свои творения + </string> <string name="Command_MiniMap_Tooltip"> Показать людей поблизости </string> @@ -5274,6 +5386,18 @@ support@secondlife.com. <string name="UserDictionary"> [Пользователь] </string> + <string name="logging_calls_disabled_log_empty"> + Разговоры не записываются. Чтобы начать запись разговора, в меню «Настройки > Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи». + </string> + <string name="logging_calls_disabled_log_not_empty"> + Разговоры больше не будут записываться. Чтобы восстановить запись разговора, в меню «Настройки > Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи». + </string> + <string name="logging_calls_enabled_log_empty"> + Нет зарегистрированных разговоров. Если вы обратитесь к кому-то или наоборот, в журнале появится новая запись. + </string> + <string name="loading_chat_logs"> + Загрузка... + </string> <string name="experience_tools_experience"> Приключение </string> @@ -5355,16 +5479,4 @@ support@secondlife.com. <string name="ExperiencePermissionShort12"> Разрешение </string> - <string name="logging_calls_disabled_log_empty"> - Разговоры не записываются. Чтобы начать запись разговора, в меню «Настройки > Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи». - </string> - <string name="logging_calls_disabled_log_not_empty"> - Разговоры больше не будут записываться. Чтобы восстановить запись разговора, в меню «Настройки > Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи». - </string> - <string name="logging_calls_enabled_log_empty"> - Нет зарегистрированных разговоров. Если вы обратитесь к кому-то или наоборот, в журнале появится новая запись. - </string> - <string name="loading_chat_logs"> - Загрузка... - </string> </strings> diff --git a/indra/newview/skins/default/xui/tr/floater_about.xml b/indra/newview/skins/default/xui/tr/floater_about.xml index 7b925e8830..7034de64c9 100755 --- a/indra/newview/skins/default/xui/tr/floater_about.xml +++ b/indra/newview/skins/default/xui/tr/floater_about.xml @@ -1,71 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="[CAPITALIZED_APP_NAME] HAKKINDA"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [Sürüm Notları]] - </floater.string> - <floater.string name="AboutCompiler"> - [COMPILER] [COMPILER_VERSION] sürümü ile oluşturuldu - </floater.string> - <floater.string name="AboutPosition"> - <nolink>[HOSTNAME]</nolink> ([HOSTIP]) üzerinde bulunan [REGION] içerisinde [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] konumundasınız -SLURL: <nolink>[SLURL]</nolink> -(küresel koordinatlar [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU: [CPU] -Bellek: [MEMORY_MB] MB -İşl. Sis. Sürümü: [OS_VERSION] -Grafik Kartı Üreticisi: [GRAPHICS_CARD_VENDOR] -Grafik Kartı: [GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Windows Grafik Sürücüsü Sürümü: [GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - OpenGL Sürümü: [OPENGL_VERSION] - -libcurl Sürümü: [LIBCURL_VERSION] -J2C Kod Çözücü Sürümü: [J2C_VERSION] -Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION] -Qt Web Kit Sürümü: [QT_WEBKIT_VERSION] -Ses Sunucusu Sürümü: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (hiçbiri) - </floater.string> - <floater.string name="AboutTraffic"> - Kaybolan Paketler: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - Sunucu sürümü notları URL'si alınırken hata oluştu. - </floater.string> <tab_container name="about_tab"> <panel label="Bilgi" name="support_panel"> <button label="Panoya Kopyala" name="copy_btn"/> </panel> <panel label="Katkıda Bulunanlar" name="credits_panel"> - <text name="linden_intro"> - Second Life, Linden'lar tarafından geliştirilmiştir: - </text> - <text name="contrib_intro"> - Açık kaynak kod katkısında bulunanlar: - </text> - <text_editor name="contrib_names"> - Geçici Ad çalıştırma sırasında değiştirilir - </text_editor> - <text name="trans_intro"> - Çevirileri yapanlar: - </text> - <text_editor name="trans_names"> - Geçici Ad çalıştırma sırasında değiştirilir - </text_editor> + <text name="linden_intro">Second Life, Lindens tarafından geliştirilmiştir ve +açık kaynak kod katkısında bulunanlar şunlardır:</text> + <text_editor name="contrib_names">Geçici Ad çalıştırma sırasında değiştirilir</text_editor> </panel> <panel label="Lisanslar" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Telif Hakkı (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Telif Hakkı (C) 1992-2009 3Dconnexion APR Telif Hakkı (C) 2011 The Apache Software Foundation Collada DOM Telif Hakkı 2006 Sony Computer Entertainment Inc. cURL Telif Hakkı (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -92,8 +37,7 @@ Ses Sunucusu Sürümü: [VOICE_VERSION] Tüm hakları saklıdır. Ayrıntılı bilgi için bkz. licenses.txt - Sesli sohbet için Ses kodlaması: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + Sesli sohbet için Ses kodlaması: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_associate_listing.xml b/indra/newview/skins/default/xui/tr/floater_associate_listing.xml new file mode 100644 index 0000000000..bf78929931 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="İLANI İLİŞKİLENDİR"> + <text name="message">İlan Kimliği:</text> + <line_editor name="listing_id">Kimliği buraya girin</line_editor> + <button label="Tamam" name="OK"/> + <button label="İptal" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/tr/floater_edit_hover_height.xml new file mode 100644 index 0000000000..237d886c45 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="KONUM YÜKSEKLİĞİNİ AYARLA"> + <slider label="Yükseklik" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml index e49fef1f46..c6a5515c6e 100755 --- a/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="ENVANTER ÖGESİ ÖZELLİKLERİ"> - <floater.string name="unknown"> - (bilinmiyor) - </floater.string> - <floater.string name="public"> - (kamuya açık) - </floater.string> - <floater.string name="you_can"> - Şunu yapabilirsiniz: - </floater.string> - <floater.string name="owner_can"> - Sahip şunu yapabilir: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - Ad: - </text> - <text name="LabelItemDescTitle"> - Açıklama: - </text> - <text name="LabelCreatorTitle"> - Oluşturan: - </text> + <floater.string name="unknown">(bilinmiyor)</floater.string> + <floater.string name="public">(kamuya açık)</floater.string> + <floater.string name="you_can">Şunu yapabilirsiniz:</floater.string> + <floater.string name="owner_can">Sahip şunu yapabilir:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">Ad:</text> + <text name="LabelItemDescTitle">Açıklama:</text> + <text name="LabelCreatorTitle">Oluşturan:</text> <button label="Profil..." name="BtnCreator"/> - <text name="LabelOwnerTitle"> - Sahip: - </text> + <text name="LabelOwnerTitle">Sahip:</text> <button label="Profil..." name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - Alınan: - </text> - <text name="LabelAcquiredDate"> - 24 Mayıs Çarş 12:50:46 2006 - </text> - <text name="OwnerLabel"> - Siz: - </text> + <text name="LabelAcquiredTitle">Alınan:</text> + <text name="LabelAcquiredDate">24 Mayıs Çarş 12:50:46 2006</text> + <text name="OwnerLabel">Siz:</text> <check_box label="Düzenle" name="CheckOwnerModify"/> <check_box label="Kopyala" name="CheckOwnerCopy"/> <check_box label="Tekrar Sat" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Herkes: - </text> + <text name="AnyoneLabel">Herkes:</text> <check_box label="Kopyala" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Grup: - </text> + <text name="GroupLabel">Grup:</text> <check_box label="Paylaş" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel"> - Sonraki sahip: - </text> + <text name="NextOwnerLabel">Sonraki sahip:</text> <check_box label="Düzenle" name="CheckNextOwnerModify"/> <check_box label="Kopyala" name="CheckNextOwnerCopy"/> <check_box label="Tekrar Sat" name="CheckNextOwnerTransfer"/> <check_box label="Satılık" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Kopyala" name="Copy"/> + <combo_box.item label="İçerik" name="Contents"/> <combo_box.item label="Orijinal" name="Original"/> </combo_box> <spinner label="Fiyat:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_item_properties.xml b/indra/newview/skins/default/xui/tr/floater_item_properties.xml new file mode 100644 index 0000000000..3146384b33 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="ÖĞE ÖZELLİKLERİ"/> diff --git a/indra/newview/skins/default/xui/tr/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/tr/floater_marketplace_listings.xml new file mode 100644 index 0000000000..f4837a300f --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="PAZARYERİ İLANLARI"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">Yükleniyor...</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/tr/floater_marketplace_validation.xml new file mode 100644 index 0000000000..ec563535d1 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="Pazaryeri İlanlarını Denetle"> + <button label="Tamam" label_selected="Tamam" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_openobject.xml b/indra/newview/skins/default/xui/tr/floater_openobject.xml index adcf5dede2..3876439428 100755 --- a/indra/newview/skins/default/xui/tr/floater_openobject.xml +++ b/indra/newview/skins/default/xui/tr/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="Envantere kopyala" label_selected="Envantere kopyala" name="copy_to_inventory_button"/> - <button label="Kopyala ve dış görünüme ekle" label_selected="Kopyala ve dış görünüme ekle" name="copy_and_wear_button"/> + <text name="border_note"> + Envantere kopyala ve giy + </text> + <button label="Dış görünüme ekle" label_selected="Dış görünüme ekle" name="copy_and_wear_button"/> + <button label="Dış görünümü değiştir" label_selected="Dış görünümü değiştir" name="copy_and_replace_button"/> + <button label="Sadece envantere kopyala" label_selected="Sadece envantere kopyala" name="copy_to_inventory_button"/> + <button label="İptal" label_selected="İptal" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_pay.xml b/indra/newview/skins/default/xui/tr/floater_pay.xml index 6604e5c37a..63334db910 100755 --- a/indra/newview/skins/default/xui/tr/floater_pay.xml +++ b/indra/newview/skins/default/xui/tr/floater_pay.xml @@ -1,21 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - Gruba Öde - </string> - <string name="payee_resident"> - Sakine Öde - </string> - <text name="payee_name"> - Kırpmayı Kontrol İçin Test Adı Çok Uzun - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - veya tutarı seç: - </text> - <button label="Öde" label_selected="Öde" name="pay btn"/> - <button label="İptal" label_selected="İptal" name="cancel btn"/> + <string name="payee_group">Gruba Öde</string> + <string name="payee_resident">Sakine Öde</string> + <text name="paying_text">Ödeyeceğiniz miktar:</text> + <text name="payee_name">Kırpmayı Kontrol İçin Test Adı Çok Uzun</text> + <panel label="Ara" name="PatternsPanel"> + <button label="1 L$ Öde" label_selected="1 L$ Öde" name="fastpay 1"/> + <button label="5 L$ Öde" label_selected="5 L$ Öde" name="fastpay 5"/> + <button label="10 L$ Öde" label_selected="10 L$ Öde" name="fastpay 10"/> + <button label="20 L$ Öde" label_selected="20 L$ Öde" name="fastpay 20"/> + </panel> + <panel label="Ara" name="InputPanel"> + <text name="amount text">Diğer bir tutar:</text> + <button label="Öde" label_selected="Öde" name="pay btn"/> + <button label="İptal" label_selected="İptal" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_pay_object.xml b/indra/newview/skins/default/xui/tr/floater_pay_object.xml index 7772d3b101..d736ededfd 100755 --- a/indra/newview/skins/default/xui/tr/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/tr/floater_pay_object.xml @@ -1,28 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - Gruba Öde - </string> - <string name="payee_resident"> - Sakine Öde - </string> - <text name="payee_name"> - Ericacita Moostopolison - </text> - <text name="object_name_label"> - Nesne yoluyla: - </text> + <string name="payee_group">Gruba Öde</string> + <string name="payee_resident">Sakine Öde</string> + <text name="paying_text">Ödeyeceğiniz miktar:</text> + <text name="payee_name">Ericacita Moostopolison</text> + <text name="object_name_label">Nesne yoluyla:</text> <icon name="icon_object" tool_tip="Nesneler"/> - <text name="object_name_text"> - Harika nesnem gerçekten uzun bir adla - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - veya tutarı seç: - </text> - <button label="Öde" label_selected="Öde" name="pay btn"/> - <button label="İptal" label_selected="İptal" name="cancel btn"/> + <text name="object_name_text">Harika nesnem gerçekten uzun bir adla</text> + <panel label="Ara" name="PatternsPanel"> + <button label="1 L$ Öde" label_selected="1 L$ Öde" name="fastpay 1"/> + <button label="5 L$ Öde" label_selected="5 L$ Öde" name="fastpay 5"/> + <button label="10 L$ Öde" label_selected="10 L$ Öde" name="fastpay 10"/> + <button label="20 L$ Öde" label_selected="20 L$ Öde" name="fastpay 20"/> + </panel> + <panel label="Ara" name="InputPanel"> + <text name="amount text">Diğer bir tutar:</text> + <button label="Öde" label_selected="Öde" name="pay btn"/> + <button label="İptal" label_selected="İptal" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/tr/menu_attachment_self.xml b/indra/newview/skins/default/xui/tr/menu_attachment_self.xml index ff7c718979..c49f817a45 100755 --- a/indra/newview/skins/default/xui/tr/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/tr/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="Görünümüm" name="Change Outfit"/> <menu_item_call label="Dış Görünümümü Düzenle" name="Edit Outfit"/> <menu_item_call label="Şeklimi Düzenle" name="Edit My Shape"/> + <menu_item_call label="Konum Yüksekliği" name="Hover Height"/> <menu_item_call label="Arkadaşlarım" name="Friends..."/> <menu_item_call label="Gruplarım" name="Groups..."/> <menu_item_call label="Profilim" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_self.xml b/indra/newview/skins/default/xui/tr/menu_avatar_self.xml index 6996dc612f..4dfa42c347 100755 --- a/indra/newview/skins/default/xui/tr/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/tr/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="Görünümüm" name="Chenge Outfit"/> <menu_item_call label="Dış Görünümümü Düzenle" name="Edit Outfit"/> <menu_item_call label="Şeklimi Düzenle" name="Edit My Shape"/> + <menu_item_call label="Konum Yüksekliği" name="Hover Height"/> <menu_item_call label="Arkadaşlarım" name="Friends..."/> <menu_item_call label="Gruplarım" name="Groups..."/> <menu_item_call label="Profilim" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/tr/menu_inventory.xml b/indra/newview/skins/default/xui/tr/menu_inventory.xml index 7239c4be06..784e4d18a4 100755 --- a/indra/newview/skins/default/xui/tr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/tr/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="İlan oluştur" name="Marketplace Create Listing"/> + <menu_item_call label="İlanı ilişkilendir" name="Marketplace Associate Listing"/> + <menu_item_call label="İlanı al (yenile)" name="Marketplace Get Listing"/> + <menu_item_call label="Hata kontrolü yap" name="Marketplace Check Listing"/> + <menu_item_call label="İlanı düzenle" name="Marketplace Edit Listing"/> + <menu_item_call label="Listele" name="Marketplace List"/> + <menu_item_call label="Listeden kaldır" name="Marketplace Unlist"/> + <menu_item_call label="Etkinleştir" name="Marketplace Activate"/> + <menu_item_call label="Devre Dışı Bırak" name="Marketplace Deactivate"/> <menu_item_call label="Paylaş" name="Share"/> <menu_item_call label="Satın Al" name="Task Buy"/> <menu_item_call label="Aç" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="Ekle" name="Wearable Add"/> <menu_item_call label="Çıkar" name="Take Off"/> <menu_item_call label="Satıcı Giden Kutusuna Kopyala" name="Merchant Copy"/> - <menu_item_call label="Pazaryerine Gönder" name="Marketplace Send"/> + <menu_item_call label="Pazaryeri İlanlarına Kopyala" name="Marketplace Copy"/> + <menu_item_call label="Pazaryeri İlanlarına Taşı" name="Marketplace Move"/> <menu_item_call label="--seçenek yok--" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/tr/menu_marketplace_view.xml b/indra/newview/skins/default/xui/tr/menu_marketplace_view.xml new file mode 100644 index 0000000000..c114f50c92 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="Stok miktarına göre sırala (düşükten yükseğe)" name="sort_by_stock_amount"/> + <menu_item_check label="Sadece ilan klasörlerini göster" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml index 25414b35fb..cc8d8c895b 100755 --- a/indra/newview/skins/default/xui/tr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="L$ Satın Al..." name="Buy and Sell L$"/> <menu_item_call label="Satıcı Giden Kutusu..." name="MerchantOutbox"/> + <menu_item_call label="Pazaryeri ilanları..." name="MarketplaceListings"/> <menu_item_call label="Hesap kontrol paneli..." name="Manage My Account"/> <menu_item_call label="Tercihler..." name="Preferences"/> <menu_item_call label="Araç çubuğu düğmeleri..." name="Toolbars"/> @@ -249,6 +250,7 @@ <menu_item_check label="Doku Konsolu" name="Texture Console"/> <menu_item_check label="Hata Ayıklama Konsolu" name="Debug Console"/> <menu_item_call label="Bildirimler Konsolu" name="Notifications"/> + <menu_item_check label="Bölge Hata Ayıklama Konsolu" name="Region Debug Console"/> <menu_item_check label="Hızlı Zamanlayıcılar" name="Fast Timers"/> <menu_item_check label="Bellek" name="Memory"/> <menu_item_check label="Sahne İstatistikleri" name="Scene Statistics"/> @@ -352,7 +354,7 @@ <menu_item_check label="Nesne Konumlarını Ping İle İnterpole Edin" name="Ping Interpolate Object Positions"/> <menu_item_call label="Paket Bırakın" name="Drop a Packet"/> </menu> - <menu_item_call label="Komut Dosyalı Kameranın Dökümünü Al" name="Dump Scripted Camera"/> + <menu_item_call label="Komut Dosyalı Kameranın Dökümünü Al" name="Dump Scripted Camera"/> <menu label="Kaydedici" name="Recorder"> <menu_item_call label="Oynatmayı Başlat" name="Start Playback"/> <menu_item_call label="Oynatmayı Durdur" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml index b854d3964b..a6c69c7ab2 100755 --- a/indra/newview/skins/default/xui/tr/notifications.xml +++ b/indra/newview/skins/default/xui/tr/notifications.xml @@ -129,6 +129,88 @@ Bir sistem veya ağ hatası nedeniyle Pazaryerine hiçbir klasör gönderilemedi Bir sistem veya ağ hatası nedeniyle Pazaryeri başlatılamadı. Daha sonra tekrar deneyin. <usetemplate name="okbutton" yestext="Tamam"/> </notification> + <notification name="StockPasteFailed"> + Stok Klasörüne kopyalama ya da taşıma başarısız oldu. Hata kodu: + + "[ERROR_CODE]" + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="MerchantPasteFailed"> + Pazaryeri İlanlarına kopyalama ya da taşıma başarısız oldu. Hata kodu: + + "[ERROR_CODE]" + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="MerchantTransactionFailed"> + Pazaryerinde yapılan işlem başarısız oldu. Hata kodu: + + Neden: "[ERROR_REASON]" + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + Bu ürünü listeleyemiyoruz ya da sürüm klasörünü etkinleştiremiyoruz. Bu sorun genellikle ilan açıklama formunda eksik bilgi olmasından kaynaklanır ama klasör yapısındaki hatalar yüzünden de gerçekleşmiş olabilir. İlanı düzenleyin ya da ilan klasöründe hata olup olmadığını kontrol edin. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="MerchantListingFailed"> + İlan Pazaryerinde yayınlanamadı. Hata kodu: + + "[ERROR_CODE]" + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + Bu sürüm klasörünü etkinleştirilemedi. Hata kodu: + + "[ERROR_CODE]" + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Bu eylem, bu ilanın etkin içeriğini değiştirecek. Devam etmek istiyor musunuz? + <usetemplate ignoretext="Pazaryerindeki etkin bir ilanı değiştirmek istediğimde doğrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Pazaryeri İlanları penceresine sürüklenen öğeler kopyalanmaz, orijinal konumlarından buraya taşınırlar. Devam etmek istiyor musunuz? + <usetemplate ignoretext="Bir öğeyi envanterden Pazaryerine taşımak istediğimde doğrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Bir ilan klasörü taşınır veya silinirse, Pazaryerindeki ilanınız silinir. Pazaryeri ilanını saklamak isterseniz, değiştirmek istediğiniz sürüm klasörünün içeriğini taşıyın veya silin. Devam etmek istiyor musunuz? + <usetemplate ignoretext="Bir ilanı Pazaryerine taşımak ya da Pazaryerinden silmek istediğim zaman doğrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Bu öğelerden birini ya da birden fazlasını Pazaryerine kopyalama izniniz yok. Bunları taşıyabilir veya bırakabilirsiniz. + <usetemplate canceltext="İptal" ignoretext="Kopyalanamaz öğeler içeren bir seçimi Pazaryerine kopyalamaya çalıştığım zaman doğrulama iste" name="yesnocancelbuttons" notext="Öğeleri taşıma" yestext="Öğeleri taşı"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Bu eylem ilanı listeden kaldıracak. Devam etmek istiyor musunuz? + <usetemplate ignoretext="Pazaryerindeki etkin bir ilanı listeden kaldırmak istediğimde doğrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Bu eylem, mevcut ilanın sürüm klasörünü devre dışı bırakacak. Devam etmek istiyor musunuz? + <usetemplate ignoretext="Pazaryerindeki bir ilanın sürüm klasörünü devre dışı bırakmak istediğimde doğrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Bu ilan güncellenemedi. +Bu öğeyi Pazaryeri üzerinde düzenlemek için [[URL] buraya tıklayın]. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + Pazaryeri İlanları klasöründe bulunan giysileri ve vücut bölümlerini kullanamazsınız. + </notification> + <notification name="AlertMerchantListingInvalidID"> + Geçersiz ilan kimliği. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Bu ilanda ya birden fazla sürüm klasörü var ya da hiç sürüm klasörü yok. Daha sonra bir sürüm klasörünü bağımsız olarak seçip etkinleştirmeniz gerekiyor. + <usetemplate ignoretext="Birden fazla sürüm klasörü içeren bir ilan oluşturduğum zaman sürüm klasörünün etkinleştirilmesi hakkında uyar" name="okignore" yestext="Tamam"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Farklı türdeki stok öğelerini ayrı stok klasörlerine yerleştirdik. Böylece klasörünüz listeleyebileceğimiz bir şekilde düzenlenir. + <usetemplate ignoretext="Stok klasörü listelenmeden önce bölündüğünde uyar" name="okignore" yestext="Tamam"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Stok boş olduğu için ilanınızı yayından kaldırdık. İlanı yeniden yayınlamak için stok klasörüne daha fazla birim eklemeniz gerekir. + <usetemplate ignoretext="Bir ilan, stok klasörü boş olduğu için listeden kaldırılınca uyar" name="okignore" yestext="Tamam"/> + </notification> <notification name="CompileQueueSaveText"> Aşağıdaki nedenden dolayı, bir komut dosyası için metin karşıya yüklenirken bir sorun oluştu: [REASON]. Lütfen daha sonra tekrar deneyin. </notification> @@ -473,6 +555,10 @@ Not: Bu işlem önbelleği temizleyecek. Değişiklikler Kaydedilsin mi? <usetemplate canceltext="İptal" name="yesnocancelbuttons" notext="Kaydetme" yestext="Kaydet"/> </notification> + <notification name="DeleteNotecard"> + Not kartı silinsin mi? + <usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> Mimik kaydedilemedi. Bu mimikte çok fazla adım var. @@ -1868,6 +1954,9 @@ Binlerce bölgeyi değiştirecek ve alan sunucusunu kesintiye uğratacaktır. Ziyaret etmeye çalıştığınız bölge, mevcut tercihlerinizi aşan içeriğe sahip. Ben > Tercihler > Genel sekmesini kullanarak tercihlerinizi değiştirebilirsiniz. <usetemplate name="okbutton" yestext="Tamam"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> Ziyaret etmeye çalıştığınız bölge [REGIONMATURITY] içeriğe sahip, buna sadece yetişkinler erişebilir. <url name="url"> @@ -2155,6 +2244,10 @@ Envanter öğesi/öğeleri taşınsın mı? <ignore name="ignore" text="Para() komut dosyası içermeyen bir nesne oluştururken 'Nesne için ödeme yap' eylemi ayarladım"/> </form> </notification> + <notification name="PayConfirmation"> + [TARGET] hedefine [AMOUNT]L$ ödemek istediğinizi doğrulayın. + <usetemplate ignoretext="Ödeme yapılmadan önce doğrulama iste (200L$ üzerinde tutarlar için)" name="okcancelignore" notext="İptal" yestext="Öde"/> + </notification> <notification name="OpenObjectCannotCopy"> Bu nesne içinde kopyalama izniniz olan bir öğe yok. </notification> @@ -3835,9 +3928,11 @@ Lütfen bir dakika sonra tekrar deneyin. </notification> <notification name="TeleportedByAttachment"> You have been teleported by an attachment on [ITEM_ID] + <usetemplate ignoretext="Işınlama: Bir ek tarafından ışınlandınız" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> '[PARCEL_NAME]' parseli üzerindeki '[OBJECT_NAME]' nesnesi tarafından ışınlandınız + <usetemplate ignoretext="Işınlama: Bir parsel üzerindeki bir nesne tarafından ışınlandınız" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> Sahibi [OWNER_ID] olan '[OBJECT_NAME]' nesnesi tarafından ışınlandınız @@ -4169,7 +4264,7 @@ Daha küçük bir arazi parçası seçmeyi deneyin. <usetemplate ignoretext="Dosyalar taşınamıyor. Önceki yol geri yüklendi." name="okignore" yestext="Tamam"/> </notification> <notification name="DefaultObjectPermissions"> - Aşağıdaki nedenden dolayı, varsayılan izinler kaydedilirken bir sorun oluştu: [REASON]. Varsayılan izinleri ayarlamayı lütfen daha sonra tekrar deneyin. + Varsayılan nesne izinleri kaydedilirken bir sorun oluştu: [REASON]. Varsayılan izinleri kaydetmeyi lütfen daha sonra tekrar deneyin. <usetemplate name="okbutton" yestext="Tamam"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/tr/panel_login.xml b/indra/newview/skins/default/xui/tr/panel_login.xml index ce1519be89..8b320ce9aa 100755 --- a/indra/newview/skins/default/xui/tr/panel_login.xml +++ b/indra/newview/skins/default/xui/tr/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="Kullanıcı Adı" name="username_combo" tool_tip="Kaydolduğunuzda seçtiğiniz kullanıcı adı, örn. mustafayalcin12 veya Faruk Gungoren"/> <line_editor label="Parola" name="password_edit"/> - <check_box label="Beni hatırla" name="remember_check"/> - <text name="forgot_password_text"> - Parolamı unuttum - </text> - <button label="Oturum Aç" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - son konumum - </text> <combo_box label="Sık kullandığım yerler" name="start_location_combo"> + <combo_box.item label="Son konumum" name="MyLastLocation"/> <combo_box.item label="Ana konumum" name="MyHome"/> </combo_box> - <button label="Oturum Aç" name="connect_favorite_btn"/> - <line_editor label="Bir yer adı yazın" name="location_edit"/> - <button label="Oturum Aç" name="connect_location_btn"/> + <button label="Oturum Aç" name="connect_btn"/> + <check_box label="Beni hatırla" name="remember_check"/> + <text name="forgot_password_text">Parolamı unuttum</text> <combo_box label="Ağ seç" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/tr/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/tr/panel_marketplace_listings.xml new file mode 100644 index 0000000000..50acc0f92a --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Pazaryeri" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="Seçenekleri görüntüleyin/sıralayın"/> + <button name="add_btn" tool_tip="Yeni bir ilan klasörü oluşturun"/> + <button label="Hatalara Karşı Kontrol Et" name="audit_btn" tool_tip="Pazaryeri ilanlarınızı kontrol edin"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="Pazaryeri İlanlarını Filtrele" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..8d857d20f0 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="TÜMÜ" name="All Items" tool_tip="Öğeleri listelemek için buraya sürükleyin ve bırakın"/> diff --git a/indra/newview/skins/default/xui/tr/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..c647a11246 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="LİSTELENMİŞ" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..ec9213ff35 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="İLİŞKİLENDİRİLMEMİŞ" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..d8c1b0a6d0 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="LİSTELENMEMİŞ" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/tr/panel_status_bar.xml b/indra/newview/skins/default/xui/tr/panel_status_bar.xml index 178cbda4a2..9e2669ec2b 100755 --- a/indra/newview/skins/default/xui/tr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/tr/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - Paket Kaybı - </panel.string> - <panel.string name="bandwidth_tooltip"> - Bant genişliği - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">Paket Kaybı</panel.string> + <panel.string name="bandwidth_tooltip">Bant genişliği</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel left="-425" name="balance_bg" width="215"> - <text name="balance" tool_tip="L$ bakiyenizi yenilemek için buraya tıklayın" value="L$20"/> + <text name="balance" tool_tip="L$ bakiyenizi yenilemek için buraya tıklayın" value="L$??"/> <button label="L$ Satın Al" name="buyL" tool_tip="Daha fazla L$ satın almak için tıklayın"/> <button label="Alışveriş yap" name="goShop" tool_tip="Second Life Pazaryeri Aç" width="95"/> </panel> - <text name="TimeText" tool_tip="Geçerli zaman (Pasifik)"> - 24:00 AM PST - </text> + <text name="TimeText" tool_tip="Geçerli zaman (Pasifik)">24:00 AM PST</text> <button name="media_toggle_btn" tool_tip="Tüm Ortam Öğelerini Başlat/Durdur (Müzik, Video, Web sayfaları)"/> <button name="volume_btn" tool_tip="Küresel Ses Kontrolü"/> </panel> diff --git a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml index 433da27946..92d57deb12 100755 --- a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml @@ -72,8 +72,9 @@ <check_box label="Aktar" name="CheckNextOwnerTransfer" tool_tip="Sonraki sahibi bu nesneyi verebilir veya tekrar satabilir"/> </panel> <check_box label="Satılık" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> + <combo_box name="ComboBoxSaleType"> <combo_box.item label="Kopyala" name="Copy"/> + <combo_box.item label="İçerik" name="Contents"/> <combo_box.item label="Orijinal" name="Original"/> </combo_box> <spinner label="Fiyat: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml index 9a4cf54fa7..ddb4bbf160 100755 --- a/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="Nesne Profili"> - <panel.string name="text deed continued"> - Devret - </panel.string> - <panel.string name="text deed"> - Devret - </panel.string> - <panel.string name="text modify info 1"> - Bu nesneyi değiştirebilirsiniz - </panel.string> - <panel.string name="text modify info 2"> - Bu nesneleri değiştirebilirsiniz - </panel.string> - <panel.string name="text modify info 3"> - Bu nesneyi değiştiremezsiniz - </panel.string> - <panel.string name="text modify info 4"> - Bu nesneleri değiştiremezsiniz - </panel.string> - <panel.string name="text modify info 5"> - Bir bölge sınırı üzerinden bu nesneyi değiştiremezsiniz - </panel.string> - <panel.string name="text modify info 6"> - Bir bölge sınırı üzerinden bu nesneleri değiştiremezsiniz - </panel.string> - <panel.string name="text modify warning"> - Bu nesne bağlantılı parçalara sahip - </panel.string> - <panel.string name="Cost Default"> - Fiyat: L$ - </panel.string> - <panel.string name="Cost Total"> - Toplam Fiyat: L$ - </panel.string> - <panel.string name="Cost Per Unit"> - Birim Fiyatı: L$ - </panel.string> - <panel.string name="Cost Mixed"> - Karma Fiyat - </panel.string> - <panel.string name="Sale Mixed"> - Karma Satış - </panel.string> + <panel.string name="text deed continued">Devret</panel.string> + <panel.string name="text deed">Devret</panel.string> + <panel.string name="text modify info 1">Bu nesneyi değiştirebilirsiniz</panel.string> + <panel.string name="text modify info 2">Bu nesneleri değiştirebilirsiniz</panel.string> + <panel.string name="text modify info 3">Bu nesneyi değiştiremezsiniz</panel.string> + <panel.string name="text modify info 4">Bu nesneleri değiştiremezsiniz</panel.string> + <panel.string name="text modify info 5">Bir bölge sınırı üzerinden bu nesneyi değiştiremezsiniz</panel.string> + <panel.string name="text modify info 6">Bir bölge sınırı üzerinden bu nesneleri değiştiremezsiniz</panel.string> + <panel.string name="text modify warning">Bu nesne bağlantılı parçalara sahip</panel.string> + <panel.string name="Cost Default">Fiyat: L$</panel.string> + <panel.string name="Cost Total">Toplam Fiyat: L$</panel.string> + <panel.string name="Cost Per Unit">Birim Fiyatı: L$</panel.string> + <panel.string name="Cost Mixed">Karma Fiyat</panel.string> + <panel.string name="Sale Mixed">Karma Satış</panel.string> <text name="title" value="Nesne Profili"/> <text name="where" value="(SL Dünyası)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - Ad: - </text> - <text name="Description:"> - Açıklama: - </text> - <text name="CreatorNameLabel"> - Oluşturan: - </text> - <text name="Owner:"> - Sahip: - </text> - <text name="Group_label"> - Grup: - </text> + <text name="Name:">Ad:</text> + <text name="Description:">Açıklama:</text> + <text name="CreatorNameLabel">Oluşturan:</text> + <text name="Owner:">Sahip:</text> + <text name="Group_label">Grup:</text> <button name="button set group" tool_tip="Bu nesnenin izinlerini paylaşmak için bir grup seçin"/> <name_box initial_value="Yükleniyor..." name="Group Name Proxy"/> <button label="Devret" label_selected="Devret" name="button deed" tool_tip="Bu nesne devredilerek verildiğinde, nesnenin sonraki sahibi için izinler geçerli olur. Grup içerisinde paylaşılan nesneler bir grup yetkilisi tarafından devredilebilir."/> - <text name="label click action"> - Şu eylem için tıklayın: - </text> + <text name="label click action">Şu eylem için tıklayın:</text> <combo_box name="clickaction"> <combo_box.item label="Dokun (varsayılan)" name="Touch/grab(default)"/> <combo_box.item label="Nesnenin üzerine otur" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="Yakınlaştır" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - Bu nesneyi değiştirebilirsiniz - </text> - <text name="Anyone can:"> - Herkes: - </text> + <text name="perm_modify">Bu nesneyi değiştirebilirsiniz</text> + <text name="Anyone can:">Herkes:</text> <check_box label="Kopyala" name="checkbox allow everyone copy"/> <check_box label="Hareket Et" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - Grup: - </text> + <text name="GroupLabel">Grup:</text> <check_box label="Paylaş" name="checkbox share with group" tool_tip="Ayarlanan grubun tüm üyelerinin, bu nesne için değiştirme izinlerinizi paylaşmasına izin verir. Rol kısıtlamalarını etkinleştirmek için Devretme yapmalısınız."/> - <text name="NextOwnerLabel"> - Sonraki sahip: - </text> + <text name="NextOwnerLabel">Sonraki sahip:</text> <check_box label="Değiştir" name="checkbox next owner can modify"/> <check_box label="Kopyala" name="checkbox next owner can copy"/> <check_box label="Aktar" name="checkbox next owner can transfer" tool_tip="Sonraki sahibi bu nesneyi verebilir veya tekrar satabilir"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="Fiyat: L$" name="Edit Cost"/> <check_box label="Aramada göster" name="search_check" tool_tip="Kişiler arama sonuçlarında bu nesneyi görebilsin"/> - <text name="pathfinding_attributes_label"> - Yol bulma özellikleri: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">Yol bulma özellikleri:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="Aç" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml index b1a513fbf5..80fe2b3986 100755 --- a/indra/newview/skins/default/xui/tr/strings.xml +++ b/indra/newview/skins/default/xui/tr/strings.xml @@ -454,28 +454,46 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. </string> <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - Satıcı giden kutunuzda öğeler oluşturamazsınız + Pazaryeri İlanları klasöründen öğe oluşturamazsınız + </string> + <string name="TooltipOutboxWorn"> + Üzerinizde bulunan öğeleri Pazaryeri İlanları klasörüne koyamazsınız + </string> + <string name="TooltipOutboxFolderLevels"> + İç içe geçmiş klasörlerin derinliği [AMOUNT] değerini geçiyor. İç içe geçmiş klasörlerin derinliğini azaltın; gerekirse öğeleri kutu içine alın. + </string> + <string name="TooltipOutboxTooManyFolders"> + Alt klasör sayısı [AMOUNT] değerini geçiyor. İlanınızdaki klasör sayısını azaltın; gerekirse öğeleri kutu içine alın. + </string> + <string name="TooltipOutboxTooManyObjects"> + Öğe sayısı [AMOUNT] değerini geçiyor. Bir ilanda [AMOUNT] öğeden fazlasını satmak için bazılarını kutu içine almalısınız. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Stok öğelerinin sayısı [AMOUNT] değerini geçiyor. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Öğeleri veya klasörleri sadece TÜMÜ sekmesine bırakabilirsiniz. Lütfen bu sekmeyi seçin ve öğelerinizi ya da klasörlerinizi yeniden taşıyın. </string> <string name="TooltipOutboxNoTransfer"> - Bu nesnelerden bir veya daha fazlası satılamaz veya aktarılamaz. + Bu nesnelerden bir veya daha fazlası satılamaz veya aktarılamaz </string> <string name="TooltipOutboxNotInInventory"> - Satıcı giden kutunuza sadece doğrudan kendi envanterinizden öğeler koyabilirsiniz + Pazaryerine sadece envanterinizdeki öğelerden koyabilirsiniz </string> - <string name="TooltipOutboxWorn"> - Giymekte olduğunuz öğeleri Satıcı giden kutunuza koyamazsınız. + <string name="TooltipOutboxLinked"> + Bağlı öğeleri veya klasörleri Pazaryerine koyamazsınız </string> <string name="TooltipOutboxCallingCard"> - Satıcı giden kutunuza arama kartları koyamazsınız + Arama kartlarını Pazaryerine koyamazsınız </string> - <string name="TooltipOutboxFolderLevels"> - İç içe geçmiş klasörlerin derinliği üçü geçiyor + <string name="TooltipOutboxDragActive"> + Listeye alınmış bir ilanı taşıyamazsınız </string> - <string name="TooltipOutboxTooManyFolders"> - Üst seviyedeki klasördeki alt klasör sayısı 20'yi geçiyor + <string name="TooltipOutboxCannotMoveRoot"> + Pazaryeri ilanları kök klasörünü taşıyamazsınız </string> - <string name="TooltipOutboxTooManyObjects"> - Üst seviyedeki klasördeki öğe sayısı 200'ü geçiyor + <string name="TooltipOutboxMixedStock"> + Bir stok klasöründeki tüm öğelerin tipi ve izni aynı olmalıdır </string> <string name="TooltipDragOntoOwnChild"> Bir klasörü alt klasörüne taşıyamazsınız @@ -1060,7 +1078,7 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="AgentNameSubst"> (Siz) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> Gayri menkul erişim listelerini yönetirken uyarıları bastır </string> @@ -1127,6 +1145,12 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="bitmap_image_files"> Bitmap Görüntüler </string> + <string name="png_image_files"> + PNG Görüntüleri + </string> + <string name="save_texture_image_files"> + Targa veya PNG Görüntüleri + </string> <string name="avi_movie_file"> AVI Film Dosyası </string> @@ -1376,6 +1400,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="FavoritesNoMatchingItems"> Bir yer imini favorilerinize eklemek için buraya sürükleyin. </string> + <string name="MarketplaceNoMatchingItems"> + Öğe bulunamadı. Arama dizenizin yazımını kontrol edin ve yeniden deneyin. + </string> <string name="InventoryNoTexture"> Envanterinizde bu dokunun kopyası yok </string> @@ -1423,29 +1450,95 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="InventoryOutboxError"> [[MARKETPLACE_CREATE_STORE_URL] Mağazası] hata döndürüyor. </string> + <string name="InventoryMarketplaceError"> + Bu özellik şu anda Beta aşamasında. Katılmak istiyorsanız lütfen adınızı bu [http://goo.gl/forms/FCQ7UXkakz Google formuna] ekleyin. + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Pazaryeri İlanları klasörünüz boş. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Klasörleri [[MARKETPLACE_DASHBOARD_URL] Pazaryerinde] satılık olarak listelemek için bu alana sürükleyin. + </string> + <string name="Marketplace Validation Warning Stock"> + stok klasörü bir sürüm klasöründe bulunmalıdır + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Hata: Bir stok klasöründeki tüm öğeler aynı tipte ve kopyalanamaz olmalıdır + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Hata: stok klasörü alt klasörler içeremez + </string> + <string name="Marketplace Validation Warning Empty"> + : Uyarı: Klasör hiçbir öğe içermiyor + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Uyarı: stok klasörü oluşturuluyor + </string> + <string name="Marketplace Validation Warning Create Version"> + : Uyarı: sürüm klasörü oluşturuluyor + </string> + <string name="Marketplace Validation Warning Move"> + : Uyarı: Öğeler taşınıyor + </string> + <string name="Marketplace Validation Warning Delete"> + : Uyarı: klasör içeriği stok klasörüne aktarıldı, boş klasör kaldırılıyor + </string> + <string name="Marketplace Validation Error Stock Item"> + : Hata: Kopyalanamaz öğeler stok klasöründe saklanmalıdır + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Uyarı: Öğeler bir sürüm klasöründe bulunmalıdır + </string> + <string name="Marketplace Validation Error"> + : Hata: + </string> + <string name="Marketplace Validation Warning"> + : Uyarı: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Uyarı: sürüm klasörü en az 1 öğe içermelidir + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Uyarı: Stok klasörü en az 1 öğe içermelidir + </string> + <string name="Marketplace Validation No Error"> + Raporlanacak hiçbir hata ya da uyarı yok + </string> <string name="Marketplace Error None"> Hata yok </string> + <string name="Marketplace Error Prefix"> + Hata: + </string> <string name="Marketplace Error Not Merchant"> - Hata: Öğeleri Pazaryerine göndermeden önce kendinizi bir satıcı olarak belirlemelisiniz (ücretsizdir). + Öğeleri Pazaryerine göndermeden önce kendinizi bir satıcı olarak belirtmeniz gerekir (ücretsizdir). + </string> + <string name="Marketplace Error Not Accepted"> + Öğe bu klasöre taşınamıyor. </string> - <string name="Marketplace Error Empty Folder"> - Hata: Bu klasörün içeriği boş. + <string name="Marketplace Error Unsellable Item"> + Bu öğe Pazaryerinde satılamaz. </string> - <string name="Marketplace Error Unassociated Products"> - Hata: Bu öğe karşıya yüklenemedi çünkü satıcı hesabınızda ürünlerle ilişkisiz çok fazla öğe mevcut. Bu hatayı düzeltmek için Pazaryeri web sitesine oturum açın ve ilişkisiz öğe sayınızı azaltın. + <string name="MarketplaceNoID"> + no Mkt ID </string> - <string name="Marketplace Error Object Limit"> - Hata: Bu öğe çok fazla nesne içeriyor. Bu hatayı düzeltmek için nesneleri birlikte kutulara yerleştirerek, toplam nesne sayısını 200'ün altına düşürün. + <string name="MarketplaceLive"> + listelenmiş </string> - <string name="Marketplace Error Folder Depth"> - Hata: Bu öğede çok fazla iç içe geçmiş klasör seviyesi var. Bunu tekrar düzenleyerek maksimum 3 iç içe geçmiş klasör seviyesine indirin. + <string name="MarketplaceActive"> + etkin </string> - <string name="Marketplace Error Unsellable Item"> - Hata: Bu öğe Pazaryerinde satılamaz. + <string name="MarketplaceMax"> + maks. </string> - <string name="Marketplace Error Internal Import"> - Hata: Bu öğede bir sorun var. Daha sonra tekrar deneyin. + <string name="MarketplaceStock"> + stok + </string> + <string name="MarketplaceNoStock"> + stokta kalmadı + </string> + <string name="MarketplaceUpdating"> + güncelleniyor... </string> <string name="Open landmarks"> Açık yer imleri @@ -1466,6 +1559,7 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. İçerik yok </string> <string name="WornOnAttachmentPoint" value="([ATTACHMENT_POINT] üzerinde giyilmiş)"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL] (etkin)"/> <string name="PermYes"> Evet @@ -1736,6 +1830,15 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="Invalid Attachment"> Geçersiz Aksesuar Noktası </string> + <string name="ATTACHMENT_MISSING_ITEM"> + Hata: eksik öğe + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + Hata: Eksik temel öğe + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + Hata: Nesne mevcut dış görünüme dahil ama eklenmemiş + </string> <string name="YearsMonthsOld"> [AGEYEARS] [AGEMONTHS]'lık </string> @@ -1871,9 +1974,6 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="CompileQueueUnknownFailure"> Karşıdan yüklerken bilinmeyen hata </string> - <string name="CompileNoExperiencePerm"> - [SCRIPT] komut dizisi [EXPERIENCE] deneyimiyle atlanıyor. - </string> <string name="CompileQueueTitle"> Tekrar Derleme İlerlemesi </string> @@ -1907,6 +2007,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="SaveComplete"> Kaydetme tamamlandı. </string> + <string name="UploadFailed"> + Dosya karşıya yüklenemedi: + </string> <string name="ObjectOutOfRange"> Komut dosyası (nesne kapsam dışı) </string> @@ -1916,6 +2019,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="GroupsNone"> hiçbiri </string> + <string name="CompileNoExperiencePerm"> + [SCRIPT] komut dizisi [EXPERIENCE] deneyimiyle atlanıyor. + </string> <string name="Group" value="(grup)"/> <string name="Unknown"> (Bilinmiyor) @@ -5077,6 +5183,9 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin. <string name="Command_Marketplace_Label"> Pazaryeri </string> + <string name="Command_MarketplaceListings_Label"> + Pazaryeri + </string> <string name="Command_MiniMap_Label"> Mini-harita </string> @@ -5164,6 +5273,9 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin. <string name="Command_Marketplace_Tooltip"> Alışveriş yap </string> + <string name="Command_MarketplaceListings_Tooltip"> + Oluşturduğunuz öğeleri satın + </string> <string name="Command_MiniMap_Tooltip"> Yakındaki kişileri göster </string> @@ -5275,6 +5387,18 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin. <string name="UserDictionary"> [User] </string> + <string name="logging_calls_disabled_log_empty"> + Sohbetlerin günlüğü tutulmuyor. Bir günlük tutmaya başlamak için, Tercihler > Sohbet altında "Kaydet: Sadece günlük" veya "Kaydet: Günlük ve dökümler" seçimini yapın. + </string> + <string name="logging_calls_disabled_log_not_empty"> + Bundan böyle sohbetlerin günlükleri tutulmayacak. Bir günlük tutmaya devam etmek için, Tercihler > Sohbet altında "Kaydet: Sadece günlük" veya "Kaydet: Günlük ve dökümler" seçimini yapın. + </string> + <string name="logging_calls_enabled_log_empty"> + Günlüğü tutulmuş sohbet yok. Siz biriyle iletişime geçtikten sonra veya biri sizinle iletişime geçtikten sonra, burada bir günlük girişi gösterilir. + </string> + <string name="loading_chat_logs"> + Yükleniyor... + </string> <string name="experience_tools_experience"> Deneyim </string> @@ -5356,16 +5480,4 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin. <string name="ExperiencePermissionShort12"> İzin </string> - <string name="logging_calls_disabled_log_empty"> - Sohbetlerin günlüğü tutulmuyor. Bir günlük tutmaya başlamak için, Tercihler > Sohbet altında "Kaydet: Sadece günlük" veya "Kaydet: Günlük ve dökümler" seçimini yapın. - </string> - <string name="logging_calls_disabled_log_not_empty"> - Bundan böyle sohbetlerin günlükleri tutulmayacak. Bir günlük tutmaya devam etmek için, Tercihler > Sohbet altında "Kaydet: Sadece günlük" veya "Kaydet: Günlük ve dökümler" seçimini yapın. - </string> - <string name="logging_calls_enabled_log_empty"> - Günlüğü tutulmuş sohbet yok. Siz biriyle iletişime geçtikten sonra veya biri sizinle iletişime geçtikten sonra, burada bir günlük girişi gösterilir. - </string> - <string name="loading_chat_logs"> - Yükleniyor... - </string> </strings> diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml index 2dfb35fa54..250cbe67e0 100755 --- a/indra/newview/skins/default/xui/zh/floater_about.xml +++ b/indra/newview/skins/default/xui/zh/floater_about.xml @@ -1,71 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="關於 [CAPITALIZED_APP_NAME]"> - <floater.string name="AboutHeader"> - [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - </floater.string> - <floater.string name="AboutCompiler"> - 以 [COMPILER_VERSION] 版本 [COMPILER] 建置 - </floater.string> - <floater.string name="AboutPosition"> - 你的方位是 [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1],地區名:[REGION],主機:<nolink>[HOSTNAME]</nolink> ([HOSTIP]) -第二人生 URL:<nolink>[SLURL]</nolink> -(全域坐標:[POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - </floater.string> - <floater.string name="AboutSystem"> - CPU:[CPU] -記憶體:[MEMORY_MB] MB -作業系統版本:[OS_VERSION] -顯示卡供應商:[GRAPHICS_CARD_VENDOR] -顯示卡:[GRAPHICS_CARD] - </floater.string> - <floater.string name="AboutDriver"> - Windows 顯示驅動程式版本:[GRAPHICS_DRIVER_VERSION] - </floater.string> - <floater.string name="AboutLibs"> - OpenGL 版本:[OPENGL_VERSION] - -libcurl 版本: [LIBCURL_VERSION] -J2C 解碼器版本: [J2C_VERSION] -音效驅動程式版本: [AUDIO_DRIVER_VERSION] -Qt Webkit 版本: [QT_WEBKIT_VERSION] -語音伺服器版本: [VOICE_VERSION] - </floater.string> - <floater.string name="none"> - (無) - </floater.string> - <floater.string name="AboutTraffic"> - 封包損失:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) - </floater.string> - <floater.string name="ErrorFetchingServerReleaseNotesURL"> - 擷取伺服器版本說明 URL 時出錯。 - </floater.string> <tab_container name="about_tab"> <panel label="資訊" name="support_panel"> <button label="覆製到剪貼簿" name="copy_btn"/> </panel> <panel label="貸記" name="credits_panel"> - <text name="linden_intro"> - 「第二人生」由以下的 Linden 家族帶給你: - </text> - <text name="contrib_intro"> - 這些人士做了開放源碼的貢獻: - </text> - <text_editor name="contrib_names"> - 執行時期被取代的假名稱 - </text_editor> - <text name="trans_intro"> - 以下人士提供翻譯: - </text> - <text_editor name="trans_names"> - 執行時期被取代的假名稱 - </text_editor> + <text name="linden_intro">Second Life 由以下的 Linden 家族帶給你: +這些人士做了開放源碼的貢獻:</text> + <text_editor name="contrib_names">執行時期被取代的假名稱</text_editor> </panel> <panel label="許可" name="licenses_panel"> - <text_editor name="credits_editor"> - 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion + <text_editor name="licenses_editor">3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion APR Copyright (C) 2011 The Apache Software Foundation Collada DOM Copyright 2006 Sony Computer Entertainment Inc. cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se) @@ -92,8 +37,7 @@ Qt Webkit 版本: [QT_WEBKIT_VERSION] 保留一切權利。 詳情見 licenses.txt。 - 語音聊天音頻技術:Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - </text_editor> + 語音聊天音頻技術:Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)</text_editor> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/zh/floater_associate_listing.xml b/indra/newview/skins/default/xui/zh/floater_associate_listing.xml new file mode 100644 index 0000000000..ab0a84dd18 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_associate_listing.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="associate listing" title="聯結刊登"> + <text name="message">刊登 ID:</text> + <line_editor name="listing_id">在此鍵入 ID</line_editor> + <button label="確定" name="OK"/> + <button label="取消" name="Cancel"/> +</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/zh/floater_edit_hover_height.xml new file mode 100644 index 0000000000..d7c4728183 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_edit_hover_height.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="HoverHeight" title="設定懸浮高度"> + <slider label="高度" name="HoverHeightSlider"/> +</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml index 6998df75f3..4f17b96579 100755 --- a/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml @@ -1,67 +1,36 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="item properties" title="收納區物品屬性"> - <floater.string name="unknown"> - (未知) - </floater.string> - <floater.string name="public"> - (公開) - </floater.string> - <floater.string name="you_can"> - 你可以: - </floater.string> - <floater.string name="owner_can"> - 所有人可以: - </floater.string> - <floater.string name="acquiredDate"> - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] - </floater.string> - <text name="LabelItemNameTitle"> - 名稱: - </text> - <text name="LabelItemDescTitle"> - 描述: - </text> - <text name="LabelCreatorTitle"> - 創造者: - </text> + <floater.string name="unknown">(未知)</floater.string> + <floater.string name="public">(公開)</floater.string> + <floater.string name="you_can">你可以:</floater.string> + <floater.string name="owner_can">所有人可以:</floater.string> + <floater.string name="acquiredDate">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</floater.string> + <text name="LabelItemNameTitle">名稱:</text> + <text name="LabelItemDescTitle">描述:</text> + <text name="LabelCreatorTitle">創造者:</text> <button label="檔案..." name="BtnCreator"/> - <text name="LabelOwnerTitle"> - 所有人: - </text> + <text name="LabelOwnerTitle">所有人:</text> <button label="檔案..." name="BtnOwner"/> - <text name="LabelAcquiredTitle"> - 取得於: - </text> - <text name="LabelAcquiredDate"> - Wed May 24 12:50:46 2006 - </text> - <text name="OwnerLabel"> - 你: - </text> + <text name="LabelAcquiredTitle">取得於:</text> + <text name="LabelAcquiredDate">Wed May 24 12:50:46 2006</text> + <text name="OwnerLabel">你:</text> <check_box label="編輯" name="CheckOwnerModify"/> <check_box label="恚庨" name="CheckOwnerCopy"/> <check_box label="轉售" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - 任何人: - </text> + <text name="AnyoneLabel">任何人:</text> <check_box label="恚庨" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - 群組: - </text> + <text name="GroupLabel">群組:</text> <check_box label="分享" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel"> - 下一個所有人: - </text> + <text name="NextOwnerLabel">下一個所有人:</text> <check_box label="編輯" name="CheckNextOwnerModify"/> <check_box label="恚庨" name="CheckNextOwnerCopy"/> <check_box label="轉售" name="CheckNextOwnerTransfer"/> <check_box label="出售" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> - <combo_box.item label="恚庨" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="複製" name="Copy"/> + <combo_box.item label="內容" name="Contents"/> <combo_box.item label="原件" name="Original"/> </combo_box> <spinner label="價格:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <text name="CurrencySymbol">L$</text> </floater> diff --git a/indra/newview/skins/default/xui/zh/floater_item_properties.xml b/indra/newview/skins/default/xui/zh/floater_item_properties.xml new file mode 100644 index 0000000000..35dfae62b3 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_item_properties.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Item Properties" title="物品屬性"/> diff --git a/indra/newview/skins/default/xui/zh/floater_marketplace_listings.xml b/indra/newview/skins/default/xui/zh/floater_marketplace_listings.xml new file mode 100644 index 0000000000..6da718f230 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_marketplace_listings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_listings" title="MARKETPLACE 刊登"> + <panel name="marketplace_listings_panel"> + <panel> + <panel name="marketplace_listings_inventory_placeholder_panel"> + <text name="marketplace_listings_inventory_placeholder_title">載入中…</text> + </panel> + </panel> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_marketplace_validation.xml b/indra/newview/skins/default/xui/zh/floater_marketplace_validation.xml new file mode 100644 index 0000000000..ef89de95ad --- /dev/null +++ b/indra/newview/skins/default/xui/zh/floater_marketplace_validation.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_marketplace_validation" title="查核 Marketplace 刊登清單"> + <button label="確定" label_selected="確定" name="OK"/> + <text_editor name="validation_text">MARKETPLACE_VALIDATION_TEXT</text_editor> +</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_openobject.xml b/indra/newview/skins/default/xui/zh/floater_openobject.xml index fa8cb0bdf3..29140eceb9 100755 --- a/indra/newview/skins/default/xui/zh/floater_openobject.xml +++ b/indra/newview/skins/default/xui/zh/floater_openobject.xml @@ -3,6 +3,11 @@ <text name="object_name"> [DESC]: </text> - <button label="覆製到收納區" label_selected="覆製到收納區" name="copy_to_inventory_button"/> - <button label="複製並新增到裝扮" label_selected="複製並新增到裝扮" name="copy_and_wear_button"/> + <text name="border_note"> + 複製到收納區並加以穿戴 + </text> + <button label="新增到裝扮" label_selected="新增到裝扮" name="copy_and_wear_button"/> + <button label="取代裝扮" label_selected="取代裝扮" name="copy_and_replace_button"/> + <button label="只複製到收納區" label_selected="只複製到收納區" name="copy_to_inventory_button"/> + <button label="取消" label_selected="取消" name="cancel_button"/> </floater> diff --git a/indra/newview/skins/default/xui/zh/floater_pay.xml b/indra/newview/skins/default/xui/zh/floater_pay.xml index 69427605a4..026ead9574 100755 --- a/indra/newview/skins/default/xui/zh/floater_pay.xml +++ b/indra/newview/skins/default/xui/zh/floater_pay.xml @@ -1,21 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - 支付群組 - </string> - <string name="payee_resident"> - 支付居民 - </string> - <text name="payee_name"> - 測試一個長度非常非常非常長的名稱,檢查是否被切斷 - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - 或選擇一個金額: - </text> - <button label="支付" label_selected="支付" name="pay btn"/> - <button label="取消" label_selected="取消" name="cancel btn"/> + <string name="payee_group">支付群組</string> + <string name="payee_resident">支付居民</string> + <text name="paying_text">你正在支付:</text> + <text name="payee_name">測試一個長度非常非常非常長的名稱,檢查是否被切斷</text> + <panel label="搜尋" name="PatternsPanel"> + <button label="支付 L$ 1" label_selected="支付 L$ 1" name="fastpay 1"/> + <button label="支付 L$ 5" label_selected="支付 L$ 5" name="fastpay 5"/> + <button label="支付 L$ 10" label_selected="支付 L$ 10" name="fastpay 10"/> + <button label="支付 L$ 20" label_selected="支付 L$ 20" name="fastpay 20"/> + </panel> + <panel label="搜尋" name="InputPanel"> + <text name="amount text">其他金額:</text> + <button label="支付" label_selected="支付" name="pay btn"/> + <button label="取消" label_selected="取消" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/zh/floater_pay_object.xml b/indra/newview/skins/default/xui/zh/floater_pay_object.xml index 7d20b44bc6..c32243a115 100755 --- a/indra/newview/skins/default/xui/zh/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/zh/floater_pay_object.xml @@ -1,28 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money"> - <string name="payee_group"> - 支付群組 - </string> - <string name="payee_resident"> - 支付居民 - </string> - <text name="payee_name"> - Ericacita Moostopolison - </text> - <text name="object_name_label"> - 經由物件: - </text> + <string name="payee_group">支付群組</string> + <string name="payee_resident">支付居民</string> + <text name="paying_text">你正在支付:</text> + <text name="payee_name">Ericacita Moostopolison</text> + <text name="object_name_label">經由物件:</text> <icon name="icon_object" tool_tip="物件"/> - <text name="object_name_text"> - 這是我名稱很長很長很長很長的一個很棒的物件 - </text> - <button label="L$1" label_selected="L$1" name="fastpay 1"/> - <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" name="fastpay 10"/> - <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text name="amount text"> - 或選擇一個金額: - </text> - <button label="支付" label_selected="支付" name="pay btn"/> - <button label="取消" label_selected="取消" name="cancel btn"/> + <text name="object_name_text">這是我名稱很長很長很長很長的一個很棒的物件</text> + <panel label="搜尋" name="PatternsPanel"> + <button label="支付 L$ 1" label_selected="支付 L$ 1" name="fastpay 1"/> + <button label="支付 L$ 5" label_selected="支付 L$ 5" name="fastpay 5"/> + <button label="支付 L$ 10" label_selected="支付 L$ 10" name="fastpay 10"/> + <button label="支付 L$ 20" label_selected="支付 L$ 20" name="fastpay 20"/> + </panel> + <panel label="搜尋" name="InputPanel"> + <text name="amount text">其他金額:</text> + <button label="支付" label_selected="支付" name="pay btn"/> + <button label="取消" label_selected="取消" name="cancel btn"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/zh/menu_attachment_self.xml b/indra/newview/skins/default/xui/zh/menu_attachment_self.xml index eb1bad0ca2..d9e6eff897 100755 --- a/indra/newview/skins/default/xui/zh/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/zh/menu_attachment_self.xml @@ -8,6 +8,7 @@ <menu_item_call label="我的外觀" name="Change Outfit"/> <menu_item_call label="編輯我的裝扮" name="Edit Outfit"/> <menu_item_call label="編輯我的體形" name="Edit My Shape"/> + <menu_item_call label="懸浮高度" name="Hover Height"/> <menu_item_call label="我的朋友" name="Friends..."/> <menu_item_call label="我的群組" name="Groups..."/> <menu_item_call label="我的個人檔案" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_self.xml b/indra/newview/skins/default/xui/zh/menu_avatar_self.xml index 68d0600141..a644a45df6 100755 --- a/indra/newview/skins/default/xui/zh/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/zh/menu_avatar_self.xml @@ -25,6 +25,7 @@ <menu_item_call label="我的外觀" name="Chenge Outfit"/> <menu_item_call label="編輯我的裝扮" name="Edit Outfit"/> <menu_item_call label="編輯我的體形" name="Edit My Shape"/> + <menu_item_call label="懸浮高度" name="Hover Height"/> <menu_item_call label="我的朋友" name="Friends..."/> <menu_item_call label="我的群組" name="Groups..."/> <menu_item_call label="我的個人檔案" name="Profile..."/> diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml index 478f987035..b346e82b77 100755 --- a/indra/newview/skins/default/xui/zh/menu_inventory.xml +++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> + <menu_item_call label="新建刊登" name="Marketplace Create Listing"/> + <menu_item_call label="聯結刊登" name="Marketplace Associate Listing"/> + <menu_item_call label="取得(刷新)刊登" name="Marketplace Get Listing"/> + <menu_item_call label="檢查是否有誤" name="Marketplace Check Listing"/> + <menu_item_call label="編輯刊登" name="Marketplace Edit Listing"/> + <menu_item_call label="刊登" name="Marketplace List"/> + <menu_item_call label="停止刊登" name="Marketplace Unlist"/> + <menu_item_call label="啟用" name="Marketplace Activate"/> + <menu_item_call label="停用" name="Marketplace Deactivate"/> <menu_item_call label="分享" name="Share"/> <menu_item_call label="購買" name="Task Buy"/> <menu_item_call label="打開" name="Task Open"/> @@ -87,6 +96,7 @@ <menu_item_call label="添加" name="Wearable Add"/> <menu_item_call label="脫下" name="Take Off"/> <menu_item_call label="複製到商家發件匣" name="Merchant Copy"/> - <menu_item_call label="送往第二人生購物市集" name="Marketplace Send"/> + <menu_item_call label="複製到 Marketplace 刊登" name="Marketplace Copy"/> + <menu_item_call label="移到 Marketplace 刊登" name="Marketplace Move"/> <menu_item_call label="-- 無選項 --" name="--no options--"/> </menu> diff --git a/indra/newview/skins/default/xui/zh/menu_marketplace_view.xml b/indra/newview/skins/default/xui/zh/menu_marketplace_view.xml new file mode 100644 index 0000000000..5396b2a866 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/menu_marketplace_view.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<toggleable_menu name="menu_marketplace_sort"> + <menu_item_check label="按存量排序(由少到多)" name="sort_by_stock_amount"/> + <menu_item_check label="只顯示刊登資料夾" name="show_only_listing_folders"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml index 45d3feec26..e94f52a401 100755 --- a/indra/newview/skins/default/xui/zh/menu_viewer.xml +++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml @@ -23,6 +23,7 @@ </menu> <menu_item_call label="購買 L$…" name="Buy and Sell L$"/> <menu_item_call label="商家發件匣…" name="MerchantOutbox"/> + <menu_item_call label="Marketplace 刊登…" name="MarketplaceListings"/> <menu_item_call label="帳戶主控臺…" name="Manage My Account"/> <menu_item_call label="偏好設定…" name="Preferences"/> <menu_item_call label="工具列按鈕…" name="Toolbars"/> @@ -249,6 +250,7 @@ <menu_item_check label="材質控制台" name="Texture Console"/> <menu_item_check label="除錯控制台" name="Debug Console"/> <menu_item_call label="通知控制台" name="Notifications"/> + <menu_item_check label="地區除錯控制台" name="Region Debug Console"/> <menu_item_check label="快速碼錶" name="Fast Timers"/> <menu_item_check label="記憶體" name="Memory"/> <menu_item_check label="場景統計資料" name="Scene Statistics"/> @@ -352,7 +354,7 @@ <menu_item_check label="探詢內插物件位置" name="Ping Interpolate Object Positions"/> <menu_item_call label="丟出一個封包" name="Drop a Packet"/> </menu> - <menu_item_call label="傾印腳本控制的攝影機" name="Dump Scripted Camera"/> + <menu_item_call label="傾印腳本控制的攝影機" name="Dump Scripted Camera"/> <menu label="錄製器" name="Recorder"> <menu_item_call label="開始播放" name="Start Playback"/> <menu_item_call label="停止播放" name="Stop Playback"/> diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml index 5b520dd745..179f01e90d 100755 --- a/indra/newview/skins/default/xui/zh/notifications.xml +++ b/indra/newview/skins/default/xui/zh/notifications.xml @@ -129,6 +129,88 @@ 購物市集初始化失敗,系統或網路出錯。 請稍候再試一次。 <usetemplate name="okbutton" yestext="確定"/> </notification> + <notification name="StockPasteFailed"> + 複製或移到限量資料夾時發生問題: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="MerchantPasteFailed"> + 複製或移到 Marketplace 刊登時發生問題: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="MerchantTransactionFailed"> + 和 Marketplace 進行的交易發生如下錯誤: + + 原因:'[ERROR_REASON]' + [ERROR_DESCRIPTION] + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="MerchantUnprocessableEntity"> + 我們無法刊登這產品或啓用版本資料夾。 通常這是因為刊登內容表的資料不齊,但也可能因為資料夾結構有錯所致。 請編輯刊登內容或檢查刊登資料夾看是否有誤。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="MerchantListingFailed"> + 刊登到 Marketplace 時,發生錯誤: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="MerchantFolderActivationFailed"> + 啓用此版本資料夾時發生錯誤: + + '[ERROR_CODE]' + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="ConfirmMerchantActiveChange"> + 這個動作會改變此刊登的內容。 你確定要繼續嗎? + <usetemplate ignoretext="在我變更 Marketplace 的一項刊登內容之前,先跟我確認" name="okcancelignore" notext="取消" yestext="確定"/> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + 你拖曳到 Marketplace 刊登視窗的物項,會從原來的位置移出來,不會被複製。 你確定要繼續嗎? + <usetemplate ignoretext="在我把物項從收納區移到 Marketplace 之前,先跟我確認" name="okcancelignore" notext="取消" yestext="確定"/> + </notification> + <notification name="ConfirmListingCutOrDelete"> + 移動或刪除刊登資料夾將會刪除你的 Marketplace 刊登。 如你希望保留 Marketplace 刊登,請改而移動或刪除所想修改的版本資料夾的內容。 你確定要繼續嗎? + <usetemplate ignoretext="在我把物項從 Marketplace 移出或刪除之前,先跟我確認" name="okcancelignore" notext="取消" yestext="確定"/> + </notification> + <notification name="ConfirmCopyToMarketplace"> + 你無權將這些物項的一或多個複製到 Marketplace。 你可以移動這些物項,或保留不動。 + <usetemplate canceltext="取消" ignoretext="我試著選擇複製到 Marketplace 的內容如果含有「禁止複製」的物項,先向我確認" name="yesnocancelbuttons" notext="保留不移動物項" yestext="移動物項"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + 這動作會停登這個刊登。 你確定要繼續嗎? + <usetemplate ignoretext="在我停登 Marketplace 的現有刊登內容前,先跟我確認" name="okcancelignore" notext="取消" yestext="確定"/> + </notification> + <notification name="ConfirmMerchantClearVersion"> + 這個動作會停用此刊登的版本資料夾。 你確定要繼續嗎? + <usetemplate ignoretext="在我停用 Marketplace 某項刊登的版本資料夾之前,先跟我確認。" name="okcancelignore" notext="取消" yestext="確定"/> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + 這刊登無法更新。 +[[URL] 點按這裡]即可在 Marketplace 進行編輯。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="AlertMerchantListingCannotWear"> + 你不能穿戴位在 Marketplace 刊登資料夾裡的衣物或身體部位。 + </notification> + <notification name="AlertMerchantListingInvalidID"> + 無效的刊登 ID。 + </notification> + <notification name="AlertMerchantListingActivateRequired"> + 這個刊登有多個版本資料夾或缺少版本資料夾。 你事後必須選擇一個加以啓用。 + <usetemplate ignoretext="當我要新建帶有多個版本資料夾的刊登前,提醒我啓動一個版本資料夾" name="okignore" yestext="確定"/> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + 我們已經將不同類型的限量物項分開放置到不同的存量資料夾,這樣你的資料夾才能夠刊登。 + <usetemplate ignoretext="刊登前把限量資料夾一分為二時,告知我" name="okignore" yestext="確定"/> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + 因為存量爲零,我們已經把你的刊登物下架。 你若希望重新刊登,必須先增加存量。 + <usetemplate ignoretext="限量資料夾如果成空、導致刊登物下架,告知我" name="okignore" yestext="確定"/> + </notification> <notification name="CompileQueueSaveText"> 上傳腳本文字時出問題,原因:[REASON]。 請稍候再試一次。 </notification> @@ -473,6 +555,10 @@ 儲存變更? <usetemplate canceltext="取消" name="yesnocancelbuttons" notext="不要儲存" yestext="儲存"/> </notification> + <notification name="DeleteNotecard"> + 刪除記事卡? + <usetemplate name="okcancelbuttons" notext="取消" yestext="確定"/> + </notification> <notification name="GestureSaveFailedTooManySteps"> 姿勢儲存失敗。 這個姿勢步驟太多。 @@ -1859,6 +1945,9 @@ SHA1 指紋:[MD5_DIGEST] 你所欲前往的地區含有超過你目前偏好的分級的內容。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。 <usetemplate name="okbutton" yestext="確定"/> </notification> + <notification name="SLM_UPDATE_FOLDER"> + [MESSAGE] + </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> 你所欲前往的地區含有 [REGIONMATURITY] 的分級內容,僅限成人。 <url name="url"> @@ -2146,6 +2235,10 @@ SHA1 指紋:[MD5_DIGEST] <ignore name="ignore" text="我在創建不含 money() 腳本的物件時設定了「支付物件」動作"/> </form> </notification> + <notification name="PayConfirmation"> + 確認你真要支付 L$[AMOUNT] 給 [TARGET]。 + <usetemplate ignoretext="付款前跟我確認(超過 L$200 的總額)" name="okcancelignore" notext="取消" yestext="支付"/> + </notification> <notification name="OpenObjectCannotCopy"> 這物件中沒有任何准許你複製的物項。 </notification> @@ -3832,9 +3925,11 @@ SHA1 指紋:[MD5_DIGEST] </notification> <notification name="TeleportedByAttachment"> 你已成功被 [ITEM_ID] 上的一個附件瞬間傳送 + <usetemplate ignoretext="瞬間傳送:你已成功被一個附件瞬間傳送" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOnParcel"> 你已成功被 '[PARCEL_NAME]' 地段的物件 '[OBJECT_NAME]' 瞬間傳送 + <usetemplate ignoretext="瞬間傳送:你已被一個物件或地段瞬間傳送成功" name="notifyignore"/> </notification> <notification name="TeleportedByObjectOwnedBy"> 你已成功被 [OWNER_ID] 擁有的物件 '[OBJECT_NAME]' 瞬間傳送 @@ -4166,7 +4261,7 @@ SHA1 指紋:[MD5_DIGEST] <usetemplate ignoretext="無法移動檔案。 已恢復前一個路徑。" name="okignore" yestext="確定"/> </notification> <notification name="DefaultObjectPermissions"> - 儲存預設權限時出問題,原因:[REASON]。 請稍後再嘗試儲存預設權限。 + 儲存預設物件權限時出問題,原因:[REASON]。 請稍後再嘗試儲存預設權限。 <usetemplate name="okbutton" yestext="確定"/> </notification> <notification name="ChatHistoryIsBusyAlert"> diff --git a/indra/newview/skins/default/xui/zh/panel_login.xml b/indra/newview/skins/default/xui/zh/panel_login.xml index 09a1af5cf8..5292e5fc38 100755 --- a/indra/newview/skins/default/xui/zh/panel_login.xml +++ b/indra/newview/skins/default/xui/zh/panel_login.xml @@ -1,26 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <panel name="panel_login"> - <panel.string name="forgot_password_url"> - http://secondlife.com/account/request.php - </panel.string> + <panel.string name="forgot_password_url">http://secondlife.com/account/request.php</panel.string> <layout_stack name="ui_stack"> <layout_panel name="ui_container"> <combo_box label="使用者名稱" name="username_combo" tool_tip="使用者名稱是你註冊時所挑選的,例如 bobsmith12 或 Steller Sunshine"/> <line_editor label="密碼" name="password_edit"/> - <check_box label="記得我" name="remember_check"/> - <text name="forgot_password_text"> - 忘記密碼 - </text> - <button label="登入" name="connect_btn"/> - <text name="At_My_Last_Location_Label"> - 到我上次去的地點 - </text> <combo_box label="我的最愛" name="start_location_combo"> + <combo_box.item label="我上一次位置" name="MyLastLocation"/> <combo_box.item label="我的家" name="MyHome"/> </combo_box> - <button label="登入" name="connect_favorite_btn"/> - <line_editor label="鍵入一個地點" name="location_edit"/> - <button label="登入" name="connect_location_btn"/> + <button label="登入" name="connect_btn"/> + <check_box label="記得我" name="remember_check"/> + <text name="forgot_password_text">忘記密碼</text> <combo_box label="選擇模擬世界" name="server_combo"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/zh/panel_marketplace_listings.xml b/indra/newview/skins/default/xui/zh/panel_marketplace_listings.xml new file mode 100644 index 0000000000..2eae87c6a0 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/panel_marketplace_listings.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Marketplace" name="Marketplace Panel"> + <panel name="tool_panel"> + <menu_button name="sort_btn" tool_tip="檢視/排序的選項"/> + <button name="add_btn" tool_tip="新建一個刊登資料夾"/> + <button label="檢查是否有誤" name="audit_btn" tool_tip="檢查你的 Marketplace 刊登"/> + </panel> + <panel name="tab_container_panel"> + <filter_editor label="過濾 Marketplace 刊登清單" name="filter_editor"/> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_inventory.xml new file mode 100644 index 0000000000..a052a50bd1 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="全部" name="All Items" tool_tip="拖曳並置放物品到這裡,即可刊登"/> diff --git a/indra/newview/skins/default/xui/zh/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_listed.xml new file mode 100644 index 0000000000..3adc66a1d4 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_listed.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="已刊登" name="Active Items"/> diff --git a/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unassociated.xml new file mode 100644 index 0000000000..d582e6615c --- /dev/null +++ b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unassociated.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="已取消聯結" name="Unassociated Items"/> diff --git a/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unlisted.xml new file mode 100644 index 0000000000..6d00f3d9b7 --- /dev/null +++ b/indra/newview/skins/default/xui/zh/panel_marketplace_listings_unlisted.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<inventory_panel label="未刊登" name="Inactive Items"/> diff --git a/indra/newview/skins/default/xui/zh/panel_status_bar.xml b/indra/newview/skins/default/xui/zh/panel_status_bar.xml index b4cdff9d6b..2de31eb526 100755 --- a/indra/newview/skins/default/xui/zh/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/zh/panel_status_bar.xml @@ -1,28 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <panel.string name="packet_loss_tooltip"> - 封包損失 - </panel.string> - <panel.string name="bandwidth_tooltip"> - 頻寬 - </panel.string> - <panel.string name="time"> - [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] - </panel.string> - <panel.string name="timeTooltip"> - [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] - </panel.string> - <panel.string name="buycurrencylabel"> - L$ [AMT] - </panel.string> + <panel.string name="packet_loss_tooltip">封包損失</panel.string> + <panel.string name="bandwidth_tooltip">頻寬</panel.string> + <panel.string name="time">[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]</panel.string> + <panel.string name="timeTooltip">[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]</panel.string> + <panel.string name="buycurrencylabel">L$ [AMT]</panel.string> <panel name="balance_bg"> - <text name="balance" tool_tip="點按以重新更新你的 L$ 帳戶餘額" value="L$20"/> + <text name="balance" tool_tip="點按以重新更新你的 L$ 帳戶餘額" value="L$??"/> <button label="購買 L$" name="buyL" tool_tip="點按以購買更多 L$"/> <button label="購物" name="goShop" tool_tip="打開第二人生購物市集"/> </panel> - <text name="TimeText" tool_tip="目前時區(太平洋)"> - 24:00 AM PST - </text> + <text name="TimeText" tool_tip="目前時區(太平洋)">24:00 AM PST</text> <button name="media_toggle_btn" tool_tip="開始/停止全部媒體(音樂、影片、網頁)"/> <button name="volume_btn" tool_tip="全域音量控制"/> </panel> diff --git a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml index dcb709d2e3..9c5798d256 100755 --- a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml @@ -54,12 +54,12 @@ 你可以: </text> <check_box label="修改" name="CheckOwnerModify"/> - <check_box label="恚庨" name="CheckOwnerCopy"/> + <check_box label="複製" name="CheckOwnerCopy"/> <check_box label="轉移" name="CheckOwnerTransfer"/> <text name="AnyoneLabel"> 任何人: </text> - <check_box label="恚庨" name="CheckEveryoneCopy"/> + <check_box label="複製" name="CheckEveryoneCopy"/> <text name="GroupLabel"> 群組: </text> @@ -68,12 +68,13 @@ 下一個所有人: </text> <check_box label="修改" name="CheckNextOwnerModify"/> - <check_box label="恚庨" name="CheckNextOwnerCopy"/> + <check_box label="複製" name="CheckNextOwnerCopy"/> <check_box label="轉移" name="CheckNextOwnerTransfer" tool_tip="下一個所有人可贈送或轉售這個物件"/> </panel> <check_box label="出售" name="CheckPurchase"/> - <combo_box name="combobox sale copy"> - <combo_box.item label="恚庨" name="Copy"/> + <combo_box name="ComboBoxSaleType"> + <combo_box.item label="複製" name="Copy"/> + <combo_box.item label="內容" name="Contents"/> <combo_box.item label="原件" name="Original"/> </combo_box> <spinner label="價格: L$" name="Edit Cost"/> diff --git a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml index 60f44a3d88..0884f1789b 100755 --- a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml @@ -1,71 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="object properties" title="物件檔案"> - <panel.string name="text deed continued"> - 讓渡 - </panel.string> - <panel.string name="text deed"> - 讓渡 - </panel.string> - <panel.string name="text modify info 1"> - 你能修改這個物件 - </panel.string> - <panel.string name="text modify info 2"> - 你能修改這些物件 - </panel.string> - <panel.string name="text modify info 3"> - 你不能修改這個物件 - </panel.string> - <panel.string name="text modify info 4"> - 你不能修改這些物件 - </panel.string> - <panel.string name="text modify info 5"> - 無法跨地區修改這個物件 - </panel.string> - <panel.string name="text modify info 6"> - 無法跨地區修改這些物件 - </panel.string> - <panel.string name="text modify warning"> - 這個物件含有聯結的部分 - </panel.string> - <panel.string name="Cost Default"> - 價格: L$ - </panel.string> - <panel.string name="Cost Total"> - 總價:L$ - </panel.string> - <panel.string name="Cost Per Unit"> - 單價:L$ - </panel.string> - <panel.string name="Cost Mixed"> - 混合價格 - </panel.string> - <panel.string name="Sale Mixed"> - 混合銷售 - </panel.string> + <panel.string name="text deed continued">讓渡</panel.string> + <panel.string name="text deed">讓渡</panel.string> + <panel.string name="text modify info 1">你能修改這個物件</panel.string> + <panel.string name="text modify info 2">你能修改這些物件</panel.string> + <panel.string name="text modify info 3">你不能修改這個物件</panel.string> + <panel.string name="text modify info 4">你不能修改這些物件</panel.string> + <panel.string name="text modify info 5">無法跨地區修改這個物件</panel.string> + <panel.string name="text modify info 6">無法跨地區修改這些物件</panel.string> + <panel.string name="text modify warning">這個物件含有聯結的部分</panel.string> + <panel.string name="Cost Default">價格: L$</panel.string> + <panel.string name="Cost Total">總價格:L$</panel.string> + <panel.string name="Cost Per Unit">單價:L$</panel.string> + <panel.string name="Cost Mixed">混合價格</panel.string> + <panel.string name="Sale Mixed">混合銷售</panel.string> <text name="title" value="物件檔案"/> <text name="where" value="(在虛擬世界)"/> <panel label="" name="properties_panel"> - <text name="Name:"> - 名稱: - </text> - <text name="Description:"> - 描述: - </text> - <text name="CreatorNameLabel"> - 創造者: - </text> - <text name="Owner:"> - 所有人: - </text> - <text name="Group_label"> - 群組: - </text> + <text name="Name:">名稱:</text> + <text name="Description:">描述:</text> + <text name="CreatorNameLabel">創造者:</text> + <text name="Owner:">所有人:</text> + <text name="Group_label">群組:</text> <button name="button set group" tool_tip="選擇一個群組以分享這物件的權限"/> <name_box initial_value="載入中..." name="Group Name Proxy"/> <button label="讓渡" label_selected="讓渡" name="button deed" tool_tip="「讓渡」會把這物件贈送出去並賦予「下一個所有人」權限。 群組所分享的物件可由群組職員加以讓渡。"/> - <text name="label click action"> - 點按以: - </text> + <text name="label click action">點按以:</text> <combo_box name="clickaction"> <combo_box.item label="觸碰(預設)" name="Touch/grab(default)"/> <combo_box.item label="坐在物件上" name="Sitonobject"/> @@ -75,21 +35,13 @@ <combo_box.item label="縮放" name="Zoom"/> </combo_box> <panel name="perms_inv"> - <text name="perm_modify"> - 你能修改這個物件 - </text> - <text name="Anyone can:"> - 任何人: - </text> + <text name="perm_modify">你能修改這個物件</text> + <text name="Anyone can:">任何人:</text> <check_box label="恚庨" name="checkbox allow everyone copy"/> <check_box label="移動" name="checkbox allow everyone move"/> - <text name="GroupLabel"> - 群組: - </text> + <text name="GroupLabel">群組:</text> <check_box label="分享" name="checkbox share with group" tool_tip="允許此群組所有成員共享你修改此物件的權限。 你必須讓渡才能啟動角色限制。"/> - <text name="NextOwnerLabel"> - 下一個所有人: - </text> + <text name="NextOwnerLabel">下一個所有人:</text> <check_box label="修改" name="checkbox next owner can modify"/> <check_box label="恚庨" name="checkbox next owner can copy"/> <check_box label="轉移" name="checkbox next owner can transfer" tool_tip="下一個所有人可贈送或轉售這個物件"/> @@ -102,27 +54,13 @@ </combo_box> <spinner label="價格: L$" name="Edit Cost"/> <check_box label="顯示在搜尋中" name="search_check" tool_tip="讓其他人可以在搜尋結果中察看到此物件"/> - <text name="pathfinding_attributes_label"> - 尋徑屬性: - </text> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> + <text name="pathfinding_attributes_label">尋徑屬性:</text> + <text name="B:">B:</text> + <text name="O:">O:</text> + <text name="G:">G:</text> + <text name="E:">E:</text> + <text name="N:">N:</text> + <text name="F:">F:</text> </panel> <panel name="button_panel"> <button label="打開" name="open_btn"/> diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml index e8edf1270b..6493864b92 100755 --- a/indra/newview/skins/default/xui/zh/strings.xml +++ b/indra/newview/skins/default/xui/zh/strings.xml @@ -449,28 +449,46 @@ http://secondlife.com/viewer-access-faq </string> <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipOutboxDragToWorld"> - 商家發件匣內的物項無法產生到虛擬世界 + 你不能從 Marketplace 的刊登資料夾產生物件。 + </string> + <string name="TooltipOutboxWorn"> + 你不能把正在穿戴的物件放到 Marketplace 的刊登資料夾 + </string> + <string name="TooltipOutboxFolderLevels"> + 巢狀資料夾深度超過 [AMOUNT]。 請減少巢狀資料夾的深度,必要的話請把物件併整起來。 + </string> + <string name="TooltipOutboxTooManyFolders"> + 子資料夾數目超過 [AMOUNT]。 請減少刊登的資料夾數目,必要的話請把物件併整起來。 + </string> + <string name="TooltipOutboxTooManyObjects"> + 物件數目超過 [AMOUNT]。 若想在同一刊登中出售超過 [AMOUNT] 個物件,你需要把物件併整起來。 + </string> + <string name="TooltipOutboxTooManyStockItems"> + 限量物件數目超過 [AMOUNT]。 + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + 你只能把物項或資料夾拖放到「所有」(ALL)頁籤 請選取該頁籤,再移動你的物項或資料夾。 </string> <string name="TooltipOutboxNoTransfer"> - 至少一個物件無法出售或轉移。 + 至少一個物件無法出售或轉移 </string> <string name="TooltipOutboxNotInInventory"> - 你的商家發件匣只能接受直接來自收納區的物項。 + 你只能將物件從收納區放到 Marketplace。 </string> - <string name="TooltipOutboxWorn"> - 你穿著中的物項無法放入商家發件匣。 + <string name="TooltipOutboxLinked"> + 你不能把聯結的物件或資料夾放到 Marketplace </string> <string name="TooltipOutboxCallingCard"> - 名片不得放入商家發件匣 + 你不能把名片放到 Marketplace </string> - <string name="TooltipOutboxFolderLevels"> - 巢狀資料夾深度超過 3 + <string name="TooltipOutboxDragActive"> + 已登出的刊登內容不得移動 </string> - <string name="TooltipOutboxTooManyFolders"> - 頂層資料夾的子資料夾數目超過 20 + <string name="TooltipOutboxCannotMoveRoot"> + 你不能移動 Marketplace 刊登的根目錄 </string> - <string name="TooltipOutboxTooManyObjects"> - 頂層資料夾物項數目超過 200 + <string name="TooltipOutboxMixedStock"> + 限量資料夾的所有物件必須是相同的類型和權限 </string> <string name="TooltipDragOntoOwnChild"> 資料夾不得移到其子資料夾底下 @@ -1055,7 +1073,7 @@ http://secondlife.com/viewer-access-faq <string name="AgentNameSubst"> (你) </string> - <string name="JoinAnExperience"/> + <string name="JoinAnExperience"/><!-- intentionally blank --> <string name="SilentlyManageEstateAccess"> 管理領出入許可名單時,不顯示警示 </string> @@ -1122,6 +1140,12 @@ http://secondlife.com/viewer-access-faq <string name="bitmap_image_files"> Bitmap 圖像 </string> + <string name="png_image_files"> + PNG 圖像 + </string> + <string name="save_texture_image_files"> + Targa 或 PNG 圖像 + </string> <string name="avi_movie_file"> AVI 視頻檔案 </string> @@ -1371,6 +1395,9 @@ http://secondlife.com/viewer-access-faq <string name="FavoritesNoMatchingItems"> 將一個地標拖曳到這裡,加進「我的最愛」。 </string> + <string name="MarketplaceNoMatchingItems"> + 找不到物項。 請檢查搜尋字串的拼寫,再試一次。 + </string> <string name="InventoryNoTexture"> 你的收納區裡沒有這個材質的副本 </string> @@ -1418,29 +1445,95 @@ http://secondlife.com/viewer-access-faq <string name="InventoryOutboxError"> [[MARKETPLACE_CREATE_STORE_URL] 購物市集商店]正傳回錯誤。 </string> + <string name="InventoryMarketplaceError"> + 這功能尚在 Beta 測試階段。 如你想參與,請到這個[http://goo.gl/forms/FCQ7UXkakz Google 表單]填寫姓名。 + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + 你的 Marketplace 刊登資料夾是空的。 + </string> + <string name="InventoryMarketplaceListingsNoItems"> + 將資料夾拖曳到這個區域,即可在[[MARKETPLACE_DASHBOARD_URL] Marketplace]刊登出售。 + </string> + <string name="Marketplace Validation Warning Stock"> + 限量資料夾必須放在版本資料夾裡 + </string> + <string name="Marketplace Validation Error Mixed Stock"> + :錯誤:限量資料夾的所有物件必須是「禁止複製」且同一類型 + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + :錯誤:限量資料夾不得含有子資料夾 + </string> + <string name="Marketplace Validation Warning Empty"> + :警告:資料夾裡沒有東西 + </string> + <string name="Marketplace Validation Warning Create Stock"> + :警告:新建限量資料夾 + </string> + <string name="Marketplace Validation Warning Create Version"> + :警告:新建版本資料夾 + </string> + <string name="Marketplace Validation Warning Move"> + :警告:移動物項 + </string> + <string name="Marketplace Validation Warning Delete"> + :警告:資料夾內容已轉移到限量資料夾,空的資料夾已移除 + </string> + <string name="Marketplace Validation Error Stock Item"> + :錯誤:「禁止複製」物件必須放在限量資料夾裡 + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + :警告:物項必須放在一個版本資料夾裡 + </string> + <string name="Marketplace Validation Error"> + :錯誤: + </string> + <string name="Marketplace Validation Warning"> + :警告: + </string> + <string name="Marketplace Validation Error Empty Version"> + :警告:版本資料夾必須包含至少一個物項 + </string> + <string name="Marketplace Validation Error Empty Stock"> + :警告:限量資料夾必須包含至少一個物項 + </string> + <string name="Marketplace Validation No Error"> + 沒有需要報告的錯誤或警告 + </string> <string name="Marketplace Error None"> 零錯誤 </string> + <string name="Marketplace Error Prefix"> + 錯誤: + </string> <string name="Marketplace Error Not Merchant"> - 發生錯誤:將物項送往第二人生購物市集之前,你必須取得商家的身份(免費)。 + 將物件移到 Marketplace 前,你必須取得商家的身份(免費)。 + </string> + <string name="Marketplace Error Not Accepted"> + 無法移動該資料夾的物項。 </string> - <string name="Marketplace Error Empty Folder"> - 錯誤:此資料夾沒有內容。 + <string name="Marketplace Error Unsellable Item"> + 此物項無法在 Marketplace 出售。 </string> - <string name="Marketplace Error Unassociated Products"> - 錯誤:此物項上傳失敗,因為你的商家帳戶有太多和產品無關聯的物項。 要解決這個問題,請登入第二人生購物市集網站,減低你的無關聯物項數目。 + <string name="MarketplaceNoID"> + 沒有 Mkt ID </string> - <string name="Marketplace Error Object Limit"> - 錯誤:此物項包含太多物件。 要解決這錯誤,請將物件裝箱,使總物件數目不超過 200。 + <string name="MarketplaceLive"> + 已刊登 </string> - <string name="Marketplace Error Folder Depth"> - 錯誤:此物項含有太多層的巢狀資料夾。 請加以重新整理,至多允許 3 層的巢狀資料夾。 + <string name="MarketplaceActive"> + 使用中 </string> - <string name="Marketplace Error Unsellable Item"> - 錯誤:此物項無法在第二人生購物市集出售。 + <string name="MarketplaceMax"> + 最多 </string> - <string name="Marketplace Error Internal Import"> - 錯誤:這個物項有問題。 請稍候再試一次。 + <string name="MarketplaceStock"> + 限量 + </string> + <string name="MarketplaceNoStock"> + 缺貨 + </string> + <string name="MarketplaceUpdating"> + 正在更新… </string> <string name="Open landmarks"> 開啟地標 @@ -1461,6 +1554,7 @@ http://secondlife.com/viewer-access-faq 無內容 </string> <string name="WornOnAttachmentPoint" value="(已穿 [ATTACHMENT_POINT])"/> + <string name="AttachmentErrorMessage" value="([ATTACHMENT_ERROR])"/> <string name="ActiveGesture" value="[GESLABEL](使用中)"/> <string name="PermYes"> 是 @@ -1731,6 +1825,15 @@ http://secondlife.com/viewer-access-faq <string name="Invalid Attachment"> 無效的附接點 </string> + <string name="ATTACHMENT_MISSING_ITEM"> + 錯誤:缺少物件 + </string> + <string name="ATTACHMENT_MISSING_BASE_ITEM"> + 錯誤:缺少基本物項 + </string> + <string name="ATTACHMENT_NOT_ATTACHED"> + 錯誤:物件在目前的裝扮裡,可是卻未附著 + </string> <string name="YearsMonthsOld"> 年齡:[AGEYEARS] 年 [AGEMONTHS] 月 </string> @@ -1866,9 +1969,6 @@ http://secondlife.com/viewer-access-faq <string name="CompileQueueUnknownFailure"> 下載失敗,原因不明 </string> - <string name="CompileNoExperiencePerm"> - 略過體驗 [EXPERIENCE] 的腳本 [SCRIPT]。 - </string> <string name="CompileQueueTitle"> 重新編譯進度 </string> @@ -1902,6 +2002,9 @@ http://secondlife.com/viewer-access-faq <string name="SaveComplete"> 儲存完畢。 </string> + <string name="UploadFailed"> + 檔案上傳失敗: + </string> <string name="ObjectOutOfRange"> 腳本(物件超出範圍) </string> @@ -1911,6 +2014,9 @@ http://secondlife.com/viewer-access-faq <string name="GroupsNone"> 無 </string> + <string name="CompileNoExperiencePerm"> + 略過體驗 [EXPERIENCE] 的腳本 [SCRIPT]。 + </string> <string name="Group" value="(群組)"/> <string name="Unknown"> (未知) @@ -4400,7 +4506,7 @@ http://secondlife.com/viewer-access-faq 女性姿勢 </string> <string name="Other Gestures"> - 其他���勢 + 其他姿勢 </string> <string name="Speech Gestures"> 演說姿勢 @@ -4662,7 +4768,7 @@ http://secondlife.com/viewer-access-faq 刪除所選取的物品? </string> <string name="DeleteItem"> - 刪除所選取的物���? + 刪除所選取的物品? </string> <string name="EmptyOutfitText"> 沒有任何物品在這個裝扮內 @@ -5074,6 +5180,9 @@ http://secondlife.com/viewer-access-faq <string name="Command_Marketplace_Label"> 第二人生購物市集 </string> + <string name="Command_MarketplaceListings_Label"> + Marketplace + </string> <string name="Command_MiniMap_Label"> 迷你地圖 </string> @@ -5161,6 +5270,9 @@ http://secondlife.com/viewer-access-faq <string name="Command_Marketplace_Tooltip"> 前往購物 </string> + <string name="Command_MarketplaceListings_Tooltip"> + 出售你的創作物 + </string> <string name="Command_MiniMap_Tooltip"> 顯示附近的人 </string> @@ -5272,6 +5384,18 @@ http://secondlife.com/viewer-access-faq <string name="UserDictionary"> [User] </string> + <string name="logging_calls_disabled_log_empty"> + 交談未留記錄。 若想開始留記錄,請到「偏好設定 > 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。 + </string> + <string name="logging_calls_disabled_log_not_empty"> + 將不再為交談留記錄。 若想恢復留存記錄,請到「偏好設定 > 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。 + </string> + <string name="logging_calls_enabled_log_empty"> + 目前沒有交談記錄。 在你聯絡某人或某人聯絡你之後,這裡將留存記錄。 + </string> + <string name="loading_chat_logs"> + 載入中… + </string> <string name="experience_tools_experience"> 體驗 </string> @@ -5353,16 +5477,4 @@ http://secondlife.com/viewer-access-faq <string name="ExperiencePermissionShort12"> 權限 </string> - <string name="logging_calls_disabled_log_empty"> - 交談未留記錄。 若想開始留記錄,請到「偏好設定 > 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。 - </string> - <string name="logging_calls_disabled_log_not_empty"> - 將不再為交談留記錄。 若想恢復留存記錄,請到「偏好設定 > 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。 - </string> - <string name="logging_calls_enabled_log_empty"> - 目前沒有交談記錄。 在你聯絡某人或某人聯絡你之後,這裡將留存記錄。 - </string> - <string name="loading_chat_logs"> - 載入中… - </string> </strings> |