1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-07-10 00:16:18 +02:00

add string extractors for l10n

This commit is contained in:
Kushagra Gour
2019-03-04 16:49:32 +05:30
parent 8c4f48ba43
commit abca6fecb6
19 changed files with 2236 additions and 554 deletions

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ node_modules/
.sass-cache .sass-cache
extension/ extension/
yarn-error.log yarn-error.log
src/locales/_build

View File

@ -31,8 +31,8 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@lingui/cli": "^2.7.0", "@lingui/cli": "^2.7.4",
"@lingui/macro": "^2.7.0", "@lingui/macro": "^2.7.4",
"babel-core": "^6.26.3", "babel-core": "^6.26.3",
"babel-eslint": "^7.2.3", "babel-eslint": "^7.2.3",
"babel-minify": "^0.2.0", "babel-minify": "^0.2.0",
@ -59,7 +59,7 @@
}, },
"dependencies": { "dependencies": {
"@emmetio/codemirror-plugin": "^0.5.4", "@emmetio/codemirror-plugin": "^0.5.4",
"@lingui/react": "^2.7.0", "@lingui/react": "^2.7.4",
"code-blast-codemirror": "chinchang/code-blast-codemirror#web-maker", "code-blast-codemirror": "chinchang/code-blast-codemirror#web-maker",
"codemirror": "^5.37.0", "codemirror": "^5.37.0",
"copy-webpack-plugin": "^4.5.1", "copy-webpack-plugin": "^4.5.1",

View File

@ -2,6 +2,8 @@ import { h, Component } from 'preact';
import { jsLibs, cssLibs } from '../libraryList'; import { jsLibs, cssLibs } from '../libraryList';
import { trackEvent } from '../analytics'; import { trackEvent } from '../analytics';
import { LibraryAutoSuggest } from './LibraryAutoSuggest'; import { LibraryAutoSuggest } from './LibraryAutoSuggest';
import { Trans, t } from '@lingui/macro';
import { I18n } from '@lingui/react';
export default class AddLibrary extends Component { export default class AddLibrary extends Component {
constructor(props) { constructor(props) {
@ -58,86 +60,104 @@ export default class AddLibrary extends Component {
} }
render() { render() {
return ( return (
<div> <I18n>
<h1>Add Library</h1> {({ i18n }) => (
<div>
<h1>
<Trans>Add Library</Trans>
</h1>
<div class="flex flex-v-center"> <div class="flex flex-v-center">
<svg style="width: 30px; height: 30px;fill:rgb(255,255,255,0.5)"> <svg style="width: 30px; height: 30px;fill:rgb(255,255,255,0.5)">
<use xlinkHref="#search" /> <use xlinkHref="#search" />
</svg> </svg>
<LibraryAutoSuggest <LibraryAutoSuggest
fullWidth fullWidth
onSelect={this.suggestionSelectHandler.bind(this)} onSelect={this.suggestionSelectHandler.bind(this)}
> >
<input <input
type="text" type="text"
id="externalLibrarySearchInput" id="externalLibrarySearchInput"
class="full-width"
placeholder={i18n._(t`Type here to search libraries`)}
/>
</LibraryAutoSuggest>
</div>
<div class="tar opacity--70">
<small>
<Trans>Powered by cdnjs</Trans>
</small>
</div>
<div style="margin:20px 0;">
<Trans>Choose from popular libraries</Trans>:{' '}
<select
name=""
id="js-add-library-select"
onChange={this.onSelectChange.bind(this)}
>
<option value="">-------</option>
<optgroup label="JavaScript Libraries">
{jsLibs.map(lib => (
<option data-type={lib.type} value={lib.url}>
{lib.label}
</option>
))}
</optgroup>
<optgroup label="CSS Libraries">
{cssLibs.map(lib => (
<option data-type={lib.type} value={lib.url}>
{lib.label}
</option>
))}
</optgroup>
</select>
</div>
<h3 class="mb-0">JS</h3>
<p class="mt-0 help-text">
<Trans>Put each library in new line</Trans>
</p>
<p
style="font-size: 0.8em;"
class="show-when-extension opacity--70"
>
<Trans>
Note: You can load external scripts from following domains:
</Trans>
localhost, https://ajax.googleapis.com, https://code.jquery.com,
https://cdnjs.cloudflare.com, https://unpkg.com,
https://maxcdn.com, https://cdn77.com,
https://maxcdn.bootstrapcdn.com, https://cdn.jsdelivr.net/,
https://rawgit.com, https://wzrd.in
</p>
<textarea
onBlur={this.textareaBlurHandler.bind(this)}
data-lang="js"
class="full-width" class="full-width"
placeholder="Type here to search libraries" id="externalJsTextarea"
cols="30"
rows="5"
value={this.state.js}
/> />
</LibraryAutoSuggest>
</div>
<div class="tar opacity--70">
<small>Powered by cdnjs</small>
</div>
<div style="margin:20px 0;">
Choose from popular libraries:{' '}
<select
name=""
id="js-add-library-select"
onChange={this.onSelectChange.bind(this)}
>
<option value="">-------</option>
<optgroup label="JavaScript Libraries">
{jsLibs.map(lib => (
<option data-type={lib.type} value={lib.url}>
{lib.label}
</option>
))}
</optgroup>
<optgroup label="CSS Libraries">
{cssLibs.map(lib => (
<option data-type={lib.type} value={lib.url}>
{lib.label}
</option>
))}
</optgroup>
</select>
</div>
<h3 class="mb-0">JS</h3> <h3 class="mb-0">CSS</h3>
<p class="mt-0 help-text">Put each library in new line</p> <p class="mt-0 help-text">
<Trans>Put each library in new line</Trans>
<p style="font-size: 0.8em;" class="show-when-extension opacity--70"> </p>
Note: You can load external scripts from following domains: localhost, <textarea
https://ajax.googleapis.com, https://code.jquery.com, onBlur={this.textareaBlurHandler.bind(this)}
https://cdnjs.cloudflare.com, https://unpkg.com, https://maxcdn.com, data-lang="css"
https://cdn77.com, https://maxcdn.bootstrapcdn.com, class="full-width"
https://cdn.jsdelivr.net/, https://rawgit.com, https://wzrd.in id="externalCssTextarea"
</p> cols="30"
rows="5"
<textarea value={this.state.css}
onBlur={this.textareaBlurHandler.bind(this)} />
data-lang="js" </div>
class="full-width" )}
id="externalJsTextarea" </I18n>
cols="30"
rows="5"
value={this.state.js}
/>
<h3 class="mb-0">CSS</h3>
<p class="mt-0 help-text">Put each library in new line</p>
<textarea
onBlur={this.textareaBlurHandler.bind(this)}
data-lang="css"
class="full-width"
id="externalCssTextarea"
cols="30"
rows="5"
value={this.state.css}
/>
</div>
); );
} }
} }

View File

@ -1,7 +1,8 @@
import { h, Component } from 'preact'; import { h, Component } from 'preact';
import { Inspector, chromeDark } from 'react-inspector'; import { Inspector, chromeDark } from 'react-inspector';
import { Trans } from '@lingui/macro';
import { PureComponent } from 'preact-compat'; import { PureComponent } from 'preact-compat';
import { Trans, t, NumberFormat } from '@lingui/macro';
import { I18n } from '@lingui/react';
class LogRow extends Component { class LogRow extends Component {
shouldComponentUpdate() { shouldComponentUpdate() {
@ -44,61 +45,69 @@ export class Console extends PureComponent {
} = this.props; } = this.props;
return ( return (
<div <I18n>
id="consoleEl" {({ i18n }) => (
class={`console ${isConsoleOpen ? '' : 'is-minimized'}`}
>
<div id="consoleLogEl" class="console__log">
<div <div
class="js-console__header code-wrap__header" id="consoleEl"
title="Double click to toggle console" class={`console ${isConsoleOpen ? '' : 'is-minimized'}`}
onDblClick={onConsoleHeaderDblClick}
> >
<span class="code-wrap__header-label"> <div id="consoleLogEl" class="console__log">
<Trans>Console</Trans> (<span>{logs.length}</span>) <div
</span> class="js-console__header code-wrap__header"
<div class="code-wrap__header-right-options"> title={i18n._(t`Double click to toggle console`)}
<a onDblClick={onConsoleHeaderDblClick}
class="code-wrap__header-btn"
title="Clear console (CTRL + L)"
onClick={onClearConsoleBtnClick}
> >
<svg> <span class="code-wrap__header-label">
<use xlinkHref="#cancel-icon" /> <Trans>Console</Trans> (
</svg> <span>
</a> <NumberFormat value={logs.length} />
<a </span>
class="code-wrap__header-btn code-wrap__collapse-btn" )
title="Toggle console" </span>
onClick={toggleConsole} <div class="code-wrap__header-right-options">
<a
class="code-wrap__header-btn"
title={i18n._(t`Clear console (CTRL + L)`)}
onClick={onClearConsoleBtnClick}
>
<svg>
<use xlinkHref="#cancel-icon" />
</svg>
</a>
<a
class="code-wrap__header-btn code-wrap__collapse-btn"
title={i18n._(t`Toggle console`)}
onClick={toggleConsole}
/>
</div>
</div>
<ul
class="console__items"
ref={el => {
this.logContainerEl = el;
}}
>
{logs.map(log => (
<LogRow data={log} />
))}
</ul>
</div>
<div
id="consolePromptEl"
class="console__prompt flex flex-v-center flex-shrink-0"
>
<svg width="18" height="18" fill="#346fd2">
<use xlinkHref="#chevron-icon" />
</svg>
<input
tabIndex={isConsoleOpen ? 0 : -1}
onKeyUp={onEvalInputKeyup}
class="console-exec-input"
/> />
</div> </div>
</div> </div>
<ul )}
class="console__items" </I18n>
ref={el => {
this.logContainerEl = el;
}}
>
{logs.map(log => (
<LogRow data={log} />
))}
</ul>
</div>
<div
id="consolePromptEl"
class="console__prompt flex flex-v-center flex-shrink-0"
>
<svg width="18" height="18" fill="#346fd2">
<use xlinkHref="#chevron-icon" />
</svg>
<input
tabIndex={isConsoleOpen ? 0 : -1}
onKeyUp={onEvalInputKeyup}
class="console-exec-input"
/>
</div>
</div>
); );
} }
} }

View File

@ -1,5 +1,7 @@
import { h, Component } from 'preact'; import { h, Component } from 'preact';
import { Button } from './common'; import { Button } from './common';
import { Trans, t } from '@lingui/macro';
import { I18n } from '@lingui/react';
class JS13K extends Component { class JS13K extends Component {
constructor(props) { constructor(props) {
@ -71,263 +73,269 @@ export default class Footer extends Component {
render() { render() {
return ( return (
<div id="footer" class="footer"> <I18n>
<div> {({ i18n }) => (
<a <div id="footer" class="footer">
href="https://webmakerapp.com/" <div>
target="_blank" <a
rel="noopener noreferrer" href="https://webmakerapp.com/"
> target="_blank"
<div class="logo" /> rel="noopener noreferrer"
</a> >
&copy; <div class="logo" />
<span class="web-maker-with-tag">Web Maker</span> &nbsp;&nbsp; </a>
<Button &copy;
onClick={this.props.helpBtnClickHandler} <span class="web-maker-with-tag">Web Maker</span> &nbsp;&nbsp;
data-event-category="ui" <Button
data-event-action="helpButtonClick" onClick={this.props.helpBtnClickHandler}
class="footer__link hint--rounded hint--top-right" data-event-category="ui"
aria-label="Help" data-event-action="helpButtonClick"
> class="footer__link hint--rounded hint--top-right"
<svg aria-label={i18n._(t`Help`)}
style="width:20px; height:20px; vertical-align:text-bottom" >
viewBox="0 0 24 24" <svg
> style="width:20px; height:20px; vertical-align:text-bottom"
<path d="M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z" /> viewBox="0 0 24 24"
</svg> >
</Button> <path d="M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z" />
<Button </svg>
onClick={this.props.keyboardShortcutsBtnClickHandler} </Button>
data-event-category="ui" <Button
data-event-action="keyboardShortcutButtonClick" onClick={this.props.keyboardShortcutsBtnClickHandler}
class="footer__link hint--rounded hint--top-right hide-on-mobile" data-event-category="ui"
aria-label="Keyboard shortcuts" data-event-action="keyboardShortcutButtonClick"
> class="footer__link hint--rounded hint--top-right hide-on-mobile"
<svg aria-label={i18n._(t`Keyboard shortcuts`)}
style={{ >
width: '20px', <svg
height: '20px', style={{
verticalAlign: 'text-bottom' width: '20px',
}} height: '20px',
> verticalAlign: 'text-bottom'
<use xlinkHref="#keyboard-icon" /> }}
</svg> >
</Button> <use xlinkHref="#keyboard-icon" />
<a </svg>
class="footer__link hint--rounded hint--top-right" </Button>
aria-label="Tweet about 'Web Maker'" <a
href="http://twitter.com/share?url=https://webmakerapp.com/&text=Web Maker - A blazing fast %26 offline web playground! via @webmakerApp&related=webmakerApp&hashtags=web,frontend,playground,offline" class="footer__link hint--rounded hint--top-right"
target="_blank" aria-label={i18n._(t`Tweet about 'Web Maker'`)}
rel="noopener noreferrer" href="http://twitter.com/share?url=https://webmakerapp.com/&text=Web Maker - A blazing fast %26 offline web playground! via @webmakerApp&related=webmakerApp&hashtags=web,frontend,playground,offline"
> target="_blank"
<svg rel="noopener noreferrer"
style={{ >
width: '20px', <svg
height: '20px', style={{
verticalAlign: 'text-bottom' width: '20px',
}} height: '20px',
> verticalAlign: 'text-bottom'
<use xlinkHref="#twitter-icon" /> }}
</svg> >
</a> <use xlinkHref="#twitter-icon" />
<Button </svg>
onClick={this.props.supportDeveloperBtnClickHandler} </a>
data-event-category="ui" <Button
data-event-action="supportDeveloperFooterBtnClick" onClick={this.props.supportDeveloperBtnClickHandler}
class="footer__link ml-1 hint--rounded hint--top-right hide-on-mobile support-link" data-event-category="ui"
aria-label="Support the developer by pledging some amount" data-event-action="supportDeveloperFooterBtnClick"
> class="footer__link ml-1 hint--rounded hint--top-right hide-on-mobile support-link"
Donate aria-label={i18n._(
</Button> t`Support the developer by pledging some amount`
</div> )}
>
<Trans>Donate</Trans>
</Button>
</div>
{this.props.prefs.isJs13kModeOn ? ( {this.props.prefs.isJs13kModeOn ? (
<div class="flex flex-v-center"> <div class="flex flex-v-center">
<JS13K <JS13K
isOpen={this.state.isJs13kDropdownOpen} isOpen={this.state.isJs13kDropdownOpen}
codeSize={this.props.codeSize} codeSize={this.props.codeSize}
onClick={this.js13kClickHandler.bind(this)} onClick={this.js13kClickHandler.bind(this)}
onBlur={() => onBlur={() =>
setTimeout( setTimeout(
() => this.setState({ isJs13kDropdownOpen: false }), () => this.setState({ isJs13kDropdownOpen: false }),
300 300
) )
} }
/> />
{this.state.isJs13kDropdownOpen && ( {this.state.isJs13kDropdownOpen && (
<div className="js13k__dropdown"> <div className="js13k__dropdown">
<button <button
class="btn" class="btn"
style={{ style={{
width: '200px', width: '200px',
display: 'block', display: 'block',
marginBottom: '16px' marginBottom: '16px'
}} }}
onClick={this.props.onJs13KDownloadBtnClick} onClick={this.props.onJs13KDownloadBtnClick}
> >
Download game as zip <Trans>Download game as zip</Trans>
</button> </button>
<a <a
class="btn" class="btn"
rel="noopener" rel="noopener"
style={{ style={{
width: '200px', width: '200px',
display: 'block', display: 'block',
marginBottom: '16px' marginBottom: '16px'
}} }}
href="https://pasteboard.co/" href="https://pasteboard.co/"
target="_blank" target="_blank"
> >
Upload Image <Trans>Upload Image</Trans>
</a> </a>
<button <button
class="btn" class="btn"
style={{ width: '200px', display: 'block' }} style={{ width: '200px', display: 'block' }}
onClick={this.props.onJs13KHelpBtnClick} onClick={this.props.onJs13KHelpBtnClick}
> >
Help <Trans>Help</Trans>
</button> </button>
</div>
)}
</div> </div>
)} ) : null}
<div class="footer__right">
<button
onClick={this.props.saveHtmlBtnClickHandler}
id="saveHtmlBtn"
class="mode-btn hint--rounded hint--top-left hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Save as HTML file`)}
>
<svg viewBox="0 0 24 24">
<path d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" />
</svg>
</button>
<svg style="display: none;" xmlns="http://www.w3.org/2000/svg">
<symbol id="codepen-logo" viewBox="0 0 120 120">
<path
class="outer-ring"
d="M60.048 0C26.884 0 0 26.9 0 60.048s26.884 60 60 60.047c33.163 0 60.047-26.883 60.047-60.047 S93.211 0 60 0z M60.048 110.233c-27.673 0-50.186-22.514-50.186-50.186S32.375 9.9 60 9.9 c27.672 0 50.2 22.5 50.2 50.186S87.72 110.2 60 110.233z"
/>
<path
class="inner-box"
d="M97.147 48.319c-0.007-0.047-0.019-0.092-0.026-0.139c-0.016-0.09-0.032-0.18-0.056-0.268 c-0.014-0.053-0.033-0.104-0.05-0.154c-0.025-0.078-0.051-0.156-0.082-0.232c-0.021-0.053-0.047-0.105-0.071-0.156 c-0.033-0.072-0.068-0.143-0.108-0.211c-0.029-0.051-0.061-0.1-0.091-0.148c-0.043-0.066-0.087-0.131-0.135-0.193 c-0.035-0.047-0.072-0.094-0.109-0.139c-0.051-0.059-0.104-0.117-0.159-0.172c-0.042-0.043-0.083-0.086-0.127-0.125 c-0.059-0.053-0.119-0.104-0.181-0.152c-0.048-0.037-0.095-0.074-0.145-0.109c-0.019-0.012-0.035-0.027-0.053-0.039L61.817 23.5 c-1.072-0.715-2.468-0.715-3.54 0L24.34 46.081c-0.018 0.012-0.034 0.027-0.053 0.039c-0.05 0.035-0.097 0.072-0.144 0.1 c-0.062 0.049-0.123 0.1-0.181 0.152c-0.045 0.039-0.086 0.082-0.128 0.125c-0.056 0.055-0.108 0.113-0.158 0.2 c-0.038 0.045-0.075 0.092-0.11 0.139c-0.047 0.062-0.092 0.127-0.134 0.193c-0.032 0.049-0.062 0.098-0.092 0.1 c-0.039 0.068-0.074 0.139-0.108 0.211c-0.024 0.051-0.05 0.104-0.071 0.156c-0.031 0.076-0.057 0.154-0.082 0.2 c-0.017 0.051-0.035 0.102-0.05 0.154c-0.023 0.088-0.039 0.178-0.056 0.268c-0.008 0.047-0.02 0.092-0.025 0.1 c-0.019 0.137-0.029 0.275-0.029 0.416V71.36c0 0.1 0 0.3 0 0.418c0.006 0 0 0.1 0 0.1 c0.017 0.1 0 0.2 0.1 0.268c0.015 0.1 0 0.1 0.1 0.154c0.025 0.1 0.1 0.2 0.1 0.2 c0.021 0.1 0 0.1 0.1 0.154c0.034 0.1 0.1 0.1 0.1 0.213c0.029 0 0.1 0.1 0.1 0.1 c0.042 0.1 0.1 0.1 0.1 0.193c0.035 0 0.1 0.1 0.1 0.139c0.05 0.1 0.1 0.1 0.2 0.2 c0.042 0 0.1 0.1 0.1 0.125c0.058 0.1 0.1 0.1 0.2 0.152c0.047 0 0.1 0.1 0.1 0.1 c0.019 0 0 0 0.1 0.039L58.277 96.64c0.536 0.4 1.2 0.5 1.8 0.537c0.616 0 1.233-0.18 1.77-0.537 l33.938-22.625c0.018-0.012 0.034-0.027 0.053-0.039c0.05-0.035 0.097-0.072 0.145-0.109c0.062-0.049 0.122-0.1 0.181-0.152 c0.044-0.039 0.085-0.082 0.127-0.125c0.056-0.055 0.108-0.113 0.159-0.172c0.037-0.045 0.074-0.09 0.109-0.139 c0.048-0.062 0.092-0.127 0.135-0.193c0.03-0.049 0.062-0.098 0.091-0.146c0.04-0.07 0.075-0.141 0.108-0.213 c0.024-0.051 0.05-0.102 0.071-0.154c0.031-0.078 0.057-0.156 0.082-0.234c0.017-0.051 0.036-0.102 0.05-0.154 c0.023-0.088 0.04-0.178 0.056-0.268c0.008-0.045 0.02-0.092 0.026-0.137c0.018-0.139 0.028-0.277 0.028-0.418V48.735 C97.176 48.6 97.2 48.5 97.1 48.319z M63.238 32.073l25.001 16.666L77.072 56.21l-13.834-9.254V32.073z M56.856 32.1 v14.883L43.023 56.21l-11.168-7.471L56.856 32.073z M29.301 54.708l7.983 5.34l-7.983 5.34V54.708z M56.856 88.022L31.855 71.4 l11.168-7.469l13.833 9.252V88.022z M60.048 67.597l-11.286-7.549l11.286-7.549l11.285 7.549L60.048 67.597z M63.238 88.022V73.14 l13.834-9.252l11.167 7.469L63.238 88.022z M90.794 65.388l-7.982-5.34l7.982-5.34V65.388z"
/>
</symbol>
</svg>
<button
onClick={this.props.codepenBtnClickHandler}
id="codepenBtn"
class="mode-btn hint--rounded hint--top-left hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Edit on CodePen`)}
>
<svg>
<use xlinkHref="#codepen-logo" />
</svg>
</button>
<button
id="screenshotBtn"
class="mode-btn hint--rounded hint--top-left show-when-extension"
onClick={this.props.screenshotBtnClickHandler}
aria-label={i18n._(t`Take screenshot of preview`)}
>
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path d="M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z" />
</svg>
</button>
<div class="footer__separator hide-on-mobile" />
<button
onClick={this.layoutBtnClickhandler.bind(this, 1)}
id="layoutBtn1"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Switch to layout with preview on right`)}
>
<svg viewBox="0 0 100 100" style="transform:rotate(-90deg)">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 2)}
id="layoutBtn2"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Switch to layout with preview on bottom`)}
>
<svg viewBox="0 0 100 100">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 3)}
id="layoutBtn3"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Switch to layout with preview on left`)}
>
<svg viewBox="0 0 100 100" style="transform:rotate(90deg)">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 5)}
id="layoutBtn5"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label={i18n._(t`Switch to layout with all vertical panes`)}
>
<svg viewBox="0 0 100 100">
<use xlinkHref="#vertical-mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 4)}
id="layoutBtn4"
class="mode-btn hint--top-left hint--rounded hide-on-mobile"
aria-label={i18n._(t`Switch to full screen preview`)}
>
<svg viewBox="0 0 100 100">
<rect x="0" y="0" width="100" height="100" />
</svg>
</button>
<button
class="mode-btn hint--top-left hint--rounded hide-on-mobile"
aria-label={i18n._(t`Detach Preview`)}
onClick={this.props.detachedPreviewBtnHandler}
>
<svg viewBox="0 0 24 24">
<path d="M22,17V7H6V17H22M22,5A2,2 0 0,1 24,7V17C24,18.11 23.1,19 22,19H16V21H18V23H10V21H12V19H6C4.89,19 4,18.11 4,17V7A2,2 0 0,1 6,5H22M2,3V15H0V3A2,2 0 0,1 2,1H20V3H2Z" />
</svg>
</button>
<div class="footer__separator" />
<button
onClick={this.props.notificationsBtnClickHandler}
id="notificationsBtn"
class={`notifications-btn mode-btn hint--top-left hint--rounded ${
this.props.hasUnseenChangelog ? 'has-new' : ''
}`}
aria-label={i18n._(t`See Changelog`)}
>
<svg viewBox="0 0 24 24">
<path d="M14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20H14M12,2A1,1 0 0,1 13,3V4.08C15.84,4.56 18,7.03 18,10V16L21,19H3L6,16V10C6,7.03 8.16,4.56 11,4.08V3A1,1 0 0,1 12,2Z" />
</svg>
<span class="notifications-btn__dot" />
</button>
<Button
onClick={this.props.settingsBtnClickHandler}
data-event-category="ui"
data-event-action="settingsBtnClick"
class="mode-btn hint--top-left hint--rounded"
aria-label={i18n._(t`Settings`)}
>
<svg>
<use xlinkHref="#settings-icon" />
</svg>
</Button>
</div>
</div> </div>
) : null} )}
</I18n>
<div class="footer__right">
<button
onClick={this.props.saveHtmlBtnClickHandler}
id="saveHtmlBtn"
class="mode-btn hint--rounded hint--top-left hide-on-mobile hide-in-file-mode"
aria-label="Save as HTML file"
>
<svg viewBox="0 0 24 24">
<path d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" />
</svg>
</button>
<svg style="display: none;" xmlns="http://www.w3.org/2000/svg">
<symbol id="codepen-logo" viewBox="0 0 120 120">
<path
class="outer-ring"
d="M60.048 0C26.884 0 0 26.9 0 60.048s26.884 60 60 60.047c33.163 0 60.047-26.883 60.047-60.047 S93.211 0 60 0z M60.048 110.233c-27.673 0-50.186-22.514-50.186-50.186S32.375 9.9 60 9.9 c27.672 0 50.2 22.5 50.2 50.186S87.72 110.2 60 110.233z"
/>
<path
class="inner-box"
d="M97.147 48.319c-0.007-0.047-0.019-0.092-0.026-0.139c-0.016-0.09-0.032-0.18-0.056-0.268 c-0.014-0.053-0.033-0.104-0.05-0.154c-0.025-0.078-0.051-0.156-0.082-0.232c-0.021-0.053-0.047-0.105-0.071-0.156 c-0.033-0.072-0.068-0.143-0.108-0.211c-0.029-0.051-0.061-0.1-0.091-0.148c-0.043-0.066-0.087-0.131-0.135-0.193 c-0.035-0.047-0.072-0.094-0.109-0.139c-0.051-0.059-0.104-0.117-0.159-0.172c-0.042-0.043-0.083-0.086-0.127-0.125 c-0.059-0.053-0.119-0.104-0.181-0.152c-0.048-0.037-0.095-0.074-0.145-0.109c-0.019-0.012-0.035-0.027-0.053-0.039L61.817 23.5 c-1.072-0.715-2.468-0.715-3.54 0L24.34 46.081c-0.018 0.012-0.034 0.027-0.053 0.039c-0.05 0.035-0.097 0.072-0.144 0.1 c-0.062 0.049-0.123 0.1-0.181 0.152c-0.045 0.039-0.086 0.082-0.128 0.125c-0.056 0.055-0.108 0.113-0.158 0.2 c-0.038 0.045-0.075 0.092-0.11 0.139c-0.047 0.062-0.092 0.127-0.134 0.193c-0.032 0.049-0.062 0.098-0.092 0.1 c-0.039 0.068-0.074 0.139-0.108 0.211c-0.024 0.051-0.05 0.104-0.071 0.156c-0.031 0.076-0.057 0.154-0.082 0.2 c-0.017 0.051-0.035 0.102-0.05 0.154c-0.023 0.088-0.039 0.178-0.056 0.268c-0.008 0.047-0.02 0.092-0.025 0.1 c-0.019 0.137-0.029 0.275-0.029 0.416V71.36c0 0.1 0 0.3 0 0.418c0.006 0 0 0.1 0 0.1 c0.017 0.1 0 0.2 0.1 0.268c0.015 0.1 0 0.1 0.1 0.154c0.025 0.1 0.1 0.2 0.1 0.2 c0.021 0.1 0 0.1 0.1 0.154c0.034 0.1 0.1 0.1 0.1 0.213c0.029 0 0.1 0.1 0.1 0.1 c0.042 0.1 0.1 0.1 0.1 0.193c0.035 0 0.1 0.1 0.1 0.139c0.05 0.1 0.1 0.1 0.2 0.2 c0.042 0 0.1 0.1 0.1 0.125c0.058 0.1 0.1 0.1 0.2 0.152c0.047 0 0.1 0.1 0.1 0.1 c0.019 0 0 0 0.1 0.039L58.277 96.64c0.536 0.4 1.2 0.5 1.8 0.537c0.616 0 1.233-0.18 1.77-0.537 l33.938-22.625c0.018-0.012 0.034-0.027 0.053-0.039c0.05-0.035 0.097-0.072 0.145-0.109c0.062-0.049 0.122-0.1 0.181-0.152 c0.044-0.039 0.085-0.082 0.127-0.125c0.056-0.055 0.108-0.113 0.159-0.172c0.037-0.045 0.074-0.09 0.109-0.139 c0.048-0.062 0.092-0.127 0.135-0.193c0.03-0.049 0.062-0.098 0.091-0.146c0.04-0.07 0.075-0.141 0.108-0.213 c0.024-0.051 0.05-0.102 0.071-0.154c0.031-0.078 0.057-0.156 0.082-0.234c0.017-0.051 0.036-0.102 0.05-0.154 c0.023-0.088 0.04-0.178 0.056-0.268c0.008-0.045 0.02-0.092 0.026-0.137c0.018-0.139 0.028-0.277 0.028-0.418V48.735 C97.176 48.6 97.2 48.5 97.1 48.319z M63.238 32.073l25.001 16.666L77.072 56.21l-13.834-9.254V32.073z M56.856 32.1 v14.883L43.023 56.21l-11.168-7.471L56.856 32.073z M29.301 54.708l7.983 5.34l-7.983 5.34V54.708z M56.856 88.022L31.855 71.4 l11.168-7.469l13.833 9.252V88.022z M60.048 67.597l-11.286-7.549l11.286-7.549l11.285 7.549L60.048 67.597z M63.238 88.022V73.14 l13.834-9.252l11.167 7.469L63.238 88.022z M90.794 65.388l-7.982-5.34l7.982-5.34V65.388z"
/>
</symbol>
</svg>
<button
onClick={this.props.codepenBtnClickHandler}
id="codepenBtn"
class="mode-btn hint--rounded hint--top-left hide-on-mobile hide-in-file-mode"
aria-label="Edit on CodePen"
>
<svg>
<use xlinkHref="#codepen-logo" />
</svg>
</button>
<button
id="screenshotBtn"
class="mode-btn hint--rounded hint--top-left show-when-extension"
onClick={this.props.screenshotBtnClickHandler}
aria-label="Take screenshot of preview"
>
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path d="M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z" />
</svg>
</button>
<div class="footer__separator hide-on-mobile" />
<button
onClick={this.layoutBtnClickhandler.bind(this, 1)}
id="layoutBtn1"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label="Switch to layout with preview on right"
>
<svg viewBox="0 0 100 100" style="transform:rotate(-90deg)">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 2)}
id="layoutBtn2"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label="Switch to layout with preview on bottom"
>
<svg viewBox="0 0 100 100">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 3)}
id="layoutBtn3"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label="Switch to layout with preview on left"
>
<svg viewBox="0 0 100 100" style="transform:rotate(90deg)">
<use xlinkHref="#mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 5)}
id="layoutBtn5"
class="mode-btn hide-on-mobile hide-in-file-mode"
aria-label="Switch to layout with all vertical panes"
>
<svg viewBox="0 0 100 100">
<use xlinkHref="#vertical-mode-icon" />
</svg>
</button>
<button
onClick={this.layoutBtnClickhandler.bind(this, 4)}
id="layoutBtn4"
class="mode-btn hint--top-left hint--rounded hide-on-mobile"
aria-label="Switch to full screen preview"
>
<svg viewBox="0 0 100 100">
<rect x="0" y="0" width="100" height="100" />
</svg>
</button>
<button
class="mode-btn hint--top-left hint--rounded hide-on-mobile"
aria-label="Detach Preview"
onClick={this.props.detachedPreviewBtnHandler}
>
<svg viewBox="0 0 24 24">
<path d="M22,17V7H6V17H22M22,5A2,2 0 0,1 24,7V17C24,18.11 23.1,19 22,19H16V21H18V23H10V21H12V19H6C4.89,19 4,18.11 4,17V7A2,2 0 0,1 6,5H22M2,3V15H0V3A2,2 0 0,1 2,1H20V3H2Z" />
</svg>
</button>
<div class="footer__separator" />
<button
onClick={this.props.notificationsBtnClickHandler}
id="notificationsBtn"
class={`notifications-btn mode-btn hint--top-left hint--rounded ${
this.props.hasUnseenChangelog ? 'has-new' : ''
}`}
aria-label="See Changelog"
>
<svg viewBox="0 0 24 24">
<path d="M14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20H14M12,2A1,1 0 0,1 13,3V4.08C15.84,4.56 18,7.03 18,10V16L21,19H3L6,16V10C6,7.03 8.16,4.56 11,4.08V3A1,1 0 0,1 12,2Z" />
</svg>
<span class="notifications-btn__dot" />
</button>
<Button
onClick={this.props.settingsBtnClickHandler}
data-event-category="ui"
data-event-action="settingsBtnClick"
class="mode-btn hint--top-left hint--rounded"
aria-label="Settings"
>
<svg>
<use xlinkHref="#settings-icon" />
</svg>
</Button>
</div>
</div>
); );
} }
} }

View File

@ -1,6 +1,7 @@
import { h } from 'preact'; import { h } from 'preact';
import Modal from './Modal'; import Modal from './Modal';
import { Button } from './common'; import { Button } from './common';
import { Trans } from '@lingui/macro';
export function HelpModal(props) { export function HelpModal(props) {
return ( return (
@ -12,47 +13,51 @@ export function HelpModal(props) {
<div> <div>
<p> <p>
Made with <span style="margin-right: 8px;">💖</span>&{' '} <notrans>
<span style="margin-right: 8px;"> 🙌</span> by{' '} Made with <span style="margin-right: 8px;">💖</span>&{' '}
<a <span style="margin-right: 8px;"> 🙌</span> by{' '}
href="https://twitter.com/chinchang457" <a
target="_blank" href="https://twitter.com/chinchang457"
rel="noopener noreferrer" target="_blank"
> rel="noopener noreferrer"
Kushagra Gour >
</a> Kushagra Gour
</a>
</notrans>
</p> </p>
<p> <p>
<a href="/docs" target="_blank" rel="noopener noreferrer"> <a href="/docs" target="_blank" rel="noopener noreferrer">
Read the documentation <Trans>Read the documentation.</Trans>
</a> </a>
.
</p> </p>
<p> <p>
Tweet out your feature requests, comments & suggestions to{' '} <notrans>
<a Tweet out your feature requests, comments & suggestions to{' '}
target="_blank" <a
rel="noopener noreferrer" target="_blank"
href="https://twitter.com/webmakerApp" rel="noopener noreferrer"
> href="https://twitter.com/webmakerApp"
@webmakerApp >
</a> @webmakerApp
</a>
</notrans>
. .
</p> </p>
<p class="show-when-extension"> <p class="show-when-extension">
Like this extension? Please{' '} <notrans>
<a Like this extension? Please{' '}
href="https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews" <a
target="_blank" href="https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews"
rel="noopener noreferrer" target="_blank"
> rel="noopener noreferrer"
rate it here >
</a> rate it here
. </a>
.
</notrans>
</p> </p>
<p> <p>
<Button <Button
aria-label="Support the developer"
onClick={props.onSupportBtnClick} onClick={props.onSupportBtnClick}
data-event-action="supportDeveloperHelpBtnClick" data-event-action="supportDeveloperHelpBtnClick"
data-event-category="ui" data-event-category="ui"
@ -61,10 +66,9 @@ export function HelpModal(props) {
<svg> <svg>
<use xlinkHref="#gift-icon" /> <use xlinkHref="#gift-icon" />
</svg> </svg>
Support the developer <Trans>Support the developer</Trans>
</Button>{' '} </Button>{' '}
<a <a
aria-label="Rate Web Maker"
href="https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews" href="https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh/reviews"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@ -73,10 +77,9 @@ export function HelpModal(props) {
<svg> <svg>
<use xlinkHref="#heart-icon" /> <use xlinkHref="#heart-icon" />
</svg> </svg>
Review Web Maker <Trans>Review Web Maker</Trans>
</a>{' '} </a>{' '}
<a <a
aria-label="Chat"
href="https://spectrum.chat/web-maker" href="https://spectrum.chat/web-maker"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@ -85,10 +88,9 @@ export function HelpModal(props) {
<svg> <svg>
<use xlinkHref="#chat-icon" /> <use xlinkHref="#chat-icon" />
</svg> </svg>
Chat <Trans>Chat</Trans>
</a>{' '} </a>{' '}
<a <a
aria-label="Report a Bug"
href="https://github.com/chinchang/web-maker/issues" href="https://github.com/chinchang/web-maker/issues"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@ -97,14 +99,16 @@ export function HelpModal(props) {
<svg> <svg>
<use xlinkHref="#bug-icon" /> <use xlinkHref="#bug-icon" />
</svg> </svg>
Report a bug <Trans>Report a bug</Trans>
</a> </a>
</p> </p>
<p> <p>
<details> <details>
<summary> <summary>
<h3 class="d-i">See awesome libraries used</h3> <h3 class="d-i">
<Trans>See awesome libraries used</Trans>
</h3>
</summary> </summary>
<ul> <ul>
<li> <li>
@ -191,24 +195,27 @@ export function HelpModal(props) {
</p> </p>
<p> <p>
<h3>License</h3> <h3>
"Web Maker" is{' '} <Trans>License</Trans>
<a </h3>
target="_blank" <notrans>
rel="noopener noreferrer" "Web Maker" is{' '}
href="https://github.com/chinchang/web-maker" <a
> target="_blank"
open-source rel="noopener noreferrer"
</a>{' '} href="https://github.com/chinchang/web-maker"
under the{' '} >
<a open-source
href="https://opensource.org/licenses/MIT" </a>{' '}
target="_blank" under the{' '}
rel="noopener noreferrer" <a
> href="https://opensource.org/licenses/MIT"
MIT License target="_blank"
</a> rel="noopener noreferrer"
. >
MIT License
</a>
</notrans>
</p> </p>
</div> </div>
</Modal> </Modal>

View File

@ -1,95 +1,124 @@
import { h } from 'preact'; import { h } from 'preact';
import Modal from './Modal'; import Modal from './Modal';
import { Trans } from '@lingui/macro';
export function KeyboardShortcutsModal({ show, closeHandler }) { export function KeyboardShortcutsModal({ show, closeHandler }) {
return ( return (
<Modal show={show} closeHandler={closeHandler}> <Modal show={show} closeHandler={closeHandler}>
<h1>Keyboard Shortcuts</h1> <h1>
<Trans>Keyboard Shortcuts</Trans>
</h1>
<div class="flex"> <div class="flex">
<div> <div>
<h2>Global</h2> <h2>
<Trans>Global</Trans>
</h2>
{/*<p> {/*<p>
<span class="kbd-shortcut__keys">Ctrl/⌘ + Shift + ?</span> <span class="kbd-shortcut__keys">Ctrl/⌘ + Shift + ?</span>
<span class="kbd-shortcut__details">See keyboard shortcuts</span> <span class="kbd-shortcut__details">See keyboard shortcuts</span>
</p>*/} </p>*/}
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + Shift + 5</span> <span class="kbd-shortcut__keys">Ctrl/ + Shift + 5</span>
<span class="kbd-shortcut__details">Refresh preview</span> <span class="kbd-shortcut__details">
<Trans>Refresh preview</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + S</span> <span class="kbd-shortcut__keys">Ctrl/ + S</span>
<span class="kbd-shortcut__details">Save current creations</span> <span class="kbd-shortcut__details">
<Trans>Save current creations</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + O</span> <span class="kbd-shortcut__keys">Ctrl/ + O</span>
<span class="kbd-shortcut__details"> <span class="kbd-shortcut__details">
Open list of saved creations <Trans>Open list of saved creations</Trans>
</span> </span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl + L</span> <span class="kbd-shortcut__keys">Ctrl + L</span>
<span class="kbd-shortcut__details"> <span class="kbd-shortcut__details">
Clear console (works when console input is focused) <Trans>Clear console (works when console input is focused)</Trans>
</span> </span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Esc</span> <span class="kbd-shortcut__keys">Esc</span>
<span class="kbd-shortcut__details"> <span class="kbd-shortcut__details">
Close saved creations panel & modals <Trans>Close saved creations panel & modals</Trans>
</span> </span>
</p> </p>
</div> </div>
<div class="ml-2"> <div class="ml-2">
<h2>Editor</h2> <h2>
<Trans>Editor</Trans>
</h2>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + F</span> <span class="kbd-shortcut__keys">Ctrl/ + F</span>
<span class="kbd-shortcut__details">Find</span> <span class="kbd-shortcut__details">
<Trans>Find</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + G</span> <span class="kbd-shortcut__keys">Ctrl/ + G</span>
<span class="kbd-shortcut__details">Select next match</span> <span class="kbd-shortcut__details">
<Trans>Select next match</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + Shift + G</span> <span class="kbd-shortcut__keys">Ctrl/ + Shift + G</span>
<span class="kbd-shortcut__details">Select previous match</span> <span class="kbd-shortcut__details">
<Trans>Select previous match</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + Opt/Alt + F</span> <span class="kbd-shortcut__keys">Ctrl/ + Opt/Alt + F</span>
<span class="kbd-shortcut__details">Find & replace</span> <span class="kbd-shortcut__details">
<Trans>Find & replace</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Shift + Tab</span> <span class="kbd-shortcut__keys">Shift + Tab</span>
<span class="kbd-shortcut__details">Realign code</span> <span class="kbd-shortcut__details">
<Trans>Realign code</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + ]</span> <span class="kbd-shortcut__keys">Ctrl/ + ]</span>
<span class="kbd-shortcut__details">Indent code right</span> <span class="kbd-shortcut__details">
<Trans>Indent code right</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + [</span> <span class="kbd-shortcut__keys">Ctrl/ + [</span>
<span class="kbd-shortcut__details">Indent code left</span> <span class="kbd-shortcut__details">
<Trans>Indent code left</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Tab</span> <span class="kbd-shortcut__keys">Tab</span>
<span class="kbd-shortcut__details"> <span class="kbd-shortcut__details">
Emmet code completion{' '} <Trans>Emmet code completion</Trans>{' '}
<a <a
href="https://emmet.io/" href="https://emmet.io/"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
Read more <Trans>Read more</Trans>
</a> </a>
</span> </span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl/ + /</span> <span class="kbd-shortcut__keys">Ctrl/ + /</span>
<span class="kbd-shortcut__details">Single line comment</span> <span class="kbd-shortcut__details">
<Trans>Single line comment</Trans>
</span>
</p> </p>
<p> <p>
<span class="kbd-shortcut__keys">Ctrl + Shift + F</span> <span class="kbd-shortcut__keys">Ctrl + Shift + F</span>
<span class="kbd-shortcut__details">Run Prettier</span> <span class="kbd-shortcut__details">
<Trans>Run Prettier</Trans>
</span>
</p> </p>
</div> </div>
</div> </div>

View File

@ -1,6 +1,6 @@
import { h } from 'preact'; import { h } from 'preact';
import { Button } from './common'; import { Button } from './common';
import { Trans, t } from '@lingui/macro'; import { Trans, NumberFormat, t } from '@lingui/macro';
import { I18n } from '@lingui/react'; import { I18n } from '@lingui/react';
const DEFAULT_PROFILE_IMG = const DEFAULT_PROFILE_IMG =
@ -23,7 +23,7 @@ export function MainHeader(props) {
<button <button
id="runBtn" id="runBtn"
class="hide btn btn btn--dark flex flex-v-center hint--rounded hint--bottom-left" class="hide btn btn btn--dark flex flex-v-center hint--rounded hint--bottom-left"
aria-label="Run preview (Ctrl/⌘ + Shift + 5)" aria-label={i18n._(t`Run preview (Ctrl/⌘ + Shift + 5)`)}
onClick={props.runBtnClickHandler} onClick={props.runBtnClickHandler}
> >
<svg> <svg>
@ -48,14 +48,14 @@ export function MainHeader(props) {
}`} }`}
class="count-label" class="count-label"
> >
{props.externalLibCount} <NumberFormat value={props.externalLibCount} />
</span> </span>
</Button> </Button>
)} )}
<button <button
class="btn btn--dark hint--rounded hint--bottom-left" class="btn btn--dark hint--rounded hint--bottom-left"
aria-label="Start a new creation" aria-label={i18n._(t`Start a new creation`)}
onClick={props.newBtnHandler} onClick={props.newBtnHandler}
> >
<svg viewBox="0 0 24 24"> <svg viewBox="0 0 24 24">
@ -68,7 +68,7 @@ export function MainHeader(props) {
class={`btn btn--dark hint--rounded hint--bottom-left ${ class={`btn btn--dark hint--rounded hint--bottom-left ${
props.isSaving ? 'is-loading' : '' props.isSaving ? 'is-loading' : ''
} ${props.unsavedEditCount ? 'is-marked' : 0}`} } ${props.unsavedEditCount ? 'is-marked' : 0}`}
aria-label="Save current creation (Ctrl/⌘ + S)" aria-label={i18n._(t`Save current creation (Ctrl/⌘ + S)`)}
onClick={props.saveBtnHandler} onClick={props.saveBtnHandler}
> >
<svg viewBox="0 0 24 24"> <svg viewBox="0 0 24 24">
@ -84,7 +84,7 @@ export function MainHeader(props) {
class={`btn btn--dark hint--rounded hint--bottom-left ${ class={`btn btn--dark hint--rounded hint--bottom-left ${
props.isFetchingItems ? 'is-loading' : '' props.isFetchingItems ? 'is-loading' : ''
}`} }`}
aria-label="Open a saved creation (Ctrl/⌘ + O)" aria-label={i18n._(t`Open a saved creation (Ctrl/⌘ + O)`)}
onClick={props.openBtnHandler} onClick={props.openBtnHandler}
> >
<svg viewBox="0 0 24 24"> <svg viewBox="0 0 24 24">
@ -100,15 +100,14 @@ export function MainHeader(props) {
data-event-category="ui" data-event-category="ui"
data-event-action="loginButtonClick" data-event-action="loginButtonClick"
class="hide-on-login btn btn--dark hint--rounded hint--bottom-left" class="hide-on-login btn btn--dark hint--rounded hint--bottom-left"
aria-label="Login/Signup"
> >
<Trans>Login</Trans>/<Trans>Signup</Trans> <Trans>Login/Signup</Trans>
</Button> </Button>
<Button <Button
onClick={props.profileBtnHandler} onClick={props.profileBtnHandler}
data-event-category="ui" data-event-category="ui"
data-event-action="headerAvatarClick" data-event-action="headerAvatarClick"
aria-label="See profile or Logout" aria-label={i18n._(t`See profile or Logout`)}
class="hide-on-logout btn--dark hint--rounded hint--bottom-left" class="hide-on-logout btn--dark hint--rounded hint--bottom-left"
> >
<img <img

View File

@ -5,6 +5,8 @@ import { itemService } from '../itemService';
import { alertsService } from '../notifications'; import { alertsService } from '../notifications';
import { deferred } from '../deferred'; import { deferred } from '../deferred';
import { ItemTile } from './ItemTile'; import { ItemTile } from './ItemTile';
import { Trans, NumberFormat, t } from '@lingui/macro';
import { I18n } from '@lingui/react';
export default class SavedItemPane extends Component { export default class SavedItemPane extends Component {
constructor(props) { constructor(props) {
@ -105,7 +107,9 @@ export default class SavedItemPane extends Component {
} catch (exception) { } catch (exception) {
log(exception); log(exception);
alert( alert(
'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.' i18n._(
t`'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.`
)
); );
} }
}); });
@ -146,63 +150,83 @@ export default class SavedItemPane extends Component {
{ filteredItems = [], items = [] } { filteredItems = [], items = [] }
) { ) {
return ( return (
<div <I18n>
id="js-saved-items-pane" {({ i18n }) => (
class={`saved-items-pane ${isOpen ? 'is-open' : ''}`} <div
onKeyDown={this.keyDownHandler.bind(this)} id="js-saved-items-pane"
> class={`saved-items-pane ${isOpen ? 'is-open' : ''}`}
<button onKeyDown={this.keyDownHandler.bind(this)}
onClick={this.onCloseIntent.bind(this)} >
class="btn saved-items-pane__close-btn"
id="js-saved-items-pane-close-btn"
>
X
</button>
<div class="flex flex-v-center" style="justify-content: space-between;">
<h3>My Library ({filteredItems.length})</h3>
<div>
<button <button
onClick={exportBtnClickHandler} onClick={this.onCloseIntent.bind(this)}
class="btn--dark hint--bottom-left hint--rounded hint--medium" class="btn saved-items-pane__close-btn"
aria-label="Export all your creations into a single importable file." id="js-saved-items-pane-close-btn"
> >
Export X
</button> </button>
<button <div
onClick={this.importBtnClickHandler.bind(this)} class="flex flex-v-center"
class="btn--dark hint--bottom-left hint--rounded hint--medium" style="justify-content: space-between;"
aria-label="Import your creations. Only the file that you export through the 'Export' button can be imported."
> >
Import <h3>
</button> <Trans>My Library ({filteredItems.length})</Trans>
</div> </h3>
</div>
<input
type="search"
id="searchInput"
class="search-input"
onInput={this.searchInputHandler.bind(this)}
placeholder="Search your creations here..."
/>
<div id="js-saved-items-wrap" class="saved-items-pane__container"> <div>
{!filteredItems.length && items.length ? ( <button
<div class="mt-1">No match found.</div> onClick={exportBtnClickHandler}
) : null} class="btn--dark hint--bottom-left hint--rounded hint--medium"
{filteredItems.map(item => ( aria-label={i18n._(
<ItemTile t`Export all your creations into a single importable file.`
item={item} )}
onClick={this.itemClickHandler.bind(this, item)} >
onForkBtnClick={this.itemForkBtnClickHandler.bind(this, item)} <Trans>Export</Trans>
onRemoveBtnClick={this.itemRemoveBtnClickHandler.bind(this, item)} </button>
<button
onClick={this.importBtnClickHandler.bind(this)}
class="btn--dark hint--bottom-left hint--rounded hint--medium"
aria-label={i18n._(
t`Import your creations. Only the file that you export through the 'Export' button can be imported.`
)}
>
<Trans>Import</Trans>
</button>
</div>
</div>
<input
type="search"
id="searchInput"
class="search-input"
onInput={this.searchInputHandler.bind(this)}
placeholder={i18n._(t`Search your creations here...`)}
/> />
))}
{!items.length ? ( <div id="js-saved-items-wrap" class="saved-items-pane__container">
<h2 class="opacity--30">Nothing saved here.</h2> {!filteredItems.length && items.length ? (
) : null} <div class="mt-1">
</div> <Trans>No match found.</Trans>
</div> </div>
) : null}
{filteredItems.map(item => (
<ItemTile
item={item}
onClick={this.itemClickHandler.bind(this, item)}
onForkBtnClick={this.itemForkBtnClickHandler.bind(this, item)}
onRemoveBtnClick={this.itemRemoveBtnClickHandler.bind(
this,
item
)}
/>
))}
{!items.length ? (
<h2 class="opacity--30">
<Trans>Nothing saved here.</Trans>
</h2>
) : null}
</div>
</div>
)}
</I18n>
); );
} }
} }

