mirror of
https://github.com/PretendoNetwork/website.git
synced 2026-04-24 15:37:12 -05:00
commit
a01e9a1844
|
|
@ -1,73 +0,0 @@
|
|||
# Altra documentazione
|
||||
|
||||
Siamo un gruppo di programmer che spendono il loro tempo libero a sviluppare e fare reverse-engineering per i server online per la 3DS e Wii U.
|
||||
|
||||
Siamo un gruppo di programmer che spendono il loro tempo libero a sviluppare e fare reverse-engineering per i server online per la 3DS e Wii U.
|
||||
|
||||
Siamo un gruppo di programmer che spendono il loro tempo libero a sviluppare e fare reverse-engineering per i server online per la 3DS e Wii U.
|
||||
|
||||
```javascript
|
||||
function returnTrue() {
|
||||
class trueOrFalseObject {
|
||||
constructor(trueOrFalse) {
|
||||
this.trueOrFalse = trueOrFalse;
|
||||
}
|
||||
get trueOrFalse() {
|
||||
return this.trueOrFalse();
|
||||
}
|
||||
convertNumberToBoolean(trueOrFalse) {
|
||||
if (convertStringToNumber(trueOrFalse) === 0) {
|
||||
return true;
|
||||
} else if (convertStringToNumber(trueOrFalse) == 1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
convertStringToNumber(trueOrFalse) {
|
||||
if (trueOrFalse === "true") {
|
||||
return 0;
|
||||
} else if (trueOrFalse === "false") {
|
||||
return true * 69 - 1 - false * 69 * 420 - 69 + 2;
|
||||
}
|
||||
}
|
||||
trueOrFalse() {
|
||||
return this.convertNumberToBoolean(trueOrFalse);
|
||||
}
|
||||
}
|
||||
|
||||
let objectWhichWeKnowIsTrue = new trueOrFalseObject("true");
|
||||
|
||||
function checkIfTrueOrFalse(objectToCheckIfTrueOrFalse) {
|
||||
if (objectToCheckIfTrueOrFalse === objectWhichWeKnowIsTrue.trueOrFalse) {
|
||||
return objectWhichWeKnowIsTrue.trueOrFalse;
|
||||
console.log(
|
||||
"Successfully checked if the object is true or false. Result: the object is true."
|
||||
);
|
||||
// TODO: fix text not console logging
|
||||
} else {
|
||||
objectWhichWeKnowIsTrue = new trueOrFalseObject("false");
|
||||
if (objectToCheckIfTrueOrFalse === objectWhichWeKnowIsTrue.trueOrFalse) {
|
||||
return objectWhichWeKnowIsTrue.trueOrFalse;
|
||||
console.log(
|
||||
"Successfully checked if the object is true or false. Result: the object is false."
|
||||
);
|
||||
// TODO: fix text not console logging
|
||||
} else {
|
||||
// something went horribly wrong
|
||||
}
|
||||
objectWhichWeKnowIsTrue = new trueOrFalseObject("true");
|
||||
}
|
||||
}
|
||||
|
||||
const isTrueTrueOrFalse = checkIfTrueOrFalse("true");
|
||||
const isfalseTrueOrFalse = checkIfTrueOrFalse("false");
|
||||
|
||||
const trueOrFalseJSON = {
|
||||
true: isTrueTrueOrFalse,
|
||||
false: isfalseTrueOrFalse,
|
||||
};
|
||||
|
||||
return trueOrFalseJSON.true
|
||||
}
|
||||
|
||||
console.log(returnTrue())
|
||||
```
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
"progress": "Progress",
|
||||
"blog": "Blog",
|
||||
"account": "Account",
|
||||
"donate": "Donate",
|
||||
"accountWidget": {
|
||||
"settings": "Settings",
|
||||
"logout": "Logout"
|
||||
|
|
@ -237,6 +238,7 @@
|
|||
"publishedOn": "on"
|
||||
},
|
||||
"account": {
|
||||
"account": "Account",
|
||||
"loginForm": {
|
||||
"login": "Login",
|
||||
"register": "Register",
|
||||
|
|
@ -254,7 +256,9 @@
|
|||
"downloadFiles": "Download account files",
|
||||
"downloadFilesDescription": "(will not work on Nintendo Network)",
|
||||
"upgrade": "Upgrade account",
|
||||
"unavailable": "Unavailable",
|
||||
"settingCards": {
|
||||
"userSettings": "User settings",
|
||||
"profile": "Profile",
|
||||
"nickname": "Nickname",
|
||||
"birthDate": "Birth date",
|
||||
|
|
@ -280,7 +284,10 @@
|
|||
"linkDiscord": "Link Discord account",
|
||||
"newsletter": "Newsletter",
|
||||
"newsletterPrompt": "Receive project updates via email (you can opt-out at any time)",
|
||||
"passwordPrompt": "Enter your PNID password to download Cemu files"
|
||||
"passwordPrompt": "Enter your PNID password to download Cemu files",
|
||||
"no_signins_notice": "Sign in history not currently tracked. Check back again later!",
|
||||
"no_newsletter_notice": "Newsletter not currently available. Check back again later",
|
||||
"no_edit_from_dashboard": "Editing PNID settings from user dashboard is currently unavailable. Please update user settings from your linked game console"
|
||||
}
|
||||
},
|
||||
"accountLevel": [
|
||||
|
|
@ -330,10 +337,26 @@
|
|||
"caption": "Search for it here"
|
||||
}
|
||||
]
|
||||
},
|
||||
"search": {
|
||||
"title": "Got an error code?",
|
||||
"caption": "Type it in the box below to get information on your issue!",
|
||||
"label": "Error code",
|
||||
"no_match": "No matches found"
|
||||
},
|
||||
"sidebar": {
|
||||
"getting_started": "Getting started",
|
||||
"welcome": "Welcome",
|
||||
"install_extended": "Install Pretendo",
|
||||
"install": "Install",
|
||||
"search": "Search",
|
||||
"juxt_err": "Error codes - Juxt"
|
||||
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm"
|
||||
"confirm": "Confirm",
|
||||
"close": "Close"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,11 @@ router.get('/', requireLoginMiddleware, async (request, response) => {
|
|||
});
|
||||
|
||||
router.get('/login', async (request, response) => {
|
||||
response.render('account/login');
|
||||
const renderData = {
|
||||
error: request.cookies.error_message
|
||||
};
|
||||
|
||||
response.render('account/login', renderData);
|
||||
});
|
||||
|
||||
router.post('/login', async (request, response) => {
|
||||
|
|
@ -97,6 +101,7 @@ router.get('/register', async (request, response) => {
|
|||
email: request.cookies.email,
|
||||
username: request.cookies.username,
|
||||
mii_name: request.cookies.mii_name,
|
||||
error: request.cookies.error_message
|
||||
};
|
||||
|
||||
response.clearCookie('email', { domain: '.pretendo.network' });
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ const database = require('./database');
|
|||
const util = require('./util');
|
||||
const logger = require('./logger');
|
||||
const config = require('../config.json');
|
||||
const defaultLocale = require('../locales/en_US.json');
|
||||
|
||||
const { http: { port } } = config;
|
||||
const app = express();
|
||||
|
|
@ -137,56 +136,6 @@ app.engine('handlebars', handlebars({
|
|||
neq(value1, value2) {
|
||||
return value1 !== value2;
|
||||
},
|
||||
times(n, block) {
|
||||
let accum = '';
|
||||
for(let i = 0; i < n; i++) {
|
||||
accum += block.fn(i);
|
||||
}
|
||||
return accum;
|
||||
},
|
||||
localeHelper(locale, propString, propVar, extra) {
|
||||
/*
|
||||
locale: the json locale object
|
||||
propString: the "path" to the property to get (e.g. "faq.title")
|
||||
propVar: the dynamic property name to get after the "path" (e.g. localeHelper locale "account.level" would result in )
|
||||
e.g. localeHelper locale "account.test" "account.level" would result in locale.account.test[account.level]
|
||||
*/
|
||||
|
||||
let value = locale;
|
||||
const props = propString.split('.');
|
||||
|
||||
if ( typeof propVar === 'string' || propVar instanceof String ||
|
||||
typeof propVar === 'number' || propVar instanceof Number ) {
|
||||
props.push(propVar);
|
||||
}
|
||||
|
||||
function getPropFromLocale(value, props) {
|
||||
for (const p of props) {
|
||||
value = value[p];
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
// fall back to english if the prop doesn't exist in the current locale
|
||||
try {
|
||||
value = getPropFromLocale(value, props);
|
||||
} catch (e) {
|
||||
value = defaultLocale;
|
||||
try {
|
||||
value = getPropFromLocale(value, props);
|
||||
} catch (e) {
|
||||
logger.error(`Could not find locale property ${props.join('.')}`);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Make this more dynamic
|
||||
if (extra) {
|
||||
value = value[extra];
|
||||
}
|
||||
|
||||
return value;
|
||||
},
|
||||
slug(string) {
|
||||
return string.toLowerCase().replaceAll(/ /g, '-');
|
||||
}
|
||||
|
|
|
|||
12
src/util.js
12
src/util.js
|
|
@ -6,11 +6,14 @@ const Stripe = require('stripe');
|
|||
const { marked } = require('marked');
|
||||
const { REST: DiscordRest } = require('@discordjs/rest');
|
||||
const { Routes: DiscordRoutes } = require('discord-api-types/v10');
|
||||
const merge = require('lodash.merge');
|
||||
|
||||
const mailer = require('./mailer');
|
||||
const database = require('./database');
|
||||
const logger = require('./logger');
|
||||
const config = require('../config.json');
|
||||
|
||||
const config = require('../config.json');
|
||||
const baseLocale = require(`${__dirname}/../locales/en_US.json`);
|
||||
const discordRest = new DiscordRest({ version: '10' }).setToken(config.discord.bot_token);
|
||||
|
||||
const stripe = new Stripe(config.stripe.secret_key);
|
||||
|
|
@ -23,12 +26,15 @@ function getLocale(language, region) {
|
|||
const path = `${__dirname}/../locales/${language}_${region}.json`;
|
||||
|
||||
if (fs.pathExistsSync(path)) {
|
||||
return require(path);
|
||||
const selectedLocale = require(path);
|
||||
const finalLocale = merge(baseLocale, selectedLocale);
|
||||
|
||||
return finalLocale;
|
||||
}
|
||||
|
||||
logger.warn(`Could not find locale ${language}_${region}! Loading en_US`);
|
||||
|
||||
return require(`${__dirname}/../locales/en_US.json`);
|
||||
return baseLocale;
|
||||
}
|
||||
|
||||
function getRawDocs(locale, subpath, pageName) {
|
||||
|
|
|
|||
|
|
@ -16,29 +16,29 @@
|
|||
<p class="tier-name tier-level-{{tierLevel}}" value="{{tierName}}">{{tierName}}</p>
|
||||
{{else}}
|
||||
{{#if (neq account.access_level -1)}}
|
||||
<p class="tier-name access-level-{{account.access_level}}" value="{{ localeHelper locale "account.accountLevel" account.access_level }}">{{ localeHelper locale "account.accountLevel" account.access_level }}</p>
|
||||
<p class="tier-name access-level-{{account.access_level}}" value="{{ lookup locale.account.accountLevel account.access_level }}">{{ lookup locale.account.accountLevel account.access_level }}</p>
|
||||
{{else}}
|
||||
<p class="tier-name access-level-banned" value="{{ localeHelper locale "account.banned" }}">{{ localeHelper locale "account.banned" }}</p>
|
||||
<p class="tier-name access-level-banned" value="{{ locale.account.banned }}">{{ locale.account.banned }}</p>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<a class="button secondary" id="download-cemu-files" href="/account/online-files" download>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
|
||||
<p class="caption">{{ localeHelper locale "account.settings.downloadFiles" }}</p>
|
||||
<p class="cemu-warning">{{ localeHelper locale "account.settings.downloadFilesDescription" }}</p>
|
||||
<p class="caption">{{ locale.account.settings.downloadFiles }}</p>
|
||||
<p class="cemu-warning">{{ locale.account.settings.downloadFilesDescription }}</p>
|
||||
</a>
|
||||
|
||||
<a class="button secondary" id="account-upgrade" href="/account/upgrade">
|
||||
<p class="caption">{{ localeHelper locale "account.settings.upgrade" }}</p>
|
||||
<p class="caption">{{ locale.account.settings.upgrade }}</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-wrapper">
|
||||
<h2 class="section-header" id="user-settings">User settings</h2>
|
||||
<h2 class="section-header" id="user-settings">{{ locale.account.settings.settingCards.userSettings }}</h2>
|
||||
<div class="setting-card">
|
||||
<h2 class="header">{{ localeHelper locale "account.settings.settingCards.profile" }}</h2>
|
||||
<h2 class="header">{{ locale.account.settings.settingCards.profile }}</h2>
|
||||
<a href="/account/edit/profile" class="edit">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path>
|
||||
|
|
@ -46,30 +46,30 @@
|
|||
</a>
|
||||
<ul class="setting-list">
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.nickname" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.nickname }}</p>
|
||||
<p class="value">{{account.mii.name}}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.birthDate" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.birthDate }}</p>
|
||||
<p class="value">{{account.birthdate}}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.gender" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.gender }}</p>
|
||||
<p class="value">{{account.gender}}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.country" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.country }}</p>
|
||||
<p class="value">{{account.country}}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.timezone" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.timezone }}</p>
|
||||
<p class="value">{{account.timezone.name}}</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="setting-card">
|
||||
<h2 class="header">{{ localeHelper locale "account.settings.settingCards.serverEnv" }}</h2>
|
||||
<h2 class="header">{{ locale.account.settings.settingCards.serverEnv }}</h2>
|
||||
<fieldset {{#unless isTester}}disabled{{/unless}}>
|
||||
<form class="server-selection" id="server">
|
||||
<input type="radio" id="prod" name="server_selection" value="prod" checked="{{ eq account.server_access_level 'prod'}}">
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
<polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline>
|
||||
<line x1="12" y1="22.08" x2="12" y2="12"></line>
|
||||
</svg>
|
||||
<h2>{{ localeHelper locale "account.settings.settingCards.production" }}</h2>
|
||||
<h2>{{ locale.account.settings.settingCards.production }}</h2>
|
||||
</label>
|
||||
{{#if isTester}}
|
||||
<input type="radio" id="beta" name="server_selection" value="beta" checked="{{ neq account.server_access_level 'prod'}}">
|
||||
|
|
@ -90,21 +90,21 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polygon points="2,21 22,21 14,11.5 14,5 10,3 10,11.5"></polygon>
|
||||
</svg>
|
||||
<h2>{{ localeHelper locale "account.settings.settingCards.beta" }}</h2>
|
||||
<h2>{{ locale.account.settings.settingCards.beta }}</h2>
|
||||
</label>
|
||||
{{/if}}
|
||||
</form>
|
||||
</fieldset>
|
||||
{{#unless isTester}}
|
||||
<p>{{{ localeHelper locale "account.settings.settingCards.upgradePrompt" }}}</p>
|
||||
<p>{{{ locale.account.settings.settingCards.upgradePrompt }}}</p>
|
||||
{{else}}
|
||||
<p>{{ localeHelper locale "account.settings.settingCards.hasAccessPrompt" }}</p>
|
||||
<p>{{ locale.account.settings.settingCards.hasAccessPrompt }}</p>
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
||||
<h2 class="section-header" id="security">{{ localeHelper locale "account.settings.settingCards.signInSecurity" }}</h2>
|
||||
<h2 class="section-header" id="security">{{ locale.account.settings.settingCards.signInSecurity }}</h2>
|
||||
<div class="setting-card">
|
||||
<h2 class="header">Account</h2>
|
||||
<h2 class="header">{{ locale.account.account }}</h2>
|
||||
<a href="/account/edit/login-info" class="edit">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path>
|
||||
|
|
@ -112,20 +112,20 @@
|
|||
</a>
|
||||
<ul class="setting-list">
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.email" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.email }}</p>
|
||||
<p class="value">{{account.email.address}}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">{{ localeHelper locale "account.settings.settingCards.password" }}</p>
|
||||
<p class="label">{{ locale.account.settings.settingCards.password }}</p>
|
||||
<p class="value">●●●●●●●●</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>{{ localeHelper locale "account.settings.settingCards.passwordResetNotice" }}</p>
|
||||
<p>{{ locale.account.settings.settingCards.passwordResetNotice }}</p>
|
||||
</div>
|
||||
|
||||
<div class="setting-card sign-in-history">
|
||||
<h2 class="header">{{ localeHelper locale "account.settings.settingCards.signInHistory" }}</h2>
|
||||
<p>Sign in history not currently tracked. Check back again later</p>
|
||||
<h2 class="header">{{ locale.account.settings.settingCards.signInHistory }}</h2>
|
||||
<p>{{ locale.account.settings.settingCards.no_signins_notice }}</p>
|
||||
<ul class="setting-list">
|
||||
{{#each account.devices }}
|
||||
<li>
|
||||
|
|
@ -135,30 +135,30 @@
|
|||
{{/each}}
|
||||
</ul>
|
||||
<a href="/account/sign-in-history">
|
||||
<button class="button secondary">{{ localeHelper locale "account.settings.settingCards.fullSignInHistory" }}</button>
|
||||
<button class="button secondary">{{ locale.account.settings.settingCards.fullSignInHistory }}</button>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<h2 class="section-header" id="other">{{ localeHelper locale "account.settings.settingCards.otherSettings" }}</h2>
|
||||
<h2 class="section-header" id="other">{{ locale.account.settings.settingCards.otherSettings }}</h2>
|
||||
<div class="setting-card">
|
||||
<h2 class="header">{{ localeHelper locale "account.settings.settingCards.discord" }}</h2>
|
||||
<h2 class="header">{{ locale.account.settings.settingCards.discord }}</h2>
|
||||
{{#if discordUser}}
|
||||
<p>{{ localeHelper locale "account.settings.settingCards.connectedToDiscord" }} {{ discordUser.username }}#{{ discordUser.discriminator }}</p>
|
||||
<p>{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}#{{ discordUser.discriminator }}</p>
|
||||
<a href="/account/remove/discord">
|
||||
<button class="button secondary" id="remove-discord-connection">{{ localeHelper locale "account.settings.settingCards.removeDiscord" }}</button>
|
||||
<button class="button secondary" id="remove-discord-connection">{{ locale.account.settings.settingCards.removeDiscord }}</button>
|
||||
</a>
|
||||
{{else}}
|
||||
<p>{{ localeHelper locale "account.settings.settingCards.noDiscordLinked" }} <a href="{{ discordAuthURL }}">{{ localeHelper locale "account.settings.settingCards.linkDiscord" }}</a></p>
|
||||
<p>{{ locale.account.settings.settingCards.noDiscordLinked }} <a href="{{ discordAuthURL }}">{{ locale.account.settings.settingCards.linkDiscord }}</a></p>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="setting-card">
|
||||
<h2 class="header">{{ localeHelper locale "account.settings.settingCards.newsletter" }}</h2>
|
||||
<p>Newsletter not currently available. Check back again later</p>
|
||||
<h2 class="header">{{ locale.account.settings.settingCards.newsletter }}</h2>
|
||||
<p>{{ locale.account.settings.settingCards.no_newsletter_notice }}</p>
|
||||
<!--
|
||||
<form id="other">
|
||||
<input type="checkbox" id="marketing" name="marketing" {{#if account.flags.marketing}}checked{{/if}}>
|
||||
<label for="marketing">{{ localeHelper locale "account.settings.settingCards.newsletterPrompt" }}</label>
|
||||
<label for="marketing">{{ locale.account.settings.settingCards.newsletterPrompt }}</label>
|
||||
</form>
|
||||
-->
|
||||
</div>
|
||||
|
|
@ -185,23 +185,22 @@
|
|||
|
||||
<div class="modal-wrapper hidden" id="onlinefiles">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">{{ localeHelper locale "account.settings.settingCards.password" }}</h1>
|
||||
<p class="modal-caption">{{ localeHelper locale "account.settings.settingCards.passwordPrompt" }}</p>
|
||||
<h1 class="title dot">{{ locale.account.settings.settingCards.password }}</h1>
|
||||
<p class="modal-caption">{{ locale.account.settings.settingCards.passwordPrompt }}</p>
|
||||
<input name="password" id="password" type="password" required />
|
||||
<div class="modal-button-wrapper">
|
||||
<button class="button cancel" id="onlineFilesCloseButton">{{ localeHelper locale "modals.cancel" }}</button>
|
||||
<button class="button primary confirm" id="onlineFilesConfirmButton">{{ localeHelper locale "modals.confirm" }}</button>
|
||||
<button class="button cancel" id="onlineFilesCloseButton">{{ locale.modals.cancel }}</button>
|
||||
<button class="button primary confirm" id="onlineFilesConfirmButton">{{ locale.modals.confirm }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- TODO: Localize this -->
|
||||
<div class="modal-wrapper hidden" id="edit-settings">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">Unavailable</h1>
|
||||
<p class="modal-caption">Editing PNID settings from user dashboard is currently unavailable. Please update user settings from your linked game console</p>
|
||||
<h1 class="title dot">{{ locale.account.settings.unavailable }}</h1>
|
||||
<p class="modal-caption">{{ locale.account.settings.settingCards.no_edit_from_dashboard }}</p>
|
||||
<div class="modal-button-wrapper">
|
||||
<button class="button primary confirm" id="editSettingsCloseButton">Close</button>
|
||||
<button class="button primary confirm" id="editSettingsCloseButton">{{ locale.modals.close }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,22 +6,22 @@
|
|||
|
||||
<div class="account-form-wrapper">
|
||||
<form action="/account/login" method="post" class="account">
|
||||
<h2>{{ localeHelper locale "account.loginForm.login" }}</h2>
|
||||
<p>{{ localeHelper locale "account.loginForm.detailsPrompt" }}</p>
|
||||
<h2>{{ locale.account.loginForm.login }}</h2>
|
||||
<p>{{ locale.account.loginForm.detailsPrompt }}</p>
|
||||
<div>
|
||||
<label for="username">{{ localeHelper locale "account.loginForm.username" }}</label>
|
||||
<label for="username">{{ locale.account.loginForm.username }}</label>
|
||||
<input name="username" id="username" required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="password">{{ localeHelper locale "account.loginForm.password" }}</label>
|
||||
<label for="password">{{ locale.account.loginForm.password }}</label>
|
||||
<input name="password" id="password" type="password" required>
|
||||
<a href="/account/passwordreset" class="pwdreset">{{ localeHelper locale "account.loginForm.forgotPassword" }}</a>
|
||||
<a href="/account/passwordreset" class="pwdreset">{{ locale.account.loginForm.forgotPassword }}</a>
|
||||
</div>
|
||||
<input name="grant_type" id="grant_type" type="hidden" value="password">
|
||||
<input name="redirect" id="redirect" type="hidden" value="{{redirect}}">
|
||||
<div class="buttons">
|
||||
<button type="submit">{{ localeHelper locale "account.loginForm.login" }}</button>
|
||||
<a href="/account/register{{#if redirect}}?redirect={{redirect}}{{/if}}" class="register">{{ localeHelper locale "account.loginForm.registerPrompt" }}</a>
|
||||
<button type="submit">{{ locale.account.loginForm.login }}</button>
|
||||
<a href="/account/register{{#if redirect}}?redirect={{redirect}}{{/if}}" class="register">{{ locale.account.loginForm.registerPrompt }}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,33 +7,33 @@
|
|||
|
||||
<div class="account-form-wrapper">
|
||||
<form action="/account/register" method="post" class="account register">
|
||||
<h2>{{ localeHelper locale "account.loginForm.register" }}</h2>
|
||||
<p>{{ localeHelper locale "account.loginForm.detailsPrompt" }}</p>
|
||||
<h2>{{ locale.account.loginForm.register }}</h2>
|
||||
<p>{{ locale.account.loginForm.detailsPrompt }}</p>
|
||||
<div class="email">
|
||||
<label for="email">{{ localeHelper locale "account.loginForm.email" }}</label>
|
||||
<label for="email">{{ locale.account.loginForm.email }}</label>
|
||||
<input name="email" id="email" type="email" value="{{ email }}" required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="username">{{ localeHelper locale "account.loginForm.username" }}</label>
|
||||
<label for="username">{{ locale.account.loginForm.username }}</label>
|
||||
<input name="username" id="username" value="{{ username }}" minlength=6 maxlength=16 required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="mii_name">{{ localeHelper locale "account.loginForm.miiName" }}</label>
|
||||
<label for="mii_name">{{ locale.account.loginForm.miiName }}</label>
|
||||
<input name="mii_name" id="mii_name" value="{{ mii_name }}" maxlength=10 required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="password">{{ localeHelper locale "account.loginForm.password" }}</label>
|
||||
<label for="password">{{ locale.account.loginForm.password }}</label>
|
||||
<input name="password" id="password" type="password" autocomplete="new-password" required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="password_confirm">{{ localeHelper locale "account.loginForm.confirmPassword" }}</label>
|
||||
<label for="password_confirm">{{ locale.account.loginForm.confirmPassword }}</label>
|
||||
<input name="password_confirm" id="password_confirm" type="password" autocomplete="new-password" required>
|
||||
</div>
|
||||
<div class="h-captcha" data-sitekey="cf3fd74e-93ca-47e6-9fa0-5fc439de06d4"></div>
|
||||
<input name="redirect" id="redirect" type="hidden" value="{{redirect}}">
|
||||
<div class="buttons">
|
||||
<button type="submit">{{ localeHelper locale "account.loginForm.register" }}</button>
|
||||
<a href="/account/login{{#if redirect}}?redirect={{redirect}}{{/if}}" class="register">{{ localeHelper locale "account.loginForm.loginPrompt" }}</a>
|
||||
<button type="submit">{{ locale.account.loginForm.register }}</button>
|
||||
<a href="/account/login{{#if redirect}}?redirect={{redirect}}{{/if}}" class="register">{{ locale.account.loginForm.loginPrompt }}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="wrapper">
|
||||
<a href="/account" class="back-arrow">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>
|
||||
<span>{{ localeHelper locale "upgrade.back" }}</span>
|
||||
<span>{{ locale.upgrade.back }}</span>
|
||||
</a>
|
||||
|
||||
<div class="account-form-wrapper">
|
||||
|
|
@ -31,15 +31,15 @@
|
|||
</svg>
|
||||
</a>
|
||||
|
||||
<h1 class="title dot">{{ localeHelper locale "upgrade.title" }}</h1>
|
||||
<p class="caption">{{ localeHelper locale "upgrade.description" }}</p>
|
||||
<h1 class="title dot">{{ locale.upgrade.title }}</h1>
|
||||
<p class="caption">{{ locale.upgrade.description }}</p>
|
||||
|
||||
<div class="progress-bar-wrapper">
|
||||
<div class="progress-bar">
|
||||
<div class="progress-bar-inner" style="width: {{ donationCache.completed_capped }}%;" ></div>
|
||||
</div>
|
||||
<p class="localeReplace">
|
||||
{{{ localeHelper locale "donation.progress" }}}
|
||||
{{{ locale.donation.progress }}}
|
||||
</p>
|
||||
</div>
|
||||
<form method="post" data-current-tier="{{currentTier}}">
|
||||
|
|
@ -62,36 +62,36 @@
|
|||
</div>
|
||||
</div>
|
||||
<p class="price">
|
||||
<span>{{this.price}}</span> / {{ localeHelper locale "upgrade.month" }}
|
||||
<span>{{this.price}}</span> / {{ locale.upgrade.month }}
|
||||
</p>
|
||||
</label>
|
||||
{{/each}}
|
||||
|
||||
<div class="button-wrapper">
|
||||
<button class="disabled" type="submit" id="submitButton">{{ localeHelper locale "upgrade.tierSelectPrompt" }}</button>
|
||||
<button class="unsubscribe hidden" id="unsubModalShowButton">{{ localeHelper locale "upgrade.unsub" }}</button>
|
||||
<button class="disabled" type="submit" id="submitButton">{{ locale.upgrade.tierSelectPrompt }}</button>
|
||||
<button class="unsubscribe hidden" id="unsubModalShowButton">{{ locale.upgrade.unsub }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="modal-wrapper hidden" id="unsub">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">{{ localeHelper locale "upgrade.unsub" }}</h1>
|
||||
<p class="modal-caption">{{{ localeHelper locale "upgrade.unsubPrompt" }}}</p>
|
||||
<h1 class="title dot">{{ locale.upgrade.unsub }}</h1>
|
||||
<p class="modal-caption">{{{ locale.upgrade.unsubPrompt }}}</p>
|
||||
<div class="modal-button-wrapper">
|
||||
<button class="button cancel" id="unsubModalCloseButton">{{ localeHelper locale "modals.cancel" }}</button>
|
||||
<button class="button primary confirm" id="unsubModalConfirmButton">{{ localeHelper locale "upgrade.unsubConfirm" }}</button>
|
||||
<button class="button cancel" id="unsubModalCloseButton">{{ locale.modals.cancel }}</button>
|
||||
<button class="button primary confirm" id="unsubModalConfirmButton">{{ locale.upgrade.unsubConfirm }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-wrapper hidden" id="switchtier">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">{{ localeHelper locale "upgrade.changeTier" }}</h1>
|
||||
<p class="modal-caption">{{{ localeHelper locale "upgrade.changeTierPrompt" }}}</p>
|
||||
<h1 class="title dot">{{ locale.upgrade.changeTier }}</h1>
|
||||
<p class="modal-caption">{{{ locale.upgrade.changeTierPrompt }}}</p>
|
||||
<div class="modal-button-wrapper">
|
||||
<button class="button cancel" id="switchTierCloseButton">{{ localeHelper locale "modals.cancel" }}</button>
|
||||
<button class="button primary confirm" id="switchTierConfirmButton">{{ localeHelper locale "modals.confirm" }}</button>
|
||||
<button class="button cancel" id="switchTierCloseButton">{{ locale.modals.cancel }}</button>
|
||||
<button class="button primary confirm" id="switchTierConfirmButton">{{ locale.modals.confirm }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<div class="progress-hero">
|
||||
<div class="hero-meta reduced-margin">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48.87" height="71.093" viewBox="0 0 48.87 71.093"><g id="XMLID_6_" transform="translate(0)"><path id="XMLID_15_" d="M69.581,29.593c-2.029,1.068-.249,4.129,1.78,3.061,5.162-2.67,11.463-2.6,16.981-1.1,4.735,1.282,9.5,3.845,12.246,8.045,1.246,1.922,4.307.142,3.061-1.78C96.921,27.386,80.3,24.04,69.581,29.593Z" transform="translate(-60.112 -20.086)" fill="#9d6ff3"/><path id="XMLID_14_" d="M103.359,21.045c-3.951-6.159-10.751-10-17.657-11.89C77.763,6.948,68.721,7.019,61.281,10.9c-2.029,1.068-.249,4.129,1.78,3.061,6.586-3.453,14.667-3.311,21.644-1.388,5.981,1.638,12.1,4.913,15.521,10.252C101.507,24.783,104.569,23,103.359,21.045Z" transform="translate(-54.766 -7.693)" fill="#9d6ff3"/><path id="XMLID_9_" d="M65.995,47.8a20.7,20.7,0,0,0-12.958,4.45H47.27a2.579,2.579,0,0,0-2.67,2.456v47.239a2.763,2.763,0,0,0,2.67,2.67h5.838a2.639,2.639,0,0,0,2.528-2.67V87.564A21.228,21.228,0,1,0,65.995,47.8Zm0,33.178a12,12,0,1,1,12-12A12,12,0,0,1,65.995,80.978Z" transform="translate(-44.6 -33.522)" fill="#9d6ff3"/></g></svg>
|
||||
<h1 class="title dot">{{ localeHelper locale "blogPage.title" }}</h1>
|
||||
<p class="text">{{{ localeHelper locale "blogPage.description" }}}</p>
|
||||
<h1 class="title dot">{{ locale.blogPage.title }}</h1>
|
||||
<p class="text">{{{ locale.blogPage.description }}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -18,12 +18,12 @@
|
|||
<h2 class="title">{{{ this.postInfo.title }}}</h2>
|
||||
<p class="caption">{{{ this.postInfo.caption }}}</p>
|
||||
<div class="pub-info">
|
||||
<span>{{ localeHelper ../locale "blogPage.published" }}</span>
|
||||
<span>{{ ../locale.blogPage.published }}</span>
|
||||
<div class="profile">
|
||||
<img class="profile-picture" src="{{ this.postInfo.author_image }}" alt>
|
||||
<span>{{{ this.postInfo.author }}}</span>
|
||||
</div>
|
||||
<span>{{ localeHelper ../locale "blogPage.publishedOn" }}
|
||||
<span>{{ ../locale.blogPage.publishedOn }}
|
||||
<span class="date">{{{ this.postInfo.date }}}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@
|
|||
|
||||
<h1 class="title">{{{ postInfo.title }}}</h1>
|
||||
<div class="pub-info">
|
||||
<span>{{ localeHelper locale "blogPage.published" }}</span>
|
||||
<span>{{ locale.blogPage.published }}</span>
|
||||
<div class="profile">
|
||||
<img class="profile-picture" src="{{ postInfo.author_image }}" alt="{{ postInfo.author }}">
|
||||
<span>{{{ postInfo.author }}}</span>
|
||||
</div>
|
||||
<span>{{ localeHelper locale "blogPage.publishedOn" }}
|
||||
<span>{{ locale.blogPage.publishedOn }}
|
||||
<span class="date">{{{ postInfo.date }}}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -38,15 +38,9 @@
|
|||
|
||||
<div class="content">
|
||||
<div class="content-inner">
|
||||
<div class="tip red">
|
||||
<strong>Note!</strong>
|
||||
<br>
|
||||
Pretendo Network is currently in closed beta! The servers are only accessible to testers. To become a tester,
|
||||
upgrade your <a href="/account/upgrade" target="_blank">PNID here</a>
|
||||
</div>
|
||||
|
||||
|
||||
{{#if missingInLocale}}
|
||||
<p class="missing-in-locale-notice">{{ localeHelper locale "docs.missingInLocale" }}</p>
|
||||
<p class="missing-in-locale-notice">{{ locale.docs.missingInLocale }}</p>
|
||||
{{/if}}
|
||||
|
||||
{{{ content }}}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@
|
|||
<div class="content search">
|
||||
<div class="content-inner">
|
||||
<div class="purple-card">
|
||||
<h1>Got an error code?</h1>
|
||||
<p>Type it in the box below to get information on your issue!</p>
|
||||
<label for="errorCode">Error code</label>
|
||||
<h1>{{ locale.docs.search.title }}</h1>
|
||||
<p>{{ locale.docs.search.caption }}</p>
|
||||
<label for="errorCode">{{ locale.docs.search.label }}</label>
|
||||
<div class="input-wrapper">
|
||||
<input id="errorCode" placeholder="ABC-012-3456" required />
|
||||
<div class="matches">
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
});
|
||||
} else {
|
||||
const noMatch = document.createElement('p');
|
||||
noMatch.innerText = 'No matches found';
|
||||
noMatch.innerText = '{{ locale.docs.search.no_match }}';
|
||||
matchesContainer.appendChild(noMatch);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
<div class="content">
|
||||
<div class="content-inner">
|
||||
<h1>{{ localeHelper locale "docs.quickLinks.header" }}</h1>
|
||||
<h1>{{ locale.docs.quickLinks.header }}</h1>
|
||||
<div class="quick-links-grid">
|
||||
<a href="/docs/install">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none"
|
||||
|
|
@ -55,8 +55,8 @@
|
|||
<line x1="12" y1="15" x2="12" y2="3"></line>
|
||||
</svg>
|
||||
<div>
|
||||
<p class="header">{{ localeHelper locale "docs.quickLinks.links" 0 "header" }}</p>
|
||||
<p>{{ localeHelper locale "docs.quickLinks.links" 0 "caption" }}</p>
|
||||
<p class="header">{{ locale.docs.quickLinks.links.[0].header }}</p>
|
||||
<p>{{ locale.docs.quickLinks.links.[0].caption }}</p>
|
||||
</div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||||
|
|
@ -73,8 +73,8 @@
|
|||
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
||||
</svg>
|
||||
<div>
|
||||
<p class="header">{{ localeHelper locale "docs.quickLinks.links" 1 "header" }}</p>
|
||||
<p>{{ localeHelper locale "docs.quickLinks.links" 1 "caption" }}</p>
|
||||
<p class="header">{{ locale.docs.quickLinks.links.[1].header }}</p>
|
||||
<p>{{ locale.docs.quickLinks.links.[1].caption }}</p>
|
||||
</div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||||
|
|
@ -97,4 +97,4 @@
|
|||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/default.min.css">
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"></script>
|
||||
<link rel="stylesheet" href="/assets/css/highlightjs.css">
|
||||
<script>hljs.highlightAll();</script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
|
|
|
|||
|
|
@ -5,15 +5,13 @@
|
|||
|
||||
<section class="hero">
|
||||
<div class="hero-meta">
|
||||
<h3 class="subtitle">{{ localeHelper locale "hero.subtitle" }}</h3>
|
||||
<h1 class="title dot" {{#if locale.hero.titleSuffix}}data-title-suffix="{{locale.hero.titleSuffix}}"{{/if}}>{{ localeHelper locale "hero.title" }}</h1>
|
||||
<p class="text">
|
||||
{{ localeHelper locale "hero.text" }}
|
||||
</p>
|
||||
<h3 class="subtitle">{{ locale.hero.subtitle }}</h3>
|
||||
<h1 class="title dot" {{#if locale.hero.titleSuffix}}data-title-suffix="{{locale.hero.titleSuffix}}"{{/if}}>{{ locale.hero.title }}</h1>
|
||||
<p class="text">{{ locale.hero.text }}</p>
|
||||
<div class="buttons">
|
||||
<a href="/#about" class="do-button-margin">
|
||||
<button class="button primary">
|
||||
{{ localeHelper locale "hero.buttons.readMore" }}
|
||||
{{ locale.hero.buttons.readMore }}
|
||||
</button>
|
||||
</a>
|
||||
<a href="https://invite.gg/pretendo" class="do-button-margin" target="_blank">
|
||||
|
|
@ -75,7 +73,7 @@
|
|||
<section class="progress column-2">
|
||||
<div class="left sect">
|
||||
<div class="left-meta">
|
||||
<h2 class="dot title" id="about" {{#if locale.aboutUs.titleSuffix}}data-title-suffix="{{locale.aboutUs.titleSuffix}}"{{/if}}>{{ localeHelper locale "aboutUs.title" }}</h2>
|
||||
<h2 class="dot title" id="about" {{#if locale.aboutUs.titleSuffix}}data-title-suffix="{{locale.aboutUs.titleSuffix}}"{{/if}}>{{ locale.aboutUs.title }}</h2>
|
||||
{{#each locale.aboutUs.paragraphs}}
|
||||
<p class="text">{{ this }}</p>
|
||||
{{/each}}
|
||||
|
|
@ -83,7 +81,7 @@
|
|||
</div>
|
||||
<div class="right sect">
|
||||
<h2 class="title">
|
||||
<a href="/progress">{{ localeHelper locale "progress.title" }}</a>
|
||||
<a href="/progress">{{ locale.progress.title }}</a>
|
||||
</h2>
|
||||
{{> progress-list data=featuredFeatureList purple=true }}
|
||||
</div>
|
||||
|
|
@ -91,8 +89,8 @@
|
|||
|
||||
<section class="faq">
|
||||
<div class="sect-top sect">
|
||||
<h2 class="dot title" id="faq" {{#if locale.faq.titleSuffix}}data-title-suffix="{{locale.faq.titleSuffix}}"{{/if}}>{{ localeHelper locale "faq.title" }}</h2>
|
||||
<p class="text">{{ localeHelper locale "faq.text" }}</p>
|
||||
<h2 class="dot title" id="faq" {{#if locale.faq.titleSuffix}}data-title-suffix="{{locale.faq.titleSuffix}}"{{/if}}>{{ locale.faq.title }}</h2>
|
||||
<p class="text">{{ locale.faq.text }}</p>
|
||||
</div>
|
||||
<div class="questions column-2">
|
||||
{{#doFaq locale.faq.QAs}}
|
||||
|
|
@ -110,32 +108,32 @@
|
|||
|
||||
<section class="showcase">
|
||||
<div class="sect-top sect">
|
||||
<h2 class="dot title" id="showcase" {{#if locale.showcase.titleSuffix}}data-title-suffix="{{locale.showcase.titleSuffix}}"{{/if}}>{{ localeHelper locale "showcase.title" }}</h2>
|
||||
<p class="text">{{ localeHelper locale "showcase.text" }}</p>
|
||||
<h2 class="dot title" id="showcase" {{#if locale.showcase.titleSuffix}}data-title-suffix="{{locale.showcase.titleSuffix}}"{{/if}}>{{ locale.showcase.title }}</h2>
|
||||
<p class="text">{{ locale.showcase.text }}</p>
|
||||
</div>
|
||||
<div class="grid">
|
||||
<div class="item highlight">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="server" class="svg-inline--fa fa-server fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"></path></svg>
|
||||
<h1>{{ localeHelper locale "showcase.cards.0.title" }}</h1>
|
||||
<p>{{ localeHelper locale "showcase.cards.0.caption" }}</p>
|
||||
<h1>{{ locale.showcase.cards.0.title }}</h1>
|
||||
<p>{{ locale.showcase.cards.0.caption }}</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users" class="svg-inline--fa fa-users fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path></svg>
|
||||
<h1>{{ localeHelper locale "showcase.cards.1.title" }}</h1>
|
||||
<p>{{ localeHelper locale "showcase.cards.1.caption" }}</p>
|
||||
<h1>{{ locale.showcase.cards.1.title }}</h1>
|
||||
<p>{{ locale.showcase.cards.1.caption }}</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="gamepad" class="svg-inline--fa fa-gamepad fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"></path></svg>
|
||||
<h1>{{ localeHelper locale "showcase.cards.2.title" }}</h1>
|
||||
<p>{{ localeHelper locale "showcase.cards.2.caption" }}</p>
|
||||
<h1>{{ locale.showcase.cards.2.title }}</h1>
|
||||
<p>{{ locale.showcase.cards.2.caption }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="team">
|
||||
<div class="sect-top sect team-top">
|
||||
<h2 class="dot title" id="credits" {{#if locale.credits.titleSuffix}}data-title-suffix="{{locale.credits.titleSuffix}}"{{/if}}>{{ localeHelper locale "credits.title" }}</h2>
|
||||
<p class="text">{{ localeHelper locale "credits.text" }}</p>
|
||||
<h2 class="dot title" id="credits" {{#if locale.credits.titleSuffix}}data-title-suffix="{{locale.credits.titleSuffix}}"{{/if}}>{{ locale.credits.title }}</h2>
|
||||
<p class="text">{{ locale.credits.text }}</p>
|
||||
</div>
|
||||
<div class="team-cards">
|
||||
{{#each locale.credits.people}}
|
||||
|
|
@ -160,8 +158,8 @@
|
|||
|
||||
<section class="team-helpers">
|
||||
<div class="sect-top sect">
|
||||
<h2 class="dot title" id="special-thanks" {{#if locale.specialThanks.titleSuffix}}data-title-suffix="{{locale.specialThanks.titleSuffix}}"{{/if}}>{{ localeHelper locale "specialThanks.title" }}</h2>
|
||||
<p class="text">{{ localeHelper locale "specialThanks.text" }}</p>
|
||||
<h2 class="dot title" id="special-thanks" {{#if locale.specialThanks.titleSuffix}}data-title-suffix="{{locale.specialThanks.titleSuffix}}"{{/if}}>{{ locale.specialThanks.title }}</h2>
|
||||
<p class="text">{{ locale.specialThanks.text }}</p>
|
||||
</div>
|
||||
<div class="animation-wrapper">
|
||||
<div class="row-wrapper">
|
||||
|
|
@ -198,12 +196,12 @@
|
|||
<section class="update-signup">
|
||||
<div class="sect hero-meta reduced-margin">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48.87" height="71.093" viewBox="0 0 48.87 71.093"><g id="XMLID_6_" transform="translate(0)"><path id="XMLID_15_" d="M69.581,29.593c-2.029,1.068-.249,4.129,1.78,3.061,5.162-2.67,11.463-2.6,16.981-1.1,4.735,1.282,9.5,3.845,12.246,8.045,1.246,1.922,4.307.142,3.061-1.78C96.921,27.386,80.3,24.04,69.581,29.593Z" transform="translate(-60.112 -20.086)" fill="#9d6ff3"/><path id="XMLID_14_" d="M103.359,21.045c-3.951-6.159-10.751-10-17.657-11.89C77.763,6.948,68.721,7.019,61.281,10.9c-2.029,1.068-.249,4.129,1.78,3.061,6.586-3.453,14.667-3.311,21.644-1.388,5.981,1.638,12.1,4.913,15.521,10.252C101.507,24.783,104.569,23,103.359,21.045Z" transform="translate(-54.766 -7.693)" fill="#9d6ff3"/><path id="XMLID_9_" d="M65.995,47.8a20.7,20.7,0,0,0-12.958,4.45H47.27a2.579,2.579,0,0,0-2.67,2.456v47.239a2.763,2.763,0,0,0,2.67,2.67h5.838a2.639,2.639,0,0,0,2.528-2.67V87.564A21.228,21.228,0,1,0,65.995,47.8Zm0,33.178a12,12,0,1,1,12-12A12,12,0,0,1,65.995,80.978Z" transform="translate(-44.6 -33.522)" fill="#9d6ff3"/></g></svg>
|
||||
<h2 class="dot title" id="discord-join" {{#if locale.discordJoin.titleSuffix}}data-title-suffix="{{locale.discordJoin.titleSuffix}}"{{/if}}>{{ localeHelper locale "discordJoin.title" }}</h2>
|
||||
<p class="text">{{ localeHelper locale "discordJoin.text" }}</p>
|
||||
<h2 class="dot title" id="discord-join" {{#if locale.discordJoin.titleSuffix}}data-title-suffix="{{locale.discordJoin.titleSuffix}}"{{/if}}>{{ locale.discordJoin.title }}</h2>
|
||||
<p class="text">{{ locale.discordJoin.text }}</p>
|
||||
</div>
|
||||
<div class="floating-serverjoin">
|
||||
<p>{{ localeHelper locale "discordJoin.widget.text" }}</p>
|
||||
<a href="https://invite.gg/pretendo" target="_blank">{{ localeHelper locale "discordJoin.widget.button" }}</a>
|
||||
<p>{{ locale.discordJoin.widget.text }}</p>
|
||||
<a href="https://invite.gg/pretendo" target="_blank">{{ locale.discordJoin.widget.button }}</a>
|
||||
</div>
|
||||
<div class="circle"></div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -6,17 +6,17 @@
|
|||
|
||||
<div class="localization-wrapper">
|
||||
<div class="localization-widget">
|
||||
<h1 class="title dot">{{ localeHelper locale "localizationPage.title" }}</h1>
|
||||
<p class="caption">{{ localeHelper locale "localizationPage.description" }}</p>
|
||||
<h1 class="title dot">{{ locale.localizationPage.title" }}</h1>
|
||||
<p class="caption">{{ locale.localizationPage.description" }}</p>
|
||||
<a href="https://github.com/PretendoNetwork/Pretendo/blob/master/CONTRIBUTING.md#localization" target="_blank" class="localization-instr">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--accent-shade-2)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
|
||||
{{ localeHelper locale "localizationPage.instructions" }}
|
||||
{{ locale.localizationPage.instructions" }}
|
||||
</a>
|
||||
<form class="localization-form" autocomplete="off">
|
||||
<label for="url">{{ localeHelper locale "localizationPage.fileInput" }}</label>
|
||||
<label for="url">{{ locale.localizationPage.fileInput" }}</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="url" id="url" placeholder="{{ localeHelper locale "localizationPage.filePlaceholder" }}" required />
|
||||
<button type="submit" class="submit-btn">{{ localeHelper locale "localizationPage.button" }}</button>
|
||||
<input type="url" id="url" placeholder="{{ locale.localizationPage.filePlaceholder" }}" required />
|
||||
<button type="submit" class="submit-btn">{{ locale.localizationPage.button" }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<div class="sidebar">
|
||||
<div class="section">
|
||||
<h5>Getting started</h5>
|
||||
<a href="/docs/welcome">Welcome</a>
|
||||
<a href="/docs/install">Install Pretendo</a>
|
||||
<a href="/docs/search">Search</a>
|
||||
<h5>{{ locale.docs.sidebar.getting_started }}</h5>
|
||||
<a href="/docs/welcome">{{ locale.docs.sidebar.welcome }}</a>
|
||||
<a href="/docs/install">{{ locale.docs.sidebar.install_extended }}</a>
|
||||
<a href="/docs/search">{{ locale.docs.sidebar.search }}</a>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h5>Install</h5>
|
||||
<h5>{{ locale.docs.sidebar.install }}</h5>
|
||||
<a href="/docs/install/wiiu">Wii U</a>
|
||||
<a href="/docs/install/3ds">3DS</a>
|
||||
<a href="/docs/install/cemu">Cemu</a>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h5>Error codes - Juxt</h5>
|
||||
<h5>{{ locale.docs.sidebar.juxt_err }}</h5>
|
||||
<a href="/docs/en_US/errors/JXT-598-0009">JXT-598-0009</a>
|
||||
<a href="/docs/en_US/errors/JXT-598-0010">JXT-598-0010</a>
|
||||
<a href="/docs/en_US/errors/JXT-598-0011">JXT-598-0011</a>
|
||||
|
|
|
|||
|
|
@ -28,29 +28,30 @@
|
|||
<p>Site by <a href="https://mrjvs.com/" target="_blank">mrjvs</a>, <a href="https://jipfr.nl/" target="_blank">jipfr</a> & <a href="https://ashm.dev/" target="_blank">monty</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h1>{{ localeHelper locale "footer.socials" }}</h1>
|
||||
<h1>{{ locale.footer.socials }}</h1>
|
||||
<a href="https://twitter.com/PretendoNetwork/" target="_blank">Twitter</a>
|
||||
<a href="https://invite.gg/pretendo" target="_blank">Discord</a>
|
||||
<a href="https://github.com/PretendoNetwork" target="_blank">GitHub</a>
|
||||
</div>
|
||||
<div>
|
||||
<h1>{{ localeHelper locale "footer.usefulLinks" }}</h1>
|
||||
<a style="display: none;" href="/docs">{{ localeHelper locale "nav.docs" }}</a>
|
||||
<a href="/#faq">{{ localeHelper locale "nav.faq" }}</a>
|
||||
<a href="/progress">{{ localeHelper locale "nav.progress" }}</a>
|
||||
<a href="/blog">{{ localeHelper locale "nav.blog" }}</a>
|
||||
<a href="/account">{{ localeHelper locale "nav.account" }}</a>
|
||||
<h1>{{ locale.footer.usefulLinks }}</h1>
|
||||
<a href="/docs">{{ locale.nav.docs }}</a>
|
||||
<a href="/#faq">{{ locale.nav.faq }}</a>
|
||||
<a href="/progress">{{ locale.nav.progress }}</a>
|
||||
<a href="/blog">{{ locale.nav.blog }}</a>
|
||||
<a href="/account">{{ locale.nav.account }}</a>
|
||||
<a href="/account/upgrade">{{ locale.nav.donate }}</a>
|
||||
</div>
|
||||
<div class="discord-server-card-wrapper">
|
||||
<div class="discord-server-card">
|
||||
<h1>{{ localeHelper locale "footer.widget.captions.0" }}</h1>
|
||||
<h2>{{ localeHelper locale "footer.widget.captions.1" }}</h2>
|
||||
<h1>{{ locale.footer.widget.captions.[0] }}</h1>
|
||||
<h2>{{ locale.footer.widget.captions.[1] }}</h2>
|
||||
<a href="https://invite.gg/pretendo">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right">
|
||||
<line x1="5" y1="12" x2="19" y2="12"></line>
|
||||
<polyline points="12 5 19 12 12 19"></polyline>
|
||||
</svg>
|
||||
{{ localeHelper locale "footer.widget.button" }}
|
||||
{{ locale.footer.widget.button }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="bandwidth-raccoon-wrapper">
|
||||
|
|
@ -73,10 +74,11 @@
|
|||
return el.innerText;
|
||||
}
|
||||
|
||||
|
||||
const randomSentences = [
|
||||
{{#times 9}}
|
||||
`${unescapeHTML("{{localeHelper locale "footer.bandwidthRaccoonQuotes" this }}")}`,
|
||||
{{/times}}
|
||||
{{#each locale.footer.bandwidthRaccoonQuotes}}
|
||||
`${unescapeHTML("{{this}}")}`,
|
||||
{{/each}}
|
||||
]
|
||||
|
||||
bandwidthRaccoon.addEventListener("click", () =>
|
||||
|
|
|
|||
|
|
@ -27,13 +27,13 @@
|
|||
</a>
|
||||
|
||||
<nav>
|
||||
<a href="/#about">{{ localeHelper locale "nav.about" }}</a>
|
||||
<a href="/#faq">{{ localeHelper locale "nav.faq" }}</a>
|
||||
<a href="/#credits">{{ localeHelper locale "nav.credits" }}</a>
|
||||
<a href="/docs">{{ localeHelper locale "nav.docs"}}</a>
|
||||
<a href="/progress" class="keep-on-mobile">{{ localeHelper locale "nav.progress"}}</a>
|
||||
<a href="/blog" class="keep-on-mobile">{{ localeHelper locale "nav.blog" }}</a>
|
||||
<a href="/account/upgrade" class="keep-on-mobile">Donate</a>
|
||||
<a href="/#about">{{ locale.nav.about }}</a>
|
||||
<a href="/#faq">{{ locale.nav.faq }}</a>
|
||||
<a href="/#credits">{{ locale.nav.credits }}</a>
|
||||
<a href="/docs" class="keep-on-mobile">{{ locale.nav.docs }}</a>
|
||||
<a href="/progress" class="keep-on-mobile">{{ locale.nav.progress }}</a>
|
||||
<a href="/blog">{{ locale.nav.blog }}</a>
|
||||
<a href="/account/upgrade" class="keep-on-mobile">{{ locale.nav.donate }}</a>
|
||||
</nav>
|
||||
|
||||
<div class="right-section">
|
||||
|
|
@ -156,12 +156,12 @@
|
|||
<div class="buttons">
|
||||
<a href="/account">
|
||||
<button class="button primary">
|
||||
{{ localeHelper locale "nav.accountWidget.settings" }}
|
||||
{{ locale.nav.accountWidget.settings }}
|
||||
</button>
|
||||
</a>
|
||||
<a href="/account/logout">
|
||||
<button class="button logout">
|
||||
{{ localeHelper locale "nav.accountWidget.logout" }}
|
||||
{{ locale.nav.accountWidget.logout }}
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div>
|
||||
<a href="{{this.url}}" class="github" target="_blank">
|
||||
<svg data-prefix="fab" data-icon="github" class="svg-inline--fa fa-github fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>
|
||||
<span>{{ localeHelper locale "progress.githubRepo" }}</span>
|
||||
<span>{{ locale.progress.githubRepo }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>{{/if}}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<div class="progress-hero">
|
||||
<div class="hero-meta reduced-margin">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48.87" height="71.093" viewBox="0 0 48.87 71.093"><g id="XMLID_6_" transform="translate(0)"><path id="XMLID_15_" d="M69.581,29.593c-2.029,1.068-.249,4.129,1.78,3.061,5.162-2.67,11.463-2.6,16.981-1.1,4.735,1.282,9.5,3.845,12.246,8.045,1.246,1.922,4.307.142,3.061-1.78C96.921,27.386,80.3,24.04,69.581,29.593Z" transform="translate(-60.112 -20.086)" fill="#9d6ff3"/><path id="XMLID_14_" d="M103.359,21.045c-3.951-6.159-10.751-10-17.657-11.89C77.763,6.948,68.721,7.019,61.281,10.9c-2.029,1.068-.249,4.129,1.78,3.061,6.586-3.453,14.667-3.311,21.644-1.388,5.981,1.638,12.1,4.913,15.521,10.252C101.507,24.783,104.569,23,103.359,21.045Z" transform="translate(-54.766 -7.693)" fill="#9d6ff3"/><path id="XMLID_9_" d="M65.995,47.8a20.7,20.7,0,0,0-12.958,4.45H47.27a2.579,2.579,0,0,0-2.67,2.456v47.239a2.763,2.763,0,0,0,2.67,2.67h5.838a2.639,2.639,0,0,0,2.528-2.67V87.564A21.228,21.228,0,1,0,65.995,47.8Zm0,33.178a12,12,0,1,1,12-12A12,12,0,0,1,65.995,80.978Z" transform="translate(-44.6 -33.522)" fill="#9d6ff3"/></g></svg>
|
||||
<h1 class="title dot">{{ localeHelper locale "progressPage.title" }}</h1>
|
||||
<p class="text">{{ localeHelper locale "progressPage.description" }}</p>
|
||||
<h1 class="title dot">{{ locale.progressPage.title }}</h1>
|
||||
<p class="text">{{ locale.progressPage.description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="progress-bar">
|
||||
<div class="progress-bar-inner" style="width: {{ donationCache.completed_capped }}%;" ></div>
|
||||
</div>
|
||||
<p class="localeReplace">{{{ localeHelper locale "donation.progress" }}} {{{ localeHelper locale "donation.upgradePush" }}}</p>
|
||||
<p class="localeReplace">{{{ locale.donation.progress }}} {{{ locale.donation.upgradePush }}}</p>
|
||||
</div>
|
||||
|
||||
<div id="quick-nav">
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user