summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Mehren2020-08-19 19:36:04 +0200
committerGitHub2020-08-19 19:36:04 +0200
commit8cf41ee669e30d743b2f3cd2056aff10c6778a77 (patch)
tree9a09cf42831c9adda5c99da5aa5d33c0b515ccc9
parent60f5b814819efc818fc9900b1ce476bbc18d5617 (diff)
parent062facb23295ed706e7339157dc27dc1f4a6f971 (diff)
Merge pull request #468 from codimd/fix/moment-js-locale
[1.x] Fix: Set moment.js locale to users' locale (#275)
-rw-r--r--locales/en.json4
-rw-r--r--public/js/extra.js10
-rw-r--r--public/js/locale.js56
-rw-r--r--public/views/codimd/body.ejs5
4 files changed, 45 insertions, 30 deletions
diff --git a/locales/en.json b/locales/en.json
index d4fc24d1..3d30b66e 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -124,5 +124,7 @@
"Limited - Signed-in people can edit (forbid guests)": "Limited - Signed-in people can edit (forbid guests)",
"Locked - Only owner can edit": "Locked - Only owner can edit",
"Protected - Only owner can edit (forbid guests)": "Protected - Only owner can edit (forbid guests)",
- "Private - Only owner can view & edit": "Private - Only owner can view & edit"
+ "Private - Only owner can view & edit": "Private - Only owner can view & edit",
+ "changed": "changed",
+ "created": "created"
} \ No newline at end of file
diff --git a/public/js/extra.js b/public/js/extra.js
index 6cda6171..a6b01a91 100644
--- a/public/js/extra.js
+++ b/public/js/extra.js
@@ -27,6 +27,7 @@ require('prismjs/components/prism-makefile')
require('prismjs/components/prism-gherkin')
require('./lib/common/login')
+require('./locale')
require('../vendor/md-toc')
var Viz = require('viz.js')
const ui = getUIElements()
@@ -35,7 +36,8 @@ const ui = getUIElements()
window.createtime = null
window.lastchangetime = null
window.lastchangeui = {
- status: $('.ui-status-lastchange'),
+ statusChanged: $('.ui-status-lastchange.changed'),
+ statusCreated: $('.ui-status-lastchange.created'),
time: $('.ui-lastchange'),
user: $('.ui-lastchangeuser'),
nouser: $('.ui-no-lastchangeuser')
@@ -47,9 +49,11 @@ export function updateLastChange () {
if (!window.lastchangeui) return
if (window.createtime) {
if (window.createtime && !window.lastchangetime) {
- window.lastchangeui.status.text('created')
+ window.lastchangeui.statusChanged.hide()
+ window.lastchangeui.statusCreated.show()
} else {
- window.lastchangeui.status.text('changed')
+ window.lastchangeui.statusChanged.show()
+ window.lastchangeui.statusCreated.hide()
}
const time = window.lastchangetime || window.createtime
window.lastchangeui.time.html(moment(time).fromNow())
diff --git a/public/js/locale.js b/public/js/locale.js
index 670370d4..aca35b98 100644
--- a/public/js/locale.js
+++ b/public/js/locale.js
@@ -1,32 +1,40 @@
/* eslint-env browser, jquery */
/* global Cookies */
-var lang = 'en'
-var userLang = navigator.language || navigator.userLanguage
-var userLangCode = userLang.split('-')[0]
-var locale = $('.ui-locale')
-var supportLangs = []
-$('.ui-locale option').each(function () {
- supportLangs.push($(this).val())
-})
-if (Cookies.get('locale')) {
- lang = Cookies.get('locale')
- if (lang === 'zh') {
- lang = 'zh-TW'
+const supported = ['en', 'zh-CN', 'zh-TW', 'fr', 'de', 'ja', 'es', 'ca', 'el', 'pt', 'it', 'tr', 'ru', 'nl', 'hr', 'pl', 'uk', 'hi', 'sv', 'eo', 'da', 'ko', 'id', 'sr', 'vi', 'ar', 'cs', 'sk']
+
+function detectLang () {
+ if (Cookies.get('locale')) {
+ let lang = Cookies.get('locale')
+ if (lang === 'zh') {
+ lang = 'zh-TW'
+ }
+ return lang
+ }
+ const userLang = navigator.language || navigator.userLanguage
+ const userLangCode = userLang.split('-')[0]
+ if (supported.includes(userLangCode)) {
+ return userLangCode
+ } else if (supported.includes(userLang)) {
+ return userLang
}
-} else if (supportLangs.indexOf(userLang) !== -1) {
- lang = supportLangs[supportLangs.indexOf(userLang)]
-} else if (supportLangs.indexOf(userLangCode) !== -1) {
- lang = supportLangs[supportLangs.indexOf(userLangCode)]
+ return 'en'
}
-locale.val(lang)
-$('select.ui-locale option[value="' + lang + '"]').attr('selected', 'selected')
+const lang = detectLang()
+const localeSelector = $('.ui-locale')
-locale.change(function () {
- Cookies.set('locale', $(this).val(), {
- expires: 365,
- sameSite: 'strict'
+// the following condition is needed as the selector is only available in the intro/history page
+if (localeSelector.length > 0) {
+ localeSelector.val(lang)
+ $('select.ui-locale option[value="' + lang + '"]').attr('selected', 'selected')
+ localeSelector.change(function () {
+ Cookies.set('locale', $(this).val(), {
+ expires: 365,
+ sameSite: 'strict'
+ })
+ window.location.reload()
})
- window.location.reload()
-})
+}
+
+window.moment.locale(lang)
diff --git a/public/views/codimd/body.ejs b/public/views/codimd/body.ejs
index 5fe3d6bb..96cb8f95 100644
--- a/public/views/codimd/body.ejs
+++ b/public/views/codimd/body.ejs
@@ -7,8 +7,9 @@
<small>
<span>
<span class="ui-lastchangeuser" style="display: none;">&thinsp;<i class="ui-user-icon small" data-toggle="tooltip" data-placement="right"></i></span>
- <span class="ui-no-lastchangeuser">&thinsp;<i class="fa fa-clock-o fa-fw" style="width: 18px;"></i></span>
- &nbsp;<span class="text-uppercase ui-status-lastchange"></span>
+ <span class="ui-no-lastchangeuser">&thinsp;<i class="fa fa-clock-o fa-fw" style="width: 18px;"></i></span>&nbsp;
+ <span class="text-uppercase ui-status-lastchange changed"><%= __('changed') %></span>
+ <span class="text-uppercase ui-status-lastchange created"><%= __('created') %></span>
<span class="ui-lastchange text-uppercase"></span>
</span>
<span class="ui-permission dropdown pull-right">