View File

@ -369,9 +369,10 @@ export default class Settings extends Component {
onChange={e => this.updateSetting(e, 'lang')} onChange={e => this.updateSetting(e, 'lang')}
> >
<option value="en">English</option> <option value="en">English</option>
<option value="hi">Hindi</option> <option value="hi">ि</option>
<option value="sa">Sanskrit</option> <option value="sa">Sanskrit</option>
<option value="es">Spanish</option> <option value="es">Español (España)</option>
<option value="zh-Hans">中文(简体)</option>
</select> </select>
</label> </label>
</div> </div>

View File

@ -18,14 +18,107 @@
} }
}, },
messages: { messages: {
'"Web Maker" <0>CHill</0>.': '"Web Maker" <0>CHill</0>.',
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.':
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.',
'Add Library': 'Add Library',
'Add a JS/CSS library': 'Add a JS/CSS library', 'Add a JS/CSS library': 'Add a JS/CSS library',
'Add library': 'Add library', 'Add library': 'Add library',
Chat: 'Chat',
'Choose from popular libraries': 'Choose from popular libraries',
'Clear console (CTRL + L)': 'Clear console (CTRL + L)',
'Clear console (works when console input is focused)':
'Clear console (works when console input is focused)',
'Close saved creations panel & modals':
'Close saved creations panel & modals',
Console: 'Console', Console: 'Console',
'Detach Preview': 'Detach Preview',
Donate: 'Donate',
'Double click to toggle console': 'Double click to toggle console',
'Download game as zip': 'Download game as zip',
'Edit on CodePen': 'Edit on CodePen',
Editor: 'Editor',
'Emmet code completion': 'Emmet code completion',
Export: 'Export',
'Export all your creations into a single importable file.':
'Export all your creations into a single importable file.',
Find: 'Find',
'Find & replace': 'Find & replace',
Global: 'Global',
Help: 'Help',
Import: 'Import',
"Import your creations. Only the file that you export through the 'Export' button can be imported.":
"Import your creations. Only the file that you export through the 'Export' button can be imported.",
'Indent code left': 'Indent code left',
'Indent code right': 'Indent code right',
'Keyboard Shortcuts': 'Keyboard Shortcuts',
'Keyboard shortcuts': 'Keyboard shortcuts',
License: 'License',
'Like this extension? Please <0>rate it here</0>.':
'Like this extension? Please <0>rate it here</0>.',
Login: 'Login', Login: 'Login',
'Login/Signup': 'Login/Signup',
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>':
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>',
'My Library ({0})': function(a) {
return ['My Library (', a('0'), ')'];
},
New: 'New', New: 'New',
'No match found.': 'No match found.',
'Note: You can load external scripts from following domains:':
'Note: You can load external scripts from following domains:',
'Nothing saved here.': 'Nothing saved here.',
Open: 'Open', Open: 'Open',
'Open a saved creation (Ctrl/\u2318 + O)':
'Open a saved creation (Ctrl/\u2318 + O)',
'Open list of saved creations': 'Open list of saved creations',
'Powered by cdnjs': 'Powered by cdnjs',
'Put each library in new line': 'Put each library in new line',
'Read more': 'Read more',
'Read the documentation.': 'Read the documentation.',
'Realign code': 'Realign code',
'Refresh preview': 'Refresh preview',
'Report a bug': 'Report a bug',
'Review Web Maker': 'Review Web Maker',
Run: 'Run', Run: 'Run',
'Run Prettier': 'Run Prettier',
'Run preview (Ctrl/\u2318 + Shift + 5)':
'Run preview (Ctrl/\u2318 + Shift + 5)',
Save: 'Save', Save: 'Save',
Signup: 'Signup' 'Save as HTML file': 'Save as HTML file',
'Save current creation (Ctrl/\u2318 + S)':
'Save current creation (Ctrl/\u2318 + S)',
'Save current creations': 'Save current creations',
'Search your creations here...': 'Search your creations here...',
'See Changelog': 'See Changelog',
'See awesome libraries used': 'See awesome libraries used',
'See profile or Logout': 'See profile or Logout',
'Select next match': 'Select next match',
'Select previous match': 'Select previous match',
Settings: 'Settings',
Signup: 'Signup',
'Single line comment': 'Single line comment',
'Start a new creation': 'Start a new creation',
'Support the developer': 'Support the developer',
'Support the developer by pledging some amount':
'Support the developer by pledging some amount',
'Switch to full screen preview': 'Switch to full screen preview',
'Switch to layout with all vertical panes':
'Switch to layout with all vertical panes',
'Switch to layout with preview on bottom':
'Switch to layout with preview on bottom',
'Switch to layout with preview on left':
'Switch to layout with preview on left',
'Switch to layout with preview on left"':
'Switch to layout with preview on left"',
'Switch to layout with preview on right':
'Switch to layout with preview on right',
'Take screenshot of preview': 'Take screenshot of preview',
'Toggle console': 'Toggle console',
"Tweet about 'Web Maker'": "Tweet about 'Web Maker'",
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>':
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>',
'Type here to search libraries': 'Type here to search libraries',
'Upload Image': 'Upload Image'
} }
}; };

