diff --git a/indra/llcorehttp/llhttpconstants.cpp b/indra/llcorehttp/llhttpconstants.cpp index 40d6c7506c..7a671543d9 100755 --- a/indra/llcorehttp/llhttpconstants.cpp +++ b/indra/llcorehttp/llhttpconstants.cpp @@ -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_SET_COOKIE("set-cookie"); 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_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_CONTROL("no-cache, max-age=0"); +const std::string HTTP_NOSNIFF("nosniff"); const std::string HTTP_VERB_INVALID("(invalid)"); const std::string HTTP_VERB_HEAD("HEAD"); diff --git a/indra/llcorehttp/llhttpconstants.h b/indra/llcorehttp/llhttpconstants.h index 583f9fbcb7..71c1dfa173 100755 --- a/indra/llcorehttp/llhttpconstants.h +++ b/indra/llcorehttp/llhttpconstants.h @@ -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_SET_COOKIE; 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; //// HTTP Content Types //// @@ -215,5 +216,6 @@ extern const std::string HTTP_CONTENT_IMAGE_BMP; //// HTTP Cache Settings //// extern const std::string HTTP_NO_CACHE; extern const std::string HTTP_NO_CACHE_CONTROL; +extern const std::string HTTP_NOSNIFF; #endif diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index aefb6d32dc..531bac5b53 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -17237,9 +17237,9 @@ Change of this parameter will affect the layout of buttons in notification toast Use24HourClock Comment - 12 vs 24. At the moment only for region restart schedule floater + 12 vs 24. At the moment coverage is partial Persist - 0 + 1 Type Boolean Value diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c8f24a181d..25569008ea 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1425,10 +1425,19 @@ bool LLAppViewer::init() LLStringOps::setupMonthShortNames(LLTrans::getString("dateTimeMonthShortNames")); LLStringOps::setupDayFormat(LLTrans::getString("dateTimeDayFormat")); - LLStringOps::sAM = LLTrans::getString("dateTimeAM"); - LLStringOps::sPM = LLTrans::getString("dateTimePM"); + // 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"); + // } + // 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"); + // + LLAgentLanguage::init(); /// Tell the Coprocedure manager how to discover and store the pool sizes diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 2e5b6abdf8..d955bdf613 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -455,6 +455,7 @@ public: time_t current_time = time_corrected(); 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") + "]/[" + LLTrans::getString("TimeDay") + "]/[" + LLTrans::getString("TimeYear") + "] [" diff --git a/indra/newview/llconversationlog.cpp b/indra/newview/llconversationlog.cpp index 4c8939d4e1..a7f3a751ae 100644 --- a/indra/newview/llconversationlog.cpp +++ b/indra/newview/llconversationlog.cpp @@ -123,11 +123,21 @@ const std::string LLConversation::createTimestamp(const U64Seconds& utc_time) LLSD substitution; substitution["datetime"] = (S32)utc_time.value(); - timeStr = "["+LLTrans::getString ("TimeMonth")+"]/[" - +LLTrans::getString ("TimeDay")+"]/[" - +LLTrans::getString ("TimeYear")+"] [" - +LLTrans::getString ("TimeHour")+"]:[" - +LLTrans::getString ("TimeMin")+"]"; + static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + timeStr = "[" + LLTrans::getString("TimeMonth") + "]/[" + + LLTrans::getString("TimeDay") + "]/[" + + LLTrans::getString("TimeYear") + "] ["; + 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); diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 879dc0e008..153fb807cb 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -620,8 +620,19 @@ void LLFloaterIMSessionTab::deleteAllChildren() std::string LLFloaterIMSessionTab::appendTime() { - std::string timeStr = "[" + LLTrans::getString("TimeHour") + "]:" - "[" + LLTrans::getString("TimeMin") + "]"; + std::string timeStr; + 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; substitution["datetime"] = (S32)time_corrected(); diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp index 76f96feddc..29c5a41696 100644 --- a/indra/newview/llfloaterinspect.cpp +++ b/indra/newview/llfloaterinspect.cpp @@ -392,7 +392,8 @@ void LLFloaterInspect::refresh() } 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; substitution["datetime"] = (S32) timestamp; LLStringUtil::format (timeStr, substitution); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 3b3af4eb35..7bf198747a 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -763,7 +763,8 @@ void LLPanelLandGeneral::refresh() // Display claim date 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; substitution["datetime"] = (S32) claim_date; LLStringUtil::format (claim_date_str, substitution); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 8ae86dfe98..28ccd015f5 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -700,6 +700,8 @@ bool LLFloaterPreference::postBuild() // getChild("language_combobox")->setCommitCallback(boost::bind(&LLFloaterPreference::onLanguageChange, this)); + mTimeFormatCombobox = getChild("time_format_combobox"); + mTimeFormatCombobox->setCommitCallback(boost::bind(&LLFloaterPreference::onTimeFormatChange, this)); // [CHUI MERGE] // 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) { mNotificationOptions[OptionName] = getChild(OptionName)->getSelectedItemLabel(); @@ -2372,6 +2381,8 @@ void LLFloaterPreference::refresh() advanced->refresh(); } updateClickActionViews(); + + mTimeFormatCombobox->selectByValue(gSavedSettings.getBOOL("Use24HourClock") ? "1" : "0"); } void LLFloaterPreference::onCommitWindowedMode() diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index c98c87240d..a2d000a075 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -128,6 +128,7 @@ protected: //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 onLanguageChange(); + void onTimeFormatChange(); void onNotificationsChange(const std::string& OptionName); void onNameTagOpacityChange(const LLSD& newvalue); void onConsoleOpacityChange(const LLSD& newvalue); // FIRE-1332 - Sepeate opacity settings for nametag and console chat @@ -331,6 +332,7 @@ private: LLButton* mDeleteTranscriptsBtn = nullptr; LLButton* mEnablePopupBtn = nullptr; LLButton* mDisablePopupBtn = nullptr; + LLComboBox* mTimeFormatCombobox = nullptr; std::unique_ptr< ll::prefs::SearchData > mSearchData; bool mSearchDataDirty; diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp index 7651b2528f..2f1857ec61 100644 --- a/indra/newview/llfloaterurlentry.cpp +++ b/indra/newview/llfloaterurlentry.cpp @@ -242,6 +242,16 @@ void LLFloaterURLEntry::getMediaTypeCoro(std::string url, LLHandle pa 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); diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 6706c2aa48..6325c7bd60 100644 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -84,13 +84,13 @@ const static std::string MULTI_LINE_PREFIX(" "); * * 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("^(\\[\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{2}\\]|\\[\\d{1,2}:\\d{2}\\]).*"); +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}(\\s[AaPp][Mm])?\\]|\\[\\d{1,2}:\\d{2}(\\s[AaPp][Mm])?\\]).*"); // Timestamps in chat // 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. -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_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_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}(\\s[AaPp][Mm])?\\]|\\[\\d{1,2}:\\d{2}:\\d{2}(\\s[AaPp][Mm])?\\]).*"); // /** @@ -166,6 +166,10 @@ public: 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. // Assume that passed string has at least "%H:%M" time format. date log_date(not_a_date_time); @@ -182,20 +186,12 @@ public: if ( days_alive == zero_days ) { - // Yep, today's so strip "%Y/%m/%d" info - ptime stripped_time(not_a_date_time); - - mTimeStream.str(LLStringUtil::null); - mTimeStream << time_str; - mTimeStream >> stripped_time; - mTimeStream.clear(); - - time_str.clear(); - - mTimeStream.str(LLStringUtil::null); - mTimeStream << stripped_time; - mTimeStream >> time_str; - mTimeStream.clear(); + size_t pos = time_str.find_first_of(' '); + if (pos != std::string::npos) + { + time_str.erase(0, pos + 1); + LLStringUtil::trim(time_str); + } } LL_DEBUGS("LLChatLogParser") @@ -381,28 +377,29 @@ std::string LLLogChat::timestamp2LogString(U32 timestamp, bool withdate) std::string timeStr; if (withdate) { - timeStr = "[" + LLTrans::getString ("TimeYear") + "]/[" - + LLTrans::getString ("TimeMonth") + "]/[" - + LLTrans::getString ("TimeDay") + "] [" - + LLTrans::getString ("TimeHour") + "]:[" - + LLTrans::getString ("TimeMin") + "]"; + timeStr = "[" + LLTrans::getString("TimeYear") + "]/[" + + LLTrans::getString("TimeMonth") + "]/[" + + LLTrans::getString("TimeDay") + "] "; + } + + static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + if (use_24h) + { + timeStr += "[" + LLTrans::getString("TimeHour") + "]:[" + + LLTrans::getString("TimeMin") + "]"; // Seconds in timestamps if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps")) { - timeStr += ":[" + LLTrans::getString ("TimeSec") + "]"; + timeStr += ":[" + LLTrans::getString("TimeSec") + "]"; } // } else { - timeStr = "[" + LLTrans::getString("TimeHour") + "]:[" - + LLTrans::getString ("TimeMin")+"]"; - // Seconds in timestamps - if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps")) - { - timeStr += ":[" + LLTrans::getString ("TimeSec") + "]"; - } - // + timeStr += "[" + LLTrans::getString("TimeHour12") + "]:[" + + LLTrans::getString("TimeMin") + "]" + + (gSavedSettings.getBOOL("FSSecondsinChatTimestamps") ? ":[" + LLTrans::getString("TimeSec") + "] [" : " [") // Seconds in timestamps + + LLTrans::getString("TimeAMPM") + "]"; } LLSD substitution; diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp index 0115dacb75..b8b670ae43 100644 --- a/indra/newview/llnotificationlistitem.cpp +++ b/indra/newview/llnotificationlistitem.cpp @@ -38,6 +38,7 @@ #include "lluicolortable.h" #include "message.h" #include "llnotificationsutil.h" +#include "llviewercontrol.h" #include 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 timeStr; + + // FIRE-17649: Localizable date formats for group notices + static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + timeStr = use_24h ? LLTrans::getString("NotificationItemDateString") : LLTrans::getString("NotificationItemDateStringAMPM"); + // + switch(time_type) { // FIRE-17649: Localizable date formats for group notices //case Local: - // timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/[" - // +LLTrans::getString("LTimeDay")+"]/[" - // +LLTrans::getString("LTimeYear")+"] [" - // +LLTrans::getString("LTimeHour")+"]:[" - // +LLTrans::getString("LTimeMin")+ "]"; - // break; + // timeStr = "[" + LLTrans::getString("LTimeMthNum") + "]/[" + // +LLTrans::getString("LTimeDay")+"]/[" + // +LLTrans::getString("LTimeYear")+"] [" + // +LLTrans::getString("LTimeHour")+"]:[" + // +LLTrans::getString("LTimeMin")+ "]"; + // break; //case UTC: - // timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/[" - // +LLTrans::getString("UTCTimeDay")+"]/[" - // +LLTrans::getString("UTCTimeYr")+"] [" - // +LLTrans::getString("UTCTimeHr")+"]:[" - // +LLTrans::getString("UTCTimeMin")+"] [" - // +LLTrans::getString("UTCTimeTimezone")+"]"; - // break; + // timeStr = "[" + LLTrans::getString("UTCTimeMth") + "]/[" + // +LLTrans::getString("UTCTimeDay")+"]/[" + // +LLTrans::getString("UTCTimeYr")+"] [" + // +LLTrans::getString("UTCTimeHr")+"]:[" + // +LLTrans::getString("UTCTimeMin")+"] [" + // +LLTrans::getString("UTCTimeTimezone")+"]"; + // break; //case SLT: //default: - // timeStr = "[" + LLTrans::getString("TimeMonth") + "]/[" - // +LLTrans::getString("TimeDay")+"]/[" - // +LLTrans::getString("TimeYear")+"] [" - // +LLTrans::getString("TimeHour")+"]:[" - // +LLTrans::getString("TimeMin")+"] [" - // +LLTrans::getString("TimeTimezone")+"]"; - // break; + // timeStr = "[" + LLTrans::getString("TimeMonth") + "]/[" + // +LLTrans::getString("TimeDay")+"]/[" + // +LLTrans::getString("TimeYear")+"] ["; + + // static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + // if (use_24h) + // { + // 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: - timeStr = LLTrans::getString("NotificationItemDateStringLocal"); + LLStringUtil::replaceString(timeStr, "utc", "local"); break; case UTC: - timeStr = LLTrans::getString("NotificationItemDateStringUTC"); + // No-op (utc is default) break; case SLT: default: - timeStr = LLTrans::getString("NotificationItemDateStringSLT"); + LLStringUtil::replaceString(timeStr, "utc", "slt"); break; // } diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 130c60ef08..a608183e17 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -204,7 +204,8 @@ std::string build_notice_date(const U32& the_time) // + LLTrans::getString("LTimeHour") + "]:[" // + LLTrans::getString("LTimeMin") + "]:[" // + 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"); // LLSD substitution; diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp index 41373cd7f5..7596c0eba8 100644 --- a/indra/newview/llpanellandmarkinfo.cpp +++ b/indra/newview/llpanellandmarkinfo.cpp @@ -41,6 +41,7 @@ #include "lllandmarkactions.h" #include "llparcel.h" #include "llslurl.h" +#include "llviewercontrol.h" #include "llviewerinventory.h" #include "llviewerparcelmgr.h" #include "llviewerregion.h" @@ -326,7 +327,8 @@ void LLPanelLandmarkInfo::displayItemInfo(const LLInventoryItem* pItem) } 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; substitution["datetime"] = (S32) time_utc; LLStringUtil::format (timeStr, substitution); diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 8e03ac69f9..f98ca13c9d 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -42,6 +42,7 @@ #include "llnotificationsutil.h" #include "lltextbox.h" #include "lltoggleablemenu.h" +#include "llviewercontrol.h" #include "llviewermenu.h" #include "lllandmarkactions.h" #include "llclipboard.h" @@ -252,15 +253,26 @@ std::string LLTeleportHistoryFlatItem::getTimestamp() //// Only show timestamp for today and yesterday //if(time_diff < seconds_today + seconds_in_day) //{ - // timestamp = "[" + LLTrans::getString("TimeHour12")+"]:[" - // + LLTrans::getString("TimeMin")+"] ["+ LLTrans::getString("TimeAMPM")+"]"; - // LLSD substitution; - // substitution["datetime"] = (S32) date.secondsSinceEpoch(); - // LLStringUtil::format(timestamp, substitution); + // static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + // if (use_24h) + // { + // timestamp = "[" + LLTrans::getString("TimeHour") + "]:[" + // + 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; args["datetime"] = date.secondsSinceEpoch(); - timestamp = getString("DateFmt"); + static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + timestamp = use_24h ? getString("DateFmt") : getString("DateFmtAMPM"); // // 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 ! diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index f5939bd8a0..42f58076b8 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -527,7 +527,8 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) } else { - std::string timeStr = getString("acquiredDate"); + static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + std::string timeStr = use_24h ? getString("acquiredDate") : getString("acquiredDateAMPM"); LLSD substitution; substitution["datetime"] = (S32) time_utc; LLStringUtil::format (timeStr, substitution); diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp index 4881169a4e..27771c9dde 100644 --- a/indra/newview/lltoastgroupnotifypanel.cpp +++ b/indra/newview/lltoastgroupnotifypanel.cpp @@ -97,16 +97,28 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(const LLNotificationPtr& notifi const std::string& message = payload["message"].asString(); // FIRE-17649: Localizable date formats for group notices - //std::string timeStr = "["+LLTrans::getString("TimeWeek")+"], [" - // +LLTrans::getString("TimeMth")+"] [" - // +LLTrans::getString("TimeDay")+"] [" - // +LLTrans::getString("TimeYear")+"] [" - // +LLTrans::getString("TimeHour")+"]:[" - // +LLTrans::getString("TimeMin")+"]:[" - // +LLTrans::getString("TimeSec")+"] [" - // +LLTrans::getString("TimeTimezone")+"]"; - std::string timeStr = LLTrans::getString("GroupNoticesToastDateString"); + //std::string timeStr = "[" + LLTrans::getString("TimeWeek") + "], [" + // + LLTrans::getString("TimeMonth") + "]/[" + // + LLTrans::getString("TimeDay") + "]/[" + // + LLTrans::getString("TimeYear") + "] ["; + //static bool use_24h = gSavedSettings.getBOOL("Use24HourClock"); + //if (use_24h) + //{ + // timeStr += LLTrans::getString("TimeHour") + "]:[" + // + 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"); // + const LLDate timeStamp = notification->getDate(); LLDate notice_date = timeStamp.notNull() ? timeStamp : payload["received_time"].asDate(); LLSD substitution; diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index fa6d16327a..e134fbc04f 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -1650,6 +1650,11 @@ void render_ui(F32 zoom_factor, int subfield) render_disconnected_background(); } } + else + { + // Make sure particle effects disappear + LLHUDObject::renderAllForTimer(); + } if (render_ui) { diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp index 73171dab09..88f4e933e2 100644 --- a/indra/newview/llworldmap.cpp +++ b/indra/newview/llworldmap.cpp @@ -32,6 +32,7 @@ #include "message.h" #include "lltracker.h" #include "lluistring.h" +#include "llviewercontrol.h" #include "llviewertexturelist.h" #include "lltrans.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_ADULT_EVENT: { - std::string timeStr = "["+ LLTrans::getString ("TimeHour")+"]:[" - +LLTrans::getString ("TimeMin")+"] [" - +LLTrans::getString ("TimeAMPM")+"]"; + std::string timeStr; + + 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; substitution["datetime"] = (S32) extra; LLStringUtil::format (timeStr, substitution); diff --git a/indra/newview/skins/default/xui/az/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/az/panel_teleport_history_item.xml index ef37c790cd..eb214df81b 100644 --- a/indra/newview/skins/default/xui/az/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/az/panel_teleport_history_item.xml @@ -3,6 +3,9 @@ [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] + + [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] + diff --git a/indra/newview/skins/default/xui/az/strings.xml b/indra/newview/skins/default/xui/az/strings.xml index ce90cacad2..15b55c7dda 100644 --- a/indra/newview/skins/default/xui/az/strings.xml +++ b/indra/newview/skins/default/xui/az/strings.xml @@ -6706,17 +6706,20 @@ Yerləşməniz: [AVATAR_POS] [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] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] + [wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] - - [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] - + [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] - - [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] Adətən diff --git a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml index 522aafef2c..687322e36d 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml @@ -15,6 +15,9 @@ [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt] + + [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] [year,datetime,local] + (Beholdning) diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index f6ffef215d..a8d88dba0a 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -71,8 +71,11 @@ Keine Parzelle ausgewählt. + + [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] + - [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] Parzellen-ID konnte nicht ermittelt werden. diff --git a/indra/newview/skins/default/xui/de/floater_inspect.xml b/indra/newview/skins/default/xui/de/floater_inspect.xml index 1f6fe35bc4..fda0764c9e 100644 --- a/indra/newview/skins/default/xui/de/floater_inspect.xml +++ b/indra/newview/skins/default/xui/de/floater_inspect.xml @@ -1,7 +1,10 @@ + + [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] + - [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] (Gruppe) diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml index 97a88a6800..063eb80c0f 100644 --- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml @@ -5,7 +5,8 @@ (öffentlich) Sie können: Eigentümer kann: - [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] [hour,datetime,local]:[min,datetime,local]:[second,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] Name: Beschreibung: Ersteller: diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 3897f750b2..30c9866dc1 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -659,7 +659,7 @@ Möchten Sie den Viewer schließen und anschließend manuell neu starten, um die - 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. Zur [CURRENT_GRID]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben? diff --git a/indra/newview/skins/default/xui/de/panel_landmark_info.xml b/indra/newview/skins/default/xui/de/panel_landmark_info.xml index b49e5547c9..94d62b1002 100644 --- a/indra/newview/skins/default/xui/de/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/de/panel_landmark_info.xml @@ -15,8 +15,11 @@ Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle. + + [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] + - [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] Traffic: [TRAFFIC] Gebiet: [AREA] m² diff --git a/indra/newview/skins/default/xui/de/panel_place_profile.xml b/indra/newview/skins/default/xui/de/panel_place_profile.xml index cb67a2dea8..a0d47a05a4 100644 --- a/indra/newview/skins/default/xui/de/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_place_profile.xml @@ -38,10 +38,12 @@ Die Informationen über diesen Standort sind zugriffsbeschränkt. Bitte wenden Sie sich bezüglich Ihrer Berechtigungen an den Eigentümer der Parzelle. - - [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] + + + [wkday,datetime,local]. [day,datetime,local]. [mth,datetime,local]. [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] - diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml index 20c7289847..f84249e130 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml @@ -20,6 +20,16 @@ (Erfordert Neustart) + + Uhrzeitformat: + + + + + + + (Erfordert Neustart) + Auf Inhalte mit folgender Einstufung zugreifen: diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml index ab8a7ecfaf..a685eafd6c 100644 --- a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml @@ -1,7 +1,10 @@ - [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] + + + [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml index bf27ab930f..465dedb5ac 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml @@ -19,7 +19,10 @@ Eigentümer kann: - [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] + + + [wkday,datetime,slt]. [day,datetime,slt]. [mth,datetime,slt]. [year,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] (Inventar) diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 949726a1ea..ec2ed20c71 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -2954,7 +2954,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich unter http://suppo Soll - 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] Erworbene Artikel @@ -5430,10 +5430,10 @@ Falls der Fehler weiterhin auftritt, überprüfen Sie bitte Ihre Netzwerk- und F [MDAY] - Uhr + AM - Uhr + PM [AMOUNT] US$ @@ -7212,17 +7212,20 @@ Ihre aktuelle Position: [AVATAR_POS] [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] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] + - [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] - - [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] - - [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] - - [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] Normal diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index fe20ee1ada..5949d70562 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -120,6 +120,9 @@ name="no_selection_text"> No parcel selected. + + [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,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] diff --git a/indra/newview/skins/default/xui/en/floater_inspect.xml b/indra/newview/skins/default/xui/en/floater_inspect.xml index ae0f8f111d..1f32a7a47f 100644 --- a/indra/newview/skins/default/xui/en/floater_inspect.xml +++ b/indra/newview/skins/default/xui/en/floater_inspect.xml @@ -11,9 +11,13 @@ save_rect="true" title="Inspect Objects" width="610"> + + [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] [year,datetime,slt] + - [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] diff --git a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml index 02b4eec4fe..41d9fb3200 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml @@ -32,6 +32,10 @@ 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] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,datetime,local] [year,datetime,local] + -The selected language will be applied after restarting [APP_NAME]. +The selected language or zime format will be applied after restarting [APP_NAME]. Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner. + + [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,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] diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index 09a8dff2d8..a539c911d3 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -87,6 +87,10 @@ name="server_forbidden_text"> Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner. + + [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [ampm,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] diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index 9da9723370..7286ea146b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -104,7 +104,7 @@ value="zh" /> (Requires restart) + + Time Format: + + + + + + + (Requires restart) + + [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] + + [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] Owner can: + + [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt], [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [ampm,datetime,slt] + [wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index be65fc5624..b6a7c1776f 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -3275,10 +3275,11 @@ Your current position: [AVATAR_POS] (online) [year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] - [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] - [mthnum,datetime,local]/[day,datetime,local]/[year,datetime,local] [hour,datetime,local]:[min,datetime,local] - [mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] - [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt] [timezone,datetime,slt] + [year,datetime,local]/[mthnum,datetime,local]/[day,datetime,local] [hour12,datetime,local]:[min,datetime,local]:[second,datetime,local] [timezone,datetime,local] + [wkday,datetime,slt], [mth,datetime,slt] [day,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt] + [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] + [mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour,datetime,utc]:[min,datetime,utc] [timezone,datetime,utc] + [mth,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,ampm] [timezone,datetime,utc] Normally Never diff --git a/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml index 1553a4398c..11342d26ae 100644 --- a/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml @@ -1,7 +1,10 @@ - [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] + + + [year,datetime,utc]/[mthnum,datetime,utc]/[day,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc] diff --git a/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml index fb53d11b40..cb762df720 100644 --- a/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml @@ -1,5 +1,6 @@ [day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc], [hour,datetime,utc]:[min,datetime,utc] + [day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc], [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]