diff --git a/locales/en.json b/locales/en.json index f2042e43..c14d5b93 100644 --- a/locales/en.json +++ b/locales/en.json @@ -67,27 +67,40 @@ "one": "%s year from now", "other": "%s years from now" }, + "2FA Code": "2FA Code", "Account": "Account", "Accounts": "Accounts", "Actions": "Actions", "Active sessions": "Active sessions", + "alphanumeric only": "alphanumeric only", + "Appeal": "Appeal", + "Appealable?": "Appealable?", "Archive": "Archive", + "Ascending": "Ascending", "Ban duration e.g. 7d": "Ban duration e.g. 7d", "Ban Poster": "Ban Poster", "Ban reason": "Ban reason", "Ban Reporters": "Ban Reporters", + "Banned!": "Banned!", "Banners": "Banners", "Bans": "Bans", + "Bans currently in place against your IP": "Bans currently in place against your IP", "Block Bypass": "Block Bypass", "Board": "Board", + "Board List": "Board List", "Boards": "Boards", "Boards you are staff on": "Boards you are staff on", "Boards you own": "Boards you own", "Bump Order": "Bump Order", + "Bypass": "Bypass", "Captcha text": "Captcha text", "Catalog": "Catalog", "Change password": "Change password", + "Change Password": "Change Password", + "Confirm New Password": "Confirm New Password", + "Create": "Create", "Create a board": "Create a board", + "Create Board": "Create Board", "Creation Date": "Creation Date", "Custom Pages": "Custom Pages", "Delete": "Delete", @@ -97,6 +110,9 @@ "Delete from IP on board": "Delete from IP on board", "Delete Posts": "Delete Posts", "Delete your account": "Delete your account", + "Deny Appeal": "Deny Appeal", + "Descending": "Descending", + "Description": "Description", "Dismiss Global Reports": "Dismiss Global Reports", "Dismiss Reports": "Dismiss Reports", "Double click to highlight (%s)": { @@ -107,8 +123,12 @@ }, "Draw": "Draw", "Edit": "Edit", + "Edit Duration": "Edit Duration", + "Edit Note": "Edit Note", "Edit Post": "Edit Post", "Email": "Email", + "Existing Password": "Existing Password", + "Expiry": "Expiry", "Files": { "one": "File", "other": "Files" @@ -122,18 +142,30 @@ "focus to load captcha": "focus to load captcha", "General": "General", "Geographic Flag": "Geographic Flag", + "Global": "Global", "Global Ban Poster": "Global Ban Poster", "Global Ban Reporters": "Global Ban Reporters", "Global management": "Global management", "Global Report": "Global Report", "Global Settings": "Global Settings", + "Hidden User": "Hidden User", "Hide": "Hide", "Hide Username In Modlog": "Hide Username In Modlog", "Home": "Home", + "Hover to view": "Hover to view", "I'm sure": "I'm sure", + "if enabled": "if enabled", "Index": "Index", + "IP/ID": "IP/ID", + "IPV4": "IPV4", + "IPV6": "IPV6", + "Issue Date": "Issue Date", + "Issuer": "Issuer", + "Latest Activity": "Latest Activity", "loading": "loading", + "Local First": "Local First", "Log out": "Log out", + "Login": "Login", "Logs": "Logs", "Manage": "Manage", "Max %s files": { @@ -148,17 +180,26 @@ "Move": "Move", "My permissions": "My permissions", "Name": "Name", + "Narrow": "Narrow", "Narrow Range": "Narrow Range", + "New Password": "New Password", "New Reply": "New Reply", "New Thread": "New Thread", + "Newline separated, max 10": "Newline separated, max 10", "News": "News", - "No posts.": "Sem publicações.", + "No appeal submitted": "No appeal submitted", + "No bans.": "No bans.", + "No posts.": "No posts.", "No video/audio files in this thread.": "No video/audio files in this thread.", "Non-appealable Ban": "Non-appealable Ban", "None": "None", + "Not Shown": "Not Shown", + "Note": "Note", "Nothing": "None", "Now": "Now", + "Order": "Order", "Overboard": "Overboard", + "Owner": "Owner", "Page": "Page", "Page %s": { "other": "Page %s" @@ -167,8 +208,18 @@ "Payload Too Large": "Payload Too Large", "Playlist": "Playlist", "Please enable JavaScript to solve the captcha.": "Please enable JavaScript to solve the captcha.", + "Popularity": "Popularity", + "Post(s)": "Post(s)", + "Posts": "Posts", "Posts must include a message or file": "Posts must include a message or file", + "Posts not shown": "Posts not shown", + "PPD": "PPD", + "PPH": "PPH", + "Pruned IP": "Pruned IP", + "Range": "Range", + "Reason": "Reason", "Recent": "Recent", + "Register": "Register", "Register an account": "Register an account", "Replayable?": "Replayable?", "Replies": { @@ -184,15 +235,21 @@ "Reverse": "Reverse", "Reverse Image Search": "Reverse Image Search", "Roles": "Roles", + "Search": "Search", + "Seen?": "Visto?", "Select/Drop/Paste files": { "one": "Select/Drop/Paste file", "other": "Select/Drop/Paste files" }, "Settings": "Settings", "Setup 2FA (TOTP)": "Setup 2FA (TOTP)", + "SFW": "SFW", "Show": "Show", "Show Post Actions": "Show Post Actions", "Show Post In Ban": "Show Post In Ban", + "Shown": "Shown", + "Single": "Single", + "Sort": "Sort", "Sort By": "Sort By", "Spoiler": "Spoiler", "Spoiler File": "Spoiler File", @@ -202,6 +259,7 @@ "Strip Filename": "Strip Filename", "Subject": "Subject", "Submit": "Submit", + "Tags": "Tags", "Tegaki": "Tegaki", "Thread No.": "Thread No.", "Thread Watcher": "Thread Watcher", @@ -209,12 +267,20 @@ "Toggle Cycle": "Toggle Cycle", "Toggle Lock": "Toggle Lock", "total": "total", + "Type": "Type", + "Unban": "Unban", "Unlink Files": "Unlink Files", + "Upgrade Ban": "Upgrade Ban", + "URI e.g. /uri/": "URI e.g. /uri/", + "Username": "Username", + "Users": "Users", "Watch": "Watch", + "Webring": "Webring", "Welcome": "Welcome", + "Wide": "Wide", "Wide Range": "Wide Range", "You": "You", "You moderate": "You moderate", "You own": "You own", "Your upload was too large": "Your upload was too large" -} +} \ No newline at end of file diff --git a/locales/pt.json b/locales/pt.json index 69191b93..f41aa11c 100644 --- a/locales/pt.json +++ b/locales/pt.json @@ -67,27 +67,40 @@ "one": "%s ano desde agora", "other": "%s anos desde agora" }, + "2FA Code": "2FA Code", "Account": "Conta", "Accounts": "Contas", "Actions": "Ações", "Active sessions": "Sessões ativas", + "alphanumeric only": "Alfanumérico apenas", + "Appeal": "Recurso", + "Appealable?": "Recurso?", "Archive": "Arquivo", + "Ascending": "Ascendente", "Ban duration e.g. 7d": "Duração do ban e.g. 7d", "Ban Poster": "Banir Utilizador", "Ban reason": "Motivodo do Ban", "Ban Reporters": "Banir Denunciantes", + "Banned!": "Banned!", "Banners": "Banners", "Bans": "Bans", + "Bans currently in place against your IP": "Bans colocados no teu IP", "Block Bypass": "Bypass", "Board": "Tábua", + "Board List": "Tábuas", "Boards": "Tábuas", "Boards you are staff on": "Tábuas em que fazes parte do staff", "Boards you own": "Administrador das tábuas", "Bump Order": "Bump", + "Bypass": "Bypass", "Captcha text": "Código captcha", "Catalog": "Catálogo", "Change password": "Alterar password", + "Change Password": "Change Password", + "Confirm New Password": "Confirm New Password", + "Create": "Criar", "Create a board": "Criar tábua", + "Create Board": "Criar Tábua", "Creation Date": "Criação", "Custom Pages": "Páginas", "Delete": "Apagar", @@ -97,6 +110,9 @@ "Delete from IP on board": "Apagar do IP na Tábua", "Delete Posts": "Apagar Publicação", "Delete your account": "Apagar conta", + "Deny Appeal": "Negar Recurso", + "Descending": "Descendente", + "Description": "Descrição", "Dismiss Global Reports": "Dismiss Global Reports", "Dismiss Reports": "Dismiss Denúncias", "Double click to highlight (%s)": { @@ -107,8 +123,12 @@ }, "Draw": "Desenhar", "Edit": "Editar", + "Edit Duration": "Alterar Duração", + "Edit Note": "Editar Nota", "Edit Post": "Editar Publicação", "Email": "Opção", + "Existing Password": "Existing Password", + "Expiry": "Expira", "Files": { "one": "Ficheiro", "other": "Ficheiros" @@ -122,18 +142,30 @@ "focus to load captcha": "Seleciona para carregar captcha", "General": "Geral", "Geographic Flag": "Bandeira Geográfica", + "Global": "Global", "Global Ban Poster": "Banir Globalmente Utilizador", "Global Ban Reporters": "Global Ban Reporters", "Global management": "Global management", "Global Report": "Denúncia Global", "Global Settings": "Opções Globais", + "Hidden User": "Esconder", "Hide": "Esconder", "Hide Username In Modlog": "Esconder Username", "Home": "Início", + "Hover to view": "Hover to view", "I'm sure": "Tenho a certeza", + "if enabled": "opcional, se ativo", "Index": "Index", + "IP/ID": "IP/ID", + "IPV4": "IPV4", + "IPV6": "IPV6", + "Issue Date": "Data", + "Issuer": "Autor", + "Latest Activity": "Última Atividade", "loading": "loading", + "Local First": "Locais Primeiro", "Log out": "Log out", + "Login": "Entrar", "Logs": "Logs", "Manage": "Gerir", "Max %s files": { @@ -148,17 +180,26 @@ "Move": "Move", "My permissions": "Minhas permissões", "Name": "Nome", + "Narrow": "Curto", "Narrow Range": "Range Curto", + "New Password": "New Password", "New Reply": "Nova Resposta", "New Thread": "Novo Fio", + "Newline separated, max 10": "Separadas por nova linha, máx 10", "News": "Notícias", + "No appeal submitted": "Sem recurso enviado", + "No bans.": "Sem bans.", "No posts.": "Sem publicações.", "No video/audio files in this thread.": "No video/audio files in this thread.", "Non-appealable Ban": "Ban sem Recurso", "None": "Nada", + "Not Shown": "Not Shown", + "Note": "Nota", "Nothing": "Nenhuma", "Now": "Agora", + "Order": "Ordem", "Overboard": "Tudo", + "Owner": "Admin", "Page": "Página", "Page %s": { "other": "Página %s" @@ -167,8 +208,18 @@ "Payload Too Large": "Payload Too Large", "Playlist": "Playlist", "Please enable JavaScript to solve the captcha.": "Necessita JavaScript.", + "Popularity": "Popularidade", + "Post(s)": "Publicação", + "Posts": "Publicações", "Posts must include a message or file": "Posts must include a message or file", + "Posts not shown": "Posts sem", + "PPD": "PPD", + "PPH": "PPH", + "Pruned IP": "IP Removido", + "Range": "Range", + "Reason": "Motivo", "Recent": "Recentes", + "Register": "Registar", "Register an account": "Registar conta", "Replayable?": "Replay?", "Replies": { @@ -184,16 +235,22 @@ "Reverse": "ImgOps", "Reverse Image Search": "Procura reversa de imagem", "Roles": "Permissões", + "Search": "Procurar", + "Seen?": "Visto?", "Select/Drop/Paste files": { "one": "Seleciona/Arrasta/Cola ficheiro", "other": "Seleciona/Arrasta/Cola ficheiros" }, "Settings": "Opções", "Setup 2FA (TOTP)": "Configurar 2FA (TOTP)", + "SFW": "SFW", "Show": "Mostrar", "Show Post Actions": "Denunciar/Moderar", "Show Post In Ban": "Mostrar Publicação no Ban", - "Sort By": "Ordenar", + "Shown": "Shown", + "Single": "Único", + "Sort": "Ordenar", + "Sort By": "Ordem", "Spoiler": "Spoiler", "Spoiler File": "Spoiler Ficheiro", "Spoiler Files": "Spoiler Ficheiros", @@ -202,6 +259,7 @@ "Strip Filename": "Limpar Nome", "Subject": "Assunto", "Submit": "Enviar", + "Tags": "Tags", "Tegaki": "Tegaki", "Thread No.": "Fio n.º", "Thread Watcher": "Favoritos", @@ -209,9 +267,17 @@ "Toggle Cycle": "Toggle Cycle", "Toggle Lock": "Trancar", "total": "total", + "Type": "Tipo", + "Unban": "Remover Ban", "Unlink Files": "Unlink Ficheiros", + "Upgrade Ban": "Alterar Range", + "URI e.g. /uri/": "URI e.g. /uri/", + "Username": "Username", + "Users": "Utilizadores", "Watch": "+Favorito", + "Webring": "Webring", "Welcome": "Bem-vindo", + "Wide": "Longo", "Wide Range": "Range Longo", "You": "You", "You moderate": "Que moderas", diff --git a/views/includes/banform.pug b/views/includes/banform.pug index 84e79a20..dc294b60 100644 --- a/views/includes/banform.pug +++ b/views/includes/banform.pug @@ -4,14 +4,14 @@ form.form-post(action=`/forms/appeal`, enctype='application/x-www-form-urlencode +ban(ban, true) - const allowAppeal = bans.filter(ban => ban.allowAppeal === true && !ban.appeal).length > 0; if allowAppeal === true - h4.no-m-p Appeal: + h4.no-m-p #{__('Appeal')}: .form-wrapper.flexleft.mt-10 input(type='hidden' name='_csrf' value=csrf) .row - .label Message + .label #{__('Message')} textarea(rows='5' name='message' required) if captchaOptions.type === 'text' include ./captchasidelabel.pug else include ./captchafieldrow.pug - input(type='submit', value='Submit') + input(type='submit', value=__('Submit')) diff --git a/views/includes/bantable.pug b/views/includes/bantable.pug index f2765038..5effe9e0 100644 --- a/views/includes/bantable.pug +++ b/views/includes/bantable.pug @@ -2,16 +2,16 @@ table.bantable tr th - th Board - th Reason - th IP/ID - th Type - th Range - th Issuer - th Issue Date - th Expiry - th Post(s) - th Seen? - th Appealable? - th Appeal - th Note + th #{__('Board')} + th #{__('Reason')} + th #{__('IP/ID')} + th #{__('Type')} + th #{__('Range')} + th #{__('Issuer')} + th #{__('Issue Date')} + th #{__('Expiry')} + th #{__('Post(s)')} + th #{__('Seen?')} + th #{__('Appealable?')} + th #{__('Appeal')} + th #{__('Note')} diff --git a/views/includes/managebanform.pug b/views/includes/managebanform.pug index 01034c40..1281e48d 100644 --- a/views/includes/managebanform.pug +++ b/views/includes/managebanform.pug @@ -1,5 +1,5 @@ if bans.length === 0 - p No bans. + p #{__('No bans.')} else input(type='hidden' name='_csrf' value=csrf) include ../includes/bantable.pug @@ -7,30 +7,30 @@ else +ban(ban) .action-wrapper.mv-10 .row - .label Unban + .label #{__('Unban')} label.postform-style.ph-5 input(type='radio' name='option' value='unban' checked='checked') .row - .label Deny Appeal + .label #{__('Deny Appeal')} label.postform-style.ph-5 input(type='radio' name='option' value='deny_appeal') .row - .label Upgrade Ban + .label #{__('Upgrade Ban')} label.postform-style.ph-5.mr-1 input(type='radio' name='option' value='upgrade') select(name='upgrade') option(value='') - option(value='1') Narrow Range - option(value='2') Wide Range + option(value='1') #{__('Narrow Range')} + option(value='2') #{__('Wide Range')} .row - .label Edit Duration + .label #{__('Edit Duration')} label.postform-style.ph-5.mr-1 input(type='radio' name='option' value='edit_duration') - input(type='text' name='ban_duration' placeholder='Ban duration e.g. 7d' autocomplete='off') + input(type='text' name='ban_duration' placeholder=__('Ban duration e.g. 7d') autocomplete='off') .row - .label Edit Note + .label #{__('Edit Note')} label.postform-style.ph-5.mr-1 input(type='radio' name='option' value='edit_note') input(type='text' name='ban_note') - input(type='submit' value='Submit') + input(type='submit' value=__('Submit')) diff --git a/views/mixins/ban.pug b/views/mixins/ban.pug index 0dd1b285..e385e167 100644 --- a/views/mixins/ban.pug +++ b/views/mixins/ban.pug @@ -9,28 +9,28 @@ mixin ban(ban, banpage) if ban.board a(href=`/${ban.board}/`) /#{ban.board}/ else - | Global + | #{__('Global')} td= ban.reason - const ip = viewRawIp === true ? ban.ip.raw : ban.ip.cloak; if viewRawIp === true td #{ip} else td #{ip}#{'.*'.repeat(ban.range)} - td #{['IPV4', 'IPV6', 'Bypass', 'Pruned IP'][ban.ip.type]} - td #{['Single', 'Narrow', 'Wide'][ban.range]} - td #{(!banpage || ban.showUser === true) ? ban.issuer : 'Hidden User'} + td #{__(['IPV4', 'IPV6', 'Bypass', 'Pruned IP'][ban.ip.type])} + td #{__(['Single', 'Narrow', 'Wide'][ban.range])} + td #{(!banpage || ban.showUser === true) ? ban.issuer : __('Hidden User')} - const banDate = new Date(ban.date); td: time.right.reltime(datetime=banDate.toISOString()) #{banDate.toLocaleString(undefined, {hourCycle:'h23'})} - const expireDate = new Date(ban.expireAt); td: time.right.reltime(datetime=expireDate.toISOString()) #{expireDate.toLocaleString(undefined, {hourCycle:'h23'})} td.banposts if ban.posts && ban.posts.length > 0 - | Hover to view + | #{__('Hover to view')} .thread each p in ban.posts +post(p, false, false, false, true) else - Posts not shown + #{__('Posts not shown')} td if ban.seen | ✓ @@ -45,7 +45,7 @@ mixin ban(ban, banpage) if ban.appeal textarea(rows=1 disabled='true') #{ban.appeal} else if ban.allowAppeal - | No appeal submitted + | #{__('No appeal submitted')} else | - td diff --git a/views/mixins/boardtable.pug b/views/mixins/boardtable.pug index 56a30be3..0d178c13 100644 --- a/views/mixins/boardtable.pug +++ b/views/mixins/boardtable.pug @@ -2,15 +2,15 @@ mixin boardtable(ppd=false, activity=false, owner=false) .table-container.flex-center.mv-10.text-center table(class=`boardtable${activity ? ' w900' : ''}`) tr - th Board + th #{__('Board')} if owner - th Owner - th Description - th PPH + th #{__('Owner')} + th #{__('Description')} + th #{__('PPH')} if ppd - th PPD - th Users - th Posts + th #{__('PPD')} + th #{__('Users')} + th #{__('Posts')} if activity - th Last Activity + th #{__('Latest Activity')} block diff --git a/views/pages/ban.pug b/views/pages/ban.pug index f76ac480..d1101a52 100644 --- a/views/pages/ban.pug +++ b/views/pages/ban.pug @@ -2,9 +2,9 @@ extends ../layout.pug include ../mixins/ban.pug block head - title Banned! + title #{__('Banned!')} block content - h1.board-title Banned! - h4.board-description Bans currently in place against your IP: + h1.board-title #{__('Banned!')} + h4.board-description #{__('Bans currently in place against your IP')}: include ../includes/banform.pug diff --git a/views/pages/board.pug b/views/pages/board.pug index a9393857..3137aae8 100644 --- a/views/pages/board.pug +++ b/views/pages/board.pug @@ -9,7 +9,7 @@ block head title /#{board._id}/ - #{board.settings.name} - #{__n('Page %s', page)} block content - +boardheader(modview ? 'Mod Index' : null) + +boardheader(modview ? __('Mod Index') : null) br include ../includes/postform.pug br diff --git a/views/pages/boardlist.pug b/views/pages/boardlist.pug index 87753597..94370f61 100644 --- a/views/pages/boardlist.pug +++ b/views/pages/boardlist.pug @@ -2,42 +2,42 @@ extends ../layout.pug include ../mixins/boardtable.pug block head - title Board List + title #{__('Board List')} block content - h1.board-title Board List + h1.board-title #{__('Board List')} .flexcenter.mv-10 form.form-post(action='/boards.html' method='GET') input(type='hidden' value=page) .row.wrap.sb div(class=`col${enableWebring ? ' mr-5' : ''}`) .row - .label Search + .label #{__('Search')} input(type='text' name='search' value=search placeholder='Uri or tags') .row - .label Sort + .label #{__('Sort')} select(name='sort') - option(value='popularity') Popularity - option(value='activity' selected=query.sort === 'activity') Latest Activity + option(value='popularity') #{__('Popularity')} + option(value='activity' selected=query.sort === 'activity') #{__('Latest Activity')} .row - .label Order + .label #{__('Order')} select(name='direction') - option(value='desc') Descending - option(value='asc' selected=query.direction === 'asc') Ascending + option(value='desc') #{__('Descending')} + option(value='asc' selected=query.direction === 'asc') #{__('Ascending')} if enableWebring .row - .label Local First + .label #{__('Local First')} label.postform-style.ph-5 input(type='checkbox', name='local_first', value='true' checked=localFirst) if enableWebring .col .row - .label Sites + .label #{__('Sites')} select(name='sites' size='5' multiple) - optgroup(label='Shown') + optgroup(label=__('Shown')) each site in shown option(value=site selected=true) #{site} - optgroup(label='Not Shown') + optgroup(label=__('Not Shown')) each site in notShown option(value=site) #{site} input(type='submit', value='Filter') @@ -49,10 +49,10 @@ block content td span.left if board.webring === true - span.help(title='Webring') 🔗 + span.help(title=__('Webring')) 🔗 | if board.settings.sfw === true - span.help(title='SFW') 💼 + span.help(title=__('SFW')) 💼 | a(href=path) #{board.webring ? board.siteName : ''} /#{board.webring ? board.uri : board._id}/ - #{board.settings.name} td #{board.settings.description || '-'} diff --git a/views/pages/catalog.pug b/views/pages/catalog.pug index a80b4310..3f3d6502 100644 --- a/views/pages/catalog.pug +++ b/views/pages/catalog.pug @@ -6,10 +6,10 @@ include ../mixins/boardheader.pug include ../mixins/announcements.pug block head - title /#{board._id}/ - Catalog + title /#{board._id}/ - #{__('Catalog')} block content - +boardheader(modview ? 'Mod Catalog' : 'Catalog') + +boardheader(modview ? __('Mod Catalog') : __('Catalog')) br include ../includes/postform.pug br diff --git a/views/pages/changepassword.pug b/views/pages/changepassword.pug index 27c814b5..c782817d 100644 --- a/views/pages/changepassword.pug +++ b/views/pages/changepassword.pug @@ -1,31 +1,31 @@ extends ../layout.pug block head - title Change Password + title #{__('Change Password')} block content - h1.board-title Change Password + h1.board-title #{__('Change Password')} .form-wrapper.flex-center.mv-10 form.form-post(action='/forms/changepassword' method='POST' data-captcha-preload='true') .row - .label Username + .label #{__('Username')} input(type='text', name='username', maxlength='50' required) .row - .label Existing Password + .label #{__('Existing Password')} input(type='password', name='password', maxlength='100' required) .row - .label New Password + .label #{__('New Password')} input(type='password', name='newpassword', maxlength='100' required) .row - .label Confirm New Password + .label #{__('Confirm New Password')} input(type='password', name='newpasswordconfirm', maxlength='100' required) .row - .label 2FA Code - input(type='number' name='twofactor' placeholder='if enabled') + .label #{__('2FA Code')} + input(type='number' name='twofactor' placeholder=__('if enabled')) if captchaOptions.type === 'text' include ../includes/captchasidelabel.pug else include ../includes/captchafieldrow.pug - input(type='submit', value='Change Password') - p: a(href='/login.html') Login - p: a(href='/register.html') Register + input(type='submit', value=__('Change Password')) + p: a(href='/login.html') #{__('Login')} + p: a(href='/register.html') #{__('Register')} diff --git a/views/pages/create.pug b/views/pages/create.pug index cca2b481..cc69cdce 100644 --- a/views/pages/create.pug +++ b/views/pages/create.pug @@ -1,27 +1,27 @@ extends ../layout.pug block head - title Create Board + title #{__('Create Board')} block content - h1.board-title Create Board + h1.board-title #{__('Create Board')} .form-wrapper.flex-center.mv-10 form.form-post(action='/forms/create' method='POST' data-captcha-preload='true') .row - .label URI e.g. /uri/ - input(type='text', name='uri', maxlength=globalLimits.fieldLength.uri pattern='[a-zA-Z0-9]+' required title='alphanumeric only') + .label #{__('URI e.g. /uri/')} + input(type='text', name='uri', maxlength=globalLimits.fieldLength.uri pattern='[a-zA-Z0-9]+' required title=__('alphanumeric only')) .row - .label Name + .label #{__('Name')} input(type='text', name='name', maxlength=globalLimits.fieldLength.boardname required) .row - .label Description + .label #{__('Description')} input(type='text', name='description', maxlength=globalLimits.fieldLength.description) .row - .label Tags - textarea(name='tags' placeholder='Newline separated, max 10') + .label #{__('Tags')} + textarea(name='tags' placeholder=__('Newline separated, max 10')) if captchaOptions.type === 'text' include ../includes/captchasidelabel.pug else include ../includes/captchafieldrow.pug - input(type='submit', value='Submit') + input(type='submit', value=__('Create'))