View File

@ -13,6 +13,18 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/components/HelpModal.jsx:201
msgid "\"Web Maker\" <0>CHill</0>."
msgstr "\"Web Maker\" <0>CHill</0>."
#: src/components/SavedItemPane.jsx:111
msgid "'Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button."
msgstr "'Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button."
#: src/components/AddLibrary.jsx:67
msgid "Add Library"
msgstr "Add Library"
#: src/components/MainHeader.jsx:41 #: src/components/MainHeader.jsx:41
msgid "Add a JS/CSS library" msgid "Add a JS/CSS library"
msgstr "Add a JS/CSS library" msgstr "Add a JS/CSS library"
@ -22,37 +34,328 @@ msgstr "Add a JS/CSS library"
msgid "Add library" msgid "Add library"
msgstr "Add library" msgstr "Add library"
#: src/components/Console.jsx:58 #: src/components/HelpModal.jsx:91
#: src/components/Console.jsx:58 msgid "Chat"
msgstr "Chat"
#: src/components/AddLibrary.jsx:92
#: src/components/AddLibrary.jsx:92
msgid "Choose from popular libraries"
msgstr "Choose from popular libraries"
#: src/components/Console.jsx:70
msgid "Clear console (CTRL + L)"
msgstr "Clear console (CTRL + L)"
#: src/components/KeyboardShortcutsModal.jsx:42
msgid "Clear console (works when console input is focused)"
msgstr "Clear console (works when console input is focused)"
#: src/components/KeyboardShortcutsModal.jsx:48
msgid "Close saved creations panel & modals"
msgstr "Close saved creations panel & modals"
#: src/components/Console.jsx:61
#: src/components/Console.jsx:61
msgid "Console" msgid "Console"
msgstr "Console" msgstr "Console"
#: src/components/Footer.jsx:301
msgid "Detach Preview"
msgstr "Detach Preview"
#: src/components/Footer.jsx:146
#: src/components/Footer.jsx:146
msgid "Donate"
msgstr "Donate"
#: src/components/Console.jsx:57
msgid "Double click to toggle console"
msgstr "Double click to toggle console"
#: src/components/Footer.jsx:174
#: src/components/Footer.jsx:174
msgid "Download game as zip"
msgstr "Download game as zip"
#: src/components/Footer.jsx:229
msgid "Edit on CodePen"
msgstr "Edit on CodePen"
#: src/components/KeyboardShortcutsModal.jsx:54
msgid "Editor"
msgstr "Editor"
#: src/components/KeyboardShortcutsModal.jsx:101
msgid "Emmet code completion"
msgstr "Emmet code completion"
#: src/components/SavedItemPane.jsx:183
#: src/components/SavedItemPane.jsx:183
msgid "Export"
msgstr "Export"
#: src/components/SavedItemPane.jsx:180
msgid "Export all your creations into a single importable file."
msgstr "Export all your creations into a single importable file."
#: src/components/KeyboardShortcutsModal.jsx:59
msgid "Find"
msgstr "Find"
#: src/components/KeyboardShortcutsModal.jsx:77
msgid "Find & replace"
msgstr "Find & replace"
#: src/components/KeyboardShortcutsModal.jsx:15
msgid "Global"
msgstr "Global"
#: src/components/Footer.jsx:94
#: src/components/Footer.jsx:194
#: src/components/Footer.jsx:194
msgid "Help"
msgstr "Help"
#: src/components/SavedItemPane.jsx:192
#: src/components/SavedItemPane.jsx:192
msgid "Import"
msgstr "Import"
#: src/components/SavedItemPane.jsx:189
msgid "Import your creations. Only the file that you export through the 'Export' button can be imported."
msgstr "Import your creations. Only the file that you export through the 'Export' button can be imported."
#: src/components/KeyboardShortcutsModal.jsx:95
msgid "Indent code left"
msgstr "Indent code left"
#: src/components/KeyboardShortcutsModal.jsx:89
msgid "Indent code right"
msgstr "Indent code right"
#: src/components/KeyboardShortcutsModal.jsx:9
msgid "Keyboard Shortcuts"
msgstr "Keyboard Shortcuts"
#: src/components/Footer.jsx:108
msgid "Keyboard shortcuts"
msgstr "Keyboard shortcuts"
#: src/components/HelpModal.jsx:199
msgid "License"
msgstr "License"
#: src/components/HelpModal.jsx:47
msgid "Like this extension? Please <0>rate it here</0>."
msgstr "Like this extension? Please <0>rate it here</0>."
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
msgid "Login" #~ msgid "Login"
msgstr "Login" #~ msgstr "Login"
#: src/components/MainHeader.jsx:104
#: src/components/MainHeader.jsx:104
msgid "Login/Signup"
msgstr "Login/Signup"
#: src/components/HelpModal.jsx:16
msgid "Made with <0>💖</0>& <1> 🙌</1> by <2>Kushagra Gour</2>"
msgstr "Made with <0>💖</0>& <1> 🙌</1> by <2>Kushagra Gour</2>"
#: src/components/SavedItemPane.jsx:172
msgid "My Library ({0})"
msgstr "My Library ({0})"
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
msgid "New" msgid "New"
msgstr "New" msgstr "New"
#: src/components/SavedItemPane.jsx:207
msgid "No match found."
msgstr "No match found."
#: src/components/AddLibrary.jsx:125
msgid "Note: You can load external scripts from following domains:"
msgstr "Note: You can load external scripts from following domains:"
#: src/components/SavedItemPane.jsx:223
msgid "Nothing saved here."
msgstr "Nothing saved here."
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
msgid "Open" msgid "Open"
msgstr "Open" msgstr "Open"
#: src/components/MainHeader.jsx:87
msgid "Open a saved creation (Ctrl/⌘ + O)"
msgstr "Open a saved creation (Ctrl/⌘ + O)"
#: src/components/KeyboardShortcutsModal.jsx:36
msgid "Open list of saved creations"
msgstr "Open list of saved creations"
#: src/components/AddLibrary.jsx:88
msgid "Powered by cdnjs"
msgstr "Powered by cdnjs"
#: src/components/AddLibrary.jsx:118
#: src/components/AddLibrary.jsx:147
msgid "Put each library in new line"
msgstr "Put each library in new line"
#: src/components/KeyboardShortcutsModal.jsx:107
msgid "Read more"
msgstr "Read more"
#: src/components/HelpModal.jsx:30
msgid "Read the documentation."
msgstr "Read the documentation."
#: src/components/KeyboardShortcutsModal.jsx:83
msgid "Realign code"
msgstr "Realign code"
#: src/components/KeyboardShortcutsModal.jsx:24
msgid "Refresh preview"
msgstr "Refresh preview"
#: src/components/HelpModal.jsx:102
msgid "Report a bug"
msgstr "Report a bug"
#: src/components/HelpModal.jsx:80
msgid "Review Web Maker"
msgstr "Review Web Maker"
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
msgid "Run" msgid "Run"
msgstr "Run" msgstr "Run"
#: src/components/KeyboardShortcutsModal.jsx:120
msgid "Run Prettier"
msgstr "Run Prettier"
#: src/components/MainHeader.jsx:26
msgid "Run preview (Ctrl/⌘ + Shift + 5)"
msgstr "Run preview (Ctrl/⌘ + Shift + 5)"
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
#: src/components/Footer.jsx:206
msgid "Save as HTML file"
msgstr "Save as HTML file"
#: src/components/MainHeader.jsx:71
msgid "Save current creation (Ctrl/⌘ + S)"
msgstr "Save current creation (Ctrl/⌘ + S)"
#: src/components/KeyboardShortcutsModal.jsx:30
msgid "Save current creations"
msgstr "Save current creations"
#: src/components/SavedItemPane.jsx:201
msgid "Search your creations here..."
msgstr "Search your creations here..."
#: src/components/Footer.jsx:317
msgid "See Changelog"
msgstr "See Changelog"
#: src/components/HelpModal.jsx:110
msgid "See awesome libraries used"
msgstr "See awesome libraries used"
#: src/components/MainHeader.jsx:110
msgid "See profile or Logout"
msgstr "See profile or Logout"
#: src/components/KeyboardShortcutsModal.jsx:65
msgid "Select next match"
msgstr "Select next match"
#: src/components/KeyboardShortcutsModal.jsx:71
msgid "Select previous match"
msgstr "Select previous match"
#: src/components/Footer.jsx:329
msgid "Settings"
msgstr "Settings"
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
msgid "Signup" #~ msgid "Signup"
msgstr "Signup" #~ msgstr "Signup"
#: src/components/KeyboardShortcutsModal.jsx:114
msgid "Single line comment"
msgstr "Single line comment"
#: src/components/MainHeader.jsx:58
msgid "Start a new creation"
msgstr "Start a new creation"
#: src/components/HelpModal.jsx:69
#: src/components/HelpModal.jsx:69
msgid "Support the developer"
msgstr "Support the developer"
#: src/components/Footer.jsx:143
msgid "Support the developer by pledging some amount"
msgstr "Support the developer by pledging some amount"
#: src/components/Footer.jsx:293
msgid "Switch to full screen preview"
msgstr "Switch to full screen preview"
#: src/components/Footer.jsx:283
msgid "Switch to layout with all vertical panes"
msgstr "Switch to layout with all vertical panes"
#: src/components/Footer.jsx:263
msgid "Switch to layout with preview on bottom"
msgstr "Switch to layout with preview on bottom"
#: src/components/Footer.jsx:273
msgid "Switch to layout with preview on left"
msgstr "Switch to layout with preview on left"
#: src/components/Footer.jsx:273
#~ msgid "Switch to layout with preview on left\""
#~ msgstr "Switch to layout with preview on left\""
#: src/components/Footer.jsx:253
msgid "Switch to layout with preview on right"
msgstr "Switch to layout with preview on right"
#: src/components/Footer.jsx:240
msgid "Take screenshot of preview"
msgstr "Take screenshot of preview"
#: src/components/Console.jsx:79
msgid "Toggle console"
msgstr "Toggle console"
#: src/components/Footer.jsx:122
msgid "Tweet about 'Web Maker'"
msgstr "Tweet about 'Web Maker'"
#: src/components/HelpModal.jsx:34
msgid "Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>"
msgstr "Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>"
#: src/components/AddLibrary.jsx:82
msgid "Type here to search libraries"
msgstr "Type here to search libraries"
#: src/components/Footer.jsx:187
#: src/components/Footer.jsx:187
msgid "Upload Image"
msgstr "Upload Image"

