# Conflicts:
#	indra/newview/lllogchat.cpp
#	indra/newview/llnotificationlistitem.cpp
#	indra/newview/llpanelteleporthistory.cpp
#	indra/newview/lltoastgroupnotifypanel.cpp
#	indra/newview/skins/default/xui/en/notifications.xml
#	indra/newview/skins/default/xui/en/panel_group_roles.xml
master
Ansariel 2025-09-11 23:10:40 +02:00
commit 433cbb705d
53 changed files with 398 additions and 137 deletions

View File

@ -100,6 +100,7 @@ const std::string HTTP_IN_HEADER_LOCATION("location");
const std::string HTTP_IN_HEADER_RETRY_AFTER("retry-after"); const std::string HTTP_IN_HEADER_RETRY_AFTER("retry-after");
const std::string HTTP_IN_HEADER_SET_COOKIE("set-cookie"); const std::string HTTP_IN_HEADER_SET_COOKIE("set-cookie");
const std::string HTTP_IN_HEADER_USER_AGENT("user-agent"); const std::string HTTP_IN_HEADER_USER_AGENT("user-agent");
const std::string HTTP_IN_HEADER_X_CONTENT_TYPE_OPTIONS("x-content-type-options");
const std::string HTTP_IN_HEADER_X_FORWARDED_FOR("x-forwarded-for"); const std::string HTTP_IN_HEADER_X_FORWARDED_FOR("x-forwarded-for");
const std::string HTTP_CONTENT_LLSD_XML("application/llsd+xml"); const std::string HTTP_CONTENT_LLSD_XML("application/llsd+xml");
@ -122,6 +123,7 @@ const std::string HTTP_CONTENT_IMAGE_BMP("image/bmp");
const std::string HTTP_NO_CACHE("no-cache"); const std::string HTTP_NO_CACHE("no-cache");
const std::string HTTP_NO_CACHE_CONTROL("no-cache, max-age=0"); const std::string HTTP_NO_CACHE_CONTROL("no-cache, max-age=0");
const std::string HTTP_NOSNIFF("nosniff");
const std::string HTTP_VERB_INVALID("(invalid)"); const std::string HTTP_VERB_INVALID("(invalid)");
const std::string HTTP_VERB_HEAD("HEAD"); const std::string HTTP_VERB_HEAD("HEAD");

View File

@ -190,6 +190,7 @@ extern const std::string HTTP_IN_HEADER_LOCATION;
extern const std::string HTTP_IN_HEADER_RETRY_AFTER; extern const std::string HTTP_IN_HEADER_RETRY_AFTER;
extern const std::string HTTP_IN_HEADER_SET_COOKIE; extern const std::string HTTP_IN_HEADER_SET_COOKIE;
extern const std::string HTTP_IN_HEADER_USER_AGENT; extern const std::string HTTP_IN_HEADER_USER_AGENT;
extern const std::string HTTP_IN_HEADER_X_CONTENT_TYPE_OPTIONS;
extern const std::string HTTP_IN_HEADER_X_FORWARDED_FOR; extern const std::string HTTP_IN_HEADER_X_FORWARDED_FOR;
//// HTTP Content Types //// //// HTTP Content Types ////
@ -215,5 +216,6 @@ extern const std::string HTTP_CONTENT_IMAGE_BMP;
//// HTTP Cache Settings //// //// HTTP Cache Settings ////
extern const std::string HTTP_NO_CACHE; extern const std::string HTTP_NO_CACHE;
extern const std::string HTTP_NO_CACHE_CONTROL; extern const std::string HTTP_NO_CACHE_CONTROL;
extern const std::string HTTP_NOSNIFF;
#endif #endif

View File

@ -17237,9 +17237,9 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Use24HourClock</key> <key>Use24HourClock</key>
<map> <map>
<key>Comment</key> <key>Comment</key>
<string>12 vs 24. At the moment only for region restart schedule floater</string> <string>12 vs 24. At the moment coverage is partial</string>
<key>Persist</key> <key>Persist</key>
<integer>0</integer> <integer>1</integer>
<key>Type</key> <key>Type</key>
<string>Boolean</string> <string>Boolean</string>
<key>Value</key> <key>Value</key>

View File

@ -1425,10 +1425,19 @@ bool LLAppViewer::init()
LLStringOps::setupMonthShortNames(LLTrans::getString("dateTimeMonthShortNames")); LLStringOps::setupMonthShortNames(LLTrans::getString("dateTimeMonthShortNames"));
LLStringOps::setupDayFormat(LLTrans::getString("dateTimeDayFormat")); LLStringOps::setupDayFormat(LLTrans::getString("dateTimeDayFormat"));
LLStringOps::sAM = LLTrans::getString("dateTimeAM"); // <FS:Ansariel> Always override AM/PM because otherwise AM/PM indicator might be empty strings when calling using
LLStringOps::sPM = LLTrans::getString("dateTimePM"); // [ampm,datetime,...] formatting depending on locale
// LLStringOps::sAM = LLTrans::getString("dateTimeAM");
// LLStringOps::sPM = LLTrans::getString("dateTimePM");
// </FS:Ansariel>
} }
// <FS:Ansariel> Always override AM/PM because otherwise AM/PM indicator might be empty strings when calling using [ampm,datetime,...]
// formatting depending on locale
LLStringOps::sAM = LLTrans::getString("dateTimeAM");
LLStringOps::sPM = LLTrans::getString("dateTimePM");
// </FS:Ansariel>
LLAgentLanguage::init(); LLAgentLanguage::init();
/// Tell the Coprocedure manager how to discover and store the pool sizes /// Tell the Coprocedure manager how to discover and store the pool sizes

View File

@ -455,6 +455,7 @@ public:
time_t current_time = time_corrected(); time_t current_time = time_corrected();
time_t message_time = (time_t)(current_time - LLFrameTimer::getElapsedSeconds() + mTime); time_t message_time = (time_t)(current_time - LLFrameTimer::getElapsedSeconds() + mTime);
// Report abuse shouldn't use AM/PM, use 24-hour time
time_string = "[" + LLTrans::getString("TimeMonth") + "]/[" time_string = "[" + LLTrans::getString("TimeMonth") + "]/["
+ LLTrans::getString("TimeDay") + "]/[" + LLTrans::getString("TimeDay") + "]/["
+ LLTrans::getString("TimeYear") + "] [" + LLTrans::getString("TimeYear") + "] ["

View File

