feat: translations (wip)

This commit is contained in:
Nick 2019-06-08 21:00:12 -04:00
parent f93ea02975
commit 0f1c3a1658
11 changed files with 71 additions and 65 deletions

View File

@ -3,7 +3,7 @@
nav-header(hide-search) nav-header(hide-search)
template(slot='mid') template(slot='mid')
v-spacer v-spacer
.subheading.grey--text Administration Area .subheading.grey--text {{$t('admin:adminArea')}}
v-spacer v-spacer
v-navigation-drawer.pb-0.admin-sidebar(v-model='adminDrawerShown', app, fixed, clipped, :right='$vuetify.rtl', permanent) v-navigation-drawer.pb-0.admin-sidebar(v-model='adminDrawerShown', app, fixed, clipped, :right='$vuetify.rtl', permanent)
vue-scroll(:ops='scrollStyle') vue-scroll(:ops='scrollStyle')

View File

@ -80,8 +80,8 @@
i18next.body-2(path='admin:auth.strategyState', tag='div', v-else) i18next.body-2(path='admin:auth.strategyState', tag='div', v-else)
v-chip(color='red', small, dark, label, place='state') {{$t('admin:auth.strategyStateInactive')}} v-chip(color='red', small, dark, label, place='state') {{$t('admin:auth.strategyStateInactive')}}
v-divider.mt-3 v-divider.mt-3
v-subheader.pl-0 Strategy Configuration v-subheader.pl-0 {{$t('admin:auth.strategyConfiguration')}}
.body-1.ml-3(v-if='!strategy.config || strategy.config.length < 1'): em This strategy has no configuration options you can modify. .body-1.ml-3(v-if='!strategy.config || strategy.config.length < 1'): em {{$t('admin:auth.strategyNoConfiguration')}}
template(v-else, v-for='cfg in strategy.config') template(v-else, v-for='cfg in strategy.config')
v-select( v-select(
v-if='cfg.value.type === "string" && cfg.value.enum' v-if='cfg.value.type === "string" && cfg.value.enum'
@ -119,13 +119,13 @@
:class='cfg.value.hint ? "mb-2" : ""' :class='cfg.value.hint ? "mb-2" : ""'
) )
v-divider.mt-3 v-divider.mt-3
v-subheader.pl-0 Registration v-subheader.pl-0 {{$t('admin:auth.registration')}}
.pr-3 .pr-3
v-switch.ml-3( v-switch.ml-3(
v-model='strategy.selfRegistration' v-model='strategy.selfRegistration'
label='Allow self-registration' :label='$t(`admin:auth.selfRegistration`)'
color='primary' color='primary'
hint='Allow any user successfully authorized by the strategy to access the wiki.' :hint='$t(`admin:auth.selfRegistrationHint`)'
persistent-hint persistent-hint
) )
v-switch.ml-3( v-switch.ml-3(
@ -138,12 +138,12 @@
persistent-hint persistent-hint
) )
v-combobox.ml-3.mt-3( v-combobox.ml-3.mt-3(
label='Limit to specific email domains' :label='$t(`admin:auth.domainsWhitelist`)'
v-model='strategy.domainWhitelist' v-model='strategy.domainWhitelist'
prepend-icon='mail_outline' prepend-icon='mail_outline'
outline outline
:disabled='!strategy.selfRegistration' :disabled='!strategy.selfRegistration'
hint='A list of domains authorized to register. The user email address domain must match one of these to gain access.' :hint='$t(`admin:auth.domainsWhitelistHint`)'
persistent-hint persistent-hint
small-chips small-chips
deletable-chips deletable-chips
@ -157,10 +157,10 @@
:items='groups' :items='groups'
item-text='name' item-text='name'
item-value='id' item-value='id'
label='Assign to group' :label='$t(`admin:auth.autoEnrollGroups`)'
v-model='strategy.autoEnrollGroups' v-model='strategy.autoEnrollGroups'
prepend-icon='people' prepend-icon='people'
hint='Automatically assign new users to these groups.' :hint='$t(`admin:auth.autoEnrollGroupsHint`)'
small-chips small-chips
persistent-hint persistent-hint
deletable-chips deletable-chips
@ -170,36 +170,39 @@
) )
template(v-if='strategy.useForm') template(v-if='strategy.useForm')
v-divider.mt-3 v-divider.mt-3
v-subheader.pl-0 Security v-subheader.pl-0 {{$t('admin:auth.security')}}
v-switch.ml-3( v-switch.ml-3(
v-model='strategy.recaptcha' v-model='strategy.recaptcha'
:disabled='true' :disabled='true'
label='Force all users to use Two-Factor Authentication (2FA)' :label='$t(`admin:auth.force2fa`)'
color='primary' color='primary'
hint='Users will be required to setup 2FA the first time they login and cannot be disabled by the user.' :hint='$t(`admin:auth.force2faHint`)'
persistent-hint persistent-hint
) )
v-card.mt-3.wiki-form.animated.fadeInUp.wait-p4s v-card.mt-3.wiki-form.animated.fadeInUp.wait-p4s
v-toolbar(color='primary', dense, flat, dark) v-toolbar(color='primary', dense, flat, dark)
.subheading Configuration Reference .subheading {{$t('admin:auth.configReference')}}
v-card-text v-card-text
.body-1 Some strategies may require some configuration values to be set on your provider. These are provided for reference only and may not be needed by the current strategy. .body-1 {{$t('admin:auth.configReferenceSubtitle')}}
v-alert.mt-3.radius-7(v-if='host.length < 8', color='red', outline, :value='true', icon='warning') You must set a valid #[strong Site URL] first! Click on #[strong General] in the left sidebar. v-alert.mt-3.radius-7(v-if='host.length < 8', color='red', outline, :value='true', icon='warning')
i18next(path='admin:auth.siteUrlNotSetup', tag='span')
strong(place='siteUrl') {{$t('admin:general.siteUrl')}}
strong(place='general') {{$t('admin:general.title')}}
.pa-3.mt-3.radius-7.grey(v-else, :class='$vuetify.dark ? `darken-3-d5` : `lighten-3`') .pa-3.mt-3.radius-7.grey(v-else, :class='$vuetify.dark ? `darken-3-d5` : `lighten-3`')
.body-2 Allowed Web Origins .body-2 {{$t('admin:auth.allowedWebOrigins')}}
.body-1 {{host}} .body-1 {{host}}
v-divider.my-3 v-divider.my-3
.body-2 Callback URL / Redirect URI .body-2 {{$t('admin:auth.callbackUrl')}}
.body-1 {{host}}/login/{{strategy.key}}/callback .body-1 {{host}}/login/{{strategy.key}}/callback
v-divider.my-3 v-divider.my-3
.body-2 Login URL .body-2 {{$t('admin:auth.loginUrl')}}
.body-1 {{host}}/login .body-1 {{host}}/login
v-divider.my-3 v-divider.my-3
.body-2 Logout URL .body-2 {{$t('admin:auth.logoutUrl')}}
.body-1 {{host}} .body-1 {{host}}
v-divider.my-3 v-divider.my-3
.body-2 Token Endpoint Authentication Method .body-2 {{$t('admin:auth.tokenEndpointAuthMethod')}}
.body-1 HTTP-POST .body-1 HTTP-POST
</template> </template>

