mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-25 03:06:31 -05:00
Merge pull request #468 from codimd/fix/moment-js-locale
[1.x] Fix: Set moment.js locale to users' locale (#275)
This commit is contained in:
commit
8cf41ee669
4 changed files with 45 additions and 30 deletions
|
@ -124,5 +124,7 @@
|
||||||
"Limited - Signed-in people can edit (forbid guests)": "Limited - Signed-in people can edit (forbid guests)",
|
"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",
|
"Locked - Only owner can edit": "Locked - Only owner can edit",
|
||||||
"Protected - Only owner can edit (forbid guests)": "Protected - Only owner can edit (forbid guests)",
|
"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"
|
||||||
}
|
}
|
|
@ -27,6 +27,7 @@ require('prismjs/components/prism-makefile')
|
||||||
require('prismjs/components/prism-gherkin')
|
require('prismjs/components/prism-gherkin')
|
||||||
|
|
||||||
require('./lib/common/login')
|
require('./lib/common/login')
|
||||||
|
require('./locale')
|
||||||
require('../vendor/md-toc')
|
require('../vendor/md-toc')
|
||||||
var Viz = require('viz.js')
|
var Viz = require('viz.js')
|
||||||
const ui = getUIElements()
|
const ui = getUIElements()
|
||||||
|
@ -35,7 +36,8 @@ const ui = getUIElements()
|
||||||
window.createtime = null
|
window.createtime = null
|
||||||
window.lastchangetime = null
|
window.lastchangetime = null
|
||||||
window.lastchangeui = {
|
window.lastchangeui = {
|
||||||
status: $('.ui-status-lastchange'),
|
statusChanged: $('.ui-status-lastchange.changed'),
|
||||||
|
statusCreated: $('.ui-status-lastchange.created'),
|
||||||
time: $('.ui-lastchange'),
|
time: $('.ui-lastchange'),
|
||||||
user: $('.ui-lastchangeuser'),
|
user: $('.ui-lastchangeuser'),
|
||||||
nouser: $('.ui-no-lastchangeuser')
|
nouser: $('.ui-no-lastchangeuser')
|
||||||
|
@ -47,9 +49,11 @@ export function updateLastChange () {
|
||||||
if (!window.lastchangeui) return
|
if (!window.lastchangeui) return
|
||||||
if (window.createtime) {
|
if (window.createtime) {
|
||||||
if (window.createtime && !window.lastchangetime) {
|
if (window.createtime && !window.lastchangetime) {
|
||||||
window.lastchangeui.status.text('created')
|
window.lastchangeui.statusChanged.hide()
|
||||||
|
window.lastchangeui.statusCreated.show()
|
||||||
} else {
|
} else {
|
||||||
window.lastchangeui.status.text('changed')
|
window.lastchangeui.statusChanged.show()
|
||||||
|
window.lastchangeui.statusCreated.hide()
|
||||||
}
|
}
|
||||||
const time = window.lastchangetime || window.createtime
|
const time = window.lastchangetime || window.createtime
|
||||||
window.lastchangeui.time.html(moment(time).fromNow())
|
window.lastchangeui.time.html(moment(time).fromNow())
|
||||||
|
|
|
@ -1,32 +1,40 @@
|
||||||
/* eslint-env browser, jquery */
|
/* eslint-env browser, jquery */
|
||||||
/* global Cookies */
|
/* global Cookies */
|
||||||
|
|
||||||
var lang = 'en'
|
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']
|
||||||
var userLang = navigator.language || navigator.userLanguage
|
|
||||||
var userLangCode = userLang.split('-')[0]
|
function detectLang () {
|
||||||
var locale = $('.ui-locale')
|
|
||||||
var supportLangs = []
|
|
||||||
$('.ui-locale option').each(function () {
|
|
||||||
supportLangs.push($(this).val())
|
|
||||||
})
|
|
||||||
if (Cookies.get('locale')) {
|
if (Cookies.get('locale')) {
|
||||||
lang = Cookies.get('locale')
|
let lang = Cookies.get('locale')
|
||||||
if (lang === 'zh') {
|
if (lang === 'zh') {
|
||||||
lang = 'zh-TW'
|
lang = 'zh-TW'
|
||||||
}
|
}
|
||||||
} else if (supportLangs.indexOf(userLang) !== -1) {
|
return lang
|
||||||
lang = supportLangs[supportLangs.indexOf(userLang)]
|
}
|
||||||
} else if (supportLangs.indexOf(userLangCode) !== -1) {
|
const userLang = navigator.language || navigator.userLanguage
|
||||||
lang = supportLangs[supportLangs.indexOf(userLangCode)]
|
const userLangCode = userLang.split('-')[0]
|
||||||
|
if (supported.includes(userLangCode)) {
|
||||||
|
return userLangCode
|
||||||
|
} else if (supported.includes(userLang)) {
|
||||||
|
return userLang
|
||||||
|
}
|
||||||
|
return 'en'
|
||||||
}
|
}
|
||||||
|
|
||||||
locale.val(lang)
|
const lang = detectLang()
|
||||||
$('select.ui-locale option[value="' + lang + '"]').attr('selected', 'selected')
|
const localeSelector = $('.ui-locale')
|
||||||
|
|
||||||
locale.change(function () {
|
// 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(), {
|
Cookies.set('locale', $(this).val(), {
|
||||||
expires: 365,
|
expires: 365,
|
||||||
sameSite: 'strict'
|
sameSite: 'strict'
|
||||||
})
|
})
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
window.moment.locale(lang)
|
||||||
|
|
|
@ -7,8 +7,9 @@
|
||||||
<small>
|
<small>
|
||||||
<span>
|
<span>
|
||||||
<span class="ui-lastchangeuser" style="display: none;"> <i class="ui-user-icon small" data-toggle="tooltip" data-placement="right"></i></span>
|
<span class="ui-lastchangeuser" style="display: none;"> <i class="ui-user-icon small" data-toggle="tooltip" data-placement="right"></i></span>
|
||||||
<span class="ui-no-lastchangeuser"> <i class="fa fa-clock-o fa-fw" style="width: 18px;"></i></span>
|
<span class="ui-no-lastchangeuser"> <i class="fa fa-clock-o fa-fw" style="width: 18px;"></i></span>
|
||||||
<span class="text-uppercase ui-status-lastchange"></span>
|
<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 class="ui-lastchange text-uppercase"></span>
|
||||||
</span>
|
</span>
|
||||||
<span class="ui-permission dropdown pull-right">
|
<span class="ui-permission dropdown pull-right">
|
||||||
|
|
Loading…
Reference in a new issue