@ -123,11 +123,21 @@ const std::string LLConversation::createTimestamp(const U64Seconds& utc_time)
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32)utc_time.value(); substitution["datetime"] = (S32)utc_time.value();
timeStr = "["+LLTrans::getString ("TimeMonth")+"]/[" static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
+LLTrans::getString ("TimeDay")+"]/[" timeStr = "[" + LLTrans::getString("TimeMonth") + "]/["
+LLTrans::getString ("TimeYear")+"] [" + LLTrans::getString("TimeDay") + "]/["
+LLTrans::getString ("TimeHour")+"]:[" + LLTrans::getString("TimeYear") + "] [";
+LLTrans::getString ("TimeMin")+"]"; if (use_24h)
{
timeStr += LLTrans::getString("TimeHour") + "]:["
+ LLTrans::getString("TimeMin") + "]";
}
else
{
timeStr += LLTrans::getString("TimeHour12") + "]:["
+ LLTrans::getString("TimeMin") + "] ["
+ LLTrans::getString("TimeAMPM") + "]";
}
LLStringUtil::format (timeStr, substitution); LLStringUtil::format (timeStr, substitution);

View File

@ -620,8 +620,19 @@ void LLFloaterIMSessionTab::deleteAllChildren()
std::string LLFloaterIMSessionTab::appendTime() std::string LLFloaterIMSessionTab::appendTime()
{ {
std::string timeStr = "[" + LLTrans::getString("TimeHour") + "]:" std::string timeStr;
"[" + LLTrans::getString("TimeMin") + "]"; static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
if (use_24h)
{
timeStr = "[" + LLTrans::getString("TimeHour") + "]:"
"[" + LLTrans::getString("TimeMin") + "]";
}
else
{
timeStr = "[" + LLTrans::getString("TimeHour12") + "]:"
"[" + LLTrans::getString("TimeMin") + "] ["
+ LLTrans::getString("TimeAMPM") + "]";
}
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32)time_corrected(); substitution["datetime"] = (S32)time_corrected();

View File

@ -392,7 +392,8 @@ void LLFloaterInspect::refresh()
} }
time_t timestamp = (time_t) (obj->mCreationDate/1000000); time_t timestamp = (time_t) (obj->mCreationDate/1000000);
std::string timeStr = getString("timeStamp"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string timeStr = use_24h ? getString("timeStamp") : getString("timeStampAMPM");
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32) timestamp; substitution["datetime"] = (S32) timestamp;
LLStringUtil::format (timeStr, substitution); LLStringUtil::format (timeStr, substitution);

View File

@ -763,7 +763,8 @@ void LLPanelLandGeneral::refresh()
// Display claim date // Display claim date
time_t claim_date = parcel->getClaimDate(); time_t claim_date = parcel->getClaimDate();
std::string claim_date_str = getString("time_stamp_template"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string claim_date_str = use_24h ? getString("time_stamp_template") : getString("time_stamp_template_ampm");
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32) claim_date; substitution["datetime"] = (S32) claim_date;
LLStringUtil::format (claim_date_str, substitution); LLStringUtil::format (claim_date_str, substitution);

View File

@ -700,6 +700,8 @@ bool LLFloaterPreference::postBuild()
// </FS:Ansariel> // </FS:Ansariel>
getChild<LLComboBox>("language_combobox")->setCommitCallback(boost::bind(&LLFloaterPreference::onLanguageChange, this)); getChild<LLComboBox>("language_combobox")->setCommitCallback(boost::bind(&LLFloaterPreference::onLanguageChange, this));
mTimeFormatCombobox = getChild<LLComboBox>("time_format_combobox");
mTimeFormatCombobox->setCommitCallback(boost::bind(&LLFloaterPreference::onTimeFormatChange, this));
// <FS:CR> [CHUI MERGE] // <FS:CR> [CHUI MERGE]
// We don't use these in FS Communications UI, should we in the future? Disabling for now. // We don't use these in FS Communications UI, should we in the future? Disabling for now.
@ -1723,6 +1725,13 @@ void LLFloaterPreference::onLanguageChange()
} }
} }
void LLFloaterPreference::onTimeFormatChange()
{
std::string val = mTimeFormatCombobox->getValue();
gSavedSettings.setBOOL("Use24HourClock", val == "1");
onLanguageChange();
}
void LLFloaterPreference::onNotificationsChange(const std::string& OptionName) void LLFloaterPreference::onNotificationsChange(const std::string& OptionName)
{ {
mNotificationOptions[OptionName] = getChild<LLComboBox>(OptionName)->getSelectedItemLabel(); mNotificationOptions[OptionName] = getChild<LLComboBox>(OptionName)->getSelectedItemLabel();
@ -2372,6 +2381,8 @@ void LLFloaterPreference::refresh()
advanced->refresh(); advanced->refresh();
} }
updateClickActionViews(); updateClickActionViews();
mTimeFormatCombobox->selectByValue(gSavedSettings.getBOOL("Use24HourClock") ? "1" : "0");
} }
void LLFloaterPreference::onCommitWindowedMode() void LLFloaterPreference::onCommitWindowedMode()

View File

@ -128,6 +128,7 @@ protected:
//void onClickClearCache(); // Clear viewer texture cache, file cache on next startup // AO: was protected, moved to public //void onClickClearCache(); // Clear viewer texture cache, file cache on next startup // AO: was protected, moved to public
void onClickBrowserClearCache(); // Clear web history and caches as well as viewer caches above void onClickBrowserClearCache(); // Clear web history and caches as well as viewer caches above
void onLanguageChange(); void onLanguageChange();
void onTimeFormatChange();
void onNotificationsChange(const std::string& OptionName); void onNotificationsChange(const std::string& OptionName);
void onNameTagOpacityChange(const LLSD& newvalue); void onNameTagOpacityChange(const LLSD& newvalue);
void onConsoleOpacityChange(const LLSD& newvalue); // <FS:CR> FIRE-1332 - Sepeate opacity settings for nametag and console chat void onConsoleOpacityChange(const LLSD& newvalue); // <FS:CR> FIRE-1332 - Sepeate opacity settings for nametag and console chat
@ -331,6 +332,7 @@ private:
LLButton* mDeleteTranscriptsBtn = nullptr; LLButton* mDeleteTranscriptsBtn = nullptr;
LLButton* mEnablePopupBtn = nullptr; LLButton* mEnablePopupBtn = nullptr;
LLButton* mDisablePopupBtn = nullptr; LLButton* mDisablePopupBtn = nullptr;
LLComboBox* mTimeFormatCombobox = nullptr;
std::unique_ptr< ll::prefs::SearchData > mSearchData; std::unique_ptr< ll::prefs::SearchData > mSearchData;
bool mSearchDataDirty; bool mSearchDataDirty;

View File

