Turn bracket links expanding/unmasking function into a well visible, large, instant preview in tooltip

Signed-off-by: PanteraPolnocy <panterapolnocy@gmail.com>
This commit is contained in:
PanteraPolnocy
2026-06-14 10:45:11 +02:00
parent cbdd05edb9
commit 76e5fa786f
19 changed files with 138 additions and 27 deletions
+62
View File
@@ -2700,6 +2700,12 @@ void LLTextBase::appendTextImpl(const std::string& new_text, const LLStyle::Para
if (tooltip_required)
{
setLastSegmentToolTip(match.getTooltip());
// <FS:PP> Preview real URLs of bracket links
if (match.getLabeledLinkMasked())
{
setLastSegmentProminentUrlTooltip(match.getLabel(), match.getLabeledLinkTrusted());
}
// </FS:PP>
}
// show query part of url with gray color only for LLUrlEntryHTTP url entries
@@ -2763,6 +2769,18 @@ void LLTextBase::setLastSegmentToolTip(const std::string &tooltip)
}
}
// <FS:PP> Preview real URLs of bracket links
void LLTextBase::setLastSegmentProminentUrlTooltip(const std::string &label, bool trusted)
{
segment_set_t::iterator it = getSegIterContaining(getLength()-1);
if (it != mSegments.end())
{
LLTextSegmentPtr segment = *it;
segment->setProminentUrlTooltip(label, trusted);
}
}
// </FS:PP>
void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, const LLStyle::Params& input_params)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_UI;
@@ -4150,6 +4168,41 @@ bool LLNormalTextSegment::handleMouseUp(S32 x, S32 y, MASK mask)
bool LLNormalTextSegment::handleToolTip(S32 x, S32 y, MASK mask)
{
// <FS:PP> Preview real URLs of bracket links
// Bypasses the BasicUITooltips preference and the normal hover delay on purpose
if (mForceProminentUrlTooltip && !mTooltip.empty())
{
LLToolTip::Params params;
params.font(LLFontGL::getFontSansSerifBig());
params.delay_time(0.f);
params.wrap(true);
params.max_width(700);
LLUIColorTable& colors = LLUIColorTable::instance();
if (mProminentUrlTrusted)
{
params.styled_message.add().text(LLTrans::getString("FSChatLinkTagTrusted") + " ").style.color(colors.getColor("LindenChatColor", LLColor4::green));
}
else
{
params.styled_message.add().text(LLTrans::getString("FSChatLinkTagUntrusted") + " ").style.color(colors.getColor("MutedChatColor", LLColor4::grey));
}
if (!mProminentUrlLabel.empty())
{
params.styled_message.add().text(mProminentUrlLabel + "\n").style.color(LLColor4::white);
}
else
{
params.styled_message.add().text("\n");
}
params.styled_message.add().text(mTooltip).style.color(colors.getColor("HTMLLinkColor", LLColor4::blue));
LLToolTipMgr::instance().show(params);
return true;
}
// </FS:PP>
std::string msg;
// do we have a tooltip for a loaded keyword (for script editor)?
if (mToken && !mToken->getToolTip().empty())
@@ -4179,6 +4232,15 @@ void LLNormalTextSegment::setToolTip(const std::string& tooltip)
mTooltip = tooltip;
}
// <FS:PP> Preview real URLs of bracket links
void LLNormalTextSegment::setProminentUrlTooltip(const std::string& label, bool trusted)
{
mForceProminentUrlTooltip = true;
mProminentUrlLabel = label;
mProminentUrlTrusted = trusted;
}
// </FS:PP>
// virtual
LLTextSegmentPtr LLNormalTextSegment::clone(LLTextBase& target) const
{
+8
View File
@@ -99,6 +99,7 @@ public:
virtual void setToken( LLKeywordToken* token );
virtual LLKeywordToken* getToken() const;
virtual void setToolTip(const std::string& tooltip);
virtual void setProminentUrlTooltip(const std::string& label, bool trusted) { } // <FS:PP> Preview real URLs of bracket links
virtual void dump() const;
// LLMouseHandler interface
@@ -151,6 +152,7 @@ public:
/*virtual*/ void setToken( LLKeywordToken* token ) { mToken = token; }
/*virtual*/ LLKeywordToken* getToken() const { return mToken; }
/*virtual*/ void setToolTip(const std::string& tooltip);
/*virtual*/ void setProminentUrlTooltip(const std::string& label, bool trusted); // <FS:PP> Preview real URLs of bracket links
/*virtual*/ void dump() const;
/*virtual*/ bool handleHover(S32 x, S32 y, MASK mask);
@@ -174,6 +176,11 @@ protected:
S32 mFontHeight;
LLKeywordToken* mToken;
std::string mTooltip;
// <FS:PP> Preview real URLs of bracket links
bool mForceProminentUrlTooltip { false };
bool mProminentUrlTrusted { false };
std::string mProminentUrlLabel;
// </FS:PP>
boost::signals2::connection mImageLoadedConnection;
bool mCanEdit { true };
@@ -506,6 +513,7 @@ public:
const LLWString& getWlabel() { return mLabel.getWString();}
void setLastSegmentToolTip(const std::string &tooltip);
void setLastSegmentProminentUrlTooltip(const std::string &label, bool trusted); // <FS:PP> Preview real URLs of bracket links
/**
* If label is set, draws text label (which is LLLabelTextSegment)
+9 -1
View File
@@ -39,7 +39,11 @@ LLUrlMatch::LLUrlMatch() :
mLocation(""),
mUnderline(e_underline::UNDERLINE_ALWAYS),
mTrusted(false),
mSkipProfileIcon(false)
mSkipProfileIcon(false),
// <FS:PP> Preview real URLs of bracket links
mLabeledLinkMasked(false),
mLabeledLinkTrusted(false)
// <FS:PP>
{
}
@@ -68,4 +72,8 @@ void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, const std
mSkipProfileIcon = skip_icon;
// <FS:Ansariel> Store matched text
mMatchedText = matched_text;
// <FS:PP> Preview real URLs of bracket links
mLabeledLinkMasked = false;
mLabeledLinkTrusted = false;
// </FS:PP>
}
+11
View File
@@ -89,6 +89,13 @@ public:
bool getSkipProfileIcon() const { return mSkipProfileIcon; }
// <FS:PP> Preview real URLs of bracket links
bool getLabeledLinkMasked() const { return mLabeledLinkMasked; }
void setLabeledLinkMasked(bool masked) { mLabeledLinkMasked = masked; }
bool getLabeledLinkTrusted() const { return mLabeledLinkTrusted; }
void setLabeledLinkTrusted(bool trusted) { mLabeledLinkTrusted = trusted; }
// </FS:PP>
/// Change the contents of this match object (used by LLUrlRegistry)
void setValues(U32 start, U32 end, const std::string &url, const std::string &label,
const std::string& query, const std::string &tooltip, const std::string &icon,
@@ -117,6 +124,10 @@ private:
e_underline mUnderline;
bool mTrusted;
bool mSkipProfileIcon;
// <FS:PP> Preview real URLs of bracket links
bool mLabeledLinkMasked { false };
bool mLabeledLinkTrusted { false };
// </FS:PP>
};
#endif
+25 -9
View File
@@ -254,15 +254,6 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL
continue;
}
// <FS:PP> Option to disable square-bracket links (intentionally ignores secondlife:// and hop://)
static LLUICachedControl<bool> sDisableLabeledLinks("FSDisableLabeledChatLinks", false);
static LLUICachedControl<bool> sDisableLabeledLinksNearby("FSDisableLabeledChatLinksNearbyChat", false);
if (!is_content_trusted && (mUrlEntryHTTPLabel == *it) && (is_nearby_chat ? sDisableLabeledLinksNearby : sDisableLabeledLinks))
{
continue;
}
// </FS:PP>
LLUrlEntryBase *url_entry = *it;
U32 start = 0, end = 0;
@@ -346,6 +337,31 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL
match_entry->getUnderline(url),
match_entry->isTrusted(),
match_entry->getSkipProfileIcon(url));
// <FS:PP> Preview real URLs of bracket links
static LLUICachedControl<bool> sDisableLabeledLinks("FSDisableLabeledChatLinks", false);
static LLUICachedControl<bool> sDisableLabeledLinksNearby("FSDisableLabeledChatLinksNearbyChat", false);
if (!is_content_trusted && (match_entry == mUrlEntryHTTPLabel) && (is_nearby_chat ? sDisableLabeledLinksNearby : sDisableLabeledLinks) && match.getLabel() != match.getUrl())
{
match.setLabeledLinkMasked(true);
if (mUrlEntryTrustedUrl)
{
U32 trusted_start = 0, trusted_end = 0;
const std::string& real_url = match.getUrl();
bool url_trusted = matchRegex(real_url.c_str(), mUrlEntryTrustedUrl->getPattern(), trusted_start, trusted_end) && (trusted_start == 0);
if (!url_trusted)
{
const std::string slashed_url = real_url + "/";
url_trusted = matchRegex(slashed_url.c_str(), mUrlEntryTrustedUrl->getPattern(), trusted_start, trusted_end) && (trusted_start == 0);
}
if (url_trusted)
{
match.setLabeledLinkTrusted(true);
}
}
}
// </FS:PP>
return true;
}
+2 -2
View File
@@ -19658,7 +19658,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>FSDisableLabeledChatLinks</key>
<map>
<key>Comment</key>
<string>When true, do not treat wiki-style bracketed links ([https://host label]) as labeled URLs in IMs, group chat, ad-hoc conferences and group notices; mitigates misleading link text.</string>
<string>When true, wiki-style bracketed links ([https://host label]) in IMs, group chat, ad-hoc conferences and group notices keep their label, but hovering shows an instant large hint previewing the real destination URL; helps spot misleading link text.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -19669,7 +19669,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>FSDisableLabeledChatLinksNearbyChat</key>
<map>
<key>Comment</key>
<string>When true, do not treat wiki-style bracketed links ([https://host label]) as labeled URLs in nearby (local) chat and object text; mitigates misleading link text.</string>
<string>When true, wiki-style bracketed links ([https://host label]) in nearby (local) chat and object text keep their label, but hovering shows an instant large hint previewing the real destination URL; helps spot misleading link text.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -40,7 +40,7 @@
</panel>
<panel label="Qoruma" name="ProtectionTab">
<check_box label="Sol maus düyməsi ilə basdıqda obyektə oturmaq bloku" name="FSBlockClickSit" />
<check_box label="IM, qrup çatı və bildirişlərdə kvadrat mötərizəli linkləri deaktiv edin (URL görünməyə davam edir)" name="FSDisableLabeledChatLinks" tool_tip="Aktivləşdirildikdə, digər sakinlərdən gələn IM, qrup çatı, ad-hoc konfranslar və qrup bildirişlərindəki kvadrat mötərizəli linklər tək bir etiketə daraldılmır. Bunun əvəzinə əsl URL göstərilir və əlaqələndirilir. Görünən mətnin fərqli təyinat yerini gizlətdiyi fişinq cəhdlərini azaltmağa kömək edir. Yaxınlıqdakı (lokal) çat aşağıdakı ayrıca seçimlə idarə olunur. Viewer-in daxili mətnləri (bildirişlər, parametrlər və s.) təsirlənmir."/>
<check_box label="IM qrup çatında mötərizəli linklərin əsl URL-ni göstər (kursorla)" name="FSDisableLabeledChatLinks" tool_tip="Aktiv olduqda, IM, qrup çatı, ad-hoc konfranslar və qrup bildirişlərindəki kvadrat mötərizəli linklər mətnini saxlayır, lakin kursoru saxlayanda əsl təyinat URL-i böyük ipucu kimi dərhal göstərilir. Etiketin fərqli hədəfi gizlətdiyi fişinqi aşkar etməyə kömək edir. Yaxınlıqdakı çat aşağıdakı seçimdən istifadə edir. Viewer-in daxili mətni dəyişmir."/>
<check_box label="Skriptlərin (llMapDestination) istifadəsinə icazə verin" name="ScriptsCanShowUI" />
<text name="revokepermissions_txt">
Animasiya icazələrini ləğv edin:
@@ -47,7 +47,7 @@
<!--Protection-->
<panel label="Sicherheit" name="ProtectionTab">
<check_box label="Sitzen per Links-Klick auf Objekten blockieren" name="FSBlockClickSit"/>
<check_box label="Klammer-Links im Chat deaktivieren (URL bleibt sichtbar)" name="FSDisableLabeledChatLinks" tool_tip="Wenn aktiviert, werden Klammer-Links aus Chat, IM, Gruppen-Hinweisen und Objekttexten anderer Bewohner nicht zu einem einzelnen Label zusammengefasst. Stattdessen wird die tatsächliche URL angezeigt und verlinkt. Hilft gegen Phishing, bei dem der sichtbare Text ein anderes Ziel verbirgt. Eingebauter Viewer-Text (Benachrichtigungen, Einstellungen usw.) ist nicht betroffen."/>
<check_box label="Echte URL von Klammer-Links in IMs/Gruppenchat zeigen (beim Hovern)" name="FSDisableLabeledChatLinks" tool_tip="Wenn aktiviert, behalten Klammer-Links in IMs, Gruppenchat, Ad-hoc-Konferenzen und Gruppen-Hinweisen ihren Text, aber beim Hovern wird sofort die echte Ziel-URL als grosser Hinweis angezeigt. Hilft, Phishing zu erkennen, bei dem das Label ein anderes Ziel verbirgt. Chat in der Nähe nutzt die Option darunter. Eingebauter Viewer-Text ist nicht betroffen."/>
<check_box label="Skripten erlauben, Ziele auf Karte anzuzeigen (llMapDestination)" name="ScriptsCanShowUI"/>
<text name="revokepermissions_txt">
Berechtigungen zurückziehen:
@@ -262,23 +262,23 @@
<check_box
top_pad="4"
left="10"
label="Disable square-bracket links in IMs, group chat and notices (URL stays visible)"
label="Preview real URL of bracket links in IMs and group chat (on hover)"
control_name="FSDisableLabeledChatLinks"
follows="left|top"
height="16"
name="FSDisableLabeledChatLinks"
width="520"
tool_tip="When enabled, square-bracket links received in IMs, group chat, ad-hoc conferences and group notices from other residents are not collapsed into a single labeled link. The actual URL is shown and linked instead. Helps reduce phishing where the visible label hides a different destination. Nearby (local) chat is controlled by the separate option below. Built-in viewer text (notifications, preferences, etc.) is not affected."/>
tool_tip="When enabled, square-bracket (labeled) links in IMs, group chat, ad-hoc conferences and group notices keep their text, but hovering instantly shows the real destination URL in a large hint. Helps spot phishing where the label hides a different target. Nearby chat uses the option below. Built-in viewer text is not affected."/>
<check_box
top_pad="4"
left="10"
label="Disable square-bracket links in nearby chat and object text (URL stays visible)"
label="Preview real URL of bracket links in nearby and object chat (on hover)"
control_name="FSDisableLabeledChatLinksNearbyChat"
follows="left|top"
height="16"
name="FSDisableLabeledChatLinksNearbyChat"
width="520"
tool_tip="When enabled, square-bracket links received in nearby (local) chat and object text are not collapsed into a single labeled link. The actual URL is shown and linked instead. Disabled by default."/>
tool_tip="When enabled, square-bracket (labeled) links in nearby (local) chat and object text keep their text, but hovering instantly shows the real destination URL in a large hint. Disabled by default."/>
<check_box
left="10"
@@ -333,6 +333,9 @@ If you feel this is an error, please contact support@secondlife.com</string>
<!-- tooltips for Urls -->
<string name="TooltipHttpUrl">Click to view this web page</string>
<string name="TooltipSLURL">Click to view this location's information</string>
<string name="FSChatLinkTagTrusted">[Trusted]</string>
<string name="FSChatLinkTagUntrusted">[Link]</string>
<string name="TooltipAgentUrl">Click to view this Resident's profile</string>
<string name="TooltipAgentInspect">Learn more about this Resident</string>
<string name="TooltipAgentMute">Click to mute this Resident</string>
@@ -18,7 +18,7 @@
</panel>
<panel label="Protección" name="ProtectionTab">
<check_box label="Impedir que pueda sentarme con un clic del botón izquierdo del ratón" name="FSBlockClickSit"/>
<check_box label="Desactivar enlaces entre corchetes en MI, chat de grupo y avisos (la URL sigue visible)" name="FSDisableLabeledChatLinks" tool_tip="Cuando se activa, los enlaces entre corchetes recibidos en MI, chat de grupo, conferencias ad-hoc y avisos de grupo de otros residentes no se contraen en una sola etiqueta. Se muestra y enlaza la URL real. Ayuda a reducir el phishing donde el texto visible oculta un destino distinto. El chat cercano (local) se controla con la opción separada de abajo. El texto integrado del visor (notificaciones, preferencias, etc.) no se ve afectado."/>
<check_box label="Previsualizar URL real de enlaces en MI y chat de grupo (al pasar)" name="FSDisableLabeledChatLinks" tool_tip="Cuando se activa, los enlaces entre corchetes en MI, chat de grupo, conferencias ad-hoc y avisos de grupo conservan su texto, pero al pasar el ratón se muestra al instante la URL de destino real en una pista grande. Ayuda a detectar phishing donde la etiqueta oculta un destino distinto. El chat cercano usa la opción de abajo. El texto integrado del visor no se ve afectado."/>
<check_box label="Permitir a los scripts que muestren el IU del mapa (llMapDestination)" name="ScriptsCanShowUI"/>
<text name="revokepermissions_txt">
Revocar permisos:
@@ -30,7 +30,7 @@
</panel>
<panel label="Protection" name="ProtectionTab">
<check_box label="Empêcher de s'asseoir sur les objets par clic simple" name="FSBlockClickSit"/>
<check_box label="Désactiver les liens entre crochets dans le chat (l'URL reste visible)" name="FSDisableLabeledChatLinks" tool_tip="Lorsqu'activé, les liens entre crochets reçus dans le chat, IM, notices de groupe et textes d'objets venant d'autres résidents ne sont pas réduits en une seule étiquette. L'URL réelle est affichée et cliquable. Aide à limiter le phishing où le texte visible masque une destination différente. Les textes intégrés au viewer (notifications, préférences, etc.) ne sont pas affectés."/>
<check_box label="Aperçu de l'URL réelle des liens dans IM et chat de groupe (au survol)" name="FSDisableLabeledChatLinks" tool_tip="Une fois activé, les liens entre crochets dans les IM, le chat de groupe, les conférences ad-hoc et les notices de groupe conservent leur texte, mais le survol affiche instantanément l'URL de destination réelle dans une grande bulle. Aide à repérer le phishing où l'étiquette masque une autre destination. Le chat à proximité utilise l'option ci-dessous. Le texte intégré au viewer n'est pas affecté."/>
<check_box label="Permettre aux scripts d'afficher la carte (llMapDestination)" name="ScriptsCanShowUI"/>
<text name="revokepermissions_txt">Révoquer les permissions :</text>
<radio_group name="FSRevokePerms">
@@ -39,7 +39,7 @@
</panel>
<panel label="Protezione" name="ProtectionTab">
<check_box label="Blocca seduta tramite tasto sinistro del mouse" name="FSBlockClickSit" />
<check_box label="Disabilita i link tra parentesi quadre in IM, chat di gruppo e avvisi (l'URL resta visibile)" name="FSDisableLabeledChatLinks" tool_tip="Quando attivo, i link tra parentesi quadre ricevuti tramite IM, chat di gruppo, conferenze ad-hoc e avvisi di gruppo da altri residenti non vengono compressi in una singola etichetta. Viene mostrato e reso cliccabile l'URL reale. Aiuta a ridurre il phishing dove il testo visibile nasconde una destinazione diversa. La chat nelle vicinanze (locale) è controllata dall'opzione separata qui sotto. I testi integrati nel viewer (notifiche, preferenze, ecc.) non sono interessati."/>
<check_box label="Anteprima URL reale dei link in IM e chat di gruppo (al passaggio)" name="FSDisableLabeledChatLinks" tool_tip="Quando attivo, i link tra parentesi quadre in IM, chat di gruppo, conferenze ad-hoc e avvisi di gruppo mantengono il loro testo, ma al passaggio del mouse mostrano subito l'URL di destinazione reale in un grande suggerimento. Aiuta a individuare il phishing dove l'etichetta nasconde una destinazione diversa. La chat nelle vicinanze usa l'opzione qui sotto. Il testo integrato nel viewer non è interessato."/>
<check_box label="Consente agli script di aprire la mappa (llMapDestination)" name="ScriptsCanShowUI" />
<text name="revokepermissions_txt">
Rimuovi autorizzazioni:
@@ -47,7 +47,7 @@
<!-- Protection -->
<panel label="保護" name="ProtectionTab">
<check_box label="左クリックで座らないようにする" name="FSBlockClickSit"/>
<check_box label="IMグループチャット、通知の角括弧リンクを無効にする(URL は引き続き表示されます" name="FSDisableLabeledChatLinks" tool_tip="有効にすると、他の住人から送信された IM、グループチャット、アドホック会議、グループ通知内の角括弧リンクが単一のラベルにまとめられず、実際の URL が表示されてリンクになります。表示テキストが異なる宛先を隠すフィッシングを軽減するのに役立ちます。近くの(ローカル)チャットは下の別のオプションで制御されます。ビューア内蔵のテキスト(通知、環境設定など)には影響しません。"/>
<check_box label="IMグループチャットの角括弧リンクの実URLをプレビュー(ホバー時" name="FSDisableLabeledChatLinks" tool_tip="有効にすると、IM、グループチャット、アドホック会議、グループ通知内の角括弧リンクはテキストを保ったまま、ホバーすると実際の宛先URLが大きなヒントで即座に表示されます。表示ラベルが異なる宛先を隠すフィッシングの発見に役立ちます。近くのチャットは下のオプションで制御ます。ビューア内蔵のテキストには影響しません。"/>
<check_box label="ワールドマップを開くスクリプト(llMapDestinatin)を許可する" name="ScriptsCanShowUI"/>
<text name="revokepermissions_txt">
オブジェクトのアニメーション権限取消:
@@ -41,8 +41,8 @@
</panel>
<panel label="Ochrona" name="ProtectionTab">
<check_box label="Blokuj siadanie na obiektach przez kliknięcie lewym przyciskiem myszy" name="FSBlockClickSit" />
<check_box label="Wyłącz linki w nawiasach kwadratowych: IM, czat grupowy, ogłoszenia (URLe dalej widoczne)" name="FSDisableLabeledChatLinks" tool_tip="Po włączeniu linki w nawiasach kwadratowych otrzymywane w IM, czacie grupowym, konferencjach ad-hoc i ogłoszeniach grup od innych rezydentów nie są zwijane do pojedynczej etykiety. Wyświetlany i klikalny jest rzeczywisty URL. Pomaga ograniczyć phishing, w którym widoczny tekst ukrywa inne miejsce docelowe. Czat w pobliżu (lokalny) jest sterowany osobną opcją poniżej. Wbudowane teksty przeglądarki (powiadomienia, preferencje itp.) pozostają bez zmian."/>
<check_box label="Wyłącz linki w nawiasach kwadratowych: czat w pobliżu, tekst obiektów (URLe dalej widoczne)" name="FSDisableLabeledChatLinksNearbyChat" tool_tip="Po włączeniu linki w nawiasach kwadratowych otrzymywane w czacie w pobliżu (lokalnym) i tekstach obiektów nie są zwijane do pojedynczej etykiety. Wyświetlany i klikalny jest rzeczywisty URL. Domyślnie wyłączone."/>
<check_box label="Podgląd prawdziwego URL linków w nawiasach: IM, czat grupowy (po najechaniu)" name="FSDisableLabeledChatLinks" tool_tip="Po włączeniu linki w nawiasach kwadratowych w IM, czacie grupowym, konferencjach ad-hoc i ogłoszeniach grup zachowują swój tekst, ale najechanie kursorem natychmiast pokazuje prawdziwy adres docelowy w dużej podpowiedzi. Pomaga wykryć phishing, gdy etykieta ukrywa inny cel. Czat w pobliżu używa opcji poniżej. Wbudowany tekst przeglądarki nie jest zmieniany."/>
<check_box label="Podgląd prawdziwego URL linków w nawiasach: czat w pobliżu, obiekty (po najechaniu)" name="FSDisableLabeledChatLinksNearbyChat" tool_tip="Po włączeniu linki w nawiasach kwadratowych w czacie w pobliżu (lokalnym) i tekstach obiektów zachowują swój tekst, ale najechanie kursorem natychmiast pokazuje prawdziwy adres docelowy w dużej podpowiedzi. Domyślnie wyłączone."/>
<check_box label="Pozwól skryptom na pokazywanie interfejsu mapy (llMapDestination)" name="ScriptsCanShowUI" />
<text name="revokepermissions_txt">
Cofnij zezwolenia do animowania:
@@ -638,6 +638,9 @@ Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com
<string name="TooltipSLURL">
Kliknij aby zobaczyć szczegóły tego miejsca
</string>
<string name="FSChatLinkTagTrusted">
[Zaufany]
</string>
<string name="TooltipAgentUrl">
Kliknij aby zobaczyć profil Rezydenta
</string>
@@ -47,7 +47,7 @@
<!--Protection-->
<panel label="Segurança" name="ProtectionTab">
<check_box label="Bloquear sentar com clique esquerdo em objetos" name="FSBlockClickSit"/>
<check_box label="Desativar links com rótulo no chat (URL visível)" name="FSDisableLabeledChatLinks" tool_tip="Se ativado, links com rótulo de chat, IM, avisos de grupo e textos de objetos de outros residentes não serão compactados em um único rótulo. Em vez disso, a URL real será exibida e vinculada. Isso ajuda contra phishing, quando o texto visível esconde outro destino. Textos internos do viewer (notificações, configurações etc.) não são afetados."/>
<check_box label="Pré-visualizar URL real de links em MIs e chat de grupo (ao passar)" name="FSDisableLabeledChatLinks" tool_tip="Quando ativado, os links entre colchetes em MIs, chat de grupo, conferências ad-hoc e avisos de grupo mantêm seu texto, mas ao passar o mouse mostram instantaneamente a URL de destino real em uma dica grande. Ajuda a detectar phishing onde o rótulo esconde outro destino. O chat por perto usa a opção abaixo. O texto interno do viewer não é afetado."/>
<check_box label="Permitir scripts mostrarem destinos no mapa (llMapDestination)" name="ScriptsCanShowUI"/>
<text name="revokepermissions_txt">
Revogar permissões:
@@ -41,7 +41,7 @@
</panel>
<panel label="Защита" name="ProtectionTab">
<check_box label="Блокировка нажатия левой кнопкой мыши, чтобы сесть на объекты" name="FSBlockClickSit" />
<check_box label="Отключить квадратных скобках ссылки: ЛС, групповом чате, уведомлениях (URL видимым)" name="FSDisableLabeledChatLinks" tool_tip="Когда включено, ссылки в квадратных скобках, получаемые в ЛС, групповом чате, конференциях ad-hoc и групповых уведомлениях от других резидентов, не сворачиваются в одну метку. Показывается и используется в качестве ссылки реальный URL. Помогает уменьшить фишинг, при котором видимый текст скрывает другое место назначения. Чат поблизости (локальный) управляется отдельной опцией ниже. Встроенный текст вьюера (уведомления, настройки и т. п.) не затрагивается."/>
<check_box label="Показывать настоящий URL ссылок в скобках: ЛС, групповой чат (при наведении)" name="FSDisableLabeledChatLinks" tool_tip="Когда включено, ссылки в квадратных скобках в ЛС, групповом чате, конференциях ad-hoc и групповых уведомлениях сохраняют свой текст, но при наведении сразу показывают настоящий URL назначения в крупной подсказке. Помогает распознать фишинг, когда видимый текст скрывает другую цель. Чат поблизости использует отдельную опцию ниже. Встроенный текст вьюера не затрагивается."/>
<check_box label="Позволить скриптам использовать (llMapDestination)" name="ScriptsCanShowUI" />
<text name="revokepermissions_txt">
Отменить разрешение анимирования:
@@ -31,7 +31,7 @@
</panel>
<panel label="保護" name="ProtectionTab">
<check_box label="阻止通過簡單點擊坐在物件上" name="FSBlockClickSit" />
<check_box label="停用聊天中的帶標籤連結(URL仍可見" name="FSDisableLabeledChatLinks" tool_tip="啟用後,來自其他使用者的聊天、私聊、群組通知和物件文字中的帶標籤連結將不會被合併為單一標籤。取而代之的是顯示並連結實際的URL。有助於防止釣魚攻擊(例如顯示文字隱藏不同目標。檢視器內建文字(通知、偏好設定等)不受影響。"/>
<check_box label="預覽私聊和群組聊天中括號連結的真實URL(懸停時" name="FSDisableLabeledChatLinks" tool_tip="啟用後,私聊、群組聊天、臨時會議和群組通知中的方括號連結會保留其文字,但懸停時會立即以大型提示顯示真實的目標URL。有助於發現標籤隱藏不同目標的釣魚攻擊。附近聊天使用下方的選項。檢視器內建文字不受影響。"/>
<check_box label="允許指令碼顯示地圖 (llMapDestination)" name="ScriptsCanShowUI" />
<text name="revokepermissions_txt">復原權限:</text>
<radio_group name="FSRevokePerms">