View File

@ -5,8 +5,8 @@
.admin-header .admin-header
img.animated.fadeInUp(src='/svg/icon-paint-palette.svg', alt='Theme', style='width: 80px;') img.animated.fadeInUp(src='/svg/icon-paint-palette.svg', alt='Theme', style='width: 80px;')
.admin-header-title .admin-header-title
.headline.primary--text.animated.fadeInLeft Theme .headline.primary--text.animated.fadeInLeft {{$t('admin:theme.title')}}
.subheading.grey--text.animated.fadeInLeft.wait-p2s Modify the look &amp; feel of your wiki .subheading.grey--text.animated.fadeInLeft.wait-p2s {{$t('admin:theme.subtitle')}}
v-spacer v-spacer
v-btn.animated.fadeInRight(color='success', depressed, @click='save', large, :loading='loading') v-btn.animated.fadeInRight(color='success', depressed, @click='save', large, :loading='loading')
v-icon(left) check v-icon(left) check
@ -17,7 +17,7 @@
v-card.wiki-form.animated.fadeInUp v-card.wiki-form.animated.fadeInUp
v-toolbar(color='primary', dark, dense, flat) v-toolbar(color='primary', dark, dense, flat)
v-toolbar-title v-toolbar-title
.subheading Theme .subheading {{$t('admin:theme.title')}}
v-card-text v-card-text
v-select( v-select(
:items='themes' :items='themes'
@ -25,9 +25,9 @@
background-color='grey lighten-2' background-color='grey lighten-2'
prepend-icon='palette' prepend-icon='palette'
v-model='config.theme' v-model='config.theme'
label='Site Theme' :label='$t(`admin:theme.siteTheme`)'
persistent-hint persistent-hint
hint='Themes affect how content pages are displayed. Other site sections (such as the editor or admin area) are not affected.' :hint='$t(`admin:theme.siteThemeHint`)'
) )
template(slot='item', slot-scope='data') template(slot='item', slot-scope='data')
v-list-tile-avatar v-list-tile-avatar
@ -38,51 +38,51 @@
v-divider.mt-3 v-divider.mt-3
v-switch( v-switch(
v-model='darkMode' v-model='darkMode'
label='Dark Mode' :label='$t(`admin:theme.darkMode`)'
color='primary' color='primary'
persistent-hint persistent-hint
hint='Not recommended for accessibility. May not be supported by all themes.' :hint='$t(`admin:theme.darkModeHint`)'
) )
v-card.wiki-form.mt-3.animated.fadeInUp.wait-p2s v-card.wiki-form.mt-3.animated.fadeInUp.wait-p2s
v-toolbar(color='primary', dark, dense, flat) v-toolbar(color='primary', dark, dense, flat)
v-toolbar-title v-toolbar-title
.subheading Code Injection .subheading {{$t(`admin:theme.codeInjection`)}}
v-card-text v-card-text
v-textarea( v-textarea(
v-model='config.injectCSS' v-model='config.injectCSS'
label='CSS Override' :label='$t(`admin:theme.cssOverride`)'
outline outline
background-color='grey lighten-1' background-color='grey lighten-1'
color='primary' color='primary'
persistent-hint persistent-hint
hint='CSS code to inject after system default CSS. Consider using custom themes if you have a large amount of css code. Injecting too much CSS code will result in poor page load performance! CSS will automatically be minified.' :hint='$t(`admin:theme.cssOverrideHint`)'
auto-grow auto-grow
) )
v-textarea.mt-2( v-textarea.mt-2(
v-model='config.injectHead' v-model='config.injectHead'
label='Head HTML Injection' :label='$t(`admin:theme.headHtmlInjection`)'
outline outline
background-color='grey lighten-1' background-color='grey lighten-1'
color='primary' color='primary'
persistent-hint persistent-hint
hint='HTML code to be injected just before the closing head tag. Usually for script tags.' :hint='$t(`admin:theme.headHtmlInjectionHint`)'
auto-grow auto-grow
) )
v-textarea.mt-2( v-textarea.mt-2(
v-model='config.injectBody' v-model='config.injectBody'
label='Body HTML Injection' :label='$t(`admin:theme.bodyHtmlInjection`)'
outline outline
background-color='grey lighten-1' background-color='grey lighten-1'
color='primary' color='primary'
persistent-hint persistent-hint
hint='HTML code to be injected just before the closing body tag.' :hint='$t(`admin:theme.bodyHtmlInjectionHint`)'
auto-grow auto-grow
) )
v-flex(lg6 xs12) v-flex(lg6 xs12)
v-card.animated.fadeInUp.wait-p2s v-card.animated.fadeInUp.wait-p2s
v-toolbar(color='teal', dark, dense, flat) v-toolbar(color='teal', dark, dense, flat)
v-toolbar-title v-toolbar-title
.subheading Download Themes .subheading {{$t('admin:theme.downloadThemes')}}
v-spacer v-spacer
v-chip(label, color='white', small).teal--text coming soon v-chip(label, color='white', small).teal--text coming soon
v-card-text.caption -- Coming soon -- v-card-text.caption -- Coming soon --

