diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index b107e263fe..e9667f5531 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -48,6 +48,8 @@
#include "llviewertexture.h"
#include "llsdserialize.h"
+#include "lltrans.h"
+
// Static Variables
S32 LLViewerParcelMedia::sMediaParcelLocalID = 0;
@@ -921,8 +923,10 @@ void LLViewerParcelMedia::filterMediaUrl(LLParcel* parcel)
}
else if (media_action=="deny")
{
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
LLChat chat;
- chat.mText = "Media from the domain "+domain+" has been blocked.";
+ chat.mText = LLTrans::getString("MediaFilterContentBlocked", format_args);;
chat.mSourceType = CHAT_SOURCE_SYSTEM;
LLSD args;
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
@@ -956,16 +960,16 @@ void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParc
std::string domain = LLViewerParcelMedia::extractDomain(media_url);
if (option == 0) // allow
{
- args["ACTION"] = "Allow";
- args["CONDITION"] = "Always";
- args["LCONDITION"] = "always";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionAllow");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionAlways");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionAlwaysLower");
allow = true;
}
else
{
- args["ACTION"] = "Deny";
- args["CONDITION"] = "Never";
- args["LCONDITION"] = "never";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionDeny");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionNever");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionNeverLower");
allow = false;
}
args["MEDIAURL"] = media_url;
@@ -1004,7 +1008,9 @@ void callback_media_alert2(const LLSD ¬ification, const LLSD &response, LLPar
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Media from domain "+domain+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterMediaContentDomainAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
LLViewerParcelMedia::sCurrentMedia = *parcel;
if (parcel->getName() == currentparcel->getName())
@@ -1020,7 +1026,9 @@ void callback_media_alert2(const LLSD ¬ification, const LLSD &response, LLPar
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Media from domain "+domain+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterMediaContentDomainAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
}
else if ((option == 2) && allow) // Whitelist URL
@@ -1030,7 +1038,9 @@ void callback_media_alert2(const LLSD ¬ification, const LLSD &response, LLPar
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Media from location "+media_url+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterMediaContentUrlAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
LLViewerParcelMedia::sCurrentMedia = *parcel;
if (parcel->getName() == currentparcel->getName())
@@ -1046,7 +1056,9 @@ void callback_media_alert2(const LLSD ¬ification, const LLSD &response, LLPar
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Media from location "+media_url+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterMediaContentUrlAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
}
@@ -1248,8 +1260,10 @@ void LLViewerParcelMedia::filterAudioUrl(std::string media_url)
}
else if (media_action=="deny")
{
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
LLChat chat;
- chat.mText = "Audio from the domain "+domain+" has been blocked.";
+ chat.mText = LLTrans::getString("MediaFilterAudioContentBlocked", format_args);
chat.mSourceType = CHAT_SOURCE_SYSTEM;
LLSD args;
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
@@ -1279,16 +1293,16 @@ void callback_audio_alert(const LLSD ¬ification, const LLSD &response, std::s
std::string domain = LLViewerParcelMedia::extractDomain(media_url);
if (option == 0) // allow
{
- args["ACTION"] = "Allow";
- args["CONDITION"] = "Always";
- args["LCONDITION"] = "always";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionAllow");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionAlways");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionAlwaysLower");
allow = true;
}
else
{
- args["ACTION"] = "Deny";
- args["CONDITION"] = "Never";
- args["LCONDITION"] = "never";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionDeny");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionNever");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionNeverLower");
allow = false;
}
args["AUDIOURL"] = media_url;
@@ -1334,7 +1348,9 @@ void callback_audio_alert2(const LLSD ¬ification, const LLSD &response, std::
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Music from domain "+domain+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterAudioContentDomainAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
if (gAudiop != NULL)
{
@@ -1351,7 +1367,9 @@ void callback_audio_alert2(const LLSD ¬ification, const LLSD &response, std::
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Music from domain "+domain+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterAudioContentDomainAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
if (gAudiop != NULL)
{
@@ -1368,7 +1386,9 @@ void callback_audio_alert2(const LLSD ¬ification, const LLSD &response, std::
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Music from location "+media_url+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterAudioContentUrlAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
if (gAudiop != NULL)
{
@@ -1385,7 +1405,9 @@ void callback_audio_alert2(const LLSD ¬ification, const LLSD &response, std::
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Music from location "+media_url+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterAudioContentUrlAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
if (gAudiop != NULL)
{
@@ -1576,8 +1598,10 @@ void LLViewerParcelMedia::filterMOAPUrl(LLMediaDataClientObject *object, LLObjec
}
else if (media_action=="deny")
{
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
LLChat chat;
- chat.mText = "Shared media from the domain "+domain+" has been blocked.";
+ chat.mText = LLTrans::getString("MediaFilterSharedMediaContentBlocked", domain);
chat.mSourceType = CHAT_SOURCE_SYSTEM;
LLSD args;
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
@@ -1613,16 +1637,16 @@ void callback_MOAP_alert(const LLSD ¬ification, const LLSD &response, LLMedia
std::string domain = LLViewerParcelMedia::extractDomain(media_url);
if (option == 0) // allow
{
- args["ACTION"] = "Allow";
- args["CONDITION"] = "Always";
- args["LCONDITION"] = "always";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionAllow");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionAlways");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionAlwaysLower");
allow = true;
}
else
{
- args["ACTION"] = "Deny";
- args["CONDITION"] = "Never";
- args["LCONDITION"] = "never";
+ args["ACTION"] = LLTrans::getString("MediaFilterActionDeny");
+ args["CONDITION"] = LLTrans::getString("MediaFilterConditionNever");
+ args["LCONDITION"] = LLTrans::getString("MediaFilterConditionNeverLower");
allow = false;
}
args["MOAPURL"] = media_url;
@@ -1659,7 +1683,9 @@ void callback_MOAP_alert2(const LLSD ¬ification, const LLSD &response, LLMedi
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Shared media from domain "+domain+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterSharedMediaContentDomainAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
nav_object->doNavigate(object, texture_index, media_url);
LLViewerParcelMedia::sCurrentMOAP = media_url;
@@ -1672,7 +1698,9 @@ void callback_MOAP_alert2(const LLSD ¬ification, const LLSD &response, LLMedi
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Shared media from domain "+domain+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[DOMAIN]"] = domain;
+ chat.mText = LLTrans::getString("MediaFilterSharedMediaContentDomainAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
LLViewerParcelMedia::sCurrentMOAP = "";
LLViewerParcelMedia::sMOAPLastActionPlay = false;
@@ -1684,7 +1712,9 @@ void callback_MOAP_alert2(const LLSD ¬ification, const LLSD &response, LLMedi
newmedia["action"] = "allow";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Shared media from location "+media_url+" will always be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterSharedMediaContentUrlAlwaysAllowed", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
nav_object->doNavigate(object, texture_index, media_url);
LLViewerParcelMedia::sCurrentMOAP = media_url;
@@ -1697,7 +1727,9 @@ void callback_MOAP_alert2(const LLSD ¬ification, const LLSD &response, LLMedi
newmedia["action"] = "deny";
LLViewerParcelMedia::sMediaFilterList.append(newmedia);
LLViewerParcelMedia::saveDomainFilterList();
- chat.mText = "Shared media from location "+media_url+" will never be played.";
+ LLStringUtil::format_map_t format_args;
+ format_args["[MEDIAURL]"] = media_url;
+ chat.mText = LLTrans::getString("MediaFilterSharedMediaContentUrlAlwaysBlocked", format_args);
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
LLViewerParcelMedia::sCurrentMOAP = "";
LLViewerParcelMedia::sMOAPLastActionPlay = false;
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index b88a7f1a98..43f742036b 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -3350,4 +3350,84 @@ Teleportieren zum Avatar nicht möglich, da die exakte Position unbekannt ist.
Der Viewercache ist momentan leer. Während des Downloads von neuen Inhalten kann es daher zu niedrigeren Frameraten und langsamerem Laden des Inventars kommen.
+
+Das Abspielen von Medien oder Musik kann deine Identität an Webseiten außerhalb von Second Life verraten. Durch das Einschalten des Filters kann ausgewählt werden, welche Webseiten Medien abspielen dürfen, wodurch eine bessere Kontrolle über die Privatspähre ermöglicht wird.
+
+Medienfilter aktivieren?
+(Diese Einstellung kann später unter Einstellungen > Sound & Medien geändert werden.)
+
+
+
+
+Diese Parzelle enthält Medien von :
+
+Domain: [MEDIADOMAIN]
+URL: [MEDIAURL]
+
+
+
+
+Auswahl merken und [LCONDITION] Medien von dieser Quelle erlauben?
+
+Domain: [MEDIADOMAIN]
+URL: [MEDIAURL]
+
+
+
+
+Diese Parzelle enthält Musik von:
+
+Domain: [AUDIODOMAIN]
+URL: [AUDIOURL]
+
+
+
+
+Auswahl merken und [LCONDITION] Musik von dieser Quelle erlauben?
+
+Domain: [AUDIODOMAIN]
+URL: [AUDIOURL]
+
+
+
+
+Ein Objekt enthält Geteilte Medien von:
+
+Domain: [MOAPDOMAIN]
+URL: [MOAPURL]
+
+
+
+
+Auswahl merken und [LCONDITION] Geteilte Medien von dieser Quelle erlauben?
+
+Domain: [MOAPDOMAIN]
+URL: [MOAPURL]
+
+
+
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 5af399dc0b..918b4490f7 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -5106,4 +5106,67 @@ Setzen Sie den Editorpfad in Anführungszeichen
RestrainedLove-Unterstützung ist beim nächsten Start ausgeschaltet.
+
+ erlauben
+
+
+ verbieten
+
+
+ Immer
+
+
+ immer
+
+
+ Niemals
+
+
+ niemals
+
+
+ Medien von der Domain [DOMAIN] wurden geblockt.
+
+
+ Medien von der Domain [DOMAIN] werden immer abgespielt.
+
+
+ Medien von der Domain [DOMAIN] werden niemals abgespielt.
+
+
+ Medien von der URL [MEDIAURL] werden immer abgespielt.
+
+
+ Medien von der URL [MEDIAURL] werden niemals abgespielt.
+
+
+ Musik von der Domain [DOMAIN] wurde geblockt.
+
+
+ Musik von der Domain [DOMAIN] wird immer abgespielt.
+
+
+ Musik von der Domain [DOMAIN] wird niemals abgespielt.
+
+
+ Musik von der URL [MEDIAURL] wird immer abgespielt.
+
+
+ Musik von der URL [MEDIAURL] wird niemals abgespielt.
+
+
+ Geteilte Medien von der Domain [DOMAIN] wurden geblockt.
+
+
+ Geteilte Medien von der Domain [DOMAIN] werden immer abgespielt.
+
+
+ Geteilte Medien von der Domain [DOMAIN] werden niemals abgespielt.
+
+
+ Geteilte Medien von der URL [MEDIAURL] werden immer abgespielt.
+
+
+ Geteilte Medien von der URL [MEDIAURL] werden niemals abgespielt.
+
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index e0ac1d5c4c..f7299f29b5 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -3962,4 +3962,29 @@ Try enclosing path to the editor with double quotes.
RestrainedLove Support will be enabled after you restart.
RestrainedLove Support will be disabled after you restart.
-
+
+ Allow
+ Deny
+ Always
+ always
+ Never
+ never
+ Media from the domain [DOMAIN] has been blocked.
+ Media from the domain [DOMAIN] will always be played.
+ Media from the domain [DOMAIN] will never be played.
+ Media from the URL [MEDIAURL] will always be played.
+ Media from the URL [MEDIAURL] will never be played.
+
+ Audio from the domain [DOMAIN] has been blocked.
+ Audio from the domain [DOMAIN] will always be played.
+ Audio from the domain [DOMAIN] will never be played.
+ Audio from the URL [MEDIAURL] will always be played.
+ Audio from the URL [MEDIAURL] will never be played.
+
+ Shared Media from the domain [DOMAIN] has been blocked.
+ Shared Media from the domain [DOMAIN] will always be played.
+ Shared Media from the domain [DOMAIN] will never be played.
+ Shared Media from the URL [MEDIAURL] will always be played.
+ Shared Media from the URL [MEDIAURL] will never be played.
+
+