View File

@ -6,14 +6,107 @@
} }
}, },
messages: { messages: {
'"Web Maker" <0>CHill</0>.': '"Web Maker" <0>CHill</0>.',
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.':
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.',
'Add Library': 'Add Library',
'Add a JS/CSS library': 'Add a JS/CSS library', 'Add a JS/CSS library': 'Add a JS/CSS library',
'Add library': 'Add library', 'Add library': 'Add library',
Chat: 'Chat',
'Choose from popular libraries': 'Choose from popular libraries',
'Clear console (CTRL + L)': 'Clear console (CTRL + L)',
'Clear console (works when console input is focused)':
'Clear console (works when console input is focused)',
'Close saved creations panel & modals':
'Close saved creations panel & modals',
Console: 'Console', Console: 'Console',
'Detach Preview': 'Detach Preview',
Donate: 'Donate',
'Double click to toggle console': 'Double click to toggle console',
'Download game as zip': 'Download game as zip',
'Edit on CodePen': 'Edit on CodePen',
Editor: 'Editor',
'Emmet code completion': 'Emmet code completion',
Export: 'Export',
'Export all your creations into a single importable file.':
'Export all your creations into a single importable file.',
Find: 'Find',
'Find & replace': 'Find & replace',
Global: 'Global',
Help: 'Help',
Import: 'Import',
"Import your creations. Only the file that you export through the 'Export' button can be imported.":
"Import your creations. Only the file that you export through the 'Export' button can be imported.",
'Indent code left': 'Indent code left',
'Indent code right': 'Indent code right',
'Keyboard Shortcuts': 'Keyboard Shortcuts',
'Keyboard shortcuts': 'Keyboard shortcuts',
License: 'License',
'Like this extension? Please <0>rate it here</0>.':
'Like this extension? Please <0>rate it here</0>.',
Login: 'Login', Login: 'Login',
'Login/Signup': 'Login/Signup',
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>':
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>',
'My Library ({0})': function(a) {
return ['My Library (', a('0'), ')'];
},
New: 'New', New: 'New',
'No match found.': 'No match found.',
'Note: You can load external scripts from following domains:':
'Note: You can load external scripts from following domains:',
'Nothing saved here.': 'Nothing saved here.',
Open: 'Open', Open: 'Open',
'Open a saved creation (Ctrl/\u2318 + O)':
'Open a saved creation (Ctrl/\u2318 + O)',
'Open list of saved creations': 'Open list of saved creations',
'Powered by cdnjs': 'Powered by cdnjs',
'Put each library in new line': 'Put each library in new line',
'Read more': 'Read more',
'Read the documentation.': 'Read the documentation.',
'Realign code': 'Realign code',
'Refresh preview': 'Refresh preview',
'Report a bug': 'Report a bug',
'Review Web Maker': 'Review Web Maker',
Run: 'Run', Run: 'Run',
'Run Prettier': 'Run Prettier',
'Run preview (Ctrl/\u2318 + Shift + 5)':
'Run preview (Ctrl/\u2318 + Shift + 5)',
Save: 'Save', Save: 'Save',
Signup: 'Signup' 'Save as HTML file': 'Save as HTML file',
'Save current creation (Ctrl/\u2318 + S)':
'Save current creation (Ctrl/\u2318 + S)',
'Save current creations': 'Save current creations',
'Search your creations here...': 'Search your creations here...',
'See Changelog': 'See Changelog',
'See awesome libraries used': 'See awesome libraries used',
'See profile or Logout': 'See profile or Logout',
'Select next match': 'Select next match',
'Select previous match': 'Select previous match',
Settings: 'Settings',
Signup: 'Signup',
'Single line comment': 'Single line comment',
'Start a new creation': 'Start a new creation',
'Support the developer': 'Support the developer',
'Support the developer by pledging some amount':
'Support the developer by pledging some amount',
'Switch to full screen preview': 'Switch to full screen preview',
'Switch to layout with all vertical panes':
'Switch to layout with all vertical panes',
'Switch to layout with preview on bottom':
'Switch to layout with preview on bottom',
'Switch to layout with preview on left':
'Switch to layout with preview on left',
'Switch to layout with preview on left"':
'Switch to layout with preview on left"',
'Switch to layout with preview on right':
'Switch to layout with preview on right',
'Take screenshot of preview': 'Take screenshot of preview',
'Toggle console': 'Toggle console',
"Tweet about 'Web Maker'": "Tweet about 'Web Maker'",
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>':
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>',
'Type here to search libraries': 'Type here to search libraries',
'Upload Image': 'Upload Image'
} }
}; };