@ -242,6 +242,16 @@ void LLFloaterURLEntry::getMediaTypeCoro(std::string url, LLHandle<LLFloater> pa
resolvedMimeType = mimeType; resolvedMimeType = mimeType;
} }
} }
else if (resultHeaders.has(HTTP_IN_HEADER_X_CONTENT_TYPE_OPTIONS))
{
const std::string& val = resultHeaders[HTTP_IN_HEADER_X_CONTENT_TYPE_OPTIONS];
if (val == HTTP_NOSNIFF)
{
// Doesn't permit 'sniffing' mime type, default to either html or plain
// If this doesn't work user will have to choose something manually.
resolvedMimeType = HTTP_CONTENT_TEXT_HTML;
}
}
floaterUrlEntry->headerFetchComplete(status.getType(), resolvedMimeType); floaterUrlEntry->headerFetchComplete(status.getType(), resolvedMimeType);

View File

@ -84,13 +84,13 @@ const static std::string MULTI_LINE_PREFIX(" ");
* *
* Note: "You" was used as an avatar names in viewers of previous versions * Note: "You" was used as an avatar names in viewers of previous versions
*/ */
const static boost::regex TIMESTAMP_AND_STUFF("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}\\]\\s+|\\[\\d{1,2}:\\d{2}\\]\\s+)?(.*)$"); const static boost::regex TIMESTAMP_AND_STUFF("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}\\s[AaPp][Mm]\\]\\s+|\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}\\]\\s+|\\[\\d{1,2}:\\d{2}\\s[AaPp][Mm]\\]\\s+|\\[\\d{1,2}:\\d{2}\\]\\s+)?(.*)$");
const static boost::regex TIMESTAMP("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}\\]|\\[\\d{1,2}:\\d{2}\\]).*"); const static boost::regex TIMESTAMP("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}(\\s[AaPp][Mm])?\\]|\\[\\d{1,2}:\\d{2}(\\s[AaPp][Mm])?\\]).*");
// <FS:Ansariel> Timestamps in chat // <FS:Ansariel> Timestamps in chat
// Note: In contrast to the TIMESTAMP_AND_STUFF regex, for the TIMESTAMP_AND_STUFF_SEC regex the match // Note: In contrast to the TIMESTAMP_AND_STUFF regex, for the TIMESTAMP_AND_STUFF_SEC regex the match
// on the timestamp is NOT optional. We need this to decide during parsing if we have timestamps or not. // on the timestamp is NOT optional. We need this to decide during parsing if we have timestamps or not.
const static boost::regex TIMESTAMP_AND_STUFF_SEC("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}:\\d{2}\\]\\s+|\\[\\d{1,2}:\\d{2}:\\d{2}\\]\\s+)(.*)$"); const static boost::regex TIMESTAMP_AND_STUFF_SEC("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}:\\d{2}\\s[AaPp][Mm]\\]\\s+|\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}:\\d{2}\\]\\s+|\\[\\d{1,2}:\\d{2}:\\d{2}\\s[AaPp][Mm]\\]\\s+|\\[\\d{1,2}:\\d{2}:\\d{2}\\]\\s+)?(.*)$");
const static boost::regex TIMESTAMP_AND_SEC("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}:\\d{2}\\]|\\[\\d{1,2}:\\d{2}:\\d{2}\\]).*"); const static boost::regex TIMESTAMP_AND_SEC("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}:\\d{2}(\\s[AaPp][Mm])?\\]|\\[\\d{1,2}:\\d{2}:\\d{2}(\\s[AaPp][Mm])?\\]).*");
// </FS:Ansariel> // </FS:Ansariel>
/** /**
@ -166,6 +166,10 @@ public:
void checkAndCutOffDate(std::string& time_str) void checkAndCutOffDate(std::string& time_str)
{ {
if (time_str.size() < 10) // not enough space for a date
{
return;
}
// Cuts off the "%Y/%m/%d" from string for todays timestamps. // Cuts off the "%Y/%m/%d" from string for todays timestamps.
// Assume that passed string has at least "%H:%M" time format. // Assume that passed string has at least "%H:%M" time format.
date log_date(not_a_date_time); date log_date(not_a_date_time);
@ -182,20 +186,12 @@ public:
if ( days_alive == zero_days ) if ( days_alive == zero_days )
{ {
// Yep, today's so strip "%Y/%m/%d" info size_t pos = time_str.find_first_of(' ');
ptime stripped_time(not_a_date_time); if (pos != std::string::npos)
{
mTimeStream.str(LLStringUtil::null); time_str.erase(0, pos + 1);
mTimeStream << time_str; LLStringUtil::trim(time_str);
mTimeStream >> stripped_time; }
mTimeStream.clear();
time_str.clear();
mTimeStream.str(LLStringUtil::null);
mTimeStream << stripped_time;
mTimeStream >> time_str;
mTimeStream.clear();
} }
LL_DEBUGS("LLChatLogParser") LL_DEBUGS("LLChatLogParser")
@ -381,28 +377,29 @@ std::string LLLogChat::timestamp2LogString(U32 timestamp, bool withdate)
std::string timeStr; std::string timeStr;
if (withdate) if (withdate)
{ {
timeStr = "[" + LLTrans::getString ("TimeYear") + "]/[" timeStr = "[" + LLTrans::getString("TimeYear") + "]/["
+ LLTrans::getString ("TimeMonth") + "]/[" + LLTrans::getString("TimeMonth") + "]/["
+ LLTrans::getString ("TimeDay") + "] [" + LLTrans::getString("TimeDay") + "] ";
+ LLTrans::getString ("TimeHour") + "]:[" }
+ LLTrans::getString ("TimeMin") + "]";
static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
if (use_24h)
{
timeStr += "[" + LLTrans::getString("TimeHour") + "]:["
+ LLTrans::getString("TimeMin") + "]";
// <FS> Seconds in timestamps // <FS> Seconds in timestamps
if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps")) if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps"))
{ {
timeStr += ":[" + LLTrans::getString ("TimeSec") + "]"; timeStr += ":[" + LLTrans::getString("TimeSec") + "]";
} }
// </FS> // </FS>
} }
else else
{ {
timeStr = "[" + LLTrans::getString("TimeHour") + "]:[" timeStr += "[" + LLTrans::getString("TimeHour12") + "]:["
+ LLTrans::getString ("TimeMin")+"]"; + LLTrans::getString("TimeMin") + "]"
// <FS> Seconds in timestamps + (gSavedSettings.getBOOL("FSSecondsinChatTimestamps") ? ":[" + LLTrans::getString("TimeSec") + "] [" : " [") // <FS> Seconds in timestamps
if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps")) + LLTrans::getString("TimeAMPM") + "]";
{
timeStr += ":[" + LLTrans::getString ("TimeSec") + "]";
}
// </FS>
} }
LLSD substitution; LLSD substitution;

View File

@ -38,6 +38,7 @@
#include "lluicolortable.h" #include "lluicolortable.h"
#include "message.h" #include "message.h"
#include "llnotificationsutil.h" #include "llnotificationsutil.h"
#include "llviewercontrol.h"
#include <boost/regex.hpp> #include <boost/regex.hpp>
LLNotificationListItem::LLNotificationListItem(const Params& p) : LLPanel(p), LLNotificationListItem::LLNotificationListItem(const Params& p) : LLPanel(p),
@ -112,42 +113,60 @@ LLNotificationListItem::~LLNotificationListItem()
std::string LLNotificationListItem::buildNotificationDate(const LLDate& time_stamp, ETimeType time_type) std::string LLNotificationListItem::buildNotificationDate(const LLDate& time_stamp, ETimeType time_type)
{ {
std::string timeStr; std::string timeStr;
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
timeStr = use_24h ? LLTrans::getString("NotificationItemDateString") : LLTrans::getString("NotificationItemDateStringAMPM");
// </FS:Ansariel>
switch(time_type) switch(time_type)
{ {
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices // <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
//case Local: //case Local:
// timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/[" // timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/["
// +LLTrans::getString("LTimeDay")+"]/[" // +LLTrans::getString("LTimeDay")+"]/["
// +LLTrans::getString("LTimeYear")+"] [" // +LLTrans::getString("LTimeYear")+"] ["
// +LLTrans::getString("LTimeHour")+"]:[" // +LLTrans::getString("LTimeHour")+"]:["
// +LLTrans::getString("LTimeMin")+ "]"; // +LLTrans::getString("LTimeMin")+ "]";
// break; // break;
//case UTC: //case UTC:
// timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/[" // timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/["
// +LLTrans::getString("UTCTimeDay")+"]/[" // +LLTrans::getString("UTCTimeDay")+"]/["
// +LLTrans::getString("UTCTimeYr")+"] [" // +LLTrans::getString("UTCTimeYr")+"] ["
// +LLTrans::getString("UTCTimeHr")+"]:[" // +LLTrans::getString("UTCTimeHr")+"]:["
// +LLTrans::getString("UTCTimeMin")+"] [" // +LLTrans::getString("UTCTimeMin")+"] ["
// +LLTrans::getString("UTCTimeTimezone")+"]"; // +LLTrans::getString("UTCTimeTimezone")+"]";
// break; // break;
//case SLT: //case SLT:
//default: //default:
// timeStr = "[" + LLTrans::getString("TimeMonth") + "]/[" // timeStr = "[" + LLTrans::getString("TimeMonth") + "]/["
// +LLTrans::getString("TimeDay")+"]/[" // +LLTrans::getString("TimeDay")+"]/["
// +LLTrans::getString("TimeYear")+"] [" // +LLTrans::getString("TimeYear")+"] [";
// +LLTrans::getString("TimeHour")+"]:["
// +LLTrans::getString("TimeMin")+"] [" // static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
// +LLTrans::getString("TimeTimezone")+"]"; // if (use_24h)
// break; // {
// timeStr += LLTrans::getString("TimeHour") + "]:["
// + LLTrans::getString("TimeMin") + "] ["
// + LLTrans::getString("TimeTimezone") + "]";
// }
// else
// {
// timeStr += LLTrans::getString("TimeHour12") + "]:["
// + LLTrans::getString("TimeMin") + "] ["
// + LLTrans::getString("TimeAMPM") + "] ["
// + LLTrans::getString("TimeTimezone") + "]";
// }
// break;
case Local: case Local:
timeStr = LLTrans::getString("NotificationItemDateStringLocal"); LLStringUtil::replaceString(timeStr, "utc", "local");
break; break;
case UTC: case UTC:
timeStr = LLTrans::getString("NotificationItemDateStringUTC"); // No-op (utc is default)
break; break;
case SLT: case SLT:
default: default:
timeStr = LLTrans::getString("NotificationItemDateStringSLT"); LLStringUtil::replaceString(timeStr, "utc", "slt");
break; break;
// </FS:Ansariel> // </FS:Ansariel>
} }

View File

@ -204,7 +204,8 @@ std::string build_notice_date(const U32& the_time)
// + LLTrans::getString("LTimeHour") + "]:[" // + LLTrans::getString("LTimeHour") + "]:["
// + LLTrans::getString("LTimeMin") + "]:[" // + LLTrans::getString("LTimeMin") + "]:["
// + LLTrans::getString("LTimeSec") + "]"; // + LLTrans::getString("LTimeSec") + "]";
std::string dateStr = LLTrans::getString("GroupNoticesPanelDateString"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string dateStr = use_24h ? LLTrans::getString("GroupNoticesPanelDateString") : LLTrans::getString("GroupNoticesPanelDateStringAMPM");
// </FS:Ansariel> // </FS:Ansariel>
LLSD substitution; LLSD substitution;

View File

@ -41,6 +41,7 @@
#include "lllandmarkactions.h" #include "lllandmarkactions.h"
#include "llparcel.h" #include "llparcel.h"
#include "llslurl.h" #include "llslurl.h"
#include "llviewercontrol.h"
#include "llviewerinventory.h" #include "llviewerinventory.h"
#include "llviewerparcelmgr.h" #include "llviewerparcelmgr.h"
#include "llviewerregion.h" #include "llviewerregion.h"
@ -326,7 +327,8 @@ void LLPanelLandmarkInfo::displayItemInfo(const LLInventoryItem* pItem)
} }
else else
{ {
std::string timeStr = getString("acquired_date"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string timeStr = use_24h ? getString("acquired_date") : getString("acquired_date_ampm");
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32) time_utc; substitution["datetime"] = (S32) time_utc;
LLStringUtil::format (timeStr, substitution); LLStringUtil::format (timeStr, substitution);

View File

@ -42,6 +42,7 @@
#include "llnotificationsutil.h" #include "llnotificationsutil.h"
#include "lltextbox.h" #include "lltextbox.h"
#include "lltoggleablemenu.h" #include "lltoggleablemenu.h"
#include "llviewercontrol.h"
#include "llviewermenu.h" #include "llviewermenu.h"
#include "lllandmarkactions.h" #include "lllandmarkactions.h"
#include "llclipboard.h" #include "llclipboard.h"
@ -252,15 +253,26 @@ std::string LLTeleportHistoryFlatItem::getTimestamp()
//// Only show timestamp for today and yesterday //// Only show timestamp for today and yesterday
//if(time_diff < seconds_today + seconds_in_day) //if(time_diff < seconds_today + seconds_in_day)
//{ //{
// timestamp = "[" + LLTrans::getString("TimeHour12")+"]:[" // static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
// + LLTrans::getString("TimeMin")+"] ["+ LLTrans::getString("TimeAMPM")+"]"; // if (use_24h)
// LLSD substitution; // {
// substitution["datetime"] = (S32) date.secondsSinceEpoch(); // timestamp = "[" + LLTrans::getString("TimeHour") + "]:["
// LLStringUtil::format(timestamp, substitution); // + LLTrans::getString("TimeMin") + "]";
// }
// else
// {
// timestamp = "[" + LLTrans::getString("TimeHour12") + "]:["
// + LLTrans::getString("TimeMin") + "] [" + LLTrans::getString("TimeAMPM") + "]";
// }
// LLSD substitution;
// substitution["datetime"] = (S32) date.secondsSinceEpoch();
// LLStringUtil::format(timestamp, substitution);
//} //}
LLSD args; LLSD args;
args["datetime"] = date.secondsSinceEpoch(); args["datetime"] = date.secondsSinceEpoch();
timestamp = getString("DateFmt"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
timestamp = use_24h ? getString("DateFmt") : getString("DateFmtAMPM");
//<FS:Beq [timezone support for teleport history]> //<FS:Beq [timezone support for teleport history]>
// Check whether we have an override for the timezone // Check whether we have an override for the timezone
static const std::string xml_timezone = "utc"; // In case we decide to change the XML default ! static const std::string xml_timezone = "utc"; // In case we decide to change the XML default !

View File

@ -527,7 +527,8 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
} }
else else
{ {
std::string timeStr = getString("acquiredDate"); static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string timeStr = use_24h ? getString("acquiredDate") : getString("acquiredDateAMPM");
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32) time_utc; substitution["datetime"] = (S32) time_utc;
LLStringUtil::format (timeStr, substitution); LLStringUtil::format (timeStr, substitution);

View File

@ -97,16 +97,28 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(const LLNotificationPtr& notifi
const std::string& message = payload["message"].asString(); const std::string& message = payload["message"].asString();
// <FS:Ansariel> FIRE-17649: Localizable date formats for group notices // <FS:Ansariel> FIRE-17649: Localizable date formats for group notices
//std::string timeStr = "["+LLTrans::getString("TimeWeek")+"], [" //std::string timeStr = "[" + LLTrans::getString("TimeWeek") + "], ["
// +LLTrans::getString("TimeMth")+"] [" // + LLTrans::getString("TimeMonth") + "]/["
// +LLTrans::getString("TimeDay")+"] [" // + LLTrans::getString("TimeDay") + "]/["
// +LLTrans::getString("TimeYear")+"] [" // + LLTrans::getString("TimeYear") + "] [";
// +LLTrans::getString("TimeHour")+"]:[" //static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
// +LLTrans::getString("TimeMin")+"]:[" //if (use_24h)
// +LLTrans::getString("TimeSec")+"] [" //{
// +LLTrans::getString("TimeTimezone")+"]"; // timeStr += LLTrans::getString("TimeHour") + "]:["
std::string timeStr = LLTrans::getString("GroupNoticesToastDateString"); // + LLTrans::getString("TimeMin") + "] ["
// + LLTrans::getString("TimeTimezone") + "]";
//}
//else
//{
// timeStr += LLTrans::getString("TimeHour12") + "]:["
// + LLTrans::getString("TimeMin") + "] ["
// + LLTrans::getString("TimeAMPM") + "] ["
// + LLTrans::getString("TimeTimezone") + "]";
//}
static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
std::string timeStr = use_24h ? LLTrans::getString("GroupNoticesToastDateString") : LLTrans::getString("GroupNoticesToastDateStringAMPM");
// </FS:Ansariel> // </FS:Ansariel>
const LLDate timeStamp = notification->getDate(); const LLDate timeStamp = notification->getDate();
LLDate notice_date = timeStamp.notNull() ? timeStamp : payload["received_time"].asDate(); LLDate notice_date = timeStamp.notNull() ? timeStamp : payload["received_time"].asDate();
LLSD substitution; LLSD substitution;

View File

@ -1650,6 +1650,11 @@ void render_ui(F32 zoom_factor, int subfield)
render_disconnected_background(); render_disconnected_background();
} }
} }
else
{
// Make sure particle effects disappear
LLHUDObject::renderAllForTimer();
}
if (render_ui) if (render_ui)
{ {

View File

@ -32,6 +32,7 @@
#include "message.h" #include "message.h"
#include "lltracker.h" #include "lltracker.h"
#include "lluistring.h" #include "lluistring.h"
#include "llviewercontrol.h"
#include "llviewertexturelist.h" #include "llviewertexturelist.h"
#include "lltrans.h" #include "lltrans.h"
#include "llgltexture.h" #include "llgltexture.h"
@ -555,9 +556,20 @@ bool LLWorldMap::insertItem(U32 x_world, U32 y_world, std::string& name, LLUUID&
case MAP_ITEM_MATURE_EVENT: case MAP_ITEM_MATURE_EVENT:
case MAP_ITEM_ADULT_EVENT: case MAP_ITEM_ADULT_EVENT:
{ {
std::string timeStr = "["+ LLTrans::getString ("TimeHour")+"]:[" std::string timeStr;
+LLTrans::getString ("TimeMin")+"] ["
+LLTrans::getString ("TimeAMPM")+"]"; static bool use_24h = gSavedSettings.getBOOL("Use24HourClock");
if (use_24h)
{
timeStr = "[" + LLTrans::getString("TimeHour") + "]:["
+ LLTrans::getString("TimeMin") + "]";
}
else
{
timeStr = "[" + LLTrans::getString("TimeHour12") + "]:["
+ LLTrans::getString("TimeMin") + "] ["
+ LLTrans::getString("TimeAMPM") + "]";
}
LLSD substitution; LLSD substitution;
substitution["datetime"] = (S32) extra; substitution["datetime"] = (S32) extra;
LLStringUtil::format (timeStr, substitution); LLStringUtil::format (timeStr, substitution);

View File

@ -3,6 +3,9 @@
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc]
</panel.string> </panel.string>
<panel.string name="DateFmtAMPM">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_date"> <layout_panel name="lp_date">
<text name="timestamp" value="01.01.2000 12:00"/> <text name="timestamp" value="01.01.2000 12:00"/>

View File

@ -6706,17 +6706,20 @@ Yerləşməniz: [AVATAR_POS]
<string name="GroupNoticesPanelDateString"> <string name="GroupNoticesPanelDateString">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<string name="GroupNoticesPanelDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local]
</string>
<string name="GroupNoticesToastDateString"> <string name="GroupNoticesToastDateString">
[wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] [wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringLocal"> <string name="GroupNoticesToastDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local] [wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringUTC"> <string name="NotificationItemDateString">
[day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="NotificationItemDateStringSLT"> <string name="NotificationItemDateStringAMPM">
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="Pie_av_render_normally"> <string name="Pie_av_render_normally">
Adətən Adətən

View File

@ -15,6 +15,9 @@
<panel.string name="acquiredDate"> <panel.string name="acquiredDate">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
</panel.string> </panel.string>
<panel.string name="acquiredDateAMPM">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] [year,datetime,local]
</panel.string>
<panel.string name="origin_inventory"> <panel.string name="origin_inventory">
(Beholdning) (Beholdning)
</panel.string> </panel.string>

View File

@ -71,8 +71,11 @@
<panel.string name="no_selection_text"> <panel.string name="no_selection_text">
Keine Parzelle ausgewählt. Keine Parzelle ausgewählt.
</panel.string> </panel.string>
<panel.string name="time_stamp_template_ampm">
[wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt]
</panel.string>
<panel.string name="time_stamp_template"> <panel.string name="time_stamp_template">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
</panel.string> </panel.string>
<panel.string name="error_resolving_uuid"> <panel.string name="error_resolving_uuid">
Parzellen-ID konnte nicht ermittelt werden. Parzellen-ID konnte nicht ermittelt werden.

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="inspect" title="Objekte untersuchen"> <floater name="inspect" title="Objekte untersuchen">
<floater.string name="timeStampAMPM">
[wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt]
</floater.string>
<floater.string name="timeStamp"> <floater.string name="timeStamp">
[wkday,datetime,slt] [day,datetime,slt]. [mth,datetime,slt] [year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
</floater.string> </floater.string>
<floater.string name="Group"> <floater.string name="Group">
(Gruppe) (Gruppe)

View File

@ -5,7 +5,8 @@
<floater.string name="public">(öffentlich)</floater.string> <floater.string name="public">(öffentlich)</floater.string>
<floater.string name="you_can">Sie können:</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="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> <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>
<floater.string name="acquiredDateAMPM">[wkday,datetime,local]. [day,datetime,local]. [mth,datetime,local]. [year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local]</floater.string>
<text name="LabelItemNameTitle">Name:</text> <text name="LabelItemNameTitle">Name:</text>
<text name="LabelItemDescTitle">Beschreibung:</text> <text name="LabelItemDescTitle">Beschreibung:</text>
<text name="LabelCreatorTitle">Ersteller:</text> <text name="LabelCreatorTitle">Ersteller:</text>

View File

@ -659,7 +659,7 @@ Möchten Sie den Viewer schließen und anschließend manuell neu starten, um die
<usetemplate name="okcancelbuttons" notext="Später" yestext="Jetzt beenden"/> <usetemplate name="okcancelbuttons" notext="Später" yestext="Jetzt beenden"/>
</notification> </notification>
<notification name="ChangeLanguage"> <notification name="ChangeLanguage">
Die Sprachänderung tritt nach Neustart von [APP_NAME] in Kraft. Die Änderung der Sprache oder des Uhrzeitformats tritt nach Neustart von [APP_NAME] in Kraft.
</notification> </notification>
<notification name="GoToAuctionPage"> <notification name="GoToAuctionPage">
Zur [CURRENT_GRID]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben? Zur [CURRENT_GRID]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben?

View File

@ -15,8 +15,11 @@
<string name="server_forbidden_text"> <string name="server_forbidden_text">
Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle. Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle.
</string> </string>
<string name="acquired_date_ampm">
[wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt]
</string>
<string name="acquired_date"> <string name="acquired_date">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
</string> </string>
<string name="information_text"> <string name="information_text">
Traffic: [TRAFFIC] Gebiet: [AREA] m² Traffic: [TRAFFIC] Gebiet: [AREA] m²

View File

@ -38,10 +38,12 @@
<string name="server_forbidden_text"> <string name="server_forbidden_text">
Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle. Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle.
</string> </string>
<string name="acquired_date"> <string name="acquired_date_ampm">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] [wkday,datetime,local]. [day,datetime,local]. [mth,datetime,local]. [year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local]
</string>
<string name="acquired_date">
[wkday,datetime,local]. [day,datetime,local]. [mth,datetime,local]. [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<layout_stack name="place_info_sidetray_main"> <layout_stack name="place_info_sidetray_main">
<layout_panel name="header_container"> <layout_panel name="header_container">

View File

@ -20,6 +20,16 @@
<text name="language_textbox2"> <text name="language_textbox2">
(Erfordert Neustart) (Erfordert Neustart)
</text> </text>
<text name="time_format_textbox">
Uhrzeitformat:
</text>
<combo_box name="time_format_combobox">
<combo_box.item label="1:00 AM" name="12H"/>
<combo_box.item label="13:00" name="24H"/>
</combo_box>
<text name="time_format_textbox2">
(Erfordert Neustart)
</text>
<check_box label="IME-Texteingabe aktivieren" name="use_ime" tool_tip="Input Method Editor für Texteingabe aktivieren - nur für spezielle Sprachen wie z.B. Japanisch oder Chinesisch benötigt."/> <check_box label="IME-Texteingabe aktivieren" name="use_ime" tool_tip="Input Method Editor für Texteingabe aktivieren - nur für spezielle Sprachen wie z.B. Japanisch oder Chinesisch benötigt."/>
<text name="maturity_desired_prompt" width="320"> <text name="maturity_desired_prompt" width="320">
Auf Inhalte mit folgender Einstufung zugreifen: Auf Inhalte mit folgender Einstufung zugreifen:

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="teleport_history_item"> <panel name="teleport_history_item">
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc]
</panel.string>
<panel.string name="DateFmtAMPM">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string> </panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_region" width="165"> <layout_panel name="lp_region" width="165">

View File

@ -19,7 +19,10 @@
Eigentümer kann: Eigentümer kann:
</panel.string> </panel.string>
<panel.string name="acquiredDate"> <panel.string name="acquiredDate">
[wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
</panel.string>
<panel.string name="acquiredDateAMPM">
[wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt]
</panel.string> </panel.string>
<panel.string name="origin_inventory"> <panel.string name="origin_inventory">
(Inventar) (Inventar)

View File

@ -2954,7 +2954,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich unter http://suppo
Soll Soll
</string> </string>
<string name="GroupMoneyStartDate"> <string name="GroupMoneyStartDate">
Transaktionen seit [weekday,datetime,utc], [day,datetime,utc]. [mth,datetime,utc] [year,datetime,utc] Transaktionen seit [weekday,datetime,utc], [day,datetime,utc]. [mth,datetime,utc]. [year,datetime,utc]
</string> </string>
<string name="AcquiredItems"> <string name="AcquiredItems">
Erworbene Artikel Erworbene Artikel
@ -5430,10 +5430,10 @@ Falls der Fehler weiterhin auftritt, überprüfen Sie bitte Ihre Netzwerk- und F
[MDAY] [MDAY]
</string> </string>
<string name="dateTimeAM"> <string name="dateTimeAM">
Uhr AM
</string> </string>
<string name="dateTimePM"> <string name="dateTimePM">
Uhr PM
</string> </string>
<string name="LocalEstimateUSD"> <string name="LocalEstimateUSD">
[AMOUNT] US$ [AMOUNT] US$
@ -7212,17 +7212,20 @@ Ihre aktuelle Position: [AVATAR_POS]
<string name="GroupNoticesPanelDateString"> <string name="GroupNoticesPanelDateString">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<string name="GroupNoticesPanelDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local]
</string>
<string name="GroupNoticesToastDateString"> <string name="GroupNoticesToastDateString">
[wkday,datetime,slt]., [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringLocal"> <string name="GroupNoticesToastDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local] [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringUTC"> <string name="NotificationItemDateString">
[day,datetime,utc].[mth,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] [day,datetime,utc]. [mth,datetime,utc]. [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="NotificationItemDateStringSLT"> <string name="NotificationItemDateStringAMPM">
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] [day,datetime,utc]. [mth,datetime,utc]. [year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="Pie_av_render_normally"> <string name="Pie_av_render_normally">
Normal Normal

View File

@ -120,6 +120,9 @@
name="no_selection_text"> name="no_selection_text">
No parcel selected. No parcel selected.
</panel.string> </panel.string>
<panel.string name="time_stamp_template_ampm">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [year,datetime,slt]
</panel.string>
<panel.string name="time_stamp_template"> <panel.string name="time_stamp_template">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
</panel.string> </panel.string>

View File

@ -11,9 +11,13 @@
save_rect="true" save_rect="true"
title="Inspect Objects" title="Inspect Objects"
width="610"> width="610">
<floater.string
name="timeStampAMPM">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [year,datetime,slt]
</floater.string>
<floater.string <floater.string
name="timeStamp"> name="timeStamp">
[year,datetime,slt] [mth,datetime,slt] [day,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt], [wkday,datetime,slt] [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
</floater.string> </floater.string>
<floater.string <floater.string
name="Group"> name="Group">

View File

@ -32,6 +32,10 @@
name="acquiredDate"> name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</floater.string> </floater.string>
<floater.string
name="acquiredDateAMPM">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] [year,datetime,local]
</floater.string>
<icon <icon
follows="top|right" follows="top|right"
height="18" height="18"

View File

@ -1718,7 +1718,7 @@ Would you like to shutdown the viewer and launch it manually again in order to a
icon="alertmodal.tga" icon="alertmodal.tga"
name="ChangeLanguage" name="ChangeLanguage"
type="alertmodal"> type="alertmodal">
The selected language will be applied after restarting [APP_NAME]. The selected language or zime format will be applied after restarting [APP_NAME].
</notification> </notification>
<notification <notification

View File

@ -39,6 +39,10 @@
name="server_forbidden_text"> name="server_forbidden_text">
Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner. Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner.
</string> </string>
<string
name="acquired_date_ampm">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [year,datetime,slt]
</string>
<string <string
name="acquired_date"> name="acquired_date">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]

View File

@ -87,6 +87,10 @@
name="server_forbidden_text"> name="server_forbidden_text">
Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner. Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner.
</string> </string>
<string
name="acquired_date_ampm">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] [year,datetime,local]
</string>
<string <string
name="acquired_date"> name="acquired_date">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]

View File

@ -104,7 +104,7 @@
value="zh" /> value="zh" />
</combo_box> </combo_box>
<text <text
top_delta="4" top_delta="4"
font="SansSerifSmall" font="SansSerifSmall"
type="string" type="string"
text_color="White_50" text_color="White_50"
@ -117,6 +117,51 @@
width="130"> width="130">
(Requires restart) (Requires restart)
</text> </text>
<text
type="string"
length="1"
follows="left|top"
height="15"
layout="topleft"
left="300"
name="time_format_textbox"
top="10"
width="200">
Time Format:
</text>
<combo_box
follows="left|top"
height="23"
layout="topleft"
left="300"
max_chars="135"
name="time_format_combobox"
width="70">
<combo_box.item
enabled="true"
label="1:00 AM"
name="12H"
value="0" />
<combo_box.item
enabled="true"
label="13:00"
name="24H"
value="1" />
</combo_box>
<text
top_delta="4"
font="SansSerifSmall"
type="string"
text_color="White_50"
length="1"
follows="left|top"
height="15"
layout="topleft"
left_pad="5"
name="time_format_textbox2"
width="130">
(Requires restart)
</text>
<check_box <check_box
control_name="SDL2IMEEnabled" control_name="SDL2IMEEnabled"
height="16" height="16"

View File

@ -8,6 +8,9 @@
top="0" top="0"
width="380"> width="380">
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc]
</panel.string>
<panel.string name="DateFmtAMPM">
[mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string> </panel.string>
<icon <icon

View File

@ -31,6 +31,10 @@
name="owner_can"> name="owner_can">
Owner can: Owner can:
</panel.string> </panel.string>
<panel.string
name="acquiredDateAMPM">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt], [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt]
</panel.string>
<panel.string <panel.string
name="acquiredDate"> name="acquiredDate">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]

View File

@ -3275,10 +3275,11 @@ Your current position: [AVATAR_POS]
<string name="CallingCardOnlineLabelSuffix">(online)</string> <string name="CallingCardOnlineLabelSuffix">(online)</string>
<string name="GroupNoticesPanelDateString">[year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</string> <string name="GroupNoticesPanelDateString">[year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</string>
<string name="GroupNoticesToastDateString">[wkday,datetime,slt], [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [timezone,datetime,slt]</string> <string name="GroupNoticesPanelDateStringAMPM">[year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [timezone,datetime,local]</string>
<string name="NotificationItemDateStringLocal">[mthnum,datetime,local]/[day,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local]</string> <string name="GroupNoticesToastDateString">[wkday,datetime,slt], [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]</string>
<string name="NotificationItemDateStringUTC">[mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]</string> <string name="GroupNoticesToastDateStringAMPM">[wkday,datetime,slt], [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [timezone,datetime,slt]</string>
<string name="NotificationItemDateStringSLT">[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt]</string> <string name="NotificationItemDateString">[mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]</string>
<string name="NotificationItemDateStringAMPM">[mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,ampm] [timezone,datetime,utc]</string>
<string name="Pie_av_render_normally">Normally</string> <string name="Pie_av_render_normally">Normally</string>
<string name="Pie_av_render_never">Never</string> <string name="Pie_av_render_never">Never</string>

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="teleport_history_item"> <panel name="teleport_history_item">
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[year,datetime,utc]/[mthnum,datetime,utc]/[day,datetime,utc] [hour24,datetime,utc]:[min,datetime,utc] [year,datetime,utc]/[mthnum,datetime,utc]/[day,datetime,utc] [hour,datetime,utc]:[min,datetime,utc]
</panel.string>
<panel.string name="DateFmtAMPM">
[year,datetime,utc]/[mthnum,datetime,utc]/[day,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string> </panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_date"> <layout_panel name="lp_date">

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="teleport_history_item"> <panel name="teleport_history_item">
<panel.string name="DateFmt">[day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc]</panel.string> <panel.string name="DateFmt">[day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc]</panel.string>
<panel.string name="DateFmtAMPM">[day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]</panel.string>
<button name="profile_btn" tool_tip="Afficher les propriétés de l'objet"/> <button name="profile_btn" tool_tip="Afficher les propriétés de l'objet"/>
</panel> </panel>

View File

@ -3,6 +3,9 @@
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc]
</panel.string> </panel.string>
<panel.string name="DateFmtAMPM">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_date"> <layout_panel name="lp_date">
<text name="timestamp" value="01.01.2000 12:00"/> <text name="timestamp" value="01.01.2000 12:00"/>

View File

@ -6621,17 +6621,20 @@ Assistenza nel sito SecondLife.com e segnala il problema.
<string name="GroupNoticesPanelDateString"> <string name="GroupNoticesPanelDateString">
[day,datetime,local]/[mthnum,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [day,datetime,local]/[mthnum,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<string name="GroupNoticesPanelDateStringAMPM">
[day,datetime,local]/[mthnum,datetime,local]/[year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [timezone,datetime,local]
</string>
<string name="GroupNoticesToastDateString"> <string name="GroupNoticesToastDateString">
[wkday,datetime,slt] [day,datetime,slt]/[mth,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] [wkday,datetime,slt] [day,datetime,slt]/[mth,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringLocal"> <string name="GroupNoticesToastDateStringAMPM">
[day,datetime,local]/[mthnum,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local] [wkday,datetime,slt] [day,datetime,slt]/[mth,datetime,slt]/[year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,local] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringUTC"> <string name="NotificationItemDateString">
[day,datetime,utc]/[mth,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] [day,datetime,utc]/[mth,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="NotificationItemDateStringSLT"> <string name="NotificationItemDateStringAMPM">
[day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] [day,datetime,utc]/[mth,datetime,utc]/[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="Pie_av_render_normally"> <string name="Pie_av_render_normally">
Normalmente Normalmente

View File

@ -3,6 +3,9 @@
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc]
</panel.string> </panel.string>
<panel.string name="DateFmtAMPM">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_date"> <layout_panel name="lp_date">
<text name="timestamp" value="01.01.2000 12:00"/> <text name="timestamp" value="01.01.2000 12:00"/>

View File

@ -6579,17 +6579,20 @@ Twoja aktualna pozycja: [AVATAR_POS]
<string name="GroupNoticesPanelDateString"> <string name="GroupNoticesPanelDateString">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local], [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [day,datetime,local].[mthnum,datetime,local].[year,datetime,local], [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<string name="GroupNoticesPanelDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local], [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [timezone,datetime,local]
</string>
<string name="GroupNoticesToastDateString"> <string name="GroupNoticesToastDateString">
[wkday,datetime,slt]., [day,datetime,slt].[mth,datetime,slt].[year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] [wkday,datetime,slt]., [day,datetime,slt].[mth,datetime,slt].[year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringLocal"> <string name="GroupNoticesToastDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local], [hour,datetime,local]:[min,datetime,local] [wkday,datetime,slt]., [day,datetime,slt].[mth,datetime,slt].[year,datetime,slt], [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,local] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringUTC"> <string name="NotificationItemDateString">
[day,datetime,utc].[mth,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] [day,datetime,utc].[mth,datetime,utc].[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="NotificationItemDateStringSLT"> <string name="NotificationItemDateStringAMPM">
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] [day,datetime,utc].[mth,datetime,utc].[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="Pie_av_render_normally"> <string name="Pie_av_render_normally">
Normalnie Normalnie

View File

@ -3,6 +3,9 @@
<panel.string name="DateFmt"> <panel.string name="DateFmt">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc]
</panel.string> </panel.string>
<panel.string name="DateFmtAMPM">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
</panel.string>
<layout_stack name="ls_item"> <layout_stack name="ls_item">
<layout_panel name="lp_date"> <layout_panel name="lp_date">
<text name="timestamp" value="01.01.2000 12:00"/> <text name="timestamp" value="01.01.2000 12:00"/>

View File

@ -6815,17 +6815,20 @@ ID объекта: [INSPECTING_KEY]
<string name="GroupNoticesPanelDateString"> <string name="GroupNoticesPanelDateString">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string> </string>
<string name="GroupNoticesPanelDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [timezone,datetime,local]
</string>
<string name="GroupNoticesToastDateString"> <string name="GroupNoticesToastDateString">
[wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] [wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringLocal"> <string name="GroupNoticesToastDateStringAMPM">
[day,datetime,local].[mthnum,datetime,local].[year,datetime,local] [hour,datetime,local]:[min,datetime,local] [wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,local] [timezone,datetime,slt]
</string> </string>
<string name="NotificationItemDateStringUTC"> <string name="NotificationItemDateString">
[day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="NotificationItemDateStringSLT"> <string name="NotificationItemDateStringAMPM">
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] [timezone,datetime,utc]
</string> </string>
<string name="Pie_av_render_normally"> <string name="Pie_av_render_normally">
Обычно Обычно

View File

@ -32,6 +32,7 @@
#include "lltrans.h" #include "lltrans.h"
#include "lluistring.h" #include "lluistring.h"
#include "../llviewertexture.h" #include "../llviewertexture.h"
#include "../llviewercontrol.h"
#include "../llworldmapmessage.h" #include "../llworldmapmessage.h"
// Class to test // Class to test
#include "../llworldmap.h" #include "../llworldmap.h"
@ -71,6 +72,11 @@ void LLUIString::updateResult() const { }
void LLUIString::setArg(const std::string& , const std::string& ) { } void LLUIString::setArg(const std::string& , const std::string& ) { }
void LLUIString::assign(const std::string& ) { } void LLUIString::assign(const std::string& ) { }
LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name) {}
LLControlGroup::~LLControlGroup() {}
bool LLControlGroup::getBOOL(std::string_view) { return true; }
LLControlGroup gSavedSettings("test_settings");
// End Stubbing // End Stubbing
// ------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------