View File

@ -10,7 +10,7 @@
v-spacer v-spacer
v-btn.animated.fadeInDown.wait-p2s(outline, color='grey', large, @click='refresh') v-btn.animated.fadeInDown.wait-p2s(outline, color='grey', large, @click='refresh')
v-icon refresh v-icon refresh
v-btn.animated.fadeInDown(color='primary', large, depressed, @click='createUser', disabled) v-btn.animated.fadeInDown(color='primary', large, depressed, @click='createUser')
v-icon(left) add v-icon(left) add
span New User span New User
v-card.wiki-form.mt-3.animated.fadeInUp v-card.wiki-form.mt-3.animated.fadeInUp

View File

@ -25,36 +25,36 @@
v-list(dense, :light='!$vuetify.dark', :dark='$vuetify.dark', :class='$vuetify.dark ? `grey darken-4` : ``').py-0 v-list(dense, :light='!$vuetify.dark', :dark='$vuetify.dark', :class='$vuetify.dark ? `grey darken-4` : ``').py-0
v-list-tile(avatar, href='/') v-list-tile(avatar, href='/')
v-list-tile-avatar: v-icon(color='blue') home v-list-tile-avatar: v-icon(color='blue') home
v-list-tile-content Home v-list-tile-content {{$t('common:header.home')}}
v-list-tile(avatar, @click='pageNew') v-list-tile(avatar, @click='pageNew')
v-list-tile-avatar: v-icon(color='green') add_box v-list-tile-avatar: v-icon(color='green') add_box
v-list-tile-content New Page v-list-tile-content {{$t('common:header.newPage')}}
template(v-if='path && path.length') template(v-if='path && path.length')
v-divider.my-0 v-divider.my-0
v-subheader Current Page v-subheader {{$t('common:header.currentPage')}}
v-list-tile(avatar, @click='pageView', v-if='mode !== `view`') v-list-tile(avatar, @click='pageView', v-if='mode !== `view`')
v-list-tile-avatar: v-icon(color='indigo') subject v-list-tile-avatar: v-icon(color='indigo') subject
v-list-tile-content View v-list-tile-content {{$t('common:header.view')}}
v-list-tile(avatar, @click='pageEdit', v-if='mode !== `edit`') v-list-tile(avatar, @click='pageEdit', v-if='mode !== `edit`')
v-list-tile-avatar: v-icon(color='indigo') edit v-list-tile-avatar: v-icon(color='indigo') edit
v-list-tile-content Edit v-list-tile-content {{$t('common:header.edit')}}
v-list-tile(avatar, @click='pageHistory', v-if='mode !== `history`') v-list-tile(avatar, @click='pageHistory', v-if='mode !== `history`')
v-list-tile-avatar: v-icon(color='indigo') history v-list-tile-avatar: v-icon(color='indigo') history
v-list-tile-content History v-list-tile-content {{$t('common:header.history')}}
v-list-tile(avatar, @click='pageSource', v-if='mode !== `source`') v-list-tile(avatar, @click='pageSource', v-if='mode !== `source`')
v-list-tile-avatar: v-icon(color='indigo') code v-list-tile-avatar: v-icon(color='indigo') code
v-list-tile-content View Source v-list-tile-content {{$t('common:header.viewSource')}}
v-list-tile(avatar, @click='pageMove') v-list-tile(avatar, @click='pageMove')
v-list-tile-avatar: v-icon(color='grey lighten-2') forward v-list-tile-avatar: v-icon(color='grey lighten-2') forward
v-list-tile-content.grey--text.text--ligten-2 Move / Rename v-list-tile-content.grey--text.text--ligten-2 {{$t('common:header.move')}}
v-list-tile(avatar, @click='pageDelete') v-list-tile(avatar, @click='pageDelete')
v-list-tile-avatar: v-icon(color='red darken-2') delete v-list-tile-avatar: v-icon(color='red darken-2') delete
v-list-tile-content Delete v-list-tile-content {{$t('common:header.delete')}}
v-divider.my-0 v-divider.my-0
v-subheader Assets v-subheader {{$t('common:header.assets')}}
v-list-tile(avatar, @click='assets') v-list-tile(avatar, @click='assets')
v-list-tile-avatar: v-icon(color='grey lighten-2') burst_mode v-list-tile-avatar: v-icon(color='grey lighten-2') burst_mode
v-list-tile-content.grey--text.text--ligten-2 Images &amp; Files v-list-tile-content.grey--text.text--ligten-2 {{$t('common:header.imagesFiles')}}
v-toolbar-title(:class='{ "ml-2": $vuetify.breakpoint.mdAndUp, "ml-0": $vuetify.breakpoint.smAndDown }') v-toolbar-title(:class='{ "ml-2": $vuetify.breakpoint.mdAndUp, "ml-0": $vuetify.breakpoint.smAndDown }')
span.subheading {{title}} span.subheading {{title}}
v-flex(md4, v-if='$vuetify.breakpoint.mdAndUp') v-flex(md4, v-if='$vuetify.breakpoint.mdAndUp')
@ -66,7 +66,7 @@
v-if='searchIsShown && $vuetify.breakpoint.mdAndUp', v-if='searchIsShown && $vuetify.breakpoint.mdAndUp',
v-model='search', v-model='search',
color='white', color='white',
label='Search...', :label='$t(`common:header.search`)',
single-line, single-line,
solo solo
flat flat
@ -151,14 +151,14 @@
v-tooltip(bottom, v-if='isAuthenticated && isAdmin') v-tooltip(bottom, v-if='isAuthenticated && isAdmin')
v-btn.btn-animate-rotate(icon, href='/a', slot='activator') v-btn.btn-animate-rotate(icon, href='/a', slot='activator')
v-icon(color='grey') settings v-icon(color='grey') settings
span Admin span {{$t('common:header.admin')}}
v-menu(v-if='isAuthenticated', offset-y, min-width='300', left, transition='slide-y-transition') v-menu(v-if='isAuthenticated', offset-y, min-width='300', left, transition='slide-y-transition')
v-tooltip(bottom, slot='activator') v-tooltip(bottom, slot='activator')
v-btn(icon, slot='activator', outline, color='blue') v-btn(icon, slot='activator', outline, color='blue')
v-icon(v-if='picture.kind === `initials`', color='grey') account_circle v-icon(v-if='picture.kind === `initials`', color='grey') account_circle
v-avatar(v-else-if='picture.kind === `image`', :size='29') v-avatar(v-else-if='picture.kind === `image`', :size='29')
v-img(:src='picture.url') v-img(:src='picture.url')
span Account span {{$t('common:header.account')}}
v-list.py-0 v-list.py-0
v-list-tile.py-3.grey(avatar, :class='$vuetify.dark ? `darken-4-l5` : `lighten-5`') v-list-tile.py-3.grey(avatar, :class='$vuetify.dark ? `darken-4-l5` : `lighten-5`')
v-list-tile-avatar v-list-tile-avatar
@ -172,20 +172,20 @@
v-divider.my-0 v-divider.my-0
v-list-tile(href='/w', disabled) v-list-tile(href='/w', disabled)
v-list-tile-action: v-icon(color='blue') web v-list-tile-action: v-icon(color='blue') web
v-list-tile-title My Wiki v-list-tile-title {{$t('common:header.myWiki')}}
v-divider.my-0 v-divider.my-0
v-list-tile(href='/p', disabled) v-list-tile(href='/p', disabled)
v-list-tile-action: v-icon(color='blue') person v-list-tile-action: v-icon(color='blue') person
v-list-tile-title Profile v-list-tile-title {{$t('common:header.profile')}}
v-divider.my-0 v-divider.my-0
v-list-tile(@click='logout') v-list-tile(@click='logout')
v-list-tile-action: v-icon(color='red') exit_to_app v-list-tile-action: v-icon(color='red') exit_to_app
v-list-tile-title Logout v-list-tile-title {{$t('common:header.logout')}}
v-tooltip(v-else, left) v-tooltip(v-else, left)
v-btn(icon, slot='activator', outline, color='grey darken-3', href='/login') v-btn(icon, slot='activator', outline, color='grey darken-3', href='/login')
v-icon(color='grey') account_circle v-icon(color='grey') account_circle
span Login span {{$t('common:header.login')}}
page-selector(mode='create', v-model='newPageModal', :open-handler='pageNewCreate') page-selector(mode='create', v-model='newPageModal', :open-handler='pageNewCreate')
page-delete(v-model='deletePageModal', v-if='path && path.length') page-delete(v-model='deletePageModal', v-if='path && path.length')