View File

@ -13,6 +13,18 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/components/HelpModal.jsx:201
msgid "\"Web Maker\" <0>CHill</0>."
msgstr ""
#: src/components/SavedItemPane.jsx:111
msgid "'Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button."
msgstr ""
#: src/components/AddLibrary.jsx:67
msgid "Add Library"
msgstr ""
#: src/components/MainHeader.jsx:41 #: src/components/MainHeader.jsx:41
msgid "Add a JS/CSS library" msgid "Add a JS/CSS library"
msgstr "" msgstr ""
@ -22,14 +34,138 @@ msgstr ""
msgid "Add library" msgid "Add library"
msgstr "" msgstr ""
#: src/components/Console.jsx:58 #: src/components/HelpModal.jsx:91
#: src/components/Console.jsx:58 msgid "Chat"
msgstr ""
#: src/components/AddLibrary.jsx:92
#: src/components/AddLibrary.jsx:92
msgid "Choose from popular libraries"
msgstr ""
#: src/components/Console.jsx:70
msgid "Clear console (CTRL + L)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:42
msgid "Clear console (works when console input is focused)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:48
msgid "Close saved creations panel & modals"
msgstr ""
#: src/components/Console.jsx:61
#: src/components/Console.jsx:61
msgid "Console" msgid "Console"
msgstr "" msgstr ""
#: src/components/Footer.jsx:301
msgid "Detach Preview"
msgstr ""
#: src/components/Footer.jsx:146
#: src/components/Footer.jsx:146
msgid "Donate"
msgstr ""
#: src/components/Console.jsx:57
msgid "Double click to toggle console"
msgstr ""
#: src/components/Footer.jsx:174
#: src/components/Footer.jsx:174
msgid "Download game as zip"
msgstr ""
#: src/components/Footer.jsx:229
msgid "Edit on CodePen"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:54
msgid "Editor"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:101
msgid "Emmet code completion"
msgstr ""
#: src/components/SavedItemPane.jsx:183
#: src/components/SavedItemPane.jsx:183
msgid "Export"
msgstr ""
#: src/components/SavedItemPane.jsx:180
msgid "Export all your creations into a single importable file."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:59
msgid "Find"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:77
msgid "Find & replace"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:15
msgid "Global"
msgstr ""
#: src/components/Footer.jsx:94
#: src/components/Footer.jsx:194
#: src/components/Footer.jsx:194
msgid "Help"
msgstr ""
#: src/components/SavedItemPane.jsx:192
#: src/components/SavedItemPane.jsx:192
msgid "Import"
msgstr ""
#: src/components/SavedItemPane.jsx:189
msgid "Import your creations. Only the file that you export through the 'Export' button can be imported."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:95
msgid "Indent code left"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:89
msgid "Indent code right"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:9
msgid "Keyboard Shortcuts"
msgstr ""
#: src/components/Footer.jsx:108
msgid "Keyboard shortcuts"
msgstr ""
#: src/components/HelpModal.jsx:199
msgid "License"
msgstr ""
#: src/components/HelpModal.jsx:47
msgid "Like this extension? Please <0>rate it here</0>."
msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
msgid "Login" #~ msgid "Login"
#~ msgstr ""
#: src/components/MainHeader.jsx:104
#: src/components/MainHeader.jsx:104
msgid "Login/Signup"
msgstr ""
#: src/components/HelpModal.jsx:16
msgid "Made with <0>💖</0>& <1> 🙌</1> by <2>Kushagra Gour</2>"
msgstr ""
#: src/components/SavedItemPane.jsx:172
msgid "My Library ({0})"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
@ -37,22 +173,189 @@ msgstr ""
msgid "New" msgid "New"
msgstr "" msgstr ""
#: src/components/SavedItemPane.jsx:207
msgid "No match found."
msgstr ""
#: src/components/AddLibrary.jsx:125
msgid "Note: You can load external scripts from following domains:"
msgstr ""
#: src/components/SavedItemPane.jsx:223
msgid "Nothing saved here."
msgstr ""
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:87
msgid "Open a saved creation (Ctrl/⌘ + O)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:36
msgid "Open list of saved creations"
msgstr ""
#: src/components/AddLibrary.jsx:88
msgid "Powered by cdnjs"
msgstr ""
#: src/components/AddLibrary.jsx:118
#: src/components/AddLibrary.jsx:147
msgid "Put each library in new line"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:107
msgid "Read more"
msgstr ""
#: src/components/HelpModal.jsx:30
msgid "Read the documentation."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:83
msgid "Realign code"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:24
msgid "Refresh preview"
msgstr ""
#: src/components/HelpModal.jsx:102
msgid "Report a bug"
msgstr ""
#: src/components/HelpModal.jsx:80
msgid "Review Web Maker"
msgstr ""
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
msgid "Run" msgid "Run"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:120
msgid "Run Prettier"
msgstr ""
#: src/components/MainHeader.jsx:26
msgid "Run preview (Ctrl/⌘ + Shift + 5)"
msgstr ""
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/Footer.jsx:206
#: src/components/MainHeader.jsx:105 msgid "Save as HTML file"
msgid "Signup" msgstr ""
#: src/components/MainHeader.jsx:71
msgid "Save current creation (Ctrl/⌘ + S)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:30
msgid "Save current creations"
msgstr ""
#: src/components/SavedItemPane.jsx:201
msgid "Search your creations here..."
msgstr ""
#: src/components/Footer.jsx:317
msgid "See Changelog"
msgstr ""
#: src/components/HelpModal.jsx:110
msgid "See awesome libraries used"
msgstr ""
#: src/components/MainHeader.jsx:110
msgid "See profile or Logout"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:65
msgid "Select next match"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:71
msgid "Select previous match"
msgstr ""
#: src/components/Footer.jsx:329
msgid "Settings"
msgstr ""
#: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105
#~ msgid "Signup"
#~ msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:114
msgid "Single line comment"
msgstr ""
#: src/components/MainHeader.jsx:58
msgid "Start a new creation"
msgstr ""
#: src/components/HelpModal.jsx:69
#: src/components/HelpModal.jsx:69
msgid "Support the developer"
msgstr ""
#: src/components/Footer.jsx:143
msgid "Support the developer by pledging some amount"
msgstr ""
#: src/components/Footer.jsx:293
msgid "Switch to full screen preview"
msgstr ""
#: src/components/Footer.jsx:283
msgid "Switch to layout with all vertical panes"
msgstr ""
#: src/components/Footer.jsx:263
msgid "Switch to layout with preview on bottom"
msgstr ""
#: src/components/Footer.jsx:273
msgid "Switch to layout with preview on left"
msgstr ""
#: src/components/Footer.jsx:273
#~ msgid "Switch to layout with preview on left\""
#~ msgstr ""
#: src/components/Footer.jsx:253
msgid "Switch to layout with preview on right"
msgstr ""
#: src/components/Footer.jsx:240
msgid "Take screenshot of preview"
msgstr ""
#: src/components/Console.jsx:79
msgid "Toggle console"
msgstr ""
#: src/components/Footer.jsx:122
msgid "Tweet about 'Web Maker'"
msgstr ""
#: src/components/HelpModal.jsx:34
msgid "Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>"
msgstr ""
#: src/components/AddLibrary.jsx:82
msgid "Type here to search libraries"
msgstr ""
#: src/components/Footer.jsx:187
#: src/components/Footer.jsx:187
msgid "Upload Image"
msgstr "" msgstr ""

