diff --git a/dev/Common/Translator.js b/dev/Common/Translator.js
index 38401f0c8..22f791e6f 100644
--- a/dev/Common/Translator.js
+++ b/dev/Common/Translator.js
@@ -4,6 +4,7 @@ import { langLink } from 'Common/Links';
import { doc, createElement } from 'Common/Globals';
import { getKeyByValue, forEachObjectEntry } from 'Common/Utils';
import { pInt } from 'Common/Utils';
+import { LanguageStore } from 'Stores/Language';
let I18N_DATA = {};
@@ -87,17 +88,17 @@ export const
const mt = m.getTime(), date = new Date,
dt = date.setHours(0,0,0,0);
if (mt > dt)
- return i18n('MESSAGE_LIST/TODAY_AT', {TIME: m.format('LT')});
+ return i18n('MESSAGE_LIST/TODAY_AT', {TIME: m.format('LT',0,LanguageStore.hourCycle())});
if (mt > dt - 86400000)
- return i18n('MESSAGE_LIST/YESTERDAY_AT', {TIME: m.format('LT')});
+ return i18n('MESSAGE_LIST/YESTERDAY_AT', {TIME: m.format('LT',0,LanguageStore.hourCycle())});
if (date.getFullYear() === m.getFullYear())
return m.format('d M');
- return m.format('LL');
+ return m.format('LL',0,LanguageStore.hourCycle());
}
case 'FULL':
- return m.format('LLL');
+ return m.format('LLL',0,LanguageStore.hourCycle());
default:
- return m.format(formatStr);
+ return m.format(formatStr,0,LanguageStore.hourCycle());
}
}
diff --git a/dev/Model/Message.js b/dev/Model/Message.js
index 6404670c5..bdbfd5926 100644
--- a/dev/Model/Message.js
+++ b/dev/Model/Message.js
@@ -19,6 +19,8 @@ import { AbstractModel } from 'Knoin/AbstractModel';
import PreviewHTML from 'Html/PreviewMessage.html';
+import { LanguageStore } from 'Stores/Language';
+
//import { MessageFlagsCache } from 'Common/Cache';
import Remote from 'Remote/User/Fetch';
@@ -456,7 +458,7 @@ export class MessageModel extends AbstractModel {
sdoc.write(PreviewHTML
.replace('
', ''+subject)
// eslint-disable-next-line max-len
- .replace('', `<${mode}>${this.bodyAsHTML()}${mode}>`)
+ .replace('', `<${mode}>${this.bodyAsHTML()}${mode}>`)
);
sdoc.close();
diff --git a/dev/Settings/User/General.js b/dev/Settings/User/General.js
index f2e1430e6..60344a6c7 100644
--- a/dev/Settings/User/General.js
+++ b/dev/Settings/User/General.js
@@ -30,6 +30,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
this.language = LanguageStore.language;
this.languages = LanguageStore.languages;
+ this.hourCycle = LanguageStore.hourCycle;
this.soundNotification = SMAudio.notifications;
this.notificationSound = ko.observable(SettingsGet('NotificationSound'));
@@ -115,6 +116,9 @@ export class UserSettingsGeneral extends AbstractViewSettings {
.then(() => Remote.saveSetting('Language', value));
},
+ hourCycle: value =>
+ Remote.saveSetting('hourCycle', value),
+
removeColors: value => {
let dom = MessageUserStore.bodiesDom();
if (dom) {
diff --git a/dev/Stores/Language.js b/dev/Stores/Language.js
index 1bb8566ba..844f961f8 100644
--- a/dev/Stores/Language.js
+++ b/dev/Stores/Language.js
@@ -6,11 +6,13 @@ export const LanguageStore = {
language: ko.observable(''),
languages: ko.observableArray(),
userLanguage: ko.observable(''),
+ hourCycle: ko.observable(''),
populate: function() {
const aLanguages = Settings.app('languages');
this.languages(isArray(aLanguages) ? aLanguages : []);
this.language(SettingsGet('Language'));
this.userLanguage(SettingsGet('UserLanguage'));
+ this.hourCycle(SettingsGet('hourCycle'));
}
}
diff --git a/dev/prototype.js b/dev/prototype.js
index 1ee2c9be6..ed977b05f 100644
--- a/dev/prototype.js
+++ b/dev/prototype.js
@@ -7,12 +7,20 @@
Date.defineRelativeTimeFormat = config => relativeTime = config;
+ // full = Monday, December 12, 2022 at 12:16:21 PM Central European Standard Time
+ // long = December 12, 2022 at 12:16:21 PM GMT+1
+ // medium = Dec 12, 2022, 12:16:21 PM
+ // short = 12/12/22, 12:16 PM
let formats = {
- LT : {hour: 'numeric', minute: 'numeric'},
+ LT : {timeStyle: 'short'},
+// LT : {hour: 'numeric', minute: 'numeric'},
L : {},
- LL : {year: 'numeric', month: 'short', day: 'numeric'},
- LLL : {year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric'},
- LLLL : {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric'},
+ LL : {dateStyle: 'medium'},
+// LL : {year: 'numeric', month: 'short', day: 'numeric'},
+ LLL : {dateStyle: 'long', timeStyle: 'short'},
+// LLL : {year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric'},
+ LLLL : {dateStyle: 'full', timeStyle: 'short'},
+// LLLL : {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric'},
'd M': {day: '2-digit', month: 'short'}
},
phpFormats = {
@@ -31,11 +39,15 @@
y: {year: '2-digit'},
// Time
A: {hour12: true},
- G: {hour: 'numeric'},
- H: {hour: '2-digit'},
+// A: {hourCycle: 'h12'}, // h11, h12, h23, h24
+ g: {hour: 'numeric', hourCycle:'h11'},
+ G: {hour: 'numeric', hourCycle:'h23'},
+ h: {hour: '2-digit', hourCycle:'h11'},
+ H: {hour: '2-digit', hourCycle:'h23'},
i: {minute: '2-digit'},
s: {second: '2-digit'},
- u: {fractionalSecondDigits: 3},
+ u: {fractionalSecondDigits: 6},
+ v: {fractionalSecondDigits: 3},
Z: {timeZone: 'UTC'}
},
relativeTime = {
@@ -45,7 +57,7 @@
// Format momentjs/PHP date formats to Intl.DateTimeFormat
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
- Date.prototype.format = function (options, UTC) {
+ Date.prototype.format = function (options, UTC, hourCycle) {
if (typeof options == 'string') {
if ('Y-m-d\\TH:i:s' == options) {
return this.getFullYear() + '-' + pad2(1 + this.getMonth()) + '-' + pad2(this.getDate())
@@ -58,12 +70,15 @@
console.log('Date.format('+s+')');
options = {};
while (i--) {
- o = phpFormats[s[i]] || phpFormats[s[i].toUpperCase()];
+ o = phpFormats[s[i]];
o && Object.entries(o).forEach(([k,v])=>options[k]=v);
}
formats[s] = options;
}
}
+ if (hourCycle) {
+ options.hourCycle = hourCycle;
+ }
return new Intl.DateTimeFormat(doc.documentElement.lang, options).format(this);
};
diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php
index 435c036ff..7045eecab 100644
--- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php
+++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php
@@ -778,6 +778,8 @@ class Actions
if ($oConfig->Get('webmail', 'allow_languages_on_settings', true)) {
$sLanguage = (string) $oSettings->GetConf('Language', $sLanguage);
}
+ $aResult['hourCycle'] = $oSettings->GetConf('hourCycle', '');
+
if (!$oSettings->GetConf('MessagesPerPage')) {
$oSettings->SetConf('MessagesPerPage', $oSettings->GetConf('MPP', $aResult['MessagesPerPage']));
}
diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php
index 5b4be94f1..8927c0d92 100644
--- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php
+++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php
@@ -162,6 +162,7 @@ trait User
{
// $oSettings->SetConf('Language', $this->ValidateLanguage($oConfig->Get('webmail', 'language', 'en')));
}
+ $this->setSettingsFromParams($oSettings, 'hourCycle', 'string');
if ($this->GetCapa(Capa::THEMES))
{
diff --git a/snappymail/v/0.0.0/app/localization/ar-SA/user.json b/snappymail/v/0.0.0/app/localization/ar-SA/user.json
index c475bfff2..4c6207c08 100644
--- a/snappymail/v/0.0.0/app/localization/ar-SA/user.json
+++ b/snappymail/v/0.0.0/app/localization/ar-SA/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "عام",
"LANGUAGE": "اللغة",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "الهوية",
"LAYOUT": "التصميم",
"LAYOUT_NO_SPLIT": "بدون إنقسام",
diff --git a/snappymail/v/0.0.0/app/localization/bg-BG/user.json b/snappymail/v/0.0.0/app/localization/bg-BG/user.json
index e4fde44ee..24204993e 100644
--- a/snappymail/v/0.0.0/app/localization/bg-BG/user.json
+++ b/snappymail/v/0.0.0/app/localization/bg-BG/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Общи",
"LANGUAGE": "Език",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Идентичност",
"LAYOUT": "Стил",
"LAYOUT_NO_SPLIT": "Не разделяй",
diff --git a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json
index 4dbc983c6..418a4e9ee 100644
--- a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json
+++ b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Všeobecné",
"LANGUAGE": "Jazyk",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Uživatel",
"LAYOUT": "Rozložení",
"LAYOUT_NO_SPLIT": "Nerozdělovat",
diff --git a/snappymail/v/0.0.0/app/localization/da-DK/user.json b/snappymail/v/0.0.0/app/localization/da-DK/user.json
index 4188896ba..8be44ac0e 100644
--- a/snappymail/v/0.0.0/app/localization/da-DK/user.json
+++ b/snappymail/v/0.0.0/app/localization/da-DK/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Generelt",
"LANGUAGE": "Sprog",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identitet",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "Del ikke",
diff --git a/snappymail/v/0.0.0/app/localization/de-DE/user.json b/snappymail/v/0.0.0/app/localization/de-DE/user.json
index 0d0df500f..2444ccc31 100644
--- a/snappymail/v/0.0.0/app/localization/de-DE/user.json
+++ b/snappymail/v/0.0.0/app/localization/de-DE/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Allgemein",
"LANGUAGE": "Sprache",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identität",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "Keine Aufteilung",
diff --git a/snappymail/v/0.0.0/app/localization/el-GR/user.json b/snappymail/v/0.0.0/app/localization/el-GR/user.json
index f13a8fef9..cc1de36fe 100644
--- a/snappymail/v/0.0.0/app/localization/el-GR/user.json
+++ b/snappymail/v/0.0.0/app/localization/el-GR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Γενικό",
"LANGUAGE": "Γλώσσα",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Ταυτότητα",
"LAYOUT": "Σχέδιο",
"LAYOUT_NO_SPLIT": "Χωρίς χώρισμα",
diff --git a/snappymail/v/0.0.0/app/localization/en-GB/user.json b/snappymail/v/0.0.0/app/localization/en-GB/user.json
index e9c8c3cd1..4de63f6d7 100644
--- a/snappymail/v/0.0.0/app/localization/en-GB/user.json
+++ b/snappymail/v/0.0.0/app/localization/en-GB/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "General",
"LANGUAGE": "Language",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/en/user.json b/snappymail/v/0.0.0/app/localization/en/user.json
index 97a8dc596..5204160a5 100644
--- a/snappymail/v/0.0.0/app/localization/en/user.json
+++ b/snappymail/v/0.0.0/app/localization/en/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "General",
"LANGUAGE": "Language",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/es-ES/user.json b/snappymail/v/0.0.0/app/localization/es-ES/user.json
index 03eab2015..4fce05d0f 100644
--- a/snappymail/v/0.0.0/app/localization/es-ES/user.json
+++ b/snappymail/v/0.0.0/app/localization/es-ES/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "General",
"LANGUAGE": "Idioma",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identidad",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "Sin División",
diff --git a/snappymail/v/0.0.0/app/localization/et-EE/user.json b/snappymail/v/0.0.0/app/localization/et-EE/user.json
index 544fdd3b1..45d5bbdba 100644
--- a/snappymail/v/0.0.0/app/localization/et-EE/user.json
+++ b/snappymail/v/0.0.0/app/localization/et-EE/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Üldine",
"LANGUAGE": "Keel",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identiteet",
"LAYOUT": "Vaade",
"LAYOUT_NO_SPLIT": "Jaotuseta",
diff --git a/snappymail/v/0.0.0/app/localization/eu/admin.json b/snappymail/v/0.0.0/app/localization/eu/admin.json
index 696283b52..2737f643b 100644
--- a/snappymail/v/0.0.0/app/localization/eu/admin.json
+++ b/snappymail/v/0.0.0/app/localization/eu/admin.json
@@ -104,7 +104,7 @@
"LABEL_ALL_RIGHTS_RESERVED": "Eskubide guztiak gordeak.",
"HINT_READ_CHANGE_LOG": "Mesedez irakurri aldaketen informea eguneratu aurretik.",
"HINT_IS_UP_TO_DATE": "SnappyMail eguneratuta dago.",
- "HTML_NEW_VERSION": "%VERSION% bertsio berria eskuragarri.",
+ "HTML_NEW_VERSION": "%VERSION%<\/b> bertsio berria eskuragarri.",
"LABEL_UPDATING": "Eguneratzen",
"LABEL_CHECKING": "Eguneraketak dauden begiratzen",
"BUTTON_RELEASES": "Bertsioak"
diff --git a/snappymail/v/0.0.0/app/localization/eu/user.json b/snappymail/v/0.0.0/app/localization/eu/user.json
index 46c0c7e66..7cfaf7a33 100644
--- a/snappymail/v/0.0.0/app/localization/eu/user.json
+++ b/snappymail/v/0.0.0/app/localization/eu/user.json
@@ -259,7 +259,7 @@
"POPUPS_CLEAR_FOLDER": {
"TITLE_CLEAR_FOLDER": "Ezabatu karpetako mezu guztiak?",
"DANGER_DESC_WARNING": "Kontuz!",
- "DANGER_DESC_HTML_1": "Ekintza honen bidez %FOLDER% karpetako mezu guztiak ezabatuko dira.",
+ "DANGER_DESC_HTML_1": "Ekintza honen bidez %FOLDER%<\/strong> karpetako mezu guztiak ezabatuko dira.",
"DANGER_DESC_HTML_2": "Behin hasita, ekintza hau ezin da gelditu edo utzi.",
"TITLE_CLEARING_PROCESS": "Karpeta garbitzen..."
},
@@ -333,7 +333,7 @@
"TITLE_SYSTEM_FOLDERS": "Aukeratu sistemaren karpetak",
"SELECT_CHOOSE_ONE": "Aukeratu bat",
"SELECT_UNUSE_NAME": "Ez erabili",
- "NOTIFICATION_SENT": "Ez duzu sistemako \"Bidalitakoak\" karpeta hautatu mezuak bidali ondoren bertan ipintzeko.\nBidalitako mezua gorde nahi ez baduzu hautatu \"Ez erabili\" aukera.\n",
+ "NOTIFICATION_SENT": "Ez duzu sistemako \"Bidalitakoak\" karpeta hautatu mezuak bidali ondoren bertan ipintzeko.\nBidalitako mezua gorde nahi ez baduzu hautatu \"Ez erabili\" aukera.\n",
"NOTIFICATION_DRAFTS": "Ez duzu sistemako \"Zirriborroak\" karpeta hautatu mezuak editatu bitartean gordetzeko.",
"NOTIFICATION_SPAM": "Ez duzu sistemako \"Zabor-posta\" karpeta hautatu zabor-mezuak kokatzeko.\nMezu hauek betirako ezabatu nahi badituzu, aukeratu \"Ez erabili\" aukera.\n",
"NOTIFICATION_TRASH": "Ez duzu sistemako \"Zakarrontzia\" karpeta hautatu zabor-mezuak kokatzeko.\nMezu hauek betirako ezabatu nahi badituzu, aukeratu \"Ez erabili\" aukera.\n",
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Orokorra",
"LANGUAGE": "Hizkuntza",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Nortasuna",
"LAYOUT": "Diseinua",
"LAYOUT_NO_SPLIT": "Zatitu gabe",
diff --git a/snappymail/v/0.0.0/app/localization/fa-IR/user.json b/snappymail/v/0.0.0/app/localization/fa-IR/user.json
index e4f8f09c3..4418f5219 100644
--- a/snappymail/v/0.0.0/app/localization/fa-IR/user.json
+++ b/snappymail/v/0.0.0/app/localization/fa-IR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "عمومی",
"LANGUAGE": "زبان",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "شناسه",
"LAYOUT": "لایه",
"LAYOUT_NO_SPLIT": "بدون تقسیم",
diff --git a/snappymail/v/0.0.0/app/localization/fi-FI/user.json b/snappymail/v/0.0.0/app/localization/fi-FI/user.json
index 92150c335..f508c14c4 100644
--- a/snappymail/v/0.0.0/app/localization/fi-FI/user.json
+++ b/snappymail/v/0.0.0/app/localization/fi-FI/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Yleiset",
"LANGUAGE": "Kieli",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identiteetti",
"LAYOUT": "Asettelu",
"LAYOUT_NO_SPLIT": "Ei jakoa",
diff --git a/snappymail/v/0.0.0/app/localization/fr-FR/user.json b/snappymail/v/0.0.0/app/localization/fr-FR/user.json
index df31762ba..b7e4cb8c1 100644
--- a/snappymail/v/0.0.0/app/localization/fr-FR/user.json
+++ b/snappymail/v/0.0.0/app/localization/fr-FR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Général",
"LANGUAGE": "Langue",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identité",
"LAYOUT": "Disposition",
"LAYOUT_NO_SPLIT": "Pas de séparation",
diff --git a/snappymail/v/0.0.0/app/localization/hu-HU/user.json b/snappymail/v/0.0.0/app/localization/hu-HU/user.json
index c1d4085e3..3146a1395 100644
--- a/snappymail/v/0.0.0/app/localization/hu-HU/user.json
+++ b/snappymail/v/0.0.0/app/localization/hu-HU/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Általános",
"LANGUAGE": "Nyelv",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identitás",
"LAYOUT": "Elrendezés",
"LAYOUT_NO_SPLIT": "Felosztás nélkül",
diff --git a/snappymail/v/0.0.0/app/localization/id-ID/user.json b/snappymail/v/0.0.0/app/localization/id-ID/user.json
index 27751d2a6..2953d2d98 100644
--- a/snappymail/v/0.0.0/app/localization/id-ID/user.json
+++ b/snappymail/v/0.0.0/app/localization/id-ID/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Umum",
"LANGUAGE": "Bahasa",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identitas",
"LAYOUT": "Tampilan",
"LAYOUT_NO_SPLIT": "Tanpa pemisah",
diff --git a/snappymail/v/0.0.0/app/localization/is-IS/user.json b/snappymail/v/0.0.0/app/localization/is-IS/user.json
index 89d3f163a..908cf49f9 100644
--- a/snappymail/v/0.0.0/app/localization/is-IS/user.json
+++ b/snappymail/v/0.0.0/app/localization/is-IS/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Almennt",
"LANGUAGE": "Tungumál",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Auðkenni",
"LAYOUT": "Framsetning",
"LAYOUT_NO_SPLIT": "Ekki klofið",
diff --git a/snappymail/v/0.0.0/app/localization/it-IT/user.json b/snappymail/v/0.0.0/app/localization/it-IT/user.json
index 0130c254f..79139a52a 100644
--- a/snappymail/v/0.0.0/app/localization/it-IT/user.json
+++ b/snappymail/v/0.0.0/app/localization/it-IT/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Generali",
"LANGUAGE": "Lingua",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identità",
"LAYOUT": "Struttura",
"LAYOUT_NO_SPLIT": "A pagina intera",
diff --git a/snappymail/v/0.0.0/app/localization/ja-JP/user.json b/snappymail/v/0.0.0/app/localization/ja-JP/user.json
index d5d161c88..fe8404084 100644
--- a/snappymail/v/0.0.0/app/localization/ja-JP/user.json
+++ b/snappymail/v/0.0.0/app/localization/ja-JP/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "全般",
"LANGUAGE": "言語",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "表示名",
"LAYOUT": "レイアウト",
"LAYOUT_NO_SPLIT": "分割しない",
diff --git a/snappymail/v/0.0.0/app/localization/ko-KR/user.json b/snappymail/v/0.0.0/app/localization/ko-KR/user.json
index 39f8d2e61..0b78939ac 100644
--- a/snappymail/v/0.0.0/app/localization/ko-KR/user.json
+++ b/snappymail/v/0.0.0/app/localization/ko-KR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "일반",
"LANGUAGE": "언어",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "신원",
"LAYOUT": "레이아웃",
"LAYOUT_NO_SPLIT": "분할 해제",
diff --git a/snappymail/v/0.0.0/app/localization/lt-LT/user.json b/snappymail/v/0.0.0/app/localization/lt-LT/user.json
index ce340eb26..dcc52886a 100644
--- a/snappymail/v/0.0.0/app/localization/lt-LT/user.json
+++ b/snappymail/v/0.0.0/app/localization/lt-LT/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Pagrindiniai",
"LANGUAGE": "Kalba",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Tapatybė",
"LAYOUT": "Išdėstymas",
"LAYOUT_NO_SPLIT": "Skaidymo nėra",
diff --git a/snappymail/v/0.0.0/app/localization/lv-LV/user.json b/snappymail/v/0.0.0/app/localization/lv-LV/user.json
index 6a8d5d474..d50658157 100644
--- a/snappymail/v/0.0.0/app/localization/lv-LV/user.json
+++ b/snappymail/v/0.0.0/app/localization/lv-LV/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Vispārējie",
"LANGUAGE": "Valoda",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/nb-NO/user.json b/snappymail/v/0.0.0/app/localization/nb-NO/user.json
index f1302a641..485713a3a 100644
--- a/snappymail/v/0.0.0/app/localization/nb-NO/user.json
+++ b/snappymail/v/0.0.0/app/localization/nb-NO/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Generelt",
"LANGUAGE": "Språk",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identitet",
"LAYOUT": "Utforming",
"LAYOUT_NO_SPLIT": "Ingen deling",
diff --git a/snappymail/v/0.0.0/app/localization/nl-NL/user.json b/snappymail/v/0.0.0/app/localization/nl-NL/user.json
index 43f7c32e0..b24fd7c75 100644
--- a/snappymail/v/0.0.0/app/localization/nl-NL/user.json
+++ b/snappymail/v/0.0.0/app/localization/nl-NL/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Algemeen",
"LANGUAGE": "Taal",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identiteit",
"LAYOUT": "Indeling",
"LAYOUT_NO_SPLIT": "Geen splitsing",
diff --git a/snappymail/v/0.0.0/app/localization/pl-PL/user.json b/snappymail/v/0.0.0/app/localization/pl-PL/user.json
index e34938f38..96aa3f033 100644
--- a/snappymail/v/0.0.0/app/localization/pl-PL/user.json
+++ b/snappymail/v/0.0.0/app/localization/pl-PL/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Ogólne",
"LANGUAGE": "Język",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Tożsamość",
"LAYOUT": "Układ",
"LAYOUT_NO_SPLIT": "bez podziału",
diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/user.json b/snappymail/v/0.0.0/app/localization/pt-BR/user.json
index d1fc7823d..f33bcc2a2 100644
--- a/snappymail/v/0.0.0/app/localization/pt-BR/user.json
+++ b/snappymail/v/0.0.0/app/localization/pt-BR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Geral",
"LANGUAGE": "Idioma",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identidade",
"LAYOUT": "Painel de Leitura",
"LAYOUT_NO_SPLIT": "Sem divisão",
diff --git a/snappymail/v/0.0.0/app/localization/pt-PT/user.json b/snappymail/v/0.0.0/app/localization/pt-PT/user.json
index 73c6c95b9..4eb87c563 100644
--- a/snappymail/v/0.0.0/app/localization/pt-PT/user.json
+++ b/snappymail/v/0.0.0/app/localization/pt-PT/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Geral",
"LANGUAGE": "Idioma",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identidade",
"LAYOUT": "Apresentação",
"LAYOUT_NO_SPLIT": "Sem separação",
diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json
index 73c6c95b9..4eb87c563 100644
--- a/snappymail/v/0.0.0/app/localization/pt/user.json
+++ b/snappymail/v/0.0.0/app/localization/pt/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Geral",
"LANGUAGE": "Idioma",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identidade",
"LAYOUT": "Apresentação",
"LAYOUT_NO_SPLIT": "Sem separação",
diff --git a/snappymail/v/0.0.0/app/localization/ro-RO/user.json b/snappymail/v/0.0.0/app/localization/ro-RO/user.json
index ec18726bc..7c590e303 100644
--- a/snappymail/v/0.0.0/app/localization/ro-RO/user.json
+++ b/snappymail/v/0.0.0/app/localization/ro-RO/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Setări de bază",
"LANGUAGE": "Limbă",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/ru-RU/user.json b/snappymail/v/0.0.0/app/localization/ru-RU/user.json
index 9522c2674..7eb8540e7 100644
--- a/snappymail/v/0.0.0/app/localization/ru-RU/user.json
+++ b/snappymail/v/0.0.0/app/localization/ru-RU/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Основные Настройки",
"LANGUAGE": "Язык",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Профиль",
"LAYOUT": "Разметка",
"LAYOUT_NO_SPLIT": "Одна панель",
diff --git a/snappymail/v/0.0.0/app/localization/sk-SK/user.json b/snappymail/v/0.0.0/app/localization/sk-SK/user.json
index 178fa7c1a..231aa8191 100644
--- a/snappymail/v/0.0.0/app/localization/sk-SK/user.json
+++ b/snappymail/v/0.0.0/app/localization/sk-SK/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Všeobecné",
"LANGUAGE": "Jazyk",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/sl-SI/user.json b/snappymail/v/0.0.0/app/localization/sl-SI/user.json
index 7c8746ca7..5fd3fc187 100644
--- a/snappymail/v/0.0.0/app/localization/sl-SI/user.json
+++ b/snappymail/v/0.0.0/app/localization/sl-SI/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Splošno",
"LANGUAGE": "Jezik",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identiteta",
"LAYOUT": "Postavitev",
"LAYOUT_NO_SPLIT": "Brez razdelitve",
diff --git a/snappymail/v/0.0.0/app/localization/sv-SE/user.json b/snappymail/v/0.0.0/app/localization/sv-SE/user.json
index 6fb1a1717..87d9d76a0 100644
--- a/snappymail/v/0.0.0/app/localization/sv-SE/user.json
+++ b/snappymail/v/0.0.0/app/localization/sv-SE/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Allmänt",
"LANGUAGE": "Språk",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identitet",
"LAYOUT": "Stil",
"LAYOUT_NO_SPLIT": "Utan delad vy",
diff --git a/snappymail/v/0.0.0/app/localization/tr-TR/user.json b/snappymail/v/0.0.0/app/localization/tr-TR/user.json
index e67350a55..6877fddc2 100644
--- a/snappymail/v/0.0.0/app/localization/tr-TR/user.json
+++ b/snappymail/v/0.0.0/app/localization/tr-TR/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Genel",
"LANGUAGE": "Dil",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/uk-UA/user.json b/snappymail/v/0.0.0/app/localization/uk-UA/user.json
index 18a1db642..ef3109cee 100644
--- a/snappymail/v/0.0.0/app/localization/uk-UA/user.json
+++ b/snappymail/v/0.0.0/app/localization/uk-UA/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Основні налаштування",
"LANGUAGE": "Мова",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/localization/vi-VN/user.json b/snappymail/v/0.0.0/app/localization/vi-VN/user.json
index a48a9666d..4357b5327 100644
--- a/snappymail/v/0.0.0/app/localization/vi-VN/user.json
+++ b/snappymail/v/0.0.0/app/localization/vi-VN/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "Tổng quan",
"LANGUAGE": "Ngôn ngữ",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Tên gọi",
"LAYOUT": "Bố cục",
"LAYOUT_NO_SPLIT": "Không phân màn hình",
diff --git a/snappymail/v/0.0.0/app/localization/zh-CN/user.json b/snappymail/v/0.0.0/app/localization/zh-CN/user.json
index 42f64fb81..fca3ea71e 100644
--- a/snappymail/v/0.0.0/app/localization/zh-CN/user.json
+++ b/snappymail/v/0.0.0/app/localization/zh-CN/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "常规",
"LANGUAGE": "语言",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "身份",
"LAYOUT": "布局",
"LAYOUT_NO_SPLIT": "不分隔",
diff --git a/snappymail/v/0.0.0/app/localization/zh-TW/user.json b/snappymail/v/0.0.0/app/localization/zh-TW/user.json
index cbd23c4b4..01e449c33 100644
--- a/snappymail/v/0.0.0/app/localization/zh-TW/user.json
+++ b/snappymail/v/0.0.0/app/localization/zh-TW/user.json
@@ -387,6 +387,7 @@
"SETTINGS_GENERAL": {
"LEGEND_GENERAL": "一般設置",
"LANGUAGE": "語言",
+ "HOUR_FORMAT": "Hour format",
"IDENTITY": "Identity",
"LAYOUT": "Layout",
"LAYOUT_NO_SPLIT": "No Split",
diff --git a/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html b/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html
index e80b2e0b9..bf8c86c94 100644
--- a/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html
+++ b/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html
@@ -11,6 +11,18 @@
+
+
+
+
+
+