mirror of
https://github.com/wassname/talk.git
synced 2026-07-09 21:02:50 +08:00
Merge branch 'master' into fix-ipad-touch-issue
This commit is contained in:
+2
-1
@@ -7,6 +7,7 @@ ONBUILD ARG TALK_REPLY_COMMENTS_LOAD_DEPTH=3
|
||||
ONBUILD ARG TALK_THREADING_LEVEL=3
|
||||
ONBUILD ARG TALK_DEFAULT_STREAM_TAB=all
|
||||
ONBUILD ARG TALK_DEFAULT_LANG=en
|
||||
ONBUILD ARG TALK_WHITELISTED_LANGUAGES
|
||||
ONBUILD ARG TALK_PLUGINS_JSON
|
||||
ONBUILD ARG TALK_WEBPACK_SOURCE_MAP
|
||||
|
||||
@@ -20,4 +21,4 @@ ONBUILD COPY . /usr/src/app
|
||||
ONBUILD RUN cli plugins reconcile && \
|
||||
yarn && \
|
||||
yarn build && \
|
||||
yarn cache clean
|
||||
yarn cache clean
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@custom-media --big-viewport (min-width: 780px);
|
||||
|
||||
.root {
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
font-size: 18px;
|
||||
@@ -13,7 +12,6 @@
|
||||
margin-top: 13px;
|
||||
min-height: 0;
|
||||
outline: 0;
|
||||
|
||||
/*
|
||||
Fix rendering issues in Safari by promoting this
|
||||
into its own layer.
|
||||
@@ -21,7 +19,6 @@
|
||||
https://www.pivotaltracker.com/story/show/151142211
|
||||
*/
|
||||
transform: translateZ(0);
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -39,7 +36,6 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
}
|
||||
|
||||
.author {
|
||||
@@ -74,7 +70,7 @@
|
||||
max-width: 500px;
|
||||
font-weight: 300;
|
||||
font-size: 16px;
|
||||
word-break: break-all;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.created {
|
||||
@@ -95,7 +91,6 @@
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
max-width: 500px;
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
color: #063b9a;
|
||||
@@ -103,17 +98,15 @@
|
||||
font-weight: 500;
|
||||
letter-spacing: .5px;
|
||||
margin-left: 10px;
|
||||
|
||||
font-size: 13px;
|
||||
margin-left: 5px;
|
||||
padding-bottom: 0px;
|
||||
border-bottom: solid 1px;
|
||||
line-height: 16px;
|
||||
|
||||
&:hover {
|
||||
opacity: .9;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,12 +131,10 @@
|
||||
cursor: pointer;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
opacity: .9;
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
@@ -172,7 +163,6 @@
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-right: 14px;
|
||||
|
||||
i {
|
||||
margin-right: 5px;
|
||||
}
|
||||
@@ -181,7 +171,6 @@
|
||||
@media (--big-viewport) {
|
||||
.root {
|
||||
margin-bottom: 30px;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
@@ -190,7 +179,6 @@
|
||||
|
||||
.commentContent {
|
||||
display: flex;
|
||||
|
||||
blockquote {
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
|
||||
@@ -39,7 +39,20 @@ import pt_BR from '../../../locales/pt_BR.yml';
|
||||
import zh_CN from '../../../locales/zh_CN.yml';
|
||||
import zh_TW from '../../../locales/zh_TW.yml';
|
||||
|
||||
export const defaultLocale = process.env.TALK_DEFAULT_LANG.replace(/-/g, '_');
|
||||
// the list of languages that are whitelisted. If false, all languages that are
|
||||
// supported by Talk will be enabled.
|
||||
const whitelistedLanguages =
|
||||
process.env.TALK_WHITELISTED_LANGUAGES &&
|
||||
process.env.TALK_WHITELISTED_LANGUAGES.split(',').map(l => l.trim());
|
||||
|
||||
// The default language. If the whitelisted languages is specified and the
|
||||
// default language is not in that list, then the first language in the
|
||||
// whitelisted list will be used as the default.
|
||||
export const defaultLocale = whitelistedLanguages
|
||||
? !whitelistedLanguages.includes(process.env.TALK_DEFAULT_LANG)
|
||||
? whitelistedLanguages[0]
|
||||
: process.env.TALK_DEFAULT_LANG
|
||||
: process.env.TALK_DEFAULT_LANG;
|
||||
|
||||
export const translations = {
|
||||
...ar,
|
||||
@@ -64,10 +77,14 @@ let TIMEAGO_INSTANCE;
|
||||
// to the default language.
|
||||
const detectLanguage = () =>
|
||||
first(
|
||||
negotiateLanguages(navigator.languages, supportedLocales, {
|
||||
defaultLocale,
|
||||
strategy: 'lookup',
|
||||
})
|
||||
negotiateLanguages(
|
||||
navigator.languages,
|
||||
whitelistedLanguages || supportedLocales,
|
||||
{
|
||||
defaultLocale,
|
||||
strategy: 'lookup',
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
export function setupTranslations() {
|
||||
|
||||
@@ -36,6 +36,13 @@ const CONFIG = {
|
||||
// rendered text.
|
||||
DEFAULT_LANG: process.env.TALK_DEFAULT_LANG || 'en',
|
||||
|
||||
// WHITELISTED_LANGUAGES is a comma separated list of language/locales that
|
||||
// should be supported. If the default language is not included in the
|
||||
// whitelist list, the first entry will be used as the default.
|
||||
WHITELISTED_LANGUAGES:
|
||||
process.env.TALK_WHITELISTED_LANGUAGES &&
|
||||
process.env.TALK_WHITELISTED_LANGUAGES.split(',').map(l => l.trim()),
|
||||
|
||||
// When TRUE, it ensures that database indexes created in core will not add
|
||||
// indexes.
|
||||
CREATE_MONGO_INDEXES: process.env.DISABLE_CREATE_MONGO_INDEXES !== 'TRUE',
|
||||
@@ -317,6 +324,17 @@ CONFIG.JWT_COOKIE_NAMES = uniq(
|
||||
])
|
||||
);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Locale validation
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (
|
||||
CONFIG.WHITELISTED_LANGUAGES &&
|
||||
!CONFIG.WHITELISTED_LANGUAGES.includes(CONFIG.DEFAULT_LANG)
|
||||
) {
|
||||
CONFIG.DEFAULT_LANG = CONFIG.WHITELISTED_LANGUAGES[0];
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// External database url's
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -31,6 +31,21 @@ image you can specify it with `--build-arg TALK_DEFAULT_LANG=en`.
|
||||
|
||||
Specify the default translation language. (Default `en`)
|
||||
|
||||
## TALK_WHITELISTED_LANGUAGES
|
||||
|
||||
This is a **Build Variable** and must be consumed during build. If using the
|
||||
[Docker-onbuild](/talk/installation-from-docker/#onbuild)
|
||||
image you can specify it with `--build-arg TALK_WHITELISTED_LANGUAGES=en`.
|
||||
|
||||
Specify the comma separated whitelisted languages that you want the Talk
|
||||
application to serve. This will override the available set of languages that
|
||||
Talk will allow to be served.
|
||||
|
||||
If the [TALK_DEFAULT_LANG](#talk-default-lang) is not included in this list of
|
||||
whitelisted languages, then the first whitelisted language will become the
|
||||
default language. If this parameter is empty, then all languages supported by
|
||||
Talk will be whitelisted. (Default '')
|
||||
|
||||
## TALK_DEFAULT_STREAM_TAB
|
||||
|
||||
This is a **Build Variable** and must be consumed during build. If using the
|
||||
|
||||
+9
-5
@@ -8,7 +8,7 @@ const {
|
||||
const { first, get, has, merge, isUndefined } = require('lodash');
|
||||
const yaml = require('yamljs');
|
||||
const plugins = require('./plugins');
|
||||
const { DEFAULT_LANG } = require('../config');
|
||||
const { DEFAULT_LANG, WHITELISTED_LANGUAGES } = require('../config');
|
||||
|
||||
const resolve = (...paths) =>
|
||||
path.resolve(path.join(__dirname, '..', 'locales', ...paths));
|
||||
@@ -105,10 +105,14 @@ const i18n = {
|
||||
|
||||
// negotiate the language.
|
||||
const lang = first(
|
||||
negotiateLanguages(acceptsLanguages, supportedLocales, {
|
||||
defaultLocale: DEFAULT_LANG,
|
||||
strategy: 'lookup',
|
||||
})
|
||||
negotiateLanguages(
|
||||
acceptsLanguages,
|
||||
WHITELISTED_LANGUAGES || supportedLocales,
|
||||
{
|
||||
defaultLocale: DEFAULT_LANG,
|
||||
strategy: 'lookup',
|
||||
}
|
||||
)
|
||||
);
|
||||
debug(`decided language as '${lang}'`);
|
||||
|
||||
|
||||
@@ -169,6 +169,7 @@ const config = {
|
||||
TALK_REPLY_COMMENTS_LOAD_DEPTH: '3',
|
||||
TALK_DEFAULT_STREAM_TAB: 'all',
|
||||
TALK_DEFAULT_LANG: 'en',
|
||||
TALK_WHITELISTED_LANGUAGES: '',
|
||||
}),
|
||||
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user