View File

@ -15,14 +15,107 @@
} }
}, },
messages: { messages: {
'"Web Maker" <0>CHill</0>.': '"Web Maker" <0>CHill</0>.',
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.':
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.',
'Add Library': 'Add Library',
'Add a JS/CSS library': 'Add a JS/CSS library', 'Add a JS/CSS library': 'Add a JS/CSS library',
'Add library': 'Add library', 'Add library': 'Add library',
Chat: 'Chat',
'Choose from popular libraries': 'Choose from popular libraries',
'Clear console (CTRL + L)': 'Clear console (CTRL + L)',
'Clear console (works when console input is focused)':
'Clear console (works when console input is focused)',
'Close saved creations panel & modals':
'Close saved creations panel & modals',
Console: 'Console', Console: 'Console',
'Detach Preview': 'Detach Preview',
Donate: 'Donate',
'Double click to toggle console': 'Double click to toggle console',
'Download game as zip': 'Download game as zip',
'Edit on CodePen': 'Edit on CodePen',
Editor: 'Editor',
'Emmet code completion': 'Emmet code completion',
Export: 'Export',
'Export all your creations into a single importable file.':
'Export all your creations into a single importable file.',
Find: 'Find',
'Find & replace': 'Find & replace',
Global: 'Global',
Help: 'Help',
Import: 'Import',
"Import your creations. Only the file that you export through the 'Export' button can be imported.":
"Import your creations. Only the file that you export through the 'Export' button can be imported.",
'Indent code left': 'Indent code left',
'Indent code right': 'Indent code right',
'Keyboard Shortcuts': 'Keyboard Shortcuts',
'Keyboard shortcuts': 'Keyboard shortcuts',
License: 'License',
'Like this extension? Please <0>rate it here</0>.':
'Like this extension? Please <0>rate it here</0>.',
Login: '\u0932\u0949\u0917\u093F\u0928', Login: '\u0932\u0949\u0917\u093F\u0928',
'Login/Signup': 'Login/Signup',
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>':
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>',
'My Library ({0})': function(a) {
return ['My Library (', a('0'), ')'];
},
New: '\u0928\u092F\u093E \u092C\u0928\u093E\u090F\u0901', New: '\u0928\u092F\u093E \u092C\u0928\u093E\u090F\u0901',
Open: 'Open', 'No match found.': 'No match found.',
Run: 'Run', 'Note: You can load external scripts from following domains:':
'Note: You can load external scripts from following domains:',
'Nothing saved here.': 'Nothing saved here.',
Open: '\u0916\u094B\u0932\u0947\u0902',
'Open a saved creation (Ctrl/\u2318 + O)':
'Open a saved creation (Ctrl/\u2318 + O)',
'Open list of saved creations': 'Open list of saved creations',
'Powered by cdnjs': 'Powered by cdnjs',
'Put each library in new line': 'Put each library in new line',
'Read more': 'Read more',
'Read the documentation.': 'Read the documentation.',
'Realign code': 'Realign code',
'Refresh preview': 'Refresh preview',
'Report a bug': 'Report a bug',
'Review Web Maker': 'Review Web Maker',
Run: '\u091A\u0932\u093E\u090F\u0901',
'Run Prettier': 'Run Prettier',
'Run preview (Ctrl/\u2318 + Shift + 5)':
'Run preview (Ctrl/\u2318 + Shift + 5)',
Save: 'Save', Save: 'Save',
Signup: 'Signup' 'Save as HTML file': 'Save as HTML file',
'Save current creation (Ctrl/\u2318 + S)':
'Save current creation (Ctrl/\u2318 + S)',
'Save current creations': 'Save current creations',
'Search your creations here...': 'Search your creations here...',
'See Changelog': 'See Changelog',
'See awesome libraries used': 'See awesome libraries used',
'See profile or Logout': 'See profile or Logout',
'Select next match': 'Select next match',
'Select previous match': 'Select previous match',
Settings: 'Settings',
Signup: 'Signup',
'Single line comment': 'Single line comment',
'Start a new creation': 'Start a new creation',
'Support the developer': 'Support the developer',
'Support the developer by pledging some amount':
'Support the developer by pledging some amount',
'Switch to full screen preview': 'Switch to full screen preview',
'Switch to layout with all vertical panes':
'Switch to layout with all vertical panes',
'Switch to layout with preview on bottom':
'Switch to layout with preview on bottom',
'Switch to layout with preview on left':
'Switch to layout with preview on left',
'Switch to layout with preview on left"':
'Switch to layout with preview on left"',
'Switch to layout with preview on right':
'Switch to layout with preview on right',
'Take screenshot of preview': 'Take screenshot of preview',
'Toggle console': 'Toggle console',
"Tweet about 'Web Maker'": "Tweet about 'Web Maker'",
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>':
'\u0939\u0932\u0935\u093E \u0939\u093F\u092F\u093E\u0901 \u092F\u0947 \u0924\u094B <0>\u091A\u092E\u092A\u094D\u0930\u0936</0>',
'Type here to search libraries': 'Type here to search libraries',
'Upload Image': 'Upload Image'
} }
}; };