View File

@ -21,7 +21,7 @@
:class='{ "is-icon": $vuetify.breakpoint.mdAndDown, "mx-0": !welcomeMode, "ml-0": welcomeMode }' :class='{ "is-icon": $vuetify.breakpoint.mdAndDown, "mx-0": !welcomeMode, "ml-0": welcomeMode }'
) )
v-icon(color='blue', :left='$vuetify.breakpoint.lgAndUp') sort_by_alpha v-icon(color='blue', :left='$vuetify.breakpoint.lgAndUp') sort_by_alpha
span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('editor:page') }} span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('common:actions.page') }}
v-btn.animated.fadeInDown.wait-p2s( v-btn.animated.fadeInDown.wait-p2s(
v-if='!welcomeMode' v-if='!welcomeMode'
flat flat
@ -30,7 +30,7 @@
@click.native.stop='exit' @click.native.stop='exit'
) )
v-icon(color='red', :left='$vuetify.breakpoint.lgAndUp') close v-icon(color='red', :left='$vuetify.breakpoint.lgAndUp') close
span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('editor:close') }} span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('common:actions.close') }}
v-content v-content
component(:is='currentEditor', :save='save') component(:is='currentEditor', :save='save')
editor-modal-properties(v-model='dialogProps') editor-modal-properties(v-model='dialogProps')