View File

@ -13,6 +13,18 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/components/HelpModal.jsx:201
msgid "\"Web Maker\" <0>CHill</0>."
msgstr ""
#: src/components/SavedItemPane.jsx:111
msgid "'Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button."
msgstr ""
#: src/components/AddLibrary.jsx:67
msgid "Add Library"
msgstr ""
#: src/components/MainHeader.jsx:41 #: src/components/MainHeader.jsx:41
msgid "Add a JS/CSS library" msgid "Add a JS/CSS library"
msgstr "" msgstr ""
@ -22,37 +34,328 @@ msgstr ""
msgid "Add library" msgid "Add library"
msgstr "" msgstr ""
#: src/components/Console.jsx:58 #: src/components/HelpModal.jsx:91
#: src/components/Console.jsx:58 msgid "Chat"
msgstr ""
#: src/components/AddLibrary.jsx:92
#: src/components/AddLibrary.jsx:92
msgid "Choose from popular libraries"
msgstr ""
#: src/components/Console.jsx:70
msgid "Clear console (CTRL + L)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:42
msgid "Clear console (works when console input is focused)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:48
msgid "Close saved creations panel & modals"
msgstr ""
#: src/components/Console.jsx:61
#: src/components/Console.jsx:61
msgid "Console" msgid "Console"
msgstr "" msgstr ""
#: src/components/Footer.jsx:301
msgid "Detach Preview"
msgstr ""
#: src/components/Footer.jsx:146
#: src/components/Footer.jsx:146
msgid "Donate"
msgstr ""
#: src/components/Console.jsx:57
msgid "Double click to toggle console"
msgstr ""
#: src/components/Footer.jsx:174
#: src/components/Footer.jsx:174
msgid "Download game as zip"
msgstr ""
#: src/components/Footer.jsx:229
msgid "Edit on CodePen"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:54
msgid "Editor"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:101
msgid "Emmet code completion"
msgstr ""
#: src/components/SavedItemPane.jsx:183
#: src/components/SavedItemPane.jsx:183
msgid "Export"
msgstr ""
#: src/components/SavedItemPane.jsx:180
msgid "Export all your creations into a single importable file."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:59
msgid "Find"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:77
msgid "Find & replace"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:15
msgid "Global"
msgstr ""
#: src/components/Footer.jsx:94
#: src/components/Footer.jsx:194
#: src/components/Footer.jsx:194
msgid "Help"
msgstr ""
#: src/components/SavedItemPane.jsx:192
#: src/components/SavedItemPane.jsx:192
msgid "Import"
msgstr ""
#: src/components/SavedItemPane.jsx:189
msgid "Import your creations. Only the file that you export through the 'Export' button can be imported."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:95
msgid "Indent code left"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:89
msgid "Indent code right"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:9
msgid "Keyboard Shortcuts"
msgstr ""
#: src/components/Footer.jsx:108
msgid "Keyboard shortcuts"
msgstr ""
#: src/components/HelpModal.jsx:199
msgid "License"
msgstr ""
#: src/components/HelpModal.jsx:47
msgid "Like this extension? Please <0>rate it here</0>."
msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
msgid "Login" #~ msgid "Login"
msgstr "लॉगिन" #~ msgstr "लॉगिन"
#: src/components/MainHeader.jsx:104
#: src/components/MainHeader.jsx:104
msgid "Login/Signup"
msgstr ""
#: src/components/HelpModal.jsx:16
msgid "Made with <0>💖</0>& <1> 🙌</1> by <2>Kushagra Gour</2>"
msgstr ""
#: src/components/SavedItemPane.jsx:172
msgid "My Library ({0})"
msgstr ""
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
msgid "New" msgid "New"
msgstr "नया बनाएँ" msgstr "नया बनाएँ"
#: src/components/SavedItemPane.jsx:207
msgid "No match found."
msgstr ""
#: src/components/AddLibrary.jsx:125
msgid "Note: You can load external scripts from following domains:"
msgstr ""
#: src/components/SavedItemPane.jsx:223
msgid "Nothing saved here."
msgstr ""
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
msgid "Open" msgid "Open"
msgstr "खोलें" msgstr "खोलें"
#: src/components/MainHeader.jsx:87
msgid "Open a saved creation (Ctrl/⌘ + O)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:36
msgid "Open list of saved creations"
msgstr ""
#: src/components/AddLibrary.jsx:88
msgid "Powered by cdnjs"
msgstr ""
#: src/components/AddLibrary.jsx:118
#: src/components/AddLibrary.jsx:147
msgid "Put each library in new line"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:107
msgid "Read more"
msgstr ""
#: src/components/HelpModal.jsx:30
msgid "Read the documentation."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:83
msgid "Realign code"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:24
msgid "Refresh preview"
msgstr ""
#: src/components/HelpModal.jsx:102
msgid "Report a bug"
msgstr ""
#: src/components/HelpModal.jsx:80
msgid "Review Web Maker"
msgstr ""
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
msgid "Run" msgid "Run"
msgstr "चलाएँ" msgstr "चलाएँ"
#: src/components/KeyboardShortcutsModal.jsx:120
msgid "Run Prettier"
msgstr ""
#: src/components/MainHeader.jsx:26
msgid "Run preview (Ctrl/⌘ + Shift + 5)"
msgstr ""
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/Footer.jsx:206
#: src/components/MainHeader.jsx:105 msgid "Save as HTML file"
msgid "Signup" msgstr ""
#: src/components/MainHeader.jsx:71
msgid "Save current creation (Ctrl/⌘ + S)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:30
msgid "Save current creations"
msgstr ""
#: src/components/SavedItemPane.jsx:201
msgid "Search your creations here..."
msgstr ""
#: src/components/Footer.jsx:317
msgid "See Changelog"
msgstr ""
#: src/components/HelpModal.jsx:110
msgid "See awesome libraries used"
msgstr ""
#: src/components/MainHeader.jsx:110
msgid "See profile or Logout"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:65
msgid "Select next match"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:71
msgid "Select previous match"
msgstr ""
#: src/components/Footer.jsx:329
msgid "Settings"
msgstr ""
#: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105
#~ msgid "Signup"
#~ msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:114
msgid "Single line comment"
msgstr ""
#: src/components/MainHeader.jsx:58
msgid "Start a new creation"
msgstr ""
#: src/components/HelpModal.jsx:69
#: src/components/HelpModal.jsx:69
msgid "Support the developer"
msgstr ""
#: src/components/Footer.jsx:143
msgid "Support the developer by pledging some amount"
msgstr ""
#: src/components/Footer.jsx:293
msgid "Switch to full screen preview"
msgstr ""
#: src/components/Footer.jsx:283
msgid "Switch to layout with all vertical panes"
msgstr ""
#: src/components/Footer.jsx:263
msgid "Switch to layout with preview on bottom"
msgstr ""
#: src/components/Footer.jsx:273
msgid "Switch to layout with preview on left"
msgstr ""
#: src/components/Footer.jsx:273
#~ msgid "Switch to layout with preview on left\""
#~ msgstr ""
#: src/components/Footer.jsx:253
msgid "Switch to layout with preview on right"
msgstr ""
#: src/components/Footer.jsx:240
msgid "Take screenshot of preview"
msgstr ""
#: src/components/Console.jsx:79
msgid "Toggle console"
msgstr ""
#: src/components/Footer.jsx:122
msgid "Tweet about 'Web Maker'"
msgstr ""
#: src/components/HelpModal.jsx:34
msgid "Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>"
msgstr "हलवा हियाँ ये तो <0>चमप्रश</0>"
#: src/components/AddLibrary.jsx:82
msgid "Type here to search libraries"
msgstr ""
#: src/components/Footer.jsx:187
#: src/components/Footer.jsx:187
msgid "Upload Image"
msgstr "" msgstr ""

View File