View File

@ -45,7 +45,7 @@
v-btn.ma-0(v-else, :href='props.item.path', small, flat) {{props.item.name}} v-btn.ma-0(v-else, :href='props.item.path', small, flat) {{props.item.name}}
template(v-if='!isPublished') template(v-if='!isPublished')
v-spacer v-spacer
.caption.red--text Unpublished .caption.red--text {{$t('common:page.unpublished')}}
status-indicator.ml-3(negative, pulse) status-indicator.ml-3(negative, pulse)
v-divider v-divider
v-layout(row) v-layout(row)
@ -61,18 +61,18 @@
v-flex(lg3, xl2, fill-height, v-if='$vuetify.breakpoint.lgAndUp') v-flex(lg3, xl2, fill-height, v-if='$vuetify.breakpoint.lgAndUp')
v-toolbar(:color='darkMode ? `grey darken-4-l3` : `grey lighten-4`', flat, :height='90') v-toolbar(:color='darkMode ? `grey darken-4-l3` : `grey lighten-4`', flat, :height='90')
div div
.caption.grey--text.text--lighten-1 Last edited by .caption.grey--text.text--lighten-1 {{$t('common:page.lastEditedBy')}}
.body-2.grey--text(:class='darkMode ? `` : `text--darken-3`') {{ authorName }} .body-2.grey--text(:class='darkMode ? `` : `text--darken-3`') {{ authorName }}
.caption.grey--text.text--darken-1 {{ updatedAt | moment('calendar') }} .caption.grey--text.text--darken-1 {{ updatedAt | moment('calendar') }}
v-spacer v-spacer
v-tooltip(left) v-tooltip(left)
v-btn.btn-animate-edit(icon, slot='activator', :href='"/e/" + path') v-btn.btn-animate-edit(icon, slot='activator', :href='"/e/" + path')
v-icon(color='grey') edit v-icon(color='grey') edit
span Edit Page span {{$t('common:page.editPage')}}
v-divider v-divider
template(v-if='toc.length') template(v-if='toc.length')
v-list.grey.pb-3(dense, :class='darkMode ? `darken-3-d3` : `lighten-3`') v-list.grey.pb-3(dense, :class='darkMode ? `darken-3-d3` : `lighten-3`')
v-subheader.pl-4(:class='darkMode ? `indigo--text text--lighten-3` : `primary--text`') Table of Contents v-subheader.pl-4(:class='darkMode ? `indigo--text text--lighten-3` : `primary--text`') {{$t('common:page.toc')}}
template(v-for='(tocItem, tocIdx) in toc') template(v-for='(tocItem, tocIdx) in toc')
v-list-tile(@click='$vuetify.goTo(tocItem.anchor, scrollOpts)') v-list-tile(@click='$vuetify.goTo(tocItem.anchor, scrollOpts)')
v-icon(color='grey') arrow_right v-icon(color='grey') arrow_right
@ -109,13 +109,13 @@
v-spacer v-spacer
v-tooltip(bottom) v-tooltip(bottom)
v-btn(icon, slot='activator'): v-icon(color='grey') bookmark v-btn(icon, slot='activator'): v-icon(color='grey') bookmark
span Bookmark span {{$t('common:page.bookmark')}}
v-tooltip(bottom) v-tooltip(bottom)
v-btn(icon, slot='activator'): v-icon(color='grey') share v-btn(icon, slot='activator'): v-icon(color='grey') share
span Share span {{$t('common:page.share')}}
v-tooltip(bottom) v-tooltip(bottom)
v-btn(icon, slot='activator'): v-icon(color='grey') print v-btn(icon, slot='activator'): v-icon(color='grey') print
span Print Format span {{$t('common:page.printFormat')}}
v-spacer v-spacer
nav-footer nav-footer
notify notify

View File

@ -43,6 +43,7 @@ defaults:
ldapdebug: false ldapdebug: false
sqllog: false sqllog: false
# System defaults # System defaults
channel: BETA
setup: false setup: false
paths: paths:
content: ./content content: ./content

View File

@ -28,6 +28,7 @@ module.exports = async (localeCode) => {
let lcObj = {} let lcObj = {}
_.forEach(strings, row => { _.forEach(strings, row => {
if (_.includes(row.key, '::')) { return } if (_.includes(row.key, '::')) { return }
if (_.isEmpty(row.value)) { row.value = row.key }
_.set(lcObj, row.key.replace(':', '.'), row.value) _.set(lcObj, row.key.replace(':', '.'), row.value)
}) })

View File

@ -51,6 +51,7 @@ module.exports = async () => {
let lcObj = {} let lcObj = {}
_.forEach(strings, row => { _.forEach(strings, row => {
if (_.includes(row.key, '::')) { return } if (_.includes(row.key, '::')) { return }
if (_.isEmpty(row.value)) { row.value = row.key }
_.set(lcObj, row.key.replace(':', '.'), row.value) _.set(lcObj, row.key.replace(':', '.'), row.value)
}) })

View File

@ -24,7 +24,7 @@ module.exports = async () => {
} }
}`, }`,
variables: { variables: {
channel: 'BETA', // TODO channel: WIKI.config.channel,
version: WIKI.version version: WIKI.version
} }
}) })