@ -6,14 +6,107 @@
} }
}, },
messages: { messages: {
'"Web Maker" <0>CHill</0>.': '"Web Maker" <0>CHill</0>.',
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.':
'\'Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.',
'Add Library': 'Add Library',
'Add a JS/CSS library': 'Add a JS/CSS library', 'Add a JS/CSS library': 'Add a JS/CSS library',
'Add library': 'Add library', 'Add library': 'Add library',
Chat: 'Chat',
'Choose from popular libraries': 'Choose from popular libraries',
'Clear console (CTRL + L)': 'Clear console (CTRL + L)',
'Clear console (works when console input is focused)':
'Clear console (works when console input is focused)',
'Close saved creations panel & modals':
'Close saved creations panel & modals',
Console: 'Console', Console: 'Console',
'Detach Preview': 'Detach Preview',
Donate: 'Donate',
'Double click to toggle console': 'Double click to toggle console',
'Download game as zip': 'Download game as zip',
'Edit on CodePen': 'Edit on CodePen',
Editor: 'Editor',
'Emmet code completion': 'Emmet code completion',
Export: 'Export',
'Export all your creations into a single importable file.':
'Export all your creations into a single importable file.',
Find: 'Find',
'Find & replace': 'Find & replace',
Global: 'Global',
Help: 'Help',
Import: 'Import',
"Import your creations. Only the file that you export through the 'Export' button can be imported.":
"Import your creations. Only the file that you export through the 'Export' button can be imported.",
'Indent code left': 'Indent code left',
'Indent code right': 'Indent code right',
'Keyboard Shortcuts': 'Keyboard Shortcuts',
'Keyboard shortcuts': 'Keyboard shortcuts',
License: 'License',
'Like this extension? Please <0>rate it here</0>.':
'Like this extension? Please <0>rate it here</0>.',
Login: 'Login', Login: 'Login',
'Login/Signup': 'Login/Signup',
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>':
'Made with <0>\uD83D\uDC96</0>& <1> \uD83D\uDE4C</1> by <2>Kushagra Gour</2>',
'My Library ({0})': function(a) {
return ['My Library (', a('0'), ')'];
},
New: 'New', New: 'New',
'No match found.': 'No match found.',
'Note: You can load external scripts from following domains:':
'Note: You can load external scripts from following domains:',
'Nothing saved here.': 'Nothing saved here.',
Open: 'Open', Open: 'Open',
'Open a saved creation (Ctrl/\u2318 + O)':
'Open a saved creation (Ctrl/\u2318 + O)',
'Open list of saved creations': 'Open list of saved creations',
'Powered by cdnjs': 'Powered by cdnjs',
'Put each library in new line': 'Put each library in new line',
'Read more': 'Read more',
'Read the documentation.': 'Read the documentation.',
'Realign code': 'Realign code',
'Refresh preview': 'Refresh preview',
'Report a bug': 'Report a bug',
'Review Web Maker': 'Review Web Maker',
Run: 'Run', Run: 'Run',
'Run Prettier': 'Run Prettier',
'Run preview (Ctrl/\u2318 + Shift + 5)':
'Run preview (Ctrl/\u2318 + Shift + 5)',
Save: 'Save', Save: 'Save',
Signup: 'Signup' 'Save as HTML file': 'Save as HTML file',
'Save current creation (Ctrl/\u2318 + S)':
'Save current creation (Ctrl/\u2318 + S)',
'Save current creations': 'Save current creations',
'Search your creations here...': 'Search your creations here...',
'See Changelog': 'See Changelog',
'See awesome libraries used': 'See awesome libraries used',
'See profile or Logout': 'See profile or Logout',
'Select next match': 'Select next match',
'Select previous match': 'Select previous match',
Settings: 'Settings',
Signup: 'Signup',
'Single line comment': 'Single line comment',
'Start a new creation': 'Start a new creation',
'Support the developer': 'Support the developer',
'Support the developer by pledging some amount':
'Support the developer by pledging some amount',
'Switch to full screen preview': 'Switch to full screen preview',
'Switch to layout with all vertical panes':
'Switch to layout with all vertical panes',
'Switch to layout with preview on bottom':
'Switch to layout with preview on bottom',
'Switch to layout with preview on left':
'Switch to layout with preview on left',
'Switch to layout with preview on left"':
'Switch to layout with preview on left"',
'Switch to layout with preview on right':
'Switch to layout with preview on right',
'Take screenshot of preview': 'Take screenshot of preview',
'Toggle console': 'Toggle console',
"Tweet about 'Web Maker'": "Tweet about 'Web Maker'",
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>':
'Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>',
'Type here to search libraries': 'Type here to search libraries',
'Upload Image': 'Upload Image'
} }
}; };

View File

@ -13,6 +13,18 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/components/HelpModal.jsx:201
msgid "\"Web Maker\" <0>CHill</0>."
msgstr ""
#: src/components/SavedItemPane.jsx:111
msgid "'Oops! Selected file is corrupted. Please select a file that was generated by clicking the \"Export\" button."
msgstr ""
#: src/components/AddLibrary.jsx:67
msgid "Add Library"
msgstr ""
#: src/components/MainHeader.jsx:41 #: src/components/MainHeader.jsx:41
msgid "Add a JS/CSS library" msgid "Add a JS/CSS library"
msgstr "" msgstr ""
@ -22,14 +34,138 @@ msgstr ""
msgid "Add library" msgid "Add library"
msgstr "" msgstr ""
#: src/components/Console.jsx:58 #: src/components/HelpModal.jsx:91
#: src/components/Console.jsx:58 msgid "Chat"
msgstr ""
#: src/components/AddLibrary.jsx:92
#: src/components/AddLibrary.jsx:92
msgid "Choose from popular libraries"
msgstr ""
#: src/components/Console.jsx:70
msgid "Clear console (CTRL + L)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:42
msgid "Clear console (works when console input is focused)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:48
msgid "Close saved creations panel & modals"
msgstr ""
#: src/components/Console.jsx:61
#: src/components/Console.jsx:61
msgid "Console" msgid "Console"
msgstr "" msgstr ""
#: src/components/Footer.jsx:301
msgid "Detach Preview"
msgstr ""
#: src/components/Footer.jsx:146
#: src/components/Footer.jsx:146
msgid "Donate"
msgstr ""
#: src/components/Console.jsx:57
msgid "Double click to toggle console"
msgstr ""
#: src/components/Footer.jsx:174
#: src/components/Footer.jsx:174
msgid "Download game as zip"
msgstr ""
#: src/components/Footer.jsx:229
msgid "Edit on CodePen"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:54
msgid "Editor"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:101
msgid "Emmet code completion"
msgstr ""
#: src/components/SavedItemPane.jsx:183
#: src/components/SavedItemPane.jsx:183
msgid "Export"
msgstr ""
#: src/components/SavedItemPane.jsx:180
msgid "Export all your creations into a single importable file."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:59
msgid "Find"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:77
msgid "Find & replace"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:15
msgid "Global"
msgstr ""
#: src/components/Footer.jsx:94
#: src/components/Footer.jsx:194
#: src/components/Footer.jsx:194
msgid "Help"
msgstr ""
#: src/components/SavedItemPane.jsx:192
#: src/components/SavedItemPane.jsx:192
msgid "Import"
msgstr ""
#: src/components/SavedItemPane.jsx:189
msgid "Import your creations. Only the file that you export through the 'Export' button can be imported."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:95
msgid "Indent code left"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:89
msgid "Indent code right"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:9
msgid "Keyboard Shortcuts"
msgstr ""
#: src/components/Footer.jsx:108
msgid "Keyboard shortcuts"
msgstr ""
#: src/components/HelpModal.jsx:199
msgid "License"
msgstr ""
#: src/components/HelpModal.jsx:47
msgid "Like this extension? Please <0>rate it here</0>."
msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105 #: src/components/MainHeader.jsx:105
msgid "Login" #~ msgid "Login"
#~ msgstr ""
#: src/components/MainHeader.jsx:104
#: src/components/MainHeader.jsx:104
msgid "Login/Signup"
msgstr ""
#: src/components/HelpModal.jsx:16
msgid "Made with <0>💖</0>& <1> 🙌</1> by <2>Kushagra Gour</2>"
msgstr ""
#: src/components/SavedItemPane.jsx:172
msgid "My Library ({0})"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:64 #: src/components/MainHeader.jsx:64
@ -37,22 +173,189 @@ msgstr ""
msgid "New" msgid "New"
msgstr "" msgstr ""
#: src/components/SavedItemPane.jsx:207
msgid "No match found."
msgstr ""
#: src/components/AddLibrary.jsx:125
msgid "Note: You can load external scripts from following domains:"
msgstr ""
#: src/components/SavedItemPane.jsx:223
msgid "Nothing saved here."
msgstr ""
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
#: src/components/MainHeader.jsx:96 #: src/components/MainHeader.jsx:96
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:87
msgid "Open a saved creation (Ctrl/⌘ + O)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:36
msgid "Open list of saved creations"
msgstr ""
#: src/components/AddLibrary.jsx:88
msgid "Powered by cdnjs"
msgstr ""
#: src/components/AddLibrary.jsx:118
#: src/components/AddLibrary.jsx:147
msgid "Put each library in new line"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:107
msgid "Read more"
msgstr ""
#: src/components/HelpModal.jsx:30
msgid "Read the documentation."
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:83
msgid "Realign code"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:24
msgid "Refresh preview"
msgstr ""
#: src/components/HelpModal.jsx:102
msgid "Report a bug"
msgstr ""
#: src/components/HelpModal.jsx:80
msgid "Review Web Maker"
msgstr ""
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
#: src/components/MainHeader.jsx:32 #: src/components/MainHeader.jsx:32
msgid "Run" msgid "Run"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:120
msgid "Run Prettier"
msgstr ""
#: src/components/MainHeader.jsx:26
msgid "Run preview (Ctrl/⌘ + Shift + 5)"
msgstr ""
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
#: src/components/MainHeader.jsx:80 #: src/components/MainHeader.jsx:80
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: src/components/MainHeader.jsx:105 #: src/components/Footer.jsx:206
#: src/components/MainHeader.jsx:105 msgid "Save as HTML file"
msgid "Signup" msgstr ""
#: src/components/MainHeader.jsx:71
msgid "Save current creation (Ctrl/⌘ + S)"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:30
msgid "Save current creations"
msgstr ""
#: src/components/SavedItemPane.jsx:201
msgid "Search your creations here..."
msgstr ""
#: src/components/Footer.jsx:317
msgid "See Changelog"
msgstr ""
#: src/components/HelpModal.jsx:110
msgid "See awesome libraries used"
msgstr ""
#: src/components/MainHeader.jsx:110
msgid "See profile or Logout"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:65
msgid "Select next match"
msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:71
msgid "Select previous match"
msgstr ""
#: src/components/Footer.jsx:329
msgid "Settings"
msgstr ""
#: src/components/MainHeader.jsx:105
#: src/components/MainHeader.jsx:105
#~ msgid "Signup"
#~ msgstr ""
#: src/components/KeyboardShortcutsModal.jsx:114
msgid "Single line comment"
msgstr ""
#: src/components/MainHeader.jsx:58
msgid "Start a new creation"
msgstr ""
#: src/components/HelpModal.jsx:69
#: src/components/HelpModal.jsx:69
msgid "Support the developer"
msgstr ""
#: src/components/Footer.jsx:143
msgid "Support the developer by pledging some amount"
msgstr ""
#: src/components/Footer.jsx:293
msgid "Switch to full screen preview"
msgstr ""
#: src/components/Footer.jsx:283
msgid "Switch to layout with all vertical panes"
msgstr ""
#: src/components/Footer.jsx:263
msgid "Switch to layout with preview on bottom"
msgstr ""
#: src/components/Footer.jsx:273
msgid "Switch to layout with preview on left"
msgstr ""
#: src/components/Footer.jsx:273
#~ msgid "Switch to layout with preview on left\""
#~ msgstr ""
#: src/components/Footer.jsx:253
msgid "Switch to layout with preview on right"
msgstr ""
#: src/components/Footer.jsx:240
msgid "Take screenshot of preview"
msgstr ""
#: src/components/Console.jsx:79
msgid "Toggle console"
msgstr ""
#: src/components/Footer.jsx:122
msgid "Tweet about 'Web Maker'"
msgstr ""
#: src/components/HelpModal.jsx:34
msgid "Tweet out your feature requests, comments & suggestions to <0>@webmakerApp</0>"
msgstr ""
#: src/components/AddLibrary.jsx:82
msgid "Type here to search libraries"
msgstr ""
#: src/components/Footer.jsx:187
#: src/components/Footer.jsx:187
msgid "Upload Image"
msgstr "" msgstr ""

View File

@ -363,7 +363,7 @@
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/@lingui/babel-plugin-transform-react/-/babel-plugin-transform-react-2.7.4.tgz#7ed5414ee685f1b12c63228581f1404d9b767ea5" resolved "https://registry.yarnpkg.com/@lingui/babel-plugin-transform-react/-/babel-plugin-transform-react-2.7.4.tgz#7ed5414ee685f1b12c63228581f1404d9b767ea5"
"@lingui/cli@^2.7.0": "@lingui/cli@^2.7.4":
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/@lingui/cli/-/cli-2.7.4.tgz#a3b352fcbf6382d08f898a983fb2eb661c06a99f" resolved "https://registry.yarnpkg.com/@lingui/cli/-/cli-2.7.4.tgz#a3b352fcbf6382d08f898a983fb2eb661c06a99f"
dependencies: dependencies:
@ -412,14 +412,14 @@
make-plural "^4.1.1" make-plural "^4.1.1"
messageformat-parser "^2.0.0" messageformat-parser "^2.0.0"
"@lingui/macro@^2.7.0": "@lingui/macro@^2.7.4":
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/@lingui/macro/-/macro-2.7.4.tgz#5e21c46f5782816f42e24316a1cff55098848e7d" resolved "https://registry.yarnpkg.com/@lingui/macro/-/macro-2.7.4.tgz#5e21c46f5782816f42e24316a1cff55098848e7d"
dependencies: dependencies:
"@lingui/babel-plugin-transform-react" "2.7.4" "@lingui/babel-plugin-transform-react" "2.7.4"
babel-plugin-macros "^2.2.0" babel-plugin-macros "^2.2.0"
"@lingui/react@^2.7.0": "@lingui/react@^2.7.4":
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/@lingui/react/-/react-2.7.4.tgz#b336b2aac3a1848b7532a657bff3cb6d04e19464" resolved "https://registry.yarnpkg.com/@lingui/react/-/react-2.7.4.tgz#b336b2aac3a1848b7532a657bff3cb6d04e19464"
dependencies: dependencies: