mirror of
https://github.com/romancm/gamebrary
synced 2024-11-10 05:34:15 +00:00
Linter fixes
This commit is contained in:
parent
10787e2bfc
commit
5fa43e8d2b
62 changed files with 4580 additions and 4290 deletions
32
.babelrc
32
.babelrc
|
@ -1,20 +1,20 @@
|
|||
{
|
||||
"presets": [
|
||||
[
|
||||
"env", {
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"stage-2"
|
||||
],
|
||||
"plugins": ["transform-vue-jsx", "transform-runtime"],
|
||||
"env": {
|
||||
"test": {
|
||||
"presets": ["env", "stage-2"],
|
||||
"plugins": ["transform-vue-jsx", "istanbul"]
|
||||
"presets": [
|
||||
[
|
||||
"env", {
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"stage-2"
|
||||
],
|
||||
"plugins": ["transform-vue-jsx", "transform-runtime"],
|
||||
"env": {
|
||||
"test": {
|
||||
"presets": ["env", "stage-2"],
|
||||
"plugins": ["transform-vue-jsx", "istanbul"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
151
.eslintrc.js
151
.eslintrc.js
|
@ -1,81 +1,80 @@
|
|||
// https://eslint.org/docs/user-guide/configuring
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
},
|
||||
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
|
||||
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
|
||||
extends: [
|
||||
'plugin:vue/essential',
|
||||
'airbnb-base',
|
||||
],
|
||||
rules: {
|
||||
indent: ['error', 2],
|
||||
},
|
||||
// required to lint *.vue files
|
||||
plugins: [
|
||||
'vue'
|
||||
],
|
||||
// check if imports actually resolve
|
||||
settings: {
|
||||
'import/resolver': {
|
||||
webpack: {
|
||||
config: 'build/webpack.base.conf.js'
|
||||
}
|
||||
}
|
||||
},
|
||||
// add your custom rules here
|
||||
rules: {
|
||||
"vue/order-in-components": [
|
||||
"error", {
|
||||
"order": [
|
||||
"el",
|
||||
"name",
|
||||
"parent",
|
||||
"functional",
|
||||
["delimiters", "comments"],
|
||||
["components", "directives", "filters"],
|
||||
"extends",
|
||||
"mixins",
|
||||
"inheritAttrs",
|
||||
"model",
|
||||
["props", "propsData"],
|
||||
"data",
|
||||
"computed",
|
||||
"watch",
|
||||
"LIFECYCLE_HOOKS",
|
||||
"methods",
|
||||
["template", "render"],
|
||||
"renderError",
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// don't require .vue extension when importing
|
||||
'import/extensions': ['error', 'always', {
|
||||
js: 'never',
|
||||
vue: 'never'
|
||||
}],
|
||||
// disallow reassignment of function parameters
|
||||
// disallow parameter object manipulation except for specific exclusions
|
||||
'no-param-reassign': ['error', {
|
||||
props: true,
|
||||
ignorePropertyModificationsFor: [
|
||||
'state', // for vuex state
|
||||
'acc', // for reduce accumulators
|
||||
'e' // for e.returnvalue
|
||||
]
|
||||
}],
|
||||
// allow optionalDependencies
|
||||
'import/no-extraneous-dependencies': ['error', {
|
||||
optionalDependencies: ['test/unit/index.js']
|
||||
}],
|
||||
// allow debugger during development
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||
root: true,
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
},
|
||||
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
|
||||
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
|
||||
extends: [
|
||||
'plugin:vue/strongly-recommended',
|
||||
'airbnb-base',
|
||||
],
|
||||
// required to lint *.vue files
|
||||
plugins: [
|
||||
'vue'
|
||||
],
|
||||
// check if imports actually resolve
|
||||
settings: {
|
||||
'import/resolver': {
|
||||
webpack: {
|
||||
config: 'build/webpack.base.conf.js'
|
||||
}
|
||||
}
|
||||
},
|
||||
// add your custom rules here
|
||||
rules: {
|
||||
"vue/order-in-components": [
|
||||
"error", {
|
||||
"order": [
|
||||
"el",
|
||||
"name",
|
||||
"parent",
|
||||
"functional",
|
||||
["delimiters", "comments"],
|
||||
["components", "directives", "filters"],
|
||||
"extends",
|
||||
"mixins",
|
||||
"inheritAttrs",
|
||||
"model",
|
||||
["props", "propsData"],
|
||||
"data",
|
||||
"computed",
|
||||
"watch",
|
||||
"LIFECYCLE_HOOKS",
|
||||
"methods",
|
||||
["template", "render"],
|
||||
"renderError",
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// don't require .vue extension when importing
|
||||
'import/extensions': ['error', 'always', {
|
||||
js: 'never',
|
||||
vue: 'never'
|
||||
}],
|
||||
"indent": ["error", 2],
|
||||
// disallow reassignment of function parameters
|
||||
// disallow parameter object manipulation except for specific exclusions
|
||||
'no-param-reassign': ['error', {
|
||||
props: true,
|
||||
ignorePropertyModificationsFor: [
|
||||
'state', // for vuex state
|
||||
'acc', // for reduce accumulators
|
||||
'e' // for e.returnvalue
|
||||
]
|
||||
}],
|
||||
// allow optionalDependencies
|
||||
'import/no-extraneous-dependencies': ['error', {
|
||||
optionalDependencies: ['test/unit/index.js']
|
||||
}],
|
||||
// allow debugger during development
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
90
src/App.vue
90
src/App.vue
|
@ -1,22 +1,24 @@
|
|||
<template>
|
||||
<div
|
||||
id="app"
|
||||
:class="theme"
|
||||
:style="style"
|
||||
:dir="dir"
|
||||
>
|
||||
<nav-header />
|
||||
|
||||
<router-view v-if="user" />
|
||||
|
||||
<div
|
||||
id="app"
|
||||
:class="theme"
|
||||
:style="style"
|
||||
:dir="dir"
|
||||
>
|
||||
<nav-header />
|
||||
|
||||
<router-view v-if="user" />
|
||||
|
||||
<div class="auth" v-else>
|
||||
<img src='/static/gamebrary-logo.png' />
|
||||
<i class="fas fa-sync-alt fa-2x fast-spin" />
|
||||
<h3>Authorizing</h3>
|
||||
</div>
|
||||
|
||||
<toast />
|
||||
v-else
|
||||
class="auth">
|
||||
<img src="/static/gamebrary-logo.png" >
|
||||
<i class="fas fa-sync-alt fa-2x fast-spin" />
|
||||
<h3>Authorizing</h3>
|
||||
</div>
|
||||
|
||||
<toast />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -65,7 +67,7 @@ export default {
|
|||
|
||||
customWallpaper() {
|
||||
// eslint-disable-next-line
|
||||
return this.settings && this.settings.wallpapers && this.platform && this.settings.wallpapers[this.platform.code]
|
||||
return this.settings && this.settings.wallpapers && this.platform && this.settings.wallpapers[this.platform.code]
|
||||
? this.settings.wallpapers[this.platform.code].url
|
||||
: '';
|
||||
},
|
||||
|
@ -73,9 +75,9 @@ export default {
|
|||
theme() {
|
||||
const hasPlatform = this.platform && this.platform.code;
|
||||
const hasTheme = hasPlatform
|
||||
&& this.settings
|
||||
&& this.settings[this.platform.code]
|
||||
&& this.settings[this.platform.code].theme;
|
||||
&& this.settings
|
||||
&& this.settings[this.platform.code]
|
||||
&& this.settings[this.platform.code].theme;
|
||||
|
||||
const isGameBoard = this.$route.name === 'game-board';
|
||||
|
||||
|
@ -315,35 +317,35 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss">
|
||||
@import url(https://fonts.googleapis.com/css?family=Fira+Sans:700|Roboto:400,400italic,700);
|
||||
@import "~styles/styles";
|
||||
@import url(https://fonts.googleapis.com/css?family=Fira+Sans:700|Roboto:400,400italic,700);
|
||||
@import "~styles/styles";
|
||||
</style>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
#app {
|
||||
background: var(--body-background);
|
||||
background-size: cover;
|
||||
#app {
|
||||
background: var(--body-background);
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.auth {
|
||||
background: var(--body-background);
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100vw;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
|
||||
img {
|
||||
width: 100px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
.auth {
|
||||
background: var(--body-background);
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100vw;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
|
||||
img {
|
||||
width: 100px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
i {
|
||||
margin: $gp;
|
||||
}
|
||||
i {
|
||||
margin: $gp;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -2,49 +2,68 @@
|
|||
<!-- TODO: increase limit to 20 or more -->
|
||||
<!-- TODO: fix empty state weirdness -->
|
||||
<template lang="html">
|
||||
<modal :title="$t('list.addGame')" @open="clear">
|
||||
<button class="add-game-button small secondary" :title="$t('list.addGame')">
|
||||
<i class="fas fa-plus" />
|
||||
<modal
|
||||
:title="$t('list.addGame')"
|
||||
@open="clear">
|
||||
<button
|
||||
:title="$t('list.addGame')"
|
||||
class="add-game-button small secondary">
|
||||
<i class="fas fa-plus" />
|
||||
</button>
|
||||
|
||||
<div
|
||||
slot="content"
|
||||
class="game-search">
|
||||
<form @submit.prevent="search">
|
||||
<input
|
||||
ref="searchInput"
|
||||
v-model="searchText"
|
||||
:placeholder="$t('gameSearch.inputPlaceholder')"
|
||||
type="text"
|
||||
>
|
||||
|
||||
<button
|
||||
class="primary small"
|
||||
@click="search">
|
||||
<i
|
||||
v-if="loading"
|
||||
class="fas fa-circle-notch fast-spin hollow" />
|
||||
<i
|
||||
v-else
|
||||
class="fas fa-search" />
|
||||
</button>
|
||||
|
||||
<div class="game-search" slot="content">
|
||||
<form @submit.prevent="search">
|
||||
<input
|
||||
ref="searchInput"
|
||||
type="text"
|
||||
v-model="searchText"
|
||||
:placeholder="$t('gameSearch.inputPlaceholder')"
|
||||
/>
|
||||
<igdb-credit linkable />
|
||||
</form>
|
||||
|
||||
<button class="primary small" @click="search">
|
||||
<i class="fas fa-circle-notch fast-spin hollow" v-if="loading" />
|
||||
<i class="fas fa-search" v-else />
|
||||
</button>
|
||||
<small
|
||||
v-if="gamesInList.length"
|
||||
:title="gamesInListNames">
|
||||
<strong>{{ gamesInListMessage }}</strong>
|
||||
{{ $t('gameSearch.alreadyInList') }}
|
||||
</small>
|
||||
|
||||
<igdb-credit linkable />
|
||||
</form>
|
||||
<div
|
||||
v-if="filteredResults.length > 0"
|
||||
ref="searchResults"
|
||||
class="search-results">
|
||||
<game-card-search
|
||||
v-for="{ id } in filteredResults"
|
||||
:key="id"
|
||||
:game-id="id"
|
||||
:list-id="listId"
|
||||
search-result
|
||||
@added="added"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<small v-if="gamesInList.length" :title="gamesInListNames">
|
||||
<strong>{{ gamesInListMessage }}</strong>
|
||||
{{ $t('gameSearch.alreadyInList') }}
|
||||
</small>
|
||||
|
||||
<div class="search-results" ref="searchResults" v-if="filteredResults.length > 0">
|
||||
<game-card-search
|
||||
v-for="{ id } in filteredResults"
|
||||
search-result
|
||||
:key="id"
|
||||
:game-id="id"
|
||||
:listId="listId"
|
||||
@added="added"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<span class="no-results" v-if="noResults">
|
||||
{{ $t('gameSearch.noResultsFound') }}
|
||||
</span>
|
||||
</div>
|
||||
</modal>
|
||||
<span
|
||||
v-if="noResults"
|
||||
class="no-results">
|
||||
{{ $t('gameSearch.noResultsFound') }}
|
||||
</span>
|
||||
</div>
|
||||
</modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -81,8 +100,8 @@ export default {
|
|||
|
||||
noResults() {
|
||||
return this.filteredResults.length === 0
|
||||
&& !this.loading
|
||||
&& this.searchText.trim().length > 0;
|
||||
&& !this.loading
|
||||
&& this.searchText.trim().length > 0;
|
||||
},
|
||||
|
||||
list() {
|
||||
|
@ -144,7 +163,7 @@ export default {
|
|||
|
||||
search: debounce(
|
||||
// eslint-disable-next-line
|
||||
function() {
|
||||
function() {
|
||||
this.loading = true;
|
||||
|
||||
this.$store.dispatch('SEARCH', this.searchText)
|
||||
|
@ -163,27 +182,27 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.add-game-button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
.add-game-button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: $gp;
|
||||
|
||||
input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: $gp;
|
||||
|
||||
input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
margin: 0 $gp / 2;
|
||||
}
|
||||
button {
|
||||
margin: 0 $gp / 2;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
<!-- TODO: Account for unique list style (100%) -->
|
||||
<template lang="html">
|
||||
<div class="gameboard-placeholder">
|
||||
<div
|
||||
:class="`list ${list.view || 'single'}`"
|
||||
v-for="list in lists"
|
||||
:key="list.name"
|
||||
>
|
||||
<div class="list-header" :style="style" />
|
||||
<div class="gameboard-placeholder">
|
||||
<div
|
||||
v-for="list in lists"
|
||||
:class="`list ${list.view || 'single'}`"
|
||||
:key="list.name"
|
||||
>
|
||||
<div
|
||||
:style="style"
|
||||
class="list-header" />
|
||||
|
||||
<div class="games">
|
||||
<placeholder
|
||||
image
|
||||
v-for="n in list.games.length"
|
||||
:lines="list && list.view === 'grid' ? 0 : 2"
|
||||
:key="n"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="games">
|
||||
<placeholder
|
||||
v-for="n in list.games.length"
|
||||
:lines="list && list.view === 'grid' ? 0 : 2"
|
||||
:key="n"
|
||||
image
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -55,59 +57,59 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.gameboard-placeholder {
|
||||
user-select: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
.gameboard-placeholder {
|
||||
user-select: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.list {
|
||||
flex-shrink: 0;
|
||||
cursor: default;
|
||||
border-radius: $border-radius;
|
||||
background: var(--list-background);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: $list-width;
|
||||
margin-right: $gp;
|
||||
max-height: calc(100vh - 81px);
|
||||
|
||||
&.wide {
|
||||
--placeholder-image-width: 80px;
|
||||
--placeholder-image-height: 80px;
|
||||
}
|
||||
|
||||
.list {
|
||||
flex-shrink: 0;
|
||||
cursor: default;
|
||||
border-radius: $border-radius;
|
||||
background: var(--list-background);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: $list-width;
|
||||
margin-right: $gp;
|
||||
max-height: calc(100vh - 81px);
|
||||
|
||||
&.wide {
|
||||
--placeholder-image-width: 80px;
|
||||
--placeholder-image-height: 80px;
|
||||
}
|
||||
|
||||
&.grid {
|
||||
--placeholder-image-width: 90px;
|
||||
}
|
||||
|
||||
&.grid .games {
|
||||
padding-top: $gp / 2;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
grid-gap: $gp / 4;
|
||||
|
||||
.placeholder {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
&.grid {
|
||||
--placeholder-image-width: 90px;
|
||||
}
|
||||
|
||||
.list-header {
|
||||
background: var(--list-header-background);
|
||||
height: $list-header-height;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
&.grid .games {
|
||||
padding-top: $gp / 2;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
grid-gap: $gp / 4;
|
||||
|
||||
.games {
|
||||
margin-top: $list-header-height;
|
||||
display: grid;
|
||||
grid-gap: $gp / 2 ;
|
||||
width: 100%;
|
||||
padding: $gp / 2;
|
||||
.placeholder {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-header {
|
||||
background: var(--list-header-background);
|
||||
height: $list-header-height;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.games {
|
||||
margin-top: $list-header-height;
|
||||
display: grid;
|
||||
grid-gap: $gp / 2 ;
|
||||
width: 100%;
|
||||
padding: $gp / 2;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -18,8 +18,8 @@ export default {
|
|||
|
||||
showGameRatings() {
|
||||
return this.settings
|
||||
&& this.settings[this.platform.code]
|
||||
&& !this.settings[this.platform.code].hideGameRatings;
|
||||
&& this.settings[this.platform.code]
|
||||
&& !this.settings[this.platform.code].hideGameRatings;
|
||||
},
|
||||
|
||||
gameCardClass() {
|
||||
|
@ -111,3 +111,4 @@ export default {
|
|||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,43 +1,53 @@
|
|||
<template lang="html">
|
||||
<div v-if="gameId && games[gameId]" :class="gameCardClass">
|
||||
<img :src="coverUrl" @click="openDetails" :alt="game.name">
|
||||
<div
|
||||
v-if="gameId && games[gameId]"
|
||||
:class="gameCardClass">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="game.name"
|
||||
@click="openDetails">
|
||||
|
||||
<div class="game-info">
|
||||
<a v-text="game.name" @click="openDetails" v-if="list.view !== 'covers'" />
|
||||
<div class="game-info">
|
||||
<a
|
||||
v-if="list.view !== 'covers'"
|
||||
@click="openDetails"
|
||||
v-text="game.name" />
|
||||
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
|
||||
<div class="game-tags" v-if="hasTags">
|
||||
<div
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
:key="name"
|
||||
v-if="games.includes(game.id)"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="hasTags"
|
||||
class="game-tags">
|
||||
<div
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
v-if="games.includes(game.id)"
|
||||
:key="name"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -56,91 +66,91 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
$gameCoverWidth: 80px;
|
||||
$gameCoverWidth: 80px;
|
||||
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: $gameCoverWidth auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: $gameCoverWidth auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
|
||||
&.card-placeholder {
|
||||
background: var(--game-card-background);
|
||||
opacity: 0.3;
|
||||
&.card-placeholder {
|
||||
background: var(--game-card-background);
|
||||
opacity: 0.3;
|
||||
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: $gameCoverWidth;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
img {
|
||||
width: $gameCoverWidth;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<template lang="html">
|
||||
<div v-if="gameId && games[gameId]" :class="gameCardClass">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="game.name"
|
||||
@click="openDetails"
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
v-if="gameId && games[gameId]"
|
||||
:class="gameCardClass">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="game.name"
|
||||
@click="openDetails"
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -17,21 +19,21 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
width: 94.5px;
|
||||
margin-bottom: 4px;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
.game-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
width: 94.5px;
|
||||
margin-bottom: 4px;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,25 +1,31 @@
|
|||
<template lang="html">
|
||||
<div v-if="gameId && games[gameId]" :class="gameCardClass">
|
||||
<img :src="coverUrl" :alt="game.name">
|
||||
<div
|
||||
v-if="gameId && games[gameId]"
|
||||
:class="gameCardClass">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="game.name">
|
||||
|
||||
<div class="game-info">
|
||||
<a v-text="game.name" @click="openDetails" />
|
||||
<div class="game-info">
|
||||
<a
|
||||
@click="openDetails"
|
||||
v-text="game.name" />
|
||||
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
|
||||
<button
|
||||
class="primary small add-game-button"
|
||||
@click="addGame"
|
||||
>
|
||||
{{ $t('list.addGame') }}
|
||||
</button>
|
||||
</div>
|
||||
<button
|
||||
class="primary small add-game-button"
|
||||
@click="addGame"
|
||||
>
|
||||
{{ $t('list.addGame') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -36,46 +42,47 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
$gameCoverWidth: 80px;
|
||||
$gameCoverWidth: 80px;
|
||||
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-top: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: $gameCoverWidth auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-top: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: $gameCoverWidth auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: $gameCoverWidth;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
img {
|
||||
width: $gameCoverWidth;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
button {
|
||||
margin-top: $gp / 2;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
button {
|
||||
margin-top: $gp / 2;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -1,40 +1,46 @@
|
|||
<template lang="html">
|
||||
<div v-if="gameId && games[gameId]" :class="gameCardClass">
|
||||
<div class="game-info">
|
||||
<a v-text="game.name" @click="openDetails"/>
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
<div
|
||||
v-if="gameId && games[gameId]"
|
||||
:class="gameCardClass">
|
||||
<div class="game-info">
|
||||
<a
|
||||
@click="openDetails"
|
||||
v-text="game.name"/>
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
<game-rating
|
||||
v-if="showGameRatings && list.view !== 'covers'"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
|
||||
<div class="game-tags" v-if="hasTags">
|
||||
<div
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
:key="name"
|
||||
v-if="games.includes(game.id)"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="hasTags"
|
||||
class="game-tags">
|
||||
<div
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
v-if="games.includes(game.id)"
|
||||
:key="name"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -53,82 +59,83 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
$gameCoverWidth: 80px;
|
||||
$gameCoverWidth: 80px;
|
||||
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
border-radius: $border-radius;
|
||||
min-height: 50px;
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
border-radius: $border-radius;
|
||||
min-height: 50px;
|
||||
|
||||
&.card-placeholder {
|
||||
background: #e5e5e5;
|
||||
outline: 1px dashed #a5a2a2;
|
||||
opacity: 0.6;
|
||||
&.card-placeholder {
|
||||
background: #e5e5e5;
|
||||
outline: 1px dashed #a5a2a2;
|
||||
opacity: 0.6;
|
||||
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 3 $gp / 2;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
.game-info {
|
||||
padding: $gp / 3 $gp / 2;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -1,48 +1,55 @@
|
|||
<template lang="html">
|
||||
<div v-if="gameId && games[gameId]" :class="gameCardClass">
|
||||
<img :src="coverUrl" @click="openDetails" :alt="game.name">
|
||||
<div
|
||||
v-if="gameId && games[gameId]"
|
||||
:class="gameCardClass">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="game.name"
|
||||
@click="openDetails">
|
||||
|
||||
<div class="game-info">
|
||||
<a
|
||||
v-if="list.view !== 'covers'"
|
||||
v-text="game.name"
|
||||
@click="openDetails"
|
||||
/>
|
||||
<div class="game-info">
|
||||
<a
|
||||
v-if="list.view !== 'covers'"
|
||||
@click="openDetails"
|
||||
v-text="game.name"
|
||||
/>
|
||||
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
<i class="fas fa-grip-vertical game-drag-handle" />
|
||||
|
||||
<game-rating
|
||||
v-if="showGameRatings"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
<game-rating
|
||||
v-if="showGameRatings"
|
||||
:rating="game.rating"
|
||||
small
|
||||
@click.native="openDetails"
|
||||
/>
|
||||
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
<i
|
||||
v-if="note"
|
||||
:title="note"
|
||||
class="fas fa-sticky-note note"
|
||||
@click="openDetails"
|
||||
/>
|
||||
|
||||
<div class="game-tags" v-if="hasTags">
|
||||
<div
|
||||
v-if="games.includes(game.id)"
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
:key="name"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="hasTags"
|
||||
class="game-tags">
|
||||
<div
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
v-if="games.includes(game.id)"
|
||||
:key="name"
|
||||
>
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -61,90 +68,91 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: 50px auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
.game-card {
|
||||
background: var(--game-card-background);
|
||||
margin-bottom: $gp / 2;
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: 50px auto;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: 50px;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.card-placeholder {
|
||||
background: #e5e5e5;
|
||||
outline: 1px dashed #a5a2a2;
|
||||
opacity: 0.6;
|
||||
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
img {
|
||||
width: 50px;
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
&.card-placeholder {
|
||||
background: #e5e5e5;
|
||||
outline: 1px dashed #a5a2a2;
|
||||
opacity: 0.6;
|
||||
|
||||
.game-card-options {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.game-info {
|
||||
padding: $gp / 2 $gp;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.game-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-top: $gp / 4;
|
||||
}
|
||||
|
||||
i.tags {
|
||||
position: absolute;
|
||||
bottom: $gp * 1.5;
|
||||
right: $gp / 4;
|
||||
}
|
||||
|
||||
.game-rating, a {
|
||||
display: inline-flex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: $gp / 2;
|
||||
color: var(--game-card-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.game-drag-handle {
|
||||
@include drag-cursor;
|
||||
position: absolute;
|
||||
color: #e5e5e5;
|
||||
right: $gp / 3;
|
||||
top: $gp / 3;
|
||||
|
||||
&:hover {
|
||||
color: #a5a2a2;
|
||||
}
|
||||
}
|
||||
|
||||
.game-tag {
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
}
|
||||
|
||||
.note {
|
||||
color: var(--note-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
<template lang="html">
|
||||
<div class="game-detail-placeholder">
|
||||
<div class="game-hero" />
|
||||
<div class="game-detail-placeholder">
|
||||
<div class="game-hero" />
|
||||
|
||||
<div class="game-detail-container">
|
||||
<div class="game-detail">
|
||||
<img :src="coverUrl" :alt="gamePreviewData.name" class="game-cover">
|
||||
<div class="game-detail-container">
|
||||
<div class="game-detail">
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="gamePreviewData.name"
|
||||
class="game-cover">
|
||||
|
||||
<div>
|
||||
<h2>{{ gamePreviewData.name }}</h2>
|
||||
<game-rating :rating="gamePreviewData.rating" />
|
||||
<placeholder :lines="3" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h2>{{ gamePreviewData.name }}</h2>
|
||||
<game-rating :rating="gamePreviewData.rating" />
|
||||
<placeholder :lines="3" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -29,7 +32,10 @@ export default {
|
|||
},
|
||||
|
||||
props: {
|
||||
id: [Number, String],
|
||||
id: {
|
||||
type: [Number, String],
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -51,16 +57,16 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-detail-placeholder {
|
||||
.game-detail-placeholder {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
background: var(--modal-background);
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
}
|
||||
}
|
||||
|
||||
.game-hero {
|
||||
.game-hero {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
|
@ -68,26 +74,26 @@ export default {
|
|||
z-index: 1;
|
||||
|
||||
@media($small) {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-cover {
|
||||
.game-cover {
|
||||
border: 5px solid #a5a2a2;
|
||||
background-size: contain;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
|
||||
@media($small) {
|
||||
border: 3px solid #a5a2a2;
|
||||
height: auto;
|
||||
width: auto;
|
||||
min-width: auto;
|
||||
max-width: 100%;
|
||||
border: 3px solid #a5a2a2;
|
||||
height: auto;
|
||||
width: auto;
|
||||
min-width: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-detail-container {
|
||||
.game-detail-container {
|
||||
-webkit-box-shadow: 0 0 2px 0 #a5a2a2;
|
||||
box-shadow: 0 0 2px 0 #a5a2a2;
|
||||
width: $container-width;
|
||||
|
@ -98,46 +104,46 @@ export default {
|
|||
border-radius: $border-radius;
|
||||
|
||||
@media($small) {
|
||||
margin: 0;
|
||||
padding-top: $gp * 3;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
padding-top: $gp * 3;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-detail {
|
||||
.game-detail {
|
||||
display: grid;
|
||||
grid-template-columns: 180px auto;
|
||||
grid-gap: $gp * 2;
|
||||
margin: 0 $gp;
|
||||
|
||||
@media($small) {
|
||||
grid-template-columns: auto;
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-cover {
|
||||
.game-cover {
|
||||
--placeholder-image-width: 175px;
|
||||
--placeholder-image-height: 220px;
|
||||
|
||||
@media($small) {
|
||||
--placeholder-image-width: 240px;
|
||||
--placeholder-image-height: 300px;
|
||||
width: 240px;
|
||||
margin: 0 auto;
|
||||
--placeholder-image-width: 240px;
|
||||
--placeholder-image-height: 300px;
|
||||
width: 240px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-title {
|
||||
.game-title {
|
||||
--placeholder-text-height: 30px;
|
||||
width: 50%;
|
||||
|
||||
@media($small) {
|
||||
width: 50%;
|
||||
margin: 0 auto;
|
||||
width: 50%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.game-rating {
|
||||
.game-rating {
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,43 +1,45 @@
|
|||
<template lang="html">
|
||||
<div v-if="game" class="review-box">
|
||||
<div class="info">
|
||||
<!-- TODO: get icons for everything -->
|
||||
<section v-if="playerPerspectives">
|
||||
<strong>{{ $t('gameDetail.perspective') }}</strong>
|
||||
{{ playerPerspectives }}
|
||||
</section>
|
||||
<div
|
||||
v-if="game"
|
||||
class="review-box">
|
||||
<div class="info">
|
||||
<!-- TODO: get icons for everything -->
|
||||
<section v-if="playerPerspectives">
|
||||
<strong>{{ $t('gameDetail.perspective') }}</strong>
|
||||
{{ playerPerspectives }}
|
||||
</section>
|
||||
|
||||
<section v-if="timeToBeat">
|
||||
<strong>{{ $t('gameDetail.timeToBeat') }}</strong>
|
||||
{{ timeToBeat }}
|
||||
</section>
|
||||
<section v-if="timeToBeat">
|
||||
<strong>{{ $t('gameDetail.timeToBeat') }}</strong>
|
||||
{{ timeToBeat }}
|
||||
</section>
|
||||
|
||||
<section v-if="gameModes">
|
||||
<strong>{{ $t('gameDetail.gameModes') }}</strong>
|
||||
{{ gameModes }}
|
||||
</section>
|
||||
<section v-if="gameModes">
|
||||
<strong>{{ $t('gameDetail.gameModes') }}</strong>
|
||||
{{ gameModes }}
|
||||
</section>
|
||||
|
||||
<section v-if="genres">
|
||||
<strong>{{ $t('gameDetail.genres') }}</strong>
|
||||
{{ genres }}
|
||||
</section>
|
||||
<section v-if="genres">
|
||||
<strong>{{ $t('gameDetail.genres') }}</strong>
|
||||
{{ genres }}
|
||||
</section>
|
||||
|
||||
<section v-if="developers">
|
||||
<strong>{{ $t('gameDetail.developers') }}</strong>
|
||||
{{ developers }}
|
||||
</section>
|
||||
<section v-if="developers">
|
||||
<strong>{{ $t('gameDetail.developers') }}</strong>
|
||||
{{ developers }}
|
||||
</section>
|
||||
|
||||
<section v-if="publishers">
|
||||
<strong>{{ $t('gameDetail.publishers') }}</strong>
|
||||
{{ publishers }}
|
||||
</section>
|
||||
<section v-if="publishers">
|
||||
<strong>{{ $t('gameDetail.publishers') }}</strong>
|
||||
{{ publishers }}
|
||||
</section>
|
||||
|
||||
<section v-if="releaseDate">
|
||||
<strong>{{ $t('gameDetail.releaseDate') }}</strong>
|
||||
{{ moment.unix(releaseDate).format('ll') }}
|
||||
</section>
|
||||
</div>
|
||||
<section v-if="releaseDate">
|
||||
<strong>{{ $t('gameDetail.releaseDate') }}</strong>
|
||||
{{ moment.unix(releaseDate).format('ll') }}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -75,9 +77,9 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.review-box {
|
||||
.review-box {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
margin: 0 auto;
|
||||
|
@ -86,11 +88,11 @@ export default {
|
|||
align-items: center;
|
||||
|
||||
strong {
|
||||
color: var(--accent-color);
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
section {
|
||||
margin-bottom: $gp / 3;
|
||||
margin-bottom: $gp / 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,28 +1,30 @@
|
|||
<template lang="html">
|
||||
<div class="game-links" v-if="hasWebsites">
|
||||
<h4>Links</h4>
|
||||
<div class="links">
|
||||
<a
|
||||
v-for="{ category, url } in game.websites"
|
||||
:key="category"
|
||||
:href="url"
|
||||
:class="linkTypes[category].name"
|
||||
target="_blank"
|
||||
>
|
||||
<template v-if="linkTypes[category].icon">
|
||||
<i
|
||||
:class="linkTypes[category].icon"
|
||||
:title="$t(`gameDetail.links.${linkTypes[category].name}`)"
|
||||
/>
|
||||
</template>
|
||||
<div
|
||||
v-if="hasWebsites"
|
||||
class="game-links">
|
||||
<h4>Links</h4>
|
||||
<div class="links">
|
||||
<a
|
||||
v-for="{ category, url } in game.websites"
|
||||
:key="category"
|
||||
:href="url"
|
||||
:class="linkTypes[category].name"
|
||||
target="_blank"
|
||||
>
|
||||
<template v-if="linkTypes[category].icon">
|
||||
<i
|
||||
:class="linkTypes[category].icon"
|
||||
:title="$t(`gameDetail.links.${linkTypes[category].name}`)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<i class="fas fa-link"/>
|
||||
<small>{{ $t(`gameDetail.links.${linkTypes[category].name}`) }}</small>
|
||||
</template>
|
||||
</a>
|
||||
</div>
|
||||
<template v-else>
|
||||
<i class="fas fa-link"/>
|
||||
<small>{{ $t(`gameDetail.links.${linkTypes[category].name}`) }}</small>
|
||||
</template>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -73,25 +75,25 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-links {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
margin-top: $gp;
|
||||
padding-top: $gp;
|
||||
}
|
||||
|
||||
.links {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 30px);
|
||||
margin-top: $gp / 2;
|
||||
|
||||
a {
|
||||
height: 40px;
|
||||
font-size: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-decoration: none;
|
||||
}
|
||||
.game-links {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
margin-top: $gp;
|
||||
padding-top: $gp;
|
||||
}
|
||||
|
||||
.links {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 30px);
|
||||
margin-top: $gp / 2;
|
||||
|
||||
a {
|
||||
height: 40px;
|
||||
font-size: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,17 +1,29 @@
|
|||
<template lang="html">
|
||||
<div :class="['game-rating', { small }]">
|
||||
<span v-for="n in 5" :key="`star-${n}`">
|
||||
<i class="fas fa-star" v-if="(roundedRating - n) + 1 >= 1" />
|
||||
<i class="fas fa-star-half" v-if="(roundedRating - n) + 1 === .5" />
|
||||
</span>
|
||||
</div>
|
||||
<div :class="['game-rating', { small }]">
|
||||
<span
|
||||
v-for="n in 5"
|
||||
:key="`star-${n}`">
|
||||
<i
|
||||
v-if="(roundedRating - n) + 1 >= 1"
|
||||
class="fas fa-star" />
|
||||
<i
|
||||
v-if="(roundedRating - n) + 1 === .5"
|
||||
class="fas fa-star-half" />
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
rating: Number,
|
||||
small: Boolean,
|
||||
rating: {
|
||||
type: Number,
|
||||
default: 5,
|
||||
},
|
||||
small: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -26,12 +38,12 @@ export default {
|
|||
@import "~styles/styles";
|
||||
|
||||
.game-rating {
|
||||
color: var(--rating-star-color);
|
||||
font-size: 20px;
|
||||
margin: $gp / 4 0;
|
||||
color: var(--rating-star-color);
|
||||
font-size: 20px;
|
||||
margin: $gp / 4 0;
|
||||
|
||||
&.small {
|
||||
font-size: 12px;
|
||||
}
|
||||
&.small {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
<template lang="html">
|
||||
<section class="game-screenshots" v-if="game.screenshots">
|
||||
<vue-gallery
|
||||
:images="screenshots"
|
||||
:index="index"
|
||||
@close="close"
|
||||
/>
|
||||
<section
|
||||
v-if="game.screenshots"
|
||||
class="game-screenshots">
|
||||
<vue-gallery
|
||||
:images="screenshots"
|
||||
:index="index"
|
||||
@close="close"
|
||||
/>
|
||||
|
||||
<img
|
||||
v-for="(image, index) in thumbnails"
|
||||
:src="image"
|
||||
:key="image"
|
||||
@click="openGallery(index)"
|
||||
/>
|
||||
</section>
|
||||
<img
|
||||
v-for="(image, index) in thumbnails"
|
||||
:src="image"
|
||||
:key="image"
|
||||
@click="openGallery(index)"
|
||||
>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -35,7 +37,7 @@ export default {
|
|||
|
||||
screenshots() {
|
||||
// eslint-disable-next-line
|
||||
return this.game.screenshots
|
||||
return this.game.screenshots
|
||||
? this.game.screenshots.map((image, index) => {
|
||||
const href = `https://images.igdb.com/igdb/image/upload/t_screenshot_huge/${image.image_id}.jpg`;
|
||||
|
||||
|
@ -55,7 +57,7 @@ export default {
|
|||
|
||||
thumbnails() {
|
||||
// eslint-disable-next-line
|
||||
return this.game.screenshots ? this.game.screenshots.map((image) => {
|
||||
return this.game.screenshots ? this.game.screenshots.map((image) => {
|
||||
return `https://images.igdb.com/igdb/image/upload/t_thumb/${image.image_id}.jpg`;
|
||||
}) : null;
|
||||
},
|
||||
|
@ -76,78 +78,78 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-screenshots {
|
||||
padding: $gp / 2 $gp;
|
||||
text-align: center;
|
||||
margin: $gp 0;
|
||||
.game-screenshots {
|
||||
padding: $gp / 2 $gp;
|
||||
text-align: center;
|
||||
margin: $gp 0;
|
||||
|
||||
h3 {
|
||||
margin: 0 0 $gp / 2;
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 0 $gp / 4 $gp / 4;
|
||||
cursor: pointer;
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
h3 {
|
||||
margin: 0 0 $gp / 2;
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 0 $gp / 4 $gp / 4;
|
||||
cursor: pointer;
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss">
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.blueimp-gallery {
|
||||
.blueimp-gallery {
|
||||
|
||||
.title {
|
||||
font-size: 14px !important;
|
||||
max-width: 50vw;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.prev,
|
||||
.next,
|
||||
.close {
|
||||
visibility: hidden;
|
||||
|
||||
&:before {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
|
||||
.prev, .next {
|
||||
background: none;
|
||||
border: 0;
|
||||
|
||||
&:before {
|
||||
font-size: 30px;
|
||||
font-family: "Font Awesome 5 Free";
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
.prev:before {
|
||||
content: "\f359";
|
||||
}
|
||||
|
||||
.next:before {
|
||||
content: "\f35a";
|
||||
}
|
||||
|
||||
.close {
|
||||
&:before {
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
font-family: "Font Awesome 5 Free";
|
||||
content: "\f00d";
|
||||
border: 1px solid #a5a2a2;
|
||||
border-radius: $border-radius;
|
||||
position: fixed;
|
||||
right: $gp / 2;
|
||||
top: $gp / 2;
|
||||
width: 30px;
|
||||
}
|
||||
}
|
||||
.title {
|
||||
font-size: 14px !important;
|
||||
max-width: 50vw;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.prev,
|
||||
.next,
|
||||
.close {
|
||||
visibility: hidden;
|
||||
|
||||
&:before {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
|
||||
.prev, .next {
|
||||
background: none;
|
||||
border: 0;
|
||||
|
||||
&:before {
|
||||
font-size: 30px;
|
||||
font-family: "Font Awesome 5 Free";
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
.prev:before {
|
||||
content: "\f359";
|
||||
}
|
||||
|
||||
.next:before {
|
||||
content: "\f35a";
|
||||
}
|
||||
|
||||
.close {
|
||||
&:before {
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
font-family: "Font Awesome 5 Free";
|
||||
content: "\f00d";
|
||||
border: 1px solid #a5a2a2;
|
||||
border-radius: $border-radius;
|
||||
position: fixed;
|
||||
right: $gp / 2;
|
||||
top: $gp / 2;
|
||||
width: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,27 +1,31 @@
|
|||
<template lang="html">
|
||||
<div class="game-videos" v-if="game.videos">
|
||||
<div class="video">
|
||||
<iframe
|
||||
:src="`https://www.youtube.com/embed/${youtubeVideoId}?rel=0&autohide=1`"
|
||||
frameborder="0"
|
||||
allow="autoplay; encrypted-media"
|
||||
allowfullscreen
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="video-thumbnails">
|
||||
<a
|
||||
v-for="{ video_id } in game.videos"
|
||||
:key="video_id"
|
||||
class="thumbnail"
|
||||
@click="selectedVideo = video_id"
|
||||
>
|
||||
<img :src="`https://img.youtube.com/vi/${video_id}/default.jpg`" />
|
||||
<i class="fab fa-youtube fa-2x" v-if="youtubeVideoId !== video_id" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="game.videos"
|
||||
class="game-videos">
|
||||
<div class="video">
|
||||
<iframe
|
||||
:src="`https://www.youtube.com/embed/${youtubeVideoId}?rel=0&autohide=1`"
|
||||
frameborder="0"
|
||||
allow="autoplay; encrypted-media"
|
||||
allowfullscreen
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="video-thumbnails">
|
||||
<a
|
||||
v-for="{ video_id } in game.videos"
|
||||
:key="video_id"
|
||||
class="thumbnail"
|
||||
@click="selectedVideo = video_id"
|
||||
>
|
||||
<img :src="`https://img.youtube.com/vi/${video_id}/default.jpg`" >
|
||||
<i
|
||||
v-if="youtubeVideoId !== video_id"
|
||||
class="fab fa-youtube fa-2x" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -45,58 +49,58 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-videos {
|
||||
text-align: center;
|
||||
.game-videos {
|
||||
text-align: center;
|
||||
|
||||
.video {
|
||||
position: relative;
|
||||
padding-bottom: 56.25%;
|
||||
margin: $gp;
|
||||
height: 56.25%;
|
||||
.video {
|
||||
position: relative;
|
||||
padding-bottom: 56.25%;
|
||||
margin: $gp;
|
||||
height: 56.25%;
|
||||
|
||||
iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.video-thumbnails {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 100px);
|
||||
padding: 0 $gp;
|
||||
grid-gap: $gp;
|
||||
|
||||
@media($small) {
|
||||
grid-template-columns: repeat(auto-fill, 70px);
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
color: #fff;
|
||||
opacity: 0.7;
|
||||
left: 34px;
|
||||
top: 23px;
|
||||
|
||||
@media($small) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.video-thumbnails {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 100px);
|
||||
padding: 0 $gp;
|
||||
grid-gap: $gp;
|
||||
|
||||
@media($small) {
|
||||
grid-template-columns: repeat(auto-fill, 70px);
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
color: #fff;
|
||||
opacity: 0.7;
|
||||
left: 34px;
|
||||
top: 23px;
|
||||
|
||||
@media($small) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,70 +1,74 @@
|
|||
<template lang="html">
|
||||
<div class="game-notes">
|
||||
<h4>{{ $t('notes.notes') }}</h4>
|
||||
<div class="game-notes">
|
||||
<h4>{{ $t('notes.notes') }}</h4>
|
||||
|
||||
<div
|
||||
class="note"
|
||||
v-if="hasNote && !editingNote"
|
||||
@click="editNote"
|
||||
>
|
||||
<i class="fas fa-sticky-note corner-icon" />
|
||||
<div
|
||||
v-if="hasNote && !editingNote"
|
||||
class="note"
|
||||
@click="editNote"
|
||||
>
|
||||
<i class="fas fa-sticky-note corner-icon" />
|
||||
|
||||
<p v-html="formattedNoteText" />
|
||||
</div>
|
||||
|
||||
<div class="note" v-if="editingNote">
|
||||
<i class="fas fa-sticky-note corner-icon" />
|
||||
|
||||
<div
|
||||
class="read"
|
||||
v-if="localNote && !editingNote"
|
||||
@click="editNote"
|
||||
>
|
||||
<p>{{ localNote.text }}</p>
|
||||
</div>
|
||||
|
||||
<div class="edit" v-if="editingNote">
|
||||
<textarea
|
||||
v-model="localNote.text"
|
||||
class="game-note-field"
|
||||
maxlength="1024"
|
||||
/>
|
||||
|
||||
<div class="note-actions">
|
||||
<button
|
||||
class="small secondary"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $t('global.cancel') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="small danger"
|
||||
@click="deleteNote"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="small primary"
|
||||
@click="saveNote"
|
||||
:disabled="!localNote"
|
||||
>
|
||||
{{ $t('global.save') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="primary"
|
||||
@click="addNote"
|
||||
v-if="!hasNote && !editingNote"
|
||||
>
|
||||
<i class="fas fa-sticky-note" />
|
||||
{{ $t('notes.addNote') }}
|
||||
</button>
|
||||
<p v-html="formattedNoteText" />
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="editingNote"
|
||||
class="note">
|
||||
<i class="fas fa-sticky-note corner-icon" />
|
||||
|
||||
<div
|
||||
v-if="localNote && !editingNote"
|
||||
class="read"
|
||||
@click="editNote"
|
||||
>
|
||||
<p>{{ localNote.text }}</p>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="editingNote"
|
||||
class="edit">
|
||||
<textarea
|
||||
v-model="localNote.text"
|
||||
class="game-note-field"
|
||||
maxlength="1024"
|
||||
/>
|
||||
|
||||
<div class="note-actions">
|
||||
<button
|
||||
class="small secondary"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $t('global.cancel') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="small danger"
|
||||
@click="deleteNote"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
</button>
|
||||
|
||||
<button
|
||||
:disabled="!localNote"
|
||||
class="small primary"
|
||||
@click="saveNote"
|
||||
>
|
||||
{{ $t('global.save') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
v-if="!hasNote && !editingNote"
|
||||
class="primary"
|
||||
@click="addNote"
|
||||
>
|
||||
<i class="fas fa-sticky-note" />
|
||||
{{ $t('notes.addNote') }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -146,66 +150,66 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-notes {
|
||||
margin-top: $gp;
|
||||
.game-notes {
|
||||
margin-top: $gp;
|
||||
}
|
||||
|
||||
h4 {
|
||||
padding-bottom: $gp / 2;
|
||||
}
|
||||
|
||||
.note {
|
||||
cursor: pointer;
|
||||
border: 2px solid var(--note-color);
|
||||
border-radius: $border-radius;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
min-width: 200px;
|
||||
max-width: 100%;
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
padding: $gp / 2 $gp $gp / 2 $gp * 2;
|
||||
|
||||
@media($small) {
|
||||
margin: $gp auto;
|
||||
}
|
||||
|
||||
h4 {
|
||||
padding-bottom: $gp / 2;
|
||||
.corner-icon {
|
||||
background: var(--note-color);
|
||||
color: #fff;
|
||||
padding: $gp / 4;
|
||||
position: absolute;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.note {
|
||||
cursor: pointer;
|
||||
border: 2px solid var(--note-color);
|
||||
border-radius: $border-radius;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
min-width: 200px;
|
||||
max-width: 100%;
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
padding: $gp / 2 $gp $gp / 2 $gp * 2;
|
||||
|
||||
@media($small) {
|
||||
margin: $gp auto;
|
||||
}
|
||||
|
||||
.corner-icon {
|
||||
background: var(--note-color);
|
||||
color: #fff;
|
||||
padding: $gp / 4;
|
||||
position: absolute;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
display: inline-flex;
|
||||
}
|
||||
p {
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
.game-note-field {
|
||||
resize: vertical;
|
||||
border-radius: $border-radius;
|
||||
border: 1px solid #a5a2a2;
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.note-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
grid-gap: $gp / 2;
|
||||
margin-top: $gp / 4;
|
||||
|
||||
.success {
|
||||
margin-left: auto;
|
||||
}
|
||||
.game-note-field {
|
||||
resize: vertical;
|
||||
border-radius: $border-radius;
|
||||
border: 1px solid #a5a2a2;
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.note-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
grid-gap: $gp / 2;
|
||||
margin-top: $gp / 4;
|
||||
|
||||
.success {
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
<template lang="html">
|
||||
<a :href="href" class="igdb-credit" target="_blank">
|
||||
<img :src="`/static/img/igdb-logo.svg`" />
|
||||
<strong>{{ $t('igdbCredit.poweredByIgdb') }}</strong>
|
||||
</a>
|
||||
<a
|
||||
:href="href"
|
||||
class="igdb-credit"
|
||||
target="_blank">
|
||||
<img :src="`/static/img/igdb-logo.svg`" >
|
||||
<strong>{{ $t('igdbCredit.poweredByIgdb') }}</strong>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
linkable: Boolean,
|
||||
linkable: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -22,17 +28,17 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.igdb-credit {
|
||||
color: #3eb87a;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
font-size: 11px;
|
||||
.igdb-credit {
|
||||
color: #3eb87a;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
font-size: 11px;
|
||||
|
||||
img {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
img {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,55 +1,55 @@
|
|||
<!-- eslint-disable max-len -->
|
||||
<template lang="html">
|
||||
<div :class="['list', viewClass, { unique: unique && view !== 'grid' }]">
|
||||
<header>
|
||||
<span>
|
||||
<i
|
||||
class="fas fa-magic"
|
||||
title="List sorted automatically"
|
||||
v-if="autoSortEnabled"
|
||||
/>
|
||||
{{ list[listIndex].name }} ({{ gameList.length }})
|
||||
</span>
|
||||
<div :class="['list', viewClass, { unique: unique && view !== 'grid' }]">
|
||||
<header>
|
||||
<span>
|
||||
<i
|
||||
v-if="autoSortEnabled"
|
||||
class="fas fa-magic"
|
||||
title="List sorted automatically"
|
||||
/>
|
||||
{{ list[listIndex].name }} ({{ gameList.length }})
|
||||
</span>
|
||||
|
||||
<list-settings :list-index="listIndex" />
|
||||
</header>
|
||||
<list-settings :list-index="listIndex" />
|
||||
</header>
|
||||
|
||||
<div
|
||||
:class="`game-grid game-grid-${listIndex}`"
|
||||
v-if="view === 'grid'"
|
||||
>
|
||||
<component
|
||||
v-for="game in gameList"
|
||||
:is="gameCardComponent"
|
||||
:key="`grid-${game}`"
|
||||
:id="game"
|
||||
:game-id="game"
|
||||
:list-id="listIndex"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<draggable
|
||||
v-else
|
||||
:class="['games', { 'empty': isEmpty }]"
|
||||
:list="gameList"
|
||||
:id="listIndex"
|
||||
:move="validateMove"
|
||||
v-bind="gameDraggableOptions"
|
||||
@end="end"
|
||||
@start="start"
|
||||
>
|
||||
<component
|
||||
v-for="game in sortedGames"
|
||||
:is="gameCardComponent"
|
||||
:key="`grid-${game}`"
|
||||
:id="game"
|
||||
:game-id="game"
|
||||
:list-id="listIndex"
|
||||
/>
|
||||
</draggable>
|
||||
|
||||
<add-game :list-id="listIndex" />
|
||||
<div
|
||||
v-if="view === 'grid'"
|
||||
:class="`game-grid game-grid-${listIndex}`"
|
||||
>
|
||||
<component
|
||||
v-for="game in gameList"
|
||||
:is="gameCardComponent"
|
||||
:key="`grid-${game}`"
|
||||
:id="game"
|
||||
:game-id="game"
|
||||
:list-id="listIndex"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<draggable
|
||||
v-else
|
||||
:class="['games', { 'empty': isEmpty }]"
|
||||
:list="gameList"
|
||||
:id="listIndex"
|
||||
:move="validateMove"
|
||||
v-bind="gameDraggableOptions"
|
||||
@end="end"
|
||||
@start="start"
|
||||
>
|
||||
<component
|
||||
v-for="game in sortedGames"
|
||||
:is="gameCardComponent"
|
||||
:key="`grid-${game}`"
|
||||
:id="game"
|
||||
:game-id="game"
|
||||
:list-id="listIndex"
|
||||
/>
|
||||
</draggable>
|
||||
|
||||
<add-game :list-id="listIndex" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -77,9 +77,18 @@ export default {
|
|||
},
|
||||
|
||||
props: {
|
||||
name: String,
|
||||
gameList: [Object, Array],
|
||||
listIndex: [String, Number],
|
||||
name: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
gameList: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
listIndex: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
@ -118,42 +127,42 @@ export default {
|
|||
const { gameList } = this;
|
||||
|
||||
switch (sortOrder) {
|
||||
case 'sortByCustom':
|
||||
return gameList;
|
||||
case 'sortByRating':
|
||||
return gameList.sort((a, b) => {
|
||||
const gameA = this.games[a] && this.games[a].rating
|
||||
? this.games[a].rating
|
||||
: 0;
|
||||
case 'sortByCustom':
|
||||
return gameList;
|
||||
case 'sortByRating':
|
||||
return gameList.sort((a, b) => {
|
||||
const gameA = this.games[a] && this.games[a].rating
|
||||
? this.games[a].rating
|
||||
: 0;
|
||||
|
||||
const gameB = this.games[b] && this.games[b].rating
|
||||
? this.games[b].rating
|
||||
: 0;
|
||||
const gameB = this.games[b] && this.games[b].rating
|
||||
? this.games[b].rating
|
||||
: 0;
|
||||
|
||||
if (gameA > gameB) {
|
||||
return -1;
|
||||
}
|
||||
if (gameA > gameB) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return gameA < gameB ? 1 : 0;
|
||||
});
|
||||
case 'sortByName':
|
||||
return gameList.sort((a, b) => {
|
||||
const gameA = this.games[a] && this.games[a].name
|
||||
? this.games[a].name.toUpperCase()
|
||||
: '';
|
||||
return gameA < gameB ? 1 : 0;
|
||||
});
|
||||
case 'sortByName':
|
||||
return gameList.sort((a, b) => {
|
||||
const gameA = this.games[a] && this.games[a].name
|
||||
? this.games[a].name.toUpperCase()
|
||||
: '';
|
||||
|
||||
const gameB = this.games[b] && this.games[b].name
|
||||
? this.games[b].name.toUpperCase()
|
||||
: '';
|
||||
const gameB = this.games[b] && this.games[b].name
|
||||
? this.games[b].name.toUpperCase()
|
||||
: '';
|
||||
|
||||
if (gameA < gameB) {
|
||||
return -1;
|
||||
}
|
||||
if (gameA < gameB) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return gameA > gameB ? 1 : 0;
|
||||
});
|
||||
default:
|
||||
return gameList;
|
||||
return gameA > gameB ? 1 : 0;
|
||||
});
|
||||
default:
|
||||
return gameList;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -215,7 +224,7 @@ export default {
|
|||
if (this.view === 'grid') {
|
||||
this.$nextTick(() => {
|
||||
// eslint-disable-next-line
|
||||
this.masonry = new Masonry(`.game-grid-${this.listIndex}`, {
|
||||
this.masonry = new Masonry(`.game-grid-${this.listIndex}`, {
|
||||
itemSelector: '.game-card',
|
||||
gutter: 4,
|
||||
});
|
||||
|
@ -243,80 +252,80 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.list {
|
||||
flex-shrink: 0;
|
||||
cursor: default;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
background: var(--list-background);
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
margin-right: $gp;
|
||||
max-height: calc(100vh - 100px);
|
||||
.list {
|
||||
flex-shrink: 0;
|
||||
cursor: default;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
background: var(--list-background);
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
margin-right: $gp;
|
||||
max-height: calc(100vh - 100px);
|
||||
|
||||
.games {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
&.unique {
|
||||
@media($small) {
|
||||
width: calc(100vw - 80px);
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
align-items: center;
|
||||
background: var(--list-header-background);
|
||||
color: var(--list-header-text-color);
|
||||
display: flex;
|
||||
height: $list-header-height;
|
||||
justify-content: space-between;
|
||||
padding-left: $gp / 2;
|
||||
position: absolute;
|
||||
border-radius: $border-radius;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.games {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
max-height: calc(100vh - 150px);
|
||||
min-height: 80px;
|
||||
overflow-y: auto;
|
||||
margin-top: $list-header-height;
|
||||
padding: $gp / 2 $gp / 2 0;
|
||||
width: 100%;
|
||||
|
||||
&.empty {
|
||||
margin: ($list-header-height + $gp / 2) $gp / 2 $gp / 2;
|
||||
padding: $gp;
|
||||
width: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px dashed #a5a2a2;
|
||||
}
|
||||
}
|
||||
.games {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.list-settings {
|
||||
&.unique {
|
||||
@media($small) {
|
||||
width: calc(100vw - 80px);
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
align-items: center;
|
||||
background: var(--list-header-background);
|
||||
color: var(--list-header-text-color);
|
||||
display: flex;
|
||||
height: $list-header-height;
|
||||
justify-content: space-between;
|
||||
padding-left: $gp / 2;
|
||||
position: absolute;
|
||||
border-radius: $border-radius;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.games {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
max-height: calc(100vh - 150px);
|
||||
min-height: 80px;
|
||||
overflow-y: auto;
|
||||
margin-top: $list-header-height;
|
||||
padding: $gp / 2 $gp / 2 0;
|
||||
width: 100%;
|
||||
|
||||
&.empty {
|
||||
margin: ($list-header-height + $gp / 2) $gp / 2 $gp / 2;
|
||||
padding: $gp;
|
||||
}
|
||||
|
||||
.game-grid {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
max-height: calc(100vh - 154px);
|
||||
min-height: 80px;
|
||||
overflow-y: auto;
|
||||
margin-top: $list-header-height;
|
||||
padding: 4px;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
border: 1px dashed #a5a2a2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-settings {
|
||||
padding: $gp;
|
||||
}
|
||||
|
||||
.game-grid {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
max-height: calc(100vh - 154px);
|
||||
min-height: 80px;
|
||||
overflow-y: auto;
|
||||
margin-top: $list-header-height;
|
||||
padding: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,32 +1,37 @@
|
|||
<template lang="html">
|
||||
<modal :title="title" ref="listAddModal" @open="open">
|
||||
<button
|
||||
class="small primary add-list-button"
|
||||
:title="$t('list.add')"
|
||||
>
|
||||
<i class="fas fa-plus" />
|
||||
</button>
|
||||
<modal
|
||||
ref="listAddModal"
|
||||
:title="title"
|
||||
@open="open">
|
||||
<button
|
||||
:title="$t('list.add')"
|
||||
class="small primary add-list-button"
|
||||
>
|
||||
<i class="fas fa-plus" />
|
||||
</button>
|
||||
|
||||
<form @submit.prevent="addList" slot="content">
|
||||
<input
|
||||
v-model.trim="listName"
|
||||
type="text"
|
||||
autofocus
|
||||
required
|
||||
:placeholder="$t('list.placeholder')"
|
||||
/>
|
||||
<form
|
||||
slot="content"
|
||||
@submit.prevent="addList">
|
||||
<input
|
||||
v-model.trim="listName"
|
||||
:placeholder="$t('list.placeholder')"
|
||||
type="text"
|
||||
autofocus
|
||||
required
|
||||
>
|
||||
|
||||
<button
|
||||
class="primary"
|
||||
type="submit"
|
||||
:disabled="disabled"
|
||||
>
|
||||
{{ buttonLabel }}
|
||||
</button>
|
||||
<button
|
||||
:disabled="disabled"
|
||||
class="primary"
|
||||
type="submit"
|
||||
>
|
||||
{{ buttonLabel }}
|
||||
</button>
|
||||
|
||||
<small v-if="isDuplicate">{{ $t('list.duplicateWarning') }}</small>
|
||||
</form>
|
||||
</modal>
|
||||
<small v-if="isDuplicate">{{ $t('list.duplicateWarning') }}</small>
|
||||
</form>
|
||||
</modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -76,7 +81,7 @@ export default {
|
|||
isEmptyBoard() {
|
||||
const newList = this.gameLists && this.platform && !this.gameLists[this.platform.code];
|
||||
const emptyList = this.gameLists[this.platform.code]
|
||||
&& this.gameLists[this.platform.code].length === 0;
|
||||
&& this.gameLists[this.platform.code].length === 0;
|
||||
|
||||
return newList || emptyList;
|
||||
},
|
||||
|
@ -123,14 +128,14 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "src/styles/styles.scss";
|
||||
@import "src/styles/styles.scss";
|
||||
|
||||
.add-list-button {
|
||||
margin-right: $gp;
|
||||
}
|
||||
.add-list-button {
|
||||
margin-right: $gp;
|
||||
}
|
||||
|
||||
small {
|
||||
color: var(--warning-color);
|
||||
margin: 0 $gp;
|
||||
}
|
||||
small {
|
||||
color: var(--warning-color);
|
||||
margin: 0 $gp;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,119 +1,134 @@
|
|||
<template lang="html">
|
||||
<modal
|
||||
:title="$t('list.preferences')"
|
||||
v-if="activeList"
|
||||
ref="listSettingsModal"
|
||||
@open="open"
|
||||
@close="close"
|
||||
>
|
||||
<button class="small">
|
||||
<i class="fas fa-sliders-h" />
|
||||
<modal
|
||||
v-if="activeList"
|
||||
ref="listSettingsModal"
|
||||
:title="$t('list.preferences')"
|
||||
@open="open"
|
||||
@close="close"
|
||||
>
|
||||
<button class="small">
|
||||
<i class="fas fa-sliders-h" />
|
||||
</button>
|
||||
|
||||
<div
|
||||
v-if="localList"
|
||||
slot="content"
|
||||
class="list-settings">
|
||||
<section>
|
||||
<h4>List name</h4>
|
||||
|
||||
<input
|
||||
ref="input"
|
||||
v-model="localList.name" >
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>{{ $t('list.view') }}</h4>
|
||||
|
||||
<div class="checkbox-group">
|
||||
<span
|
||||
v-for="(icon, view) in views"
|
||||
:key="view">
|
||||
<label
|
||||
:for="view"
|
||||
:class="{ active: view === localList.view }">
|
||||
<i :class="icon" />
|
||||
{{ $t(`list.views.${view}`) }}
|
||||
</label>
|
||||
<input
|
||||
:id="view"
|
||||
:value="view"
|
||||
v-model="localList.view"
|
||||
type="radio" >
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section v-if="hasMultipleGames">
|
||||
<h4>{{ $t('list.sortList') }}</h4>
|
||||
|
||||
<div class="checkbox-group">
|
||||
<span
|
||||
v-for="(icon, sortOrder) in sortOrders"
|
||||
:key="sortOrder">
|
||||
<label
|
||||
:for="sortOrder"
|
||||
:class="{ active: sortOrder === localList.sortOrder }"
|
||||
>
|
||||
<i :class="icon" />
|
||||
{{ $t(`list.${sortOrder}`) }}
|
||||
</label>
|
||||
|
||||
<input
|
||||
:id="sortOrder"
|
||||
:value="sortOrder"
|
||||
v-model="localList.sortOrder"
|
||||
type="radio"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<modal
|
||||
v-if="localList && localList.games && localList.games.length"
|
||||
ref="addList"
|
||||
:message="warningMessage"
|
||||
:action-text="$t('list.delete')"
|
||||
title="Are you sure?"
|
||||
action-button-class="danger"
|
||||
@action="deleteList"
|
||||
>
|
||||
<button
|
||||
:title="$t('list.delete')"
|
||||
class="danger"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
{{ $t('list.delete') }}
|
||||
</button>
|
||||
</modal>
|
||||
|
||||
<button
|
||||
v-else
|
||||
:title="$t('list.delete')"
|
||||
class="danger"
|
||||
@click="deleteList"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
{{ $t('list.delete') }}
|
||||
</button>
|
||||
|
||||
<div class="list-settings" slot="content" v-if="localList">
|
||||
<section>
|
||||
<h4>List name</h4>
|
||||
<!-- <button
|
||||
class="primary hollow"
|
||||
:title="$t('list.moveLeft')"
|
||||
:disabled="isFirst"
|
||||
@click="moveList(listIndex, listIndex - 1)"
|
||||
>
|
||||
<i class="fas fa-arrow-left" />
|
||||
|
||||
<input v-model="localList.name" ref="input" />
|
||||
</section>
|
||||
{{ $t('list.moveLeft') }}
|
||||
</button>
|
||||
|
||||
<section>
|
||||
<h4>{{ $t('list.view') }}</h4>
|
||||
<button
|
||||
class="primary hollow"
|
||||
:title="$t('list.moveRight')"
|
||||
:disabled="isLast"
|
||||
@click="moveList(listIndex, listIndex + 1)"
|
||||
>
|
||||
{{ $t('list.moveRight') }}
|
||||
<i class="fas fa-arrow-right" />
|
||||
</button> -->
|
||||
|
||||
<div class="checkbox-group">
|
||||
<span v-for="(icon, view) in views" :key="view">
|
||||
<label :for="view" :class="{ active: view === localList.view }">
|
||||
<i :class="icon" />
|
||||
{{ $t(`list.views.${view}`) }}
|
||||
</label>
|
||||
<input type="radio" :id="view" :value="view" v-model="localList.view" />
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section v-if="hasMultipleGames">
|
||||
<h4>{{ $t('list.sortList') }}</h4>
|
||||
|
||||
<div class="checkbox-group">
|
||||
<span v-for="(icon, sortOrder) in sortOrders" :key="sortOrder">
|
||||
<label
|
||||
:for="sortOrder"
|
||||
:class="{ active: sortOrder === localList.sortOrder }"
|
||||
>
|
||||
<i :class="icon" />
|
||||
{{ $t(`list.${sortOrder}`) }}
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="radio"
|
||||
:id="sortOrder"
|
||||
:value="sortOrder"
|
||||
v-model="localList.sortOrder"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<modal
|
||||
v-if="localList && localList.games && localList.games.length"
|
||||
ref="addList"
|
||||
:message="warningMessage"
|
||||
title="Are you sure?"
|
||||
:action-text="$t('list.delete')"
|
||||
action-button-class="danger"
|
||||
@action="deleteList"
|
||||
>
|
||||
<button
|
||||
class="danger"
|
||||
:title="$t('list.delete')"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
{{ $t('list.delete') }}
|
||||
</button>
|
||||
</modal>
|
||||
|
||||
<button
|
||||
v-else
|
||||
class="danger"
|
||||
:title="$t('list.delete')"
|
||||
@click="deleteList"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
{{ $t('list.delete') }}
|
||||
</button>
|
||||
|
||||
<!-- <button
|
||||
class="primary hollow"
|
||||
:title="$t('list.moveLeft')"
|
||||
:disabled="isFirst"
|
||||
@click="moveList(listIndex, listIndex - 1)"
|
||||
>
|
||||
<i class="fas fa-arrow-left" />
|
||||
|
||||
{{ $t('list.moveLeft') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="primary hollow"
|
||||
:title="$t('list.moveRight')"
|
||||
:disabled="isLast"
|
||||
@click="moveList(listIndex, listIndex + 1)"
|
||||
>
|
||||
{{ $t('list.moveRight') }}
|
||||
<i class="fas fa-arrow-right" />
|
||||
</button> -->
|
||||
|
||||
<button
|
||||
class="primary"
|
||||
:title="$t('global.save')"
|
||||
@click="save"
|
||||
>
|
||||
{{ $t('global.save') }}
|
||||
</button>
|
||||
</footer>
|
||||
</div>
|
||||
</modal>
|
||||
<button
|
||||
:title="$t('global.save')"
|
||||
class="primary"
|
||||
@click="save"
|
||||
>
|
||||
{{ $t('global.save') }}
|
||||
</button>
|
||||
</footer>
|
||||
</div>
|
||||
</modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -235,18 +250,18 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
section {
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
section {
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-bottom: $gp / 2;
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: $gp / 2;
|
||||
}
|
||||
|
||||
footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,50 +1,73 @@
|
|||
<template lang="html">
|
||||
<div>
|
||||
<div @click="open">
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
<div :class="['overlay', { show }]" @click="close">
|
||||
<div :class="['modal-content', { large, fixed: !title }]" @click.stop>
|
||||
<header>
|
||||
<h2 v-if="title">{{ title }}</h2>
|
||||
|
||||
<button class="secondary small" @click="close">
|
||||
<i class="fas fa-times" />
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<span v-if="message">{{ message }}</span>
|
||||
<slot name="content" v-else-if="show" />
|
||||
|
||||
<footer v-if="actionText">
|
||||
<button
|
||||
:class="actionButtonClass"
|
||||
:disabled="actionDisabled"
|
||||
@click="handleAction"
|
||||
>
|
||||
{{ actionText }}
|
||||
</button>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div @click="open">
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
<div
|
||||
:class="['overlay', { show }]"
|
||||
@click="close">
|
||||
<div
|
||||
:class="['modal-content', { large, fixed: !title }]"
|
||||
@click.stop>
|
||||
<header>
|
||||
<h2 v-if="title">{{ title }}</h2>
|
||||
|
||||
<button
|
||||
class="secondary small"
|
||||
@click="close">
|
||||
<i class="fas fa-times" />
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<span v-if="message">{{ message }}</span>
|
||||
<slot
|
||||
v-else-if="show"
|
||||
name="content" />
|
||||
|
||||
<footer v-if="actionText">
|
||||
<button
|
||||
:class="actionButtonClass"
|
||||
:disabled="actionDisabled"
|
||||
@click="handleAction"
|
||||
>
|
||||
{{ actionText }}
|
||||
</button>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
actionText: String,
|
||||
title: String,
|
||||
message: String,
|
||||
actionText: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
message: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
actionButtonClass: {
|
||||
type: String,
|
||||
default: 'primary',
|
||||
},
|
||||
actionDisabled: Boolean,
|
||||
large: Boolean,
|
||||
actionDisabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
large: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
@ -85,93 +108,93 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.overlay {
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
cursor: pointer;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
opacity: .1;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
transition: all 100ms linear;
|
||||
visibility: hidden;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
.overlay {
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
cursor: pointer;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
opacity: .1;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
transition: all 100ms linear;
|
||||
visibility: hidden;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
|
||||
&.show {
|
||||
visibility: visible;
|
||||
transition: all 100ms linear;
|
||||
opacity: 1;
|
||||
}
|
||||
&.show {
|
||||
visibility: visible;
|
||||
transition: all 100ms linear;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: var(--modal-background);
|
||||
color: var(--modal-text-color);
|
||||
width: 500px;
|
||||
height: auto;
|
||||
max-height: calc(100% - #{$gp * 4});
|
||||
overflow-y: auto;
|
||||
margin: $gp * 2 auto $gp;
|
||||
padding: 0;
|
||||
border-radius: $border-radius;
|
||||
cursor: default;
|
||||
|
||||
@media($small) {
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: var(--modal-background);
|
||||
color: var(--modal-text-color);
|
||||
width: 500px;
|
||||
height: auto;
|
||||
max-height: calc(100% - #{$gp * 4});
|
||||
overflow-y: auto;
|
||||
margin: $gp * 2 auto $gp;
|
||||
padding: 0;
|
||||
border-radius: $border-radius;
|
||||
cursor: default;
|
||||
|
||||
@media($small) {
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
&.large {
|
||||
width: 780px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
&.fixed {
|
||||
@media($small) {
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
header {
|
||||
position: fixed;
|
||||
right: $gp;
|
||||
|
||||
button {
|
||||
display: none;
|
||||
|
||||
@media($small) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.large {
|
||||
width: 780px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
header {
|
||||
&.fixed {
|
||||
@media($small) {
|
||||
display: flex;
|
||||
padding: $gp;
|
||||
z-index: 1;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
&.fixed {
|
||||
position: fixed;
|
||||
header {
|
||||
position: fixed;
|
||||
right: $gp;
|
||||
|
||||
button {
|
||||
display: none;
|
||||
|
||||
@media($small) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 0 $gp $gp;
|
||||
overflow-y: auto;
|
||||
}
|
||||
header {
|
||||
display: flex;
|
||||
padding: $gp;
|
||||
z-index: 1;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
footer {
|
||||
margin-top: $gp;
|
||||
&.fixed {
|
||||
position: fixed;
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 0 $gp $gp;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: $gp;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
<template lang="html">
|
||||
<nav>
|
||||
<router-link
|
||||
tag="button"
|
||||
class="logo"
|
||||
:to="{ name: logoRoute }"
|
||||
>
|
||||
<img src='/static/gamebrary-logo.png' />
|
||||
<nav>
|
||||
<router-link
|
||||
:to="{ name: logoRoute }"
|
||||
tag="button"
|
||||
class="logo"
|
||||
>
|
||||
<img src="/static/gamebrary-logo.png" >
|
||||
|
||||
{{ title }}
|
||||
</router-link>
|
||||
{{ title }}
|
||||
</router-link>
|
||||
|
||||
<settings v-if="showSettings" />
|
||||
</nav>
|
||||
<settings v-if="showSettings" />
|
||||
</nav>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -60,41 +60,40 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
nav {
|
||||
user-select: none;
|
||||
width: 100vw;
|
||||
height: $navHeight;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 $gp;
|
||||
color: var(--header-text-color);
|
||||
@import "~styles/styles";
|
||||
nav {
|
||||
user-select: none;
|
||||
width: 100vw;
|
||||
height: $navHeight;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 $gp;
|
||||
color: var(--header-text-color);
|
||||
|
||||
.logo {
|
||||
height: $navHeight;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: -$gp;
|
||||
text-transform: capitalize;
|
||||
.logo {
|
||||
height: $navHeight;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: -$gp;
|
||||
text-transform: capitalize;
|
||||
|
||||
img {
|
||||
height: 24px;
|
||||
margin-right: $gp / 4;
|
||||
}
|
||||
}
|
||||
img {
|
||||
height: 24px;
|
||||
margin-right: $gp / 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: $border-radius;
|
||||
img.avatar {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: $border-radius;
|
||||
|
||||
@media($small) {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
@media($small) {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -1,76 +1,89 @@
|
|||
<template lang="html">
|
||||
<div
|
||||
v-if="image || lines"
|
||||
:class="['placeholder', { 'has-image': image && lines > 0 }]"
|
||||
>
|
||||
<div
|
||||
:class="['placeholder', { 'has-image': image && lines > 0 }]"
|
||||
v-if="image || lines"
|
||||
>
|
||||
<div class="image" v-if="image" />
|
||||
v-if="image"
|
||||
class="image" />
|
||||
|
||||
<div class="text" v-if="lines">
|
||||
<div
|
||||
class="text-line"
|
||||
v-for="n in lines"
|
||||
:key="n"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="lines"
|
||||
class="text">
|
||||
<div
|
||||
v-for="n in lines"
|
||||
:key="n"
|
||||
class="text-line"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
image: Boolean,
|
||||
large: Boolean,
|
||||
lines: Number,
|
||||
image: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
large: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
lines: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.placeholder {
|
||||
max-width: 100%;
|
||||
.placeholder {
|
||||
max-width: 100%;
|
||||
|
||||
&.has-image {
|
||||
display: grid;
|
||||
grid-template-columns: 80px auto;
|
||||
grid-gap: $gp;
|
||||
}
|
||||
}
|
||||
&.has-image {
|
||||
display: grid;
|
||||
grid-template-columns: 80px auto;
|
||||
grid-gap: $gp;
|
||||
}
|
||||
}
|
||||
|
||||
// Animation
|
||||
@keyframes placeholder{
|
||||
0%{
|
||||
background-position: -468px 0
|
||||
}
|
||||
100%{
|
||||
background-position: 468px 0
|
||||
}
|
||||
}
|
||||
// Animation
|
||||
@keyframes placeholder{
|
||||
0%{
|
||||
background-position: -468px 0
|
||||
}
|
||||
100%{
|
||||
background-position: 468px 0
|
||||
}
|
||||
}
|
||||
|
||||
.animated-background {
|
||||
animation-duration: 1s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-iteration-count: infinite;
|
||||
animation-name: placeholder;
|
||||
animation-timing-function: linear;
|
||||
background: #e5e5e5;
|
||||
background: linear-gradient(to right, #e5e5e5 8%, #fff 18%, #e5e5e5 33%);
|
||||
background-size: 800px 104px;
|
||||
height: 96px;
|
||||
position: relative;
|
||||
}
|
||||
.animated-background {
|
||||
animation-duration: 1s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-iteration-count: infinite;
|
||||
animation-name: placeholder;
|
||||
animation-timing-function: linear;
|
||||
background: #e5e5e5;
|
||||
background: linear-gradient(to right, #e5e5e5 8%, #fff 18%, #e5e5e5 33%);
|
||||
background-size: 800px 104px;
|
||||
height: 96px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.image {
|
||||
width: var(--placeholder-image-width, 80px);
|
||||
height: var(--placeholder-image-height, 120px);
|
||||
@extend .animated-background;
|
||||
}
|
||||
.image {
|
||||
width: var(--placeholder-image-width, 80px);
|
||||
height: var(--placeholder-image-height, 120px);
|
||||
@extend .animated-background;
|
||||
}
|
||||
|
||||
.text-line {
|
||||
width: var(--placeholder-text-width, 100%);
|
||||
height: var(--placeholder-text-height, 12px);
|
||||
margin-bottom: $gp / 2;
|
||||
@extend .animated-background;
|
||||
}
|
||||
.text-line {
|
||||
width: var(--placeholder-text-width, 100%);
|
||||
height: var(--placeholder-text-height, 12px);
|
||||
margin-bottom: $gp / 2;
|
||||
@extend .animated-background;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
<template>
|
||||
<footer>
|
||||
<small>
|
||||
{{ $t('platforms.donateMessage') }}
|
||||
<a href="https://www.paypal.me/RomanCervantes/5" target="_blank">
|
||||
{{ $t('platforms.donating') }}
|
||||
</a>
|
||||
,
|
||||
<a href="https://github.com/romancm/gamebrary/issues" target="_blank">
|
||||
{{ $t('platforms.reportBugs') }}
|
||||
</a>
|
||||
{{$t('global.or')}}
|
||||
<a href="https://goo.gl/forms/r0juBCsZaUtJ03qb2" target="_blank">
|
||||
{{ $t('platforms.submitFeedback') }}
|
||||
</a>
|
||||
.
|
||||
</small>
|
||||
<footer>
|
||||
<small>
|
||||
{{ $t('platforms.donateMessage') }}
|
||||
<a
|
||||
href="https://www.paypal.me/RomanCervantes/5"
|
||||
target="_blank">
|
||||
{{ $t('platforms.donating') }}
|
||||
</a>
|
||||
,
|
||||
<a
|
||||
href="https://github.com/romancm/gamebrary/issues"
|
||||
target="_blank">
|
||||
{{ $t('platforms.reportBugs') }}
|
||||
</a>
|
||||
{{ $t('global.or') }}
|
||||
<a
|
||||
href="https://goo.gl/forms/r0juBCsZaUtJ03qb2"
|
||||
target="_blank">
|
||||
{{ $t('platforms.submitFeedback') }}
|
||||
</a>
|
||||
.
|
||||
</small>
|
||||
|
||||
<igdb-credit />
|
||||
</footer>
|
||||
<igdb-credit />
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -31,13 +37,13 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
footer {
|
||||
padding: $gp / 2 0;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--header-text-color);
|
||||
}
|
||||
footer {
|
||||
padding: $gp / 2 0;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--header-text-color);
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
<template lang="html">
|
||||
<div
|
||||
@click="changePlatform"
|
||||
:class="['platform', { clickable, square } ]"
|
||||
:style="style"
|
||||
<div
|
||||
:class="['platform', { clickable, square } ]"
|
||||
:style="style"
|
||||
@click="changePlatform"
|
||||
>
|
||||
<img
|
||||
:src="`/static/img/platforms/logos/${platform.code}.svg`"
|
||||
:alt="platform.name"
|
||||
>
|
||||
<img
|
||||
:src='`/static/img/platforms/logos/${platform.code}.svg`'
|
||||
:alt="platform.name"
|
||||
/>
|
||||
|
||||
<span v-if="showCount(platform)" class="game-count">
|
||||
<i class="fas fa-gamepad" />
|
||||
{{ getGameCount(platform.code) }}
|
||||
</span>
|
||||
</div>
|
||||
<span
|
||||
v-if="showCount(platform)"
|
||||
class="game-count">
|
||||
<i class="fas fa-gamepad" />
|
||||
{{ getGameCount(platform.code) }}
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -21,9 +23,18 @@ import { mapState } from 'vuex';
|
|||
|
||||
export default {
|
||||
props: {
|
||||
platform: Object,
|
||||
square: Boolean,
|
||||
clickable: Boolean,
|
||||
platform: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
square: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
clickable: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -52,8 +63,8 @@ export default {
|
|||
|
||||
ownedPlatform(platformCode) {
|
||||
const isOwned = this.gameLists
|
||||
&& this.gameLists[platformCode]
|
||||
&& Object.keys(this.gameLists[platformCode]).length;
|
||||
&& this.gameLists[platformCode]
|
||||
&& Object.keys(this.gameLists[platformCode]).length;
|
||||
|
||||
return isOwned && this.clickable;
|
||||
},
|
||||
|
@ -68,52 +79,53 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.platform {
|
||||
padding: $gp;
|
||||
display: flex;
|
||||
margin-bottom: $gp;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
width: 180px;
|
||||
height: 100px;
|
||||
.platform {
|
||||
padding: $gp;
|
||||
display: flex;
|
||||
margin-bottom: $gp;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
width: 180px;
|
||||
height: 100px;
|
||||
|
||||
&.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media($small) {
|
||||
padding: $gp / 2;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 80%;
|
||||
height: auto;
|
||||
|
||||
@media($small) {
|
||||
width: auto;
|
||||
height: 70px;
|
||||
max-height: 60%;
|
||||
}
|
||||
}
|
||||
|
||||
.game-count {
|
||||
padding-top: $gp / 3;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
background: var(--primary-background);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 0 $gp / 4;
|
||||
color: var(--primary-text-color);
|
||||
font-size: 10px;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
}
|
||||
&.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media($small) {
|
||||
padding: $gp / 2;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 80%;
|
||||
height: auto;
|
||||
|
||||
@media($small) {
|
||||
width: auto;
|
||||
height: 70px;
|
||||
max-height: 60%;
|
||||
}
|
||||
}
|
||||
|
||||
.game-count {
|
||||
padding-top: $gp / 3;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
background: var(--primary-background);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 0 $gp / 4;
|
||||
color: var(--primary-text-color);
|
||||
font-size: 10px;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
<template lang="html">
|
||||
<div class="releases">
|
||||
<template v-if="loaded">
|
||||
<div
|
||||
class="release"
|
||||
v-for="notification in releases"
|
||||
:key="notification.id"
|
||||
>
|
||||
<div class="release-info">
|
||||
<a class="link primary small hollow">
|
||||
{{ notification.tag_name }}
|
||||
</a>
|
||||
<div class="releases">
|
||||
<template v-if="loaded">
|
||||
<div
|
||||
v-for="notification in releases"
|
||||
:key="notification.id"
|
||||
class="release"
|
||||
>
|
||||
<div class="release-info">
|
||||
<a class="link primary small hollow">
|
||||
{{ notification.tag_name }}
|
||||
</a>
|
||||
|
||||
<div>
|
||||
<h3>{{ notification.name }}</h3>
|
||||
<small>
|
||||
{{ $t('releases.published', {
|
||||
date: formattedDate(notification.published_at)
|
||||
})}}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h3>{{ notification.name }}</h3>
|
||||
<small>
|
||||
{{ $t('releases.published', {
|
||||
date: formattedDate(notification.published_at)
|
||||
}) }}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<vue-markdown :source="notification.body" />
|
||||
</div>
|
||||
</template>
|
||||
<vue-markdown :source="notification.body" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<releases-placeholder v-else />
|
||||
</div>
|
||||
<releases-placeholder v-else />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -74,30 +74,30 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.release {
|
||||
margin-bottom: $gp;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
font-size: 12px;
|
||||
padding: $gp 0;
|
||||
.release {
|
||||
margin-bottom: $gp;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
font-size: 12px;
|
||||
padding: $gp 0;
|
||||
|
||||
.release-info {
|
||||
display: grid;
|
||||
grid-gap: $gp / 2;
|
||||
grid-template-columns: 50px auto;
|
||||
.release-info {
|
||||
display: grid;
|
||||
grid-gap: $gp / 2;
|
||||
grid-template-columns: 50px auto;
|
||||
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss">
|
||||
.releases img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.releases img {
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
<template lang="html">
|
||||
<div class="releases-placeholder">
|
||||
<div class="release" v-for="n in 3" :key="n">
|
||||
<div class="release-info">
|
||||
<button class="link info small hollow" disabled />
|
||||
<div class="releases-placeholder">
|
||||
<div
|
||||
v-for="n in 3"
|
||||
:key="n"
|
||||
class="release">
|
||||
<div class="release-info">
|
||||
<button
|
||||
class="link info small hollow"
|
||||
disabled />
|
||||
|
||||
<placeholder :lines="2" />
|
||||
</div>
|
||||
<placeholder :lines="2" />
|
||||
</div>
|
||||
|
||||
<placeholder :lines="3" />
|
||||
</div>
|
||||
<placeholder :lines="3" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -23,17 +28,17 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.release {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
margin: $gp 0;
|
||||
padding-bottom: $gp / 2;
|
||||
}
|
||||
.release {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
margin: $gp 0;
|
||||
padding-bottom: $gp / 2;
|
||||
}
|
||||
|
||||
.release-info {
|
||||
display: grid;
|
||||
grid-template-columns: 50px 30%;
|
||||
grid-gap: $gp;
|
||||
}
|
||||
.release-info {
|
||||
display: grid;
|
||||
grid-template-columns: 50px 30%;
|
||||
grid-gap: $gp;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -2,13 +2,27 @@
|
|||
<template lang="html">
|
||||
<div>
|
||||
<div class="github-buttons">
|
||||
<github-button href="https://github.com/romancm/gamebrary/subscription" data-show-count="true" aria-label="Watch romancm/gamebrary on GitHub">Watch</github-button>
|
||||
<github-button href="https://github.com/romancm/gamebrary" data-show-count="true" aria-label="Star romancm/gamebrary on GitHub">Star</github-button>
|
||||
<github-button href="https://github.com/romancm/gamebrary/fork" data-show-count="true" aria-label="Fork romancm/gamebrary on GitHub">Fork</github-button>
|
||||
<github-button href="https://github.com/romancm/gamebrary/issues" data-show-count="true" aria-label="Issue romancm/gamebrary on GitHub">Issue</github-button>
|
||||
<github-button
|
||||
href="https://github.com/romancm/gamebrary/subscription"
|
||||
data-show-count="true"
|
||||
aria-label="Watch romancm/gamebrary on GitHub">Watch</github-button>
|
||||
<github-button
|
||||
href="https://github.com/romancm/gamebrary"
|
||||
data-show-count="true"
|
||||
aria-label="Star romancm/gamebrary on GitHub">Star</github-button>
|
||||
<github-button
|
||||
href="https://github.com/romancm/gamebrary/fork"
|
||||
data-show-count="true"
|
||||
aria-label="Fork romancm/gamebrary on GitHub">Fork</github-button>
|
||||
<github-button
|
||||
href="https://github.com/romancm/gamebrary/issues"
|
||||
data-show-count="true"
|
||||
aria-label="Issue romancm/gamebrary on GitHub">Issue</github-button>
|
||||
</div>
|
||||
|
||||
<vue-markdown :source="readme" v-if="readme" />
|
||||
<vue-markdown
|
||||
v-if="readme"
|
||||
:source="readme" />
|
||||
|
||||
<footer>
|
||||
<i class="far fa-copyright" /> {{ moment().format('YYYY') }} Gamebrary
|
||||
|
|
|
@ -1,59 +1,62 @@
|
|||
<template lang="html">
|
||||
<section>
|
||||
<!-- <div class="setting">
|
||||
<i class="fas fa-users" />
|
||||
<h5>{{ $t('settings.public') }}</h5>
|
||||
<section>
|
||||
<!-- <div class="setting">
|
||||
<i class="fas fa-users" />
|
||||
<h5>{{ $t('settings.public') }}</h5>
|
||||
|
||||
<toggle-switch
|
||||
id="public"
|
||||
v-model="value[platform.code].public"
|
||||
/>
|
||||
</div> -->
|
||||
<toggle-switch
|
||||
id="public"
|
||||
v-model="value[platform.code].public"
|
||||
/>
|
||||
</div> -->
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-star-half-alt" />
|
||||
<h5>{{ $t('settings.ratings') }}</h5>
|
||||
<div class="setting">
|
||||
<i class="fas fa-star-half-alt" />
|
||||
<h5>{{ $t('settings.ratings') }}</h5>
|
||||
|
||||
<toggle-switch
|
||||
id="gameRatings"
|
||||
v-model="value[platform.code].hideGameRatings"
|
||||
/>
|
||||
</div>
|
||||
<toggle-switch
|
||||
id="gameRatings"
|
||||
v-model="value[platform.code].hideGameRatings"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<wallpaper-upload />
|
||||
<wallpaper-upload />
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-palette" />
|
||||
<h5>Global theme</h5>
|
||||
<div class="setting">
|
||||
<i class="fas fa-palette" />
|
||||
<h5>Global theme</h5>
|
||||
|
||||
<select v-model="value[platform.code].theme">
|
||||
<option v-for="{ id, name } in themes" :key="id" :value="id">
|
||||
{{ name }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<select v-model="value[platform.code].theme">
|
||||
<option
|
||||
v-for="{ id, name } in themes"
|
||||
:key="id"
|
||||
:value="id">
|
||||
{{ name }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-exclamation-triangle" />
|
||||
<h5>{{ $t('gameBoard.settings.dangerZone') }}</h5>
|
||||
<div class="setting">
|
||||
<i class="fas fa-exclamation-triangle" />
|
||||
<h5>{{ $t('gameBoard.settings.dangerZone') }}</h5>
|
||||
|
||||
<modal
|
||||
action-text="Delete forever"
|
||||
action-button-class="danger"
|
||||
:message="`Your ${platform.name} collection will be deleted forever.`"
|
||||
:title="`Delete ${platform.name} collection`"
|
||||
@action="deletePlatform"
|
||||
>
|
||||
<button
|
||||
class="small warning"
|
||||
:title="$t('list.delete')"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
Delete {{ platform.name }} collection
|
||||
</button>
|
||||
</modal>
|
||||
</div>
|
||||
</section>
|
||||
<modal
|
||||
:message="`Your ${platform.name} collection will be deleted forever.`"
|
||||
:title="`Delete ${platform.name} collection`"
|
||||
action-text="Delete forever"
|
||||
action-button-class="danger"
|
||||
@action="deletePlatform"
|
||||
>
|
||||
<button
|
||||
:title="$t('list.delete')"
|
||||
class="small warning"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
Delete {{ platform.name }} collection
|
||||
</button>
|
||||
</modal>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -71,7 +74,10 @@ export default {
|
|||
},
|
||||
|
||||
props: {
|
||||
value: Object,
|
||||
value: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
|
|
@ -1,27 +1,29 @@
|
|||
<template lang="html">
|
||||
<section>
|
||||
<h3>Platform page</h3>
|
||||
<section>
|
||||
<h3>Platform page</h3>
|
||||
|
||||
<div class="setting" v-if="hasLists">
|
||||
<i class="fas fa-user-check" />
|
||||
<h5>{{ $t('settings.ownedLists') }}</h5>
|
||||
<div
|
||||
v-if="hasLists"
|
||||
class="setting">
|
||||
<i class="fas fa-user-check" />
|
||||
<h5>{{ $t('settings.ownedLists') }}</h5>
|
||||
|
||||
<toggle-switch
|
||||
id="ownedListsOnly"
|
||||
v-model="value.ownedListsOnly"
|
||||
/>
|
||||
</div>
|
||||
<toggle-switch
|
||||
id="ownedListsOnly"
|
||||
v-model="value.ownedListsOnly"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-sort-alpha-down" />
|
||||
<h5>{{ $t('settings.sortPlatforms') }}</h5>
|
||||
<div class="setting">
|
||||
<i class="fas fa-sort-alpha-down" />
|
||||
<h5>{{ $t('settings.sortPlatforms') }}</h5>
|
||||
|
||||
<toggle-switch
|
||||
id="sortListsAlphabetically"
|
||||
v-model="value.sortListsAlphabetically"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
<toggle-switch
|
||||
id="sortListsAlphabetically"
|
||||
v-model="value.sortListsAlphabetically"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
<template lang="html">
|
||||
<section>
|
||||
<h3>General</h3>
|
||||
<section>
|
||||
<h3>General</h3>
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-language" />
|
||||
<h5>{{ $t('settings.language') }}</h5>
|
||||
<div class="setting">
|
||||
<i class="fas fa-language" />
|
||||
<h5>{{ $t('settings.language') }}</h5>
|
||||
|
||||
<select v-model="value.language">
|
||||
<option value="en">🇺🇸 {{ $t('settings.languages.en') }}</option>
|
||||
<option value="es">🇪🇸 {{ $t('settings.languages.es') }}</option>
|
||||
<option value="pl">🇵🇱 {{ $t('settings.languages.pl') }}</option>
|
||||
<option value="de">🇩🇪 {{ $t('settings.languages.de') }}</option>
|
||||
<option value="ar">🇦🇪 {{ $t('settings.languages.ar') }}</option>
|
||||
<option value="fr">🇫🇷 {{ $t('settings.languages.fr') }}</option>
|
||||
<option value="ja">🇯🇵 {{ $t('settings.languages.ja') }}</option>
|
||||
<option value="it">🇮🇹 {{ $t('settings.languages.it') }}</option>
|
||||
<option value="eu">🏴 {{ $t('settings.languages.eu') }}</option>
|
||||
<option value="cs">🇨🇿 {{ $t('settings.languages.cs') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
<small>Browser reload required</small>
|
||||
</section>
|
||||
<select v-model="value.language">
|
||||
<option value="en">🇺🇸 {{ $t('settings.languages.en') }}</option>
|
||||
<option value="es">🇪🇸 {{ $t('settings.languages.es') }}</option>
|
||||
<option value="pl">🇵🇱 {{ $t('settings.languages.pl') }}</option>
|
||||
<option value="de">🇩🇪 {{ $t('settings.languages.de') }}</option>
|
||||
<option value="ar">🇦🇪 {{ $t('settings.languages.ar') }}</option>
|
||||
<option value="fr">🇫🇷 {{ $t('settings.languages.fr') }}</option>
|
||||
<option value="ja">🇯🇵 {{ $t('settings.languages.ja') }}</option>
|
||||
<option value="it">🇮🇹 {{ $t('settings.languages.it') }}</option>
|
||||
<option value="eu">🏴 {{ $t('settings.languages.eu') }}</option>
|
||||
<option value="cs">🇨🇿 {{ $t('settings.languages.cs') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
<small>Browser reload required</small>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
value: Object,
|
||||
value: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -38,14 +41,14 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.reloading {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.reloading {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
select {
|
||||
margin: 0;
|
||||
}
|
||||
select {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,70 +1,72 @@
|
|||
<template lang="html">
|
||||
<div>
|
||||
<modal title="Manage tags">
|
||||
<div class="setting">
|
||||
<i class="fas fa-tags" />
|
||||
<h5>Tags</h5>
|
||||
<div>
|
||||
<modal title="Manage tags">
|
||||
<div class="setting">
|
||||
<i class="fas fa-tags" />
|
||||
<h5>Tags</h5>
|
||||
|
||||
<button class="primary">
|
||||
Manage tags
|
||||
</button>
|
||||
</div>
|
||||
<button class="primary">
|
||||
Manage tags
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div slot="content">
|
||||
<div class="tag-input">
|
||||
<input
|
||||
type="text"
|
||||
v-model="tagName"
|
||||
:placeholder="$t('tags.inputPlaceholder')"
|
||||
/>
|
||||
<div slot="content">
|
||||
<div class="tag-input">
|
||||
<input
|
||||
v-model="tagName"
|
||||
:placeholder="$t('tags.inputPlaceholder')"
|
||||
type="text"
|
||||
>
|
||||
|
||||
<input
|
||||
type="color"
|
||||
class="color-picker"
|
||||
:value="tagHex"
|
||||
@change="updateColor"
|
||||
/>
|
||||
</div>
|
||||
<input
|
||||
:value="tagHex"
|
||||
type="color"
|
||||
class="color-picker"
|
||||
@change="updateColor"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="tag-actions">
|
||||
<button
|
||||
class="secondary"
|
||||
:disabled="!tagName"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $t('global.cancel') }}
|
||||
</button>
|
||||
<div class="tag-actions">
|
||||
<button
|
||||
:disabled="!tagName"
|
||||
class="secondary"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $t('global.cancel') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="primary"
|
||||
:disabled="isDuplicate && !editing"
|
||||
@click="submit"
|
||||
>
|
||||
{{ actionLabel }}
|
||||
</button>
|
||||
</div>
|
||||
<button
|
||||
:disabled="isDuplicate && !editing"
|
||||
class="primary"
|
||||
@click="submit"
|
||||
>
|
||||
{{ actionLabel }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="tags" v-if="hasTags">
|
||||
<tag
|
||||
v-for="(tag, name) in localTags"
|
||||
:key="name"
|
||||
:label="name"
|
||||
:hex="tag.hex"
|
||||
@close="deleteTag(name)"
|
||||
/>
|
||||
<!-- @click.native="editTag(tag, name)" -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- <button
|
||||
class="small warning"
|
||||
:title="$t('list.delete')"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
Delete {{ platform.name }} collection
|
||||
</button> -->
|
||||
<div
|
||||
v-if="hasTags"
|
||||
class="tags">
|
||||
<tag
|
||||
v-for="(tag, name) in localTags"
|
||||
:key="name"
|
||||
:label="name"
|
||||
:hex="tag.hex"
|
||||
@close="deleteTag(name)"
|
||||
/>
|
||||
<!-- @click.native="editTag(tag, name)" -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- <button
|
||||
class="small warning"
|
||||
:title="$t('list.delete')"
|
||||
>
|
||||
<i class="far fa-trash-alt" />
|
||||
Delete {{ platform.name }} collection
|
||||
</button> -->
|
||||
|
||||
</modal>
|
||||
</div>
|
||||
</modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -107,7 +109,7 @@ export default {
|
|||
const b = parseInt(hexColor.substr(4, 2), 16);
|
||||
|
||||
// eslint-disable-next-line
|
||||
const yiq = ((r*299)+(g*587)+(b*114))/1000;
|
||||
const yiq = ((r*299)+(g*587)+(b*114))/1000;
|
||||
|
||||
return yiq >= 128 ? 'dark' : 'light';
|
||||
},
|
||||
|
@ -193,35 +195,35 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.tag-input {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 40px;
|
||||
grid-gap: $gp;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
.tag-input {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 40px;
|
||||
grid-gap: $gp;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
|
||||
.tag-actions {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
.tag-actions {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
|
||||
input {
|
||||
margin: 0;
|
||||
}
|
||||
input {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.color-picker {
|
||||
-webkit-appearance: none;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
.color-picker {
|
||||
-webkit-appearance: none;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.tag {
|
||||
margin: 0 $gp / 2 $gp / 2 0;
|
||||
}
|
||||
.tag {
|
||||
margin: 0 $gp / 2 $gp / 2 0;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,27 +1,36 @@
|
|||
<template lang="html">
|
||||
<span
|
||||
v-if="label && hex"
|
||||
:style="`background-color: ${hex}`"
|
||||
:class="['tag', textColor, { readonly }]"
|
||||
>
|
||||
<i
|
||||
v-if="!readonly"
|
||||
class="fas fa-times close"
|
||||
@click="close"
|
||||
/>
|
||||
<span
|
||||
v-if="label && hex"
|
||||
:style="`background-color: ${hex}`"
|
||||
:class="['tag', textColor, { readonly }]"
|
||||
>
|
||||
<i
|
||||
v-if="!readonly"
|
||||
class="fas fa-times close"
|
||||
@click="close"
|
||||
/>
|
||||
|
||||
<span @click="action">
|
||||
{{ label }}
|
||||
</span>
|
||||
<span @click="action">
|
||||
{{ label }}
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
readonly: Boolean,
|
||||
label: String,
|
||||
hex: String,
|
||||
readonly: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
hex: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
@ -33,7 +42,7 @@ export default {
|
|||
const b = parseInt(hexColor.substr(4, 2), 16);
|
||||
|
||||
// eslint-disable-next-line
|
||||
const yiq = ((r*299)+(g*587)+(b*114))/1000;
|
||||
const yiq = ((r*299)+(g*587)+(b*114))/1000;
|
||||
|
||||
return yiq >= 128 ? 'dark' : 'light';
|
||||
},
|
||||
|
@ -52,52 +61,52 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.tag {
|
||||
border-radius: 100px;
|
||||
box-shadow: 0 0px 1px #a5a2a2;
|
||||
padding: 0 $gp / 2 0 2px;
|
||||
min-height: 18px;
|
||||
font-size: $font-size-xsmall;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #555555;
|
||||
cursor: pointer;
|
||||
margin: 0 2px 2px 0;
|
||||
.tag {
|
||||
border-radius: 100px;
|
||||
box-shadow: 0 0px 1px #a5a2a2;
|
||||
padding: 0 $gp / 2 0 2px;
|
||||
min-height: 18px;
|
||||
font-size: $font-size-xsmall;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #555555;
|
||||
cursor: pointer;
|
||||
margin: 0 2px 2px 0;
|
||||
|
||||
&.readonly {
|
||||
padding: 0 $gp / 2;
|
||||
}
|
||||
|
||||
&.light { color: #fff; }
|
||||
&.dark { color: #fff; }
|
||||
&.readonly {
|
||||
padding: 0 $gp / 2;
|
||||
}
|
||||
|
||||
.close {
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 100%;
|
||||
margin-right: 4px;
|
||||
}
|
||||
&.light { color: #fff; }
|
||||
&.dark { color: #fff; }
|
||||
}
|
||||
|
||||
.light .close,
|
||||
.dark .close {
|
||||
&:hover {
|
||||
color: var(--danger-text-color);
|
||||
background-color: var(--danger-background);
|
||||
}
|
||||
}
|
||||
.close {
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 100%;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.light .close {
|
||||
background-color: rgba(85, 85, 85, .5);
|
||||
.light .close,
|
||||
.dark .close {
|
||||
&:hover {
|
||||
color: var(--danger-text-color);
|
||||
background-color: var(--danger-background);
|
||||
}
|
||||
}
|
||||
|
||||
.dark .close {
|
||||
background-color: rgba(229, 229, 229, .5);
|
||||
}
|
||||
.light .close {
|
||||
background-color: rgba(85, 85, 85, .5);
|
||||
}
|
||||
|
||||
.dark .close {
|
||||
background-color: rgba(229, 229, 229, .5);
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<template lang="html">
|
||||
<div
|
||||
:class="['toast', type, { show, 'has-image': imageUrl }]"
|
||||
@click="close"
|
||||
>
|
||||
<img :src="imageUrl" />
|
||||
<i :class="[iconName]" />
|
||||
<h4>{{ message }}</h4>
|
||||
</div>
|
||||
<div
|
||||
:class="['toast', type, { show, 'has-image': imageUrl }]"
|
||||
@click="close"
|
||||
>
|
||||
<img :src="imageUrl" >
|
||||
<i :class="[iconName]" />
|
||||
<h4>{{ message }}</h4>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -75,9 +75,9 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.toast {
|
||||
.toast {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: fixed;
|
||||
|
@ -92,39 +92,39 @@ export default {
|
|||
transition: all 200ms linear;
|
||||
|
||||
&.success {
|
||||
background: var(--success-background);
|
||||
color: var(--success-text-color);
|
||||
background: var(--success-background);
|
||||
color: var(--success-text-color);
|
||||
}
|
||||
|
||||
&.error {
|
||||
background: var(--danger-background);
|
||||
color: var(--danger-text-color);
|
||||
background: var(--danger-background);
|
||||
color: var(--danger-text-color);
|
||||
}
|
||||
|
||||
&.has-image {
|
||||
padding: $gp / 3;
|
||||
max-width: 240px;
|
||||
padding: $gp / 3;
|
||||
max-width: 240px;
|
||||
|
||||
h4 {
|
||||
font-size: 12px;
|
||||
}
|
||||
h4 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-right: $gp / 2;
|
||||
max-width: 50px;
|
||||
max-height: 50px;
|
||||
}
|
||||
img {
|
||||
margin-right: $gp / 2;
|
||||
max-width: 50px;
|
||||
max-height: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
i {
|
||||
margin-right: $gp / 2;
|
||||
font-size: 20px;
|
||||
margin-right: $gp / 2;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
&.show {
|
||||
bottom: $gp;
|
||||
opacity: 1;
|
||||
transition: all 200ms linear;
|
||||
bottom: $gp;
|
||||
opacity: 1;
|
||||
transition: all 200ms linear;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,23 +1,32 @@
|
|||
<template lang="html">
|
||||
<span class="toggle-switch">
|
||||
<p v-if="label">{{ label }}</p>
|
||||
<span class="toggle-switch">
|
||||
<p v-if="label">{{ label }}</p>
|
||||
|
||||
<input
|
||||
type="checkbox"
|
||||
:id="id"
|
||||
v-model="localValue"
|
||||
/>
|
||||
<input
|
||||
:id="id"
|
||||
v-model="localValue"
|
||||
type="checkbox"
|
||||
>
|
||||
|
||||
<label :for="id" />
|
||||
</span>
|
||||
<label :for="id" />
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
value: Boolean,
|
||||
id: String,
|
||||
label: String,
|
||||
value: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
id: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
@ -50,52 +59,52 @@ export default {
|
|||
@import "~styles/styles";
|
||||
|
||||
.toggle-switch {
|
||||
display: inline-flex;
|
||||
display: inline-flex;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: bold;
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input[type=checkbox]{
|
||||
height: 0;
|
||||
width: 0;
|
||||
visibility: hidden;
|
||||
|
||||
&:checked + label {
|
||||
background: var(--success-background);
|
||||
}
|
||||
|
||||
input[type=checkbox]{
|
||||
height: 0;
|
||||
width: 0;
|
||||
visibility: hidden;
|
||||
|
||||
&:checked + label {
|
||||
background: var(--success-background);
|
||||
}
|
||||
|
||||
&:checked + label:after {
|
||||
left: calc(100% - 3px);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
&:checked + label:after {
|
||||
left: calc(100% - 3px);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
text-indent: -9999px;
|
||||
width: 34px;
|
||||
height: 20px;
|
||||
background: grey;
|
||||
display: block;
|
||||
border-radius: 100px;
|
||||
position: relative;
|
||||
label {
|
||||
cursor: pointer;
|
||||
text-indent: -9999px;
|
||||
width: 34px;
|
||||
height: 20px;
|
||||
background: grey;
|
||||
display: block;
|
||||
border-radius: 100px;
|
||||
position: relative;
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: #fff;
|
||||
border-radius: 90px;
|
||||
transition: 0.3s;
|
||||
}
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 3px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: #fff;
|
||||
border-radius: 90px;
|
||||
transition: 0.3s;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,60 +1,68 @@
|
|||
<!-- TODO: refactor to live in platform settings -->
|
||||
<template>
|
||||
<div class="setting wallpaper-upload">
|
||||
<template v-if="wallpaperUrl">
|
||||
<div class="current-wallpaper">
|
||||
<i class="far fa-image" />
|
||||
<h5>{{ $t('settings.wallpaper.currentWallpaper') }}</h5>
|
||||
</div>
|
||||
<div class="setting wallpaper-upload">
|
||||
<template v-if="wallpaperUrl">
|
||||
<div class="current-wallpaper">
|
||||
<i class="far fa-image" />
|
||||
<h5>{{ $t('settings.wallpaper.currentWallpaper') }}</h5>
|
||||
</div>
|
||||
|
||||
<div></div>
|
||||
<div/>
|
||||
|
||||
<div>
|
||||
<modal
|
||||
ref="addList"
|
||||
:title="$t('settings.wallpaper.currentWallpaper')"
|
||||
large
|
||||
action-text="Remove wallpaper"
|
||||
@action="removeWallpaper"
|
||||
>
|
||||
<img
|
||||
v-if="wallpaperUrl"
|
||||
class="preview"
|
||||
:src="wallpaperUrl"
|
||||
alt="Uploaded wallpaper"
|
||||
/>
|
||||
<div>
|
||||
<modal
|
||||
ref="addList"
|
||||
:title="$t('settings.wallpaper.currentWallpaper')"
|
||||
large
|
||||
action-text="Remove wallpaper"
|
||||
@action="removeWallpaper"
|
||||
>
|
||||
<img
|
||||
v-if="wallpaperUrl"
|
||||
:src="wallpaperUrl"
|
||||
class="preview"
|
||||
alt="Uploaded wallpaper"
|
||||
>
|
||||
|
||||
<div slot="content" class="wallpaper-preview">
|
||||
<img
|
||||
v-if="wallpaperUrl"
|
||||
:src="wallpaperUrl"
|
||||
alt="Uploaded wallpaper"
|
||||
/>
|
||||
</div>
|
||||
</modal>
|
||||
</div>
|
||||
</template>
|
||||
<div
|
||||
slot="content"
|
||||
class="wallpaper-preview">
|
||||
<img
|
||||
v-if="wallpaperUrl"
|
||||
:src="wallpaperUrl"
|
||||
alt="Uploaded wallpaper"
|
||||
>
|
||||
</div>
|
||||
</modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<i class="far fa-image" />
|
||||
<h5>{{ $t('settings.wallpaper.title') }}</h5>
|
||||
<template v-else>
|
||||
<i class="far fa-image" />
|
||||
<h5>{{ $t('settings.wallpaper.title') }}</h5>
|
||||
|
||||
<button class="primary small" @click="triggerUpload">
|
||||
<i class="fas fa-sync-alt fast-spin" v-if="loading" />
|
||||
<i class="fas fa-cloud-upload-alt" v-else />
|
||||
Upload file
|
||||
</button>
|
||||
<button
|
||||
class="primary small"
|
||||
@click="triggerUpload">
|
||||
<i
|
||||
v-if="loading"
|
||||
class="fas fa-sync-alt fast-spin" />
|
||||
<i
|
||||
v-else
|
||||
class="fas fa-cloud-upload-alt" />
|
||||
Upload file
|
||||
</button>
|
||||
|
||||
<input
|
||||
hidden
|
||||
class="file-input"
|
||||
ref="fileInput"
|
||||
type="file"
|
||||
accept='image/*'
|
||||
@change="handleUpload"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
<input
|
||||
ref="fileInput"
|
||||
hidden
|
||||
class="file-input"
|
||||
type="file"
|
||||
accept="image/*"
|
||||
@change="handleUpload"
|
||||
>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -146,42 +154,42 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
img.preview {
|
||||
max-width: 100px;
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
border: 1px solid transparent;
|
||||
border-radius: $border-radius;
|
||||
img.preview {
|
||||
max-width: 100px;
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
border: 1px solid transparent;
|
||||
border-radius: $border-radius;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--accent-color);
|
||||
}
|
||||
&:hover {
|
||||
border-color: var(--accent-color);
|
||||
}
|
||||
}
|
||||
|
||||
.current-wallpaper {
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
grid-gap: $gp / 2;
|
||||
margin-right: $gp;
|
||||
.current-wallpaper {
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
grid-gap: $gp / 2;
|
||||
margin-right: $gp;
|
||||
}
|
||||
|
||||
.file-input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wallpaper-preview {
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.file-input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wallpaper-preview {
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.remove-wallpaper {
|
||||
position: absolute;
|
||||
right: 36px;
|
||||
margin-top: 4px;
|
||||
width: 20px;
|
||||
}
|
||||
.remove-wallpaper {
|
||||
position: absolute;
|
||||
right: 36px;
|
||||
margin-top: 4px;
|
||||
width: 20px;
|
||||
}
|
||||
</style>
|
||||
|
|
334
src/i18n/ar.json
334
src/i18n/ar.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "الى الخلف",
|
||||
"save": "حفظ",
|
||||
"cancel": "إلغاء",
|
||||
"create": "خلق",
|
||||
"filter": "منقي",
|
||||
"by": "بواسطة",
|
||||
"no": "لا",
|
||||
"yes": "نعم فعلا",
|
||||
"or": "أو",
|
||||
"returnHome": "العودة إلى المنزل",
|
||||
"pageNotFound": "الصفحة غير موجودة"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "خطأ في تحميل البيانات"
|
||||
},
|
||||
"releases": {
|
||||
"published": "تاريخ النشر}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary مجاني ومفتوح المصدر ، والنظر في المساعدة في تطويرها",
|
||||
"donating": "تبرع",
|
||||
"reportBugs": "الإبلاغ عن الأخطاء",
|
||||
"submitFeedback": "تقديم ردود الفعل"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "مدعوم من IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "خلفيات مخصصة",
|
||||
"shareLink": "روابط قابلة للمشاركة (تجريبية)",
|
||||
"dangerZone": "منطقة الخطر"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "انتهت الجلسة",
|
||||
"login": "تسجيل الدخول",
|
||||
"exit": "ىخرج"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "أشرطة فيديو",
|
||||
"screenshots": "لقطات",
|
||||
"perspective": "إنطباع",
|
||||
"releaseDate": "يوم الاصدار",
|
||||
"timeToBeat": "الوقت يداهمك",
|
||||
"gameModes": "نوع اللعبة",
|
||||
"genres": "نوع أدبي",
|
||||
"gamePlatforms": "متاح أيضًا لـ:",
|
||||
"developers": "مطور",
|
||||
"publishers": "الناشرون",
|
||||
"removeFromList": "ازله من القائمة",
|
||||
"links": {
|
||||
"official": "موقع رسمي",
|
||||
"wikia": "فندوم",
|
||||
"wikipedia": "ويكيبيديا",
|
||||
"facebook": "فيس بوك",
|
||||
"twitter": "تغريد",
|
||||
"twitch": "نشل",
|
||||
"instagram": "إينستاجرام",
|
||||
"youtube": "موقع YouTube",
|
||||
"iphone": "دائرة الرقابة الداخلية",
|
||||
"ipad": "اى باد",
|
||||
"android": "لعب المتجر",
|
||||
"steam": "بخار",
|
||||
"reddit": "رديت",
|
||||
"discord": "خلاف",
|
||||
"google_plus": "جوجل بلس",
|
||||
"tumblr": "نعرفكم",
|
||||
"linkedin": "تابعني على",
|
||||
"pinterest": "موقع Pinterest",
|
||||
"soundcloud": "SoundCloud لل"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "تحرير اسم القائمة",
|
||||
"type": "نوع القائمة",
|
||||
"placeholder": "اكتب اسم قائمتك هنا",
|
||||
"suggestions": {
|
||||
"owned": "مملوكة",
|
||||
"wishlist": "الأماني",
|
||||
"currentlyPlaying": "يلعب حاليا",
|
||||
"completed": "منجز"
|
||||
},
|
||||
"input": "أدخل بنفسك",
|
||||
"add": "اضف قائمة",
|
||||
"duplicateWarning": "لديك بالفعل قائمة بهذا الاسم",
|
||||
"getStarted": "البدء!",
|
||||
"addFirstTime": "مرحبا ، أضف قائمتك الأولى!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "أحرز هدفا",
|
||||
"sortByReleaseDate": "تاريخ",
|
||||
"sortByCustom": "العادة",
|
||||
"delete": "حذف",
|
||||
"moveLeft": "تحرك يسارا",
|
||||
"moveRight": "تحرك يمينا",
|
||||
"emptyList": "هذه القائمة فارغة",
|
||||
"addGame": "إضافة اللعبة",
|
||||
"view": "عرض القائمة",
|
||||
"moveList": "نقل القائمة",
|
||||
"sortList": "قائمة الفرز",
|
||||
"coversSizeTitle": "يغطي عبر",
|
||||
"views": {
|
||||
"single": "افتراضي",
|
||||
"wide": "المدمج",
|
||||
"text": "نص فقط",
|
||||
"grid": "شبكة"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "الى الخلف",
|
||||
"save": "حفظ",
|
||||
"cancel": "إلغاء",
|
||||
"create": "خلق",
|
||||
"filter": "منقي",
|
||||
"by": "بواسطة",
|
||||
"no": "لا",
|
||||
"yes": "نعم فعلا",
|
||||
"or": "أو",
|
||||
"returnHome": "العودة إلى المنزل",
|
||||
"pageNotFound": "الصفحة غير موجودة"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "خطأ في تحميل البيانات"
|
||||
},
|
||||
"releases": {
|
||||
"published": "تاريخ النشر}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary مجاني ومفتوح المصدر ، والنظر في المساعدة في تطويرها",
|
||||
"donating": "تبرع",
|
||||
"reportBugs": "الإبلاغ عن الأخطاء",
|
||||
"submitFeedback": "تقديم ردود الفعل"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "مدعوم من IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "حول",
|
||||
"platforms": "منصات",
|
||||
"gameBoard": "مجلس لعبة",
|
||||
"tags": "الكلمات",
|
||||
"account": "الحساب",
|
||||
"global": "عالمي",
|
||||
"darkTheme": "موضوع الظلام",
|
||||
"reloading": "إعادة ...",
|
||||
"releases": "إطلاق",
|
||||
"newsletter": "تلقي رسائل البريد الإلكتروني المحدثة (قريبًا)",
|
||||
"branding": "العلامة التجارية للمنصة (الألوان ، والشعار ، الخ ...)",
|
||||
"language": "لغة",
|
||||
"languages": {
|
||||
"en": "الإنجليزية",
|
||||
"es": "الأسبانية",
|
||||
"pl": "البولندي",
|
||||
"de": "ألمانية",
|
||||
"ar": "عربى",
|
||||
"fr": "الفرنسية",
|
||||
"it": "الإيطالي",
|
||||
"eu": "الباسكي",
|
||||
"cs": "تشيكي",
|
||||
"ja": "اليابانية"
|
||||
},
|
||||
"ownedLists": "فقط عرض منصات بلدي",
|
||||
"sortPlatforms": "فرز المنصات أبجديا",
|
||||
"ratings": "إخفاء النتيجة اللعبة",
|
||||
"signOut": "خروج",
|
||||
"wallpaper": {
|
||||
"title": "تحميل خلفية",
|
||||
"transparency": "السماح بالشفافية",
|
||||
"currentWallpaper": "خلفية الحالية",
|
||||
"removeWallpaper": "إزالة خلفية"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "حذف الحساب",
|
||||
"message": "سيتم حذف بيانات حسابك إلى الأبد.",
|
||||
"title": "هل أنت واثق؟"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "علامات اللعبة",
|
||||
"addTag": "إضافة علامة",
|
||||
"createTag": "إنشاء علامة",
|
||||
"inputPlaceholder": "اسم اليوم",
|
||||
"applyTag": "تطبيق العلامة",
|
||||
"useTags": "استخدم العلامات لتنظيم الألعاب بشكل أفضل"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "إضافة ألعاب إلى",
|
||||
"inputPlaceholder": "ابحث هنا",
|
||||
"alreadyInList": "من نتائج البحث بالفعل في قائمتك",
|
||||
"noResultsFound": "لا نتائج",
|
||||
"missingGame": "في عداد المفقودين لعبة؟ مساعدة المجتمع و",
|
||||
"addToIGDB": "إضافته إلى IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "اضف ملاحظة"
|
||||
"wallpaper": "خلفيات مخصصة",
|
||||
"shareLink": "روابط قابلة للمشاركة (تجريبية)",
|
||||
"dangerZone": "منطقة الخطر"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "انتهت الجلسة",
|
||||
"login": "تسجيل الدخول",
|
||||
"exit": "ىخرج"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "أشرطة فيديو",
|
||||
"screenshots": "لقطات",
|
||||
"perspective": "إنطباع",
|
||||
"releaseDate": "يوم الاصدار",
|
||||
"timeToBeat": "الوقت يداهمك",
|
||||
"gameModes": "نوع اللعبة",
|
||||
"genres": "نوع أدبي",
|
||||
"gamePlatforms": "متاح أيضًا لـ:",
|
||||
"developers": "مطور",
|
||||
"publishers": "الناشرون",
|
||||
"removeFromList": "ازله من القائمة",
|
||||
"links": {
|
||||
"official": "موقع رسمي",
|
||||
"wikia": "فندوم",
|
||||
"wikipedia": "ويكيبيديا",
|
||||
"facebook": "فيس بوك",
|
||||
"twitter": "تغريد",
|
||||
"twitch": "نشل",
|
||||
"instagram": "إينستاجرام",
|
||||
"youtube": "موقع YouTube",
|
||||
"iphone": "دائرة الرقابة الداخلية",
|
||||
"ipad": "اى باد",
|
||||
"android": "لعب المتجر",
|
||||
"steam": "بخار",
|
||||
"reddit": "رديت",
|
||||
"discord": "خلاف",
|
||||
"google_plus": "جوجل بلس",
|
||||
"tumblr": "نعرفكم",
|
||||
"linkedin": "تابعني على",
|
||||
"pinterest": "موقع Pinterest",
|
||||
"soundcloud": "SoundCloud لل"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "تحرير اسم القائمة",
|
||||
"type": "نوع القائمة",
|
||||
"placeholder": "اكتب اسم قائمتك هنا",
|
||||
"suggestions": {
|
||||
"owned": "مملوكة",
|
||||
"wishlist": "الأماني",
|
||||
"currentlyPlaying": "يلعب حاليا",
|
||||
"completed": "منجز"
|
||||
},
|
||||
"input": "أدخل بنفسك",
|
||||
"add": "اضف قائمة",
|
||||
"duplicateWarning": "لديك بالفعل قائمة بهذا الاسم",
|
||||
"getStarted": "البدء!",
|
||||
"addFirstTime": "مرحبا ، أضف قائمتك الأولى!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "أحرز هدفا",
|
||||
"sortByReleaseDate": "تاريخ",
|
||||
"sortByCustom": "العادة",
|
||||
"delete": "حذف",
|
||||
"moveLeft": "تحرك يسارا",
|
||||
"moveRight": "تحرك يمينا",
|
||||
"emptyList": "هذه القائمة فارغة",
|
||||
"addGame": "إضافة اللعبة",
|
||||
"view": "عرض القائمة",
|
||||
"moveList": "نقل القائمة",
|
||||
"sortList": "قائمة الفرز",
|
||||
"coversSizeTitle": "يغطي عبر",
|
||||
"views": {
|
||||
"single": "افتراضي",
|
||||
"wide": "المدمج",
|
||||
"text": "نص فقط",
|
||||
"grid": "شبكة"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "حول",
|
||||
"platforms": "منصات",
|
||||
"gameBoard": "مجلس لعبة",
|
||||
"tags": "الكلمات",
|
||||
"account": "الحساب",
|
||||
"global": "عالمي",
|
||||
"darkTheme": "موضوع الظلام",
|
||||
"reloading": "إعادة ...",
|
||||
"releases": "إطلاق",
|
||||
"newsletter": "تلقي رسائل البريد الإلكتروني المحدثة (قريبًا)",
|
||||
"branding": "العلامة التجارية للمنصة (الألوان ، والشعار ، الخ ...)",
|
||||
"language": "لغة",
|
||||
"languages": {
|
||||
"en": "الإنجليزية",
|
||||
"es": "الأسبانية",
|
||||
"pl": "البولندي",
|
||||
"de": "ألمانية",
|
||||
"ar": "عربى",
|
||||
"fr": "الفرنسية",
|
||||
"it": "الإيطالي",
|
||||
"eu": "الباسكي",
|
||||
"cs": "تشيكي",
|
||||
"ja": "اليابانية"
|
||||
},
|
||||
"ownedLists": "فقط عرض منصات بلدي",
|
||||
"sortPlatforms": "فرز المنصات أبجديا",
|
||||
"ratings": "إخفاء النتيجة اللعبة",
|
||||
"signOut": "خروج",
|
||||
"wallpaper": {
|
||||
"title": "تحميل خلفية",
|
||||
"transparency": "السماح بالشفافية",
|
||||
"currentWallpaper": "خلفية الحالية",
|
||||
"removeWallpaper": "إزالة خلفية"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "حذف الحساب",
|
||||
"message": "سيتم حذف بيانات حسابك إلى الأبد.",
|
||||
"title": "هل أنت واثق؟"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "علامات اللعبة",
|
||||
"addTag": "إضافة علامة",
|
||||
"createTag": "إنشاء علامة",
|
||||
"inputPlaceholder": "اسم اليوم",
|
||||
"applyTag": "تطبيق العلامة",
|
||||
"useTags": "استخدم العلامات لتنظيم الألعاب بشكل أفضل"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "إضافة ألعاب إلى",
|
||||
"inputPlaceholder": "ابحث هنا",
|
||||
"alreadyInList": "من نتائج البحث بالفعل في قائمتك",
|
||||
"noResultsFound": "لا نتائج",
|
||||
"missingGame": "في عداد المفقودين لعبة؟ مساعدة المجتمع و",
|
||||
"addToIGDB": "إضافته إلى IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "اضف ملاحظة"
|
||||
}
|
||||
}
|
336
src/i18n/cs.json
336
src/i18n/cs.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Zadní",
|
||||
"save": "Uložit",
|
||||
"cancel": "zrušení",
|
||||
"create": "Vytvořit",
|
||||
"filter": "Filtr",
|
||||
"by": "podle",
|
||||
"no": "Ne",
|
||||
"yes": "Ano",
|
||||
"or": "nebo",
|
||||
"returnHome": "Vrátit se domů",
|
||||
"pageNotFound": "Stránka nenalezena"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Při načítání dat došlo k chybě"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Zveřejněno {date}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary je bezplatný a otevřený zdroj, zvažte pomoc při jeho vývoji",
|
||||
"donating": "darování",
|
||||
"reportBugs": "hlášení chyb",
|
||||
"submitFeedback": "odeslání zpětné vazby"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Běží na IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Vlastní tapety",
|
||||
"shareLink": "Sdílené odkazy (experimentální)",
|
||||
"dangerZone": "Nebezpečná zóna"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Relace vypršela",
|
||||
"login": "Přihlásit se",
|
||||
"exit": "Výstup"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videa",
|
||||
"screenshots": "Screenshoty",
|
||||
"perspective": "Perspektivní",
|
||||
"releaseDate": "Datum vydání",
|
||||
"timeToBeat": "Je čas porazit",
|
||||
"gameModes": "Herní mód",
|
||||
"genres": "Žánr",
|
||||
"gamePlatforms": "K dispozici také pro:",
|
||||
"developers": "Vývojář",
|
||||
"publishers": "Vydavatelé",
|
||||
"removeFromList": "Odstranit ze seznamu",
|
||||
"links": {
|
||||
"official": "Oficiální stránka",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Cvrlikání",
|
||||
"twitch": "Škubnutí",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Obchod Play",
|
||||
"steam": "Pára",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Svár",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Upravit název seznamu",
|
||||
"type": "Typ seznamu",
|
||||
"placeholder": "Sem zadejte název seznamu",
|
||||
"suggestions": {
|
||||
"owned": "Vlastní",
|
||||
"wishlist": "Seznam přání",
|
||||
"currentlyPlaying": "Právě hraje",
|
||||
"completed": "Dokončeno"
|
||||
},
|
||||
"input": "Zadejte svůj vlastní",
|
||||
"add": "Přidat seznam",
|
||||
"duplicateWarning": "Již máte seznam s tímto názvem",
|
||||
"getStarted": "Začít!",
|
||||
"addFirstTime": "Vítejte, přidejte svůj první seznam!",
|
||||
"sortByName": "",
|
||||
"sortByRating": "Skóre",
|
||||
"sortByReleaseDate": "datum",
|
||||
"sortByCustom": "Zvyk",
|
||||
"delete": "Odstranit",
|
||||
"moveLeft": "Pohyb doleva",
|
||||
"moveRight": "Pohyb vpravo",
|
||||
"emptyList": "Tento seznam je prázdný",
|
||||
"addGame": "Přidat hru",
|
||||
"view": "Zobrazení seznamu",
|
||||
"moveList": "Přesunout seznam",
|
||||
"sortList": "Seřadit seznam",
|
||||
"coversSizeTitle": "Přikrývá se",
|
||||
"views": {
|
||||
"single": "Výchozí",
|
||||
"wide": "Kompaktní",
|
||||
"text": "Pouze text",
|
||||
"grid": "Mřížka"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Zadní",
|
||||
"save": "Uložit",
|
||||
"cancel": "zrušení",
|
||||
"create": "Vytvořit",
|
||||
"filter": "Filtr",
|
||||
"by": "podle",
|
||||
"no": "Ne",
|
||||
"yes": "Ano",
|
||||
"or": "nebo",
|
||||
"returnHome": "Vrátit se domů",
|
||||
"pageNotFound": "Stránka nenalezena"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Při načítání dat došlo k chybě"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Zveřejněno {date}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary je bezplatný a otevřený zdroj, zvažte pomoc při jeho vývoji",
|
||||
"donating": "darování",
|
||||
"reportBugs": "hlášení chyb",
|
||||
"submitFeedback": "odeslání zpětné vazby"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Běží na IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "O",
|
||||
"platforms": "Platformy",
|
||||
"gameBoard": "Hrací deska",
|
||||
"tags": "Značky",
|
||||
"account": "Účet",
|
||||
"global": "Globální",
|
||||
"darkTheme": "Tmavé téma",
|
||||
"reloading": "Přebíjení...",
|
||||
"releases": "Vydání",
|
||||
"newsletter": "Dostávat aktualizační e-maily (již brzy)",
|
||||
"branding": "Značky platforem (barvy, logo atd.)",
|
||||
"language": "Jazyk",
|
||||
"languages": {
|
||||
"en": "Angličtina",
|
||||
"es": "španělština",
|
||||
"pl": "polština",
|
||||
"de": "Němec",
|
||||
"ar": "arabština",
|
||||
"fr": "francouzština",
|
||||
"it": "italština",
|
||||
"eu": "Baskicko",
|
||||
"cs": "čeština",
|
||||
"ja": "japonský"
|
||||
},
|
||||
"ownedLists": "Zobrazovat pouze mé platformy",
|
||||
"sortPlatforms": "Seřadit platformy abecedně",
|
||||
"ratings": "Skrýt skóre hry",
|
||||
"signOut": "Odhlásit se",
|
||||
"wallpaper": {
|
||||
"title": "Nahrajte tapetu",
|
||||
"transparency": "Povolit průhlednost",
|
||||
"currentWallpaper": "Aktuální tapeta",
|
||||
"removeWallpaper": "Odstraňte tapetu"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "smazat účet",
|
||||
"message": "Data vašeho účtu budou navždy smazána.",
|
||||
"title": "Jsi si jistá?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Herní štítky",
|
||||
"addTag": "Přidat značku",
|
||||
"createTag": "Vytvořit značku",
|
||||
"inputPlaceholder": "Název dne",
|
||||
"applyTag": "Použít značku",
|
||||
"useTags": "Pomocí značek můžete lépe organizovat své hry"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Přidat hry do",
|
||||
"inputPlaceholder": "Hledej tady",
|
||||
"alreadyInList": "z výsledků vyhledávání již ve vašem seznamu",
|
||||
"noResultsFound": "Žádné výsledky",
|
||||
"missingGame": "Chybí vám hra? Pomozte komunitě a",
|
||||
"addToIGDB": "Přidejte ji do IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Přidat poznámku"
|
||||
"wallpaper": "Vlastní tapety",
|
||||
"shareLink": "Sdílené odkazy (experimentální)",
|
||||
"dangerZone": "Nebezpečná zóna"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Relace vypršela",
|
||||
"login": "Přihlásit se",
|
||||
"exit": "Výstup"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videa",
|
||||
"screenshots": "Screenshoty",
|
||||
"perspective": "Perspektivní",
|
||||
"releaseDate": "Datum vydání",
|
||||
"timeToBeat": "Je čas porazit",
|
||||
"gameModes": "Herní mód",
|
||||
"genres": "Žánr",
|
||||
"gamePlatforms": "K dispozici také pro:",
|
||||
"developers": "Vývojář",
|
||||
"publishers": "Vydavatelé",
|
||||
"removeFromList": "Odstranit ze seznamu",
|
||||
"links": {
|
||||
"official": "Oficiální stránka",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Cvrlikání",
|
||||
"twitch": "Škubnutí",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Obchod Play",
|
||||
"steam": "Pára",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Svár",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Upravit název seznamu",
|
||||
"type": "Typ seznamu",
|
||||
"placeholder": "Sem zadejte název seznamu",
|
||||
"suggestions": {
|
||||
"owned": "Vlastní",
|
||||
"wishlist": "Seznam přání",
|
||||
"currentlyPlaying": "Právě hraje",
|
||||
"completed": "Dokončeno"
|
||||
},
|
||||
"input": "Zadejte svůj vlastní",
|
||||
"add": "Přidat seznam",
|
||||
"duplicateWarning": "Již máte seznam s tímto názvem",
|
||||
"getStarted": "Začít!",
|
||||
"addFirstTime": "Vítejte, přidejte svůj první seznam!",
|
||||
"sortByName": "",
|
||||
"sortByRating": "Skóre",
|
||||
"sortByReleaseDate": "datum",
|
||||
"sortByCustom": "Zvyk",
|
||||
"delete": "Odstranit",
|
||||
"moveLeft": "Pohyb doleva",
|
||||
"moveRight": "Pohyb vpravo",
|
||||
"emptyList": "Tento seznam je prázdný",
|
||||
"addGame": "Přidat hru",
|
||||
"view": "Zobrazení seznamu",
|
||||
"moveList": "Přesunout seznam",
|
||||
"sortList": "Seřadit seznam",
|
||||
"coversSizeTitle": "Přikrývá se",
|
||||
"views": {
|
||||
"single": "Výchozí",
|
||||
"wide": "Kompaktní",
|
||||
"text": "Pouze text",
|
||||
"grid": "Mřížka"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "O",
|
||||
"platforms": "Platformy",
|
||||
"gameBoard": "Hrací deska",
|
||||
"tags": "Značky",
|
||||
"account": "Účet",
|
||||
"global": "Globální",
|
||||
"darkTheme": "Tmavé téma",
|
||||
"reloading": "Přebíjení...",
|
||||
"releases": "Vydání",
|
||||
"newsletter": "Dostávat aktualizační e-maily (již brzy)",
|
||||
"branding": "Značky platforem (barvy, logo atd.)",
|
||||
"language": "Jazyk",
|
||||
"languages": {
|
||||
"en": "Angličtina",
|
||||
"es": "španělština",
|
||||
"pl": "polština",
|
||||
"de": "Němec",
|
||||
"ar": "arabština",
|
||||
"fr": "francouzština",
|
||||
"it": "italština",
|
||||
"eu": "Baskicko",
|
||||
"cs": "čeština",
|
||||
"ja": "japonský"
|
||||
},
|
||||
"ownedLists": "Zobrazovat pouze mé platformy",
|
||||
"sortPlatforms": "Seřadit platformy abecedně",
|
||||
"ratings": "Skrýt skóre hry",
|
||||
"signOut": "Odhlásit se",
|
||||
"wallpaper": {
|
||||
"title": "Nahrajte tapetu",
|
||||
"transparency": "Povolit průhlednost",
|
||||
"currentWallpaper": "Aktuální tapeta",
|
||||
"removeWallpaper": "Odstraňte tapetu"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "smazat účet",
|
||||
"message": "Data vašeho účtu budou navždy smazána.",
|
||||
"title": "Jsi si jistá?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Herní štítky",
|
||||
"addTag": "Přidat značku",
|
||||
"createTag": "Vytvořit značku",
|
||||
"inputPlaceholder": "Název dne",
|
||||
"applyTag": "Použít značku",
|
||||
"useTags": "Pomocí značek můžete lépe organizovat své hry"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Přidat hry do",
|
||||
"inputPlaceholder": "Hledej tady",
|
||||
"alreadyInList": "z výsledků vyhledávání již ve vašem seznamu",
|
||||
"noResultsFound": "Žádné výsledky",
|
||||
"missingGame": "Chybí vám hra? Pomozte komunitě a",
|
||||
"addToIGDB": "Přidejte ji do IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Přidat poznámku"
|
||||
}
|
||||
}
|
||||
|
|
334
src/i18n/de.json
334
src/i18n/de.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Zurück",
|
||||
"save": "sparen",
|
||||
"cancel": "Stornieren",
|
||||
"create": "Erstellen",
|
||||
"filter": "Filter",
|
||||
"by": "durch",
|
||||
"no": "Nein",
|
||||
"yes": "Ja",
|
||||
"or": "oder",
|
||||
"returnHome": "Nach Hause zurückkehren",
|
||||
"pageNotFound": "Seite nicht gefunden"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Fehler beim Laden der Daten"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Veröffentlichungsdatum}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary ist kostenlos und Open Source",
|
||||
"donating": "spenden",
|
||||
"reportBugs": "Fehler melden",
|
||||
"submitFeedback": "Feedback senden"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Bereitgestellt von IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Benutzerdefinierte Wallpaper",
|
||||
"shareLink": "Gemeinsam nutzbare Links (experimentell)",
|
||||
"dangerZone": "Gefahrenzone"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sitzung abgelaufen",
|
||||
"login": "Anmeldung",
|
||||
"exit": "Ausgang"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Perspektive",
|
||||
"releaseDate": "Veröffentlichungsdatum",
|
||||
"timeToBeat": "Zeit zu schlagen",
|
||||
"gameModes": "Spielmodus",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Auch erhältlich für:",
|
||||
"developers": "Entwickler",
|
||||
"publishers": "Verlag",
|
||||
"removeFromList": "Aus Liste entfernen",
|
||||
"links": {
|
||||
"official": "Offizielle Seite",
|
||||
"wikia": "Fangemeinde",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "Zucken",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Spielladen",
|
||||
"steam": "Dampf",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Zwietracht",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Listenname bearbeiten",
|
||||
"type": "Listentyp",
|
||||
"placeholder": "Geben Sie hier Ihren Listennamen ein",
|
||||
"suggestions": {
|
||||
"owned": "Besessen",
|
||||
"wishlist": "Wunschzettel",
|
||||
"currentlyPlaying": "Spielt gerade",
|
||||
"completed": "Abgeschlossen"
|
||||
},
|
||||
"input": "Geben Sie Ihre eigenen ein",
|
||||
"add": "Liste hinzufügen",
|
||||
"duplicateWarning": "Sie haben bereits eine Liste mit diesem Namen",
|
||||
"getStarted": "Loslegen!",
|
||||
"addFirstTime": "Willkommen, füge deine erste Liste hinzu!",
|
||||
"sortByName": "DAS",
|
||||
"sortByRating": "Ergebnis",
|
||||
"sortByReleaseDate": "Datum",
|
||||
"sortByCustom": "Brauch",
|
||||
"delete": "Löschen",
|
||||
"moveLeft": "Geh nach links",
|
||||
"moveRight": "Nach rechts bewegen",
|
||||
"emptyList": "Diese Liste ist leer",
|
||||
"addGame": "Spiel hinzufügen",
|
||||
"view": "Listenansicht",
|
||||
"moveList": "Liste verschieben",
|
||||
"sortList": "Sortierliste",
|
||||
"coversSizeTitle": "Abdeckungen herüber",
|
||||
"views": {
|
||||
"single": "Standard",
|
||||
"wide": "Kompakt",
|
||||
"text": "Nur Text",
|
||||
"grid": "Gitter"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Zurück",
|
||||
"save": "sparen",
|
||||
"cancel": "Stornieren",
|
||||
"create": "Erstellen",
|
||||
"filter": "Filter",
|
||||
"by": "durch",
|
||||
"no": "Nein",
|
||||
"yes": "Ja",
|
||||
"or": "oder",
|
||||
"returnHome": "Nach Hause zurückkehren",
|
||||
"pageNotFound": "Seite nicht gefunden"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Fehler beim Laden der Daten"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Veröffentlichungsdatum}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary ist kostenlos und Open Source",
|
||||
"donating": "spenden",
|
||||
"reportBugs": "Fehler melden",
|
||||
"submitFeedback": "Feedback senden"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Bereitgestellt von IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "Über",
|
||||
"platforms": "Plattformen",
|
||||
"gameBoard": "Spielbrett",
|
||||
"tags": "Stichworte",
|
||||
"account": "Konto",
|
||||
"global": "Global",
|
||||
"darkTheme": "Dunkles Thema",
|
||||
"reloading": "Neuladen...",
|
||||
"releases": "Releases",
|
||||
"newsletter": "Erhalte Update-E-Mails (in Kürze)",
|
||||
"branding": "Plattform-Branding (Farben, Logo usw.)",
|
||||
"language": "Sprache",
|
||||
"languages": {
|
||||
"en": "Englisch",
|
||||
"es": "Spanisch",
|
||||
"pl": "Polieren",
|
||||
"de": "Deutsche",
|
||||
"ar": "Arabisch",
|
||||
"fr": "Französisch",
|
||||
"it": "Italienisch",
|
||||
"eu": "baskisch",
|
||||
"cs": "Tschechisch",
|
||||
"ja": "japanisch"
|
||||
},
|
||||
"ownedLists": "Zeige nur meine Plattformen",
|
||||
"sortPlatforms": "Plattformen alphabetisch sortieren",
|
||||
"ratings": "Spielstand ausblenden",
|
||||
"signOut": "Ausloggen",
|
||||
"wallpaper": {
|
||||
"title": "Hintergrundbild hochladen",
|
||||
"transparency": "Transparenz zulassen",
|
||||
"currentWallpaper": "Aktuelles Hintergrundbild",
|
||||
"removeWallpaper": "Tapete entfernen"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Konto löschen",
|
||||
"message": "Ihre Kontodaten werden für immer gelöscht.",
|
||||
"title": "Bist du sicher?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Spieletags",
|
||||
"addTag": "Tag hinzufügen",
|
||||
"createTag": "Tag erstellen",
|
||||
"inputPlaceholder": "Tag name",
|
||||
"applyTag": "Tag anwenden",
|
||||
"useTags": "Verwenden Sie Tags, um Ihre Spiele besser zu organisieren"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Spiele hinzufügen zu",
|
||||
"inputPlaceholder": "Suche hier",
|
||||
"alreadyInList": "von den Suchergebnissen bereits in Ihrer Liste",
|
||||
"noResultsFound": "Keine Ergebnisse",
|
||||
"missingGame": "Vermissen Sie ein Spiel? Helfen Sie der Community und",
|
||||
"addToIGDB": "Fügen Sie es zu IGDB hinzu"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Notiz hinzufügen"
|
||||
"wallpaper": "Benutzerdefinierte Wallpaper",
|
||||
"shareLink": "Gemeinsam nutzbare Links (experimentell)",
|
||||
"dangerZone": "Gefahrenzone"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sitzung abgelaufen",
|
||||
"login": "Anmeldung",
|
||||
"exit": "Ausgang"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Perspektive",
|
||||
"releaseDate": "Veröffentlichungsdatum",
|
||||
"timeToBeat": "Zeit zu schlagen",
|
||||
"gameModes": "Spielmodus",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Auch erhältlich für:",
|
||||
"developers": "Entwickler",
|
||||
"publishers": "Verlag",
|
||||
"removeFromList": "Aus Liste entfernen",
|
||||
"links": {
|
||||
"official": "Offizielle Seite",
|
||||
"wikia": "Fangemeinde",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "Zucken",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Spielladen",
|
||||
"steam": "Dampf",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Zwietracht",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Listenname bearbeiten",
|
||||
"type": "Listentyp",
|
||||
"placeholder": "Geben Sie hier Ihren Listennamen ein",
|
||||
"suggestions": {
|
||||
"owned": "Besessen",
|
||||
"wishlist": "Wunschzettel",
|
||||
"currentlyPlaying": "Spielt gerade",
|
||||
"completed": "Abgeschlossen"
|
||||
},
|
||||
"input": "Geben Sie Ihre eigenen ein",
|
||||
"add": "Liste hinzufügen",
|
||||
"duplicateWarning": "Sie haben bereits eine Liste mit diesem Namen",
|
||||
"getStarted": "Loslegen!",
|
||||
"addFirstTime": "Willkommen, füge deine erste Liste hinzu!",
|
||||
"sortByName": "DAS",
|
||||
"sortByRating": "Ergebnis",
|
||||
"sortByReleaseDate": "Datum",
|
||||
"sortByCustom": "Brauch",
|
||||
"delete": "Löschen",
|
||||
"moveLeft": "Geh nach links",
|
||||
"moveRight": "Nach rechts bewegen",
|
||||
"emptyList": "Diese Liste ist leer",
|
||||
"addGame": "Spiel hinzufügen",
|
||||
"view": "Listenansicht",
|
||||
"moveList": "Liste verschieben",
|
||||
"sortList": "Sortierliste",
|
||||
"coversSizeTitle": "Abdeckungen herüber",
|
||||
"views": {
|
||||
"single": "Standard",
|
||||
"wide": "Kompakt",
|
||||
"text": "Nur Text",
|
||||
"grid": "Gitter"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "Über",
|
||||
"platforms": "Plattformen",
|
||||
"gameBoard": "Spielbrett",
|
||||
"tags": "Stichworte",
|
||||
"account": "Konto",
|
||||
"global": "Global",
|
||||
"darkTheme": "Dunkles Thema",
|
||||
"reloading": "Neuladen...",
|
||||
"releases": "Releases",
|
||||
"newsletter": "Erhalte Update-E-Mails (in Kürze)",
|
||||
"branding": "Plattform-Branding (Farben, Logo usw.)",
|
||||
"language": "Sprache",
|
||||
"languages": {
|
||||
"en": "Englisch",
|
||||
"es": "Spanisch",
|
||||
"pl": "Polieren",
|
||||
"de": "Deutsche",
|
||||
"ar": "Arabisch",
|
||||
"fr": "Französisch",
|
||||
"it": "Italienisch",
|
||||
"eu": "baskisch",
|
||||
"cs": "Tschechisch",
|
||||
"ja": "japanisch"
|
||||
},
|
||||
"ownedLists": "Zeige nur meine Plattformen",
|
||||
"sortPlatforms": "Plattformen alphabetisch sortieren",
|
||||
"ratings": "Spielstand ausblenden",
|
||||
"signOut": "Ausloggen",
|
||||
"wallpaper": {
|
||||
"title": "Hintergrundbild hochladen",
|
||||
"transparency": "Transparenz zulassen",
|
||||
"currentWallpaper": "Aktuelles Hintergrundbild",
|
||||
"removeWallpaper": "Tapete entfernen"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Konto löschen",
|
||||
"message": "Ihre Kontodaten werden für immer gelöscht.",
|
||||
"title": "Bist du sicher?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Spieletags",
|
||||
"addTag": "Tag hinzufügen",
|
||||
"createTag": "Tag erstellen",
|
||||
"inputPlaceholder": "Tag name",
|
||||
"applyTag": "Tag anwenden",
|
||||
"useTags": "Verwenden Sie Tags, um Ihre Spiele besser zu organisieren"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Spiele hinzufügen zu",
|
||||
"inputPlaceholder": "Suche hier",
|
||||
"alreadyInList": "von den Suchergebnissen bereits in Ihrer Liste",
|
||||
"noResultsFound": "Keine Ergebnisse",
|
||||
"missingGame": "Vermissen Sie ein Spiel? Helfen Sie der Community und",
|
||||
"addToIGDB": "Fügen Sie es zu IGDB hinzu"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Notiz hinzufügen"
|
||||
}
|
||||
}
|
328
src/i18n/en.json
328
src/i18n/en.json
|
@ -1,168 +1,168 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"create": "Create",
|
||||
"filter": "Filter",
|
||||
"by": "by",
|
||||
"no": "no",
|
||||
"yes": "yes",
|
||||
"or": "or",
|
||||
"returnHome": "Return home",
|
||||
"pageNotFound": "Page not found"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Error loading data"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Published {date}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary is free and open source, consider helping its development by",
|
||||
"donating": "donating",
|
||||
"reportBugs": "reporting bugs",
|
||||
"submitFeedback": "submitting feedback"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Powered by IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Custom Wallpaper",
|
||||
"shareLink": "Shareable links (experimental)",
|
||||
"dangerZone": "Danger zone"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Session expired",
|
||||
"login": "Login",
|
||||
"exit": "Exit"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Perspective",
|
||||
"releaseDate": "Release date",
|
||||
"timeToBeat": "Time to beat",
|
||||
"gameModes": "Game Mode",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Also available for:",
|
||||
"developers": "Developer",
|
||||
"publishers": "Publishers",
|
||||
"removeFromList": "Remove",
|
||||
"links": {
|
||||
"official": "Official Site",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "Twitch",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Steam",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discord",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Edit list name",
|
||||
"type": "List type",
|
||||
"preferences": "List preferences",
|
||||
"placeholder": "Type your list name here",
|
||||
"wishlist": "Wishlist",
|
||||
"input": "Enter your own",
|
||||
"add": "Add list",
|
||||
"duplicateWarning": "You already have a list with this name",
|
||||
"getStarted": "Get started!",
|
||||
"addFirstTime": "Welcome, add your first list!",
|
||||
"sortByName": "A-Z",
|
||||
"sortByRating": "Score",
|
||||
"sortByReleaseDate": "Date",
|
||||
"sortByCustom": "Custom",
|
||||
"delete": "Delete",
|
||||
"moveLeft": "Move left",
|
||||
"moveRight": "Move right",
|
||||
"emptyList": "This list is empty",
|
||||
"addGame": "Add game",
|
||||
"view": "List view",
|
||||
"moveList": "Move list",
|
||||
"sortList": "Sort list",
|
||||
"coversSizeTitle": "Covers across",
|
||||
"views": {
|
||||
"single": "Default",
|
||||
"wide": "Compact",
|
||||
"text": "Text only",
|
||||
"grid": "Grid"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"create": "Create",
|
||||
"filter": "Filter",
|
||||
"by": "by",
|
||||
"no": "no",
|
||||
"yes": "yes",
|
||||
"or": "or",
|
||||
"returnHome": "Return home",
|
||||
"pageNotFound": "Page not found"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Error loading data"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Published {date}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary is free and open source, consider helping its development by",
|
||||
"donating": "donating",
|
||||
"reportBugs": "reporting bugs",
|
||||
"submitFeedback": "submitting feedback"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Powered by IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "About",
|
||||
"platforms": "Platforms",
|
||||
"gameBoard": "Game Board",
|
||||
"public": "Public",
|
||||
"tags": "Tags",
|
||||
"account": "Account",
|
||||
"global": "Global",
|
||||
"reloading": "Reloading...",
|
||||
"releases": "Releases",
|
||||
"newsletter": "Receive update emails (coming soon)",
|
||||
"branding": "Platform branding (colors, logo, etc...)",
|
||||
"language": "Language",
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Spanish",
|
||||
"pl": "Polish",
|
||||
"de": "German",
|
||||
"ar": "Arabic",
|
||||
"fr": "French",
|
||||
"it": "Italian",
|
||||
"eu": "Basque",
|
||||
"cs": "Czech",
|
||||
"ja": "Japanese"
|
||||
},
|
||||
"ownedLists": "Only show my platforms",
|
||||
"sortPlatforms": "Sort platforms alphabetically",
|
||||
"ratings": "Hide game score",
|
||||
"signOut": "Sign out",
|
||||
"wallpaper": {
|
||||
"title": "Upload wallpaper",
|
||||
"transparency": "Allow transparency",
|
||||
"currentWallpaper": "Current wallpaper",
|
||||
"removeWallpaper": "Remove wallpaper"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Delete account",
|
||||
"message": "Your account data will be deleted forever.",
|
||||
"title": "Are you sure?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Game tags",
|
||||
"addTag": "Add Tag",
|
||||
"createTag": "Create tag",
|
||||
"inputPlaceholder": "Tag name",
|
||||
"applyTag": "Apply tag",
|
||||
"useTags": "Use tags to better organise your games"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Add games to",
|
||||
"inputPlaceholder": "Search here",
|
||||
"alreadyInList": "from search results already in your list",
|
||||
"noResultsFound": "No results",
|
||||
"missingGame": "Missing a game? Help out the community and",
|
||||
"addToIGDB": "Add it to IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Add note",
|
||||
"notes": "Notes"
|
||||
"wallpaper": "Custom Wallpaper",
|
||||
"shareLink": "Shareable links (experimental)",
|
||||
"dangerZone": "Danger zone"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Session expired",
|
||||
"login": "Login",
|
||||
"exit": "Exit"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Perspective",
|
||||
"releaseDate": "Release date",
|
||||
"timeToBeat": "Time to beat",
|
||||
"gameModes": "Game Mode",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Also available for:",
|
||||
"developers": "Developer",
|
||||
"publishers": "Publishers",
|
||||
"removeFromList": "Remove",
|
||||
"links": {
|
||||
"official": "Official Site",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "Twitch",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Steam",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discord",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Edit list name",
|
||||
"type": "List type",
|
||||
"preferences": "List preferences",
|
||||
"placeholder": "Type your list name here",
|
||||
"wishlist": "Wishlist",
|
||||
"input": "Enter your own",
|
||||
"add": "Add list",
|
||||
"duplicateWarning": "You already have a list with this name",
|
||||
"getStarted": "Get started!",
|
||||
"addFirstTime": "Welcome, add your first list!",
|
||||
"sortByName": "A-Z",
|
||||
"sortByRating": "Score",
|
||||
"sortByReleaseDate": "Date",
|
||||
"sortByCustom": "Custom",
|
||||
"delete": "Delete",
|
||||
"moveLeft": "Move left",
|
||||
"moveRight": "Move right",
|
||||
"emptyList": "This list is empty",
|
||||
"addGame": "Add game",
|
||||
"view": "List view",
|
||||
"moveList": "Move list",
|
||||
"sortList": "Sort list",
|
||||
"coversSizeTitle": "Covers across",
|
||||
"views": {
|
||||
"single": "Default",
|
||||
"wide": "Compact",
|
||||
"text": "Text only",
|
||||
"grid": "Grid"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "About",
|
||||
"platforms": "Platforms",
|
||||
"gameBoard": "Game Board",
|
||||
"public": "Public",
|
||||
"tags": "Tags",
|
||||
"account": "Account",
|
||||
"global": "Global",
|
||||
"reloading": "Reloading...",
|
||||
"releases": "Releases",
|
||||
"newsletter": "Receive update emails (coming soon)",
|
||||
"branding": "Platform branding (colors, logo, etc...)",
|
||||
"language": "Language",
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Spanish",
|
||||
"pl": "Polish",
|
||||
"de": "German",
|
||||
"ar": "Arabic",
|
||||
"fr": "French",
|
||||
"it": "Italian",
|
||||
"eu": "Basque",
|
||||
"cs": "Czech",
|
||||
"ja": "Japanese"
|
||||
},
|
||||
"ownedLists": "Only show my platforms",
|
||||
"sortPlatforms": "Sort platforms alphabetically",
|
||||
"ratings": "Hide game score",
|
||||
"signOut": "Sign out",
|
||||
"wallpaper": {
|
||||
"title": "Upload wallpaper",
|
||||
"transparency": "Allow transparency",
|
||||
"currentWallpaper": "Current wallpaper",
|
||||
"removeWallpaper": "Remove wallpaper"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Delete account",
|
||||
"message": "Your account data will be deleted forever.",
|
||||
"title": "Are you sure?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Game tags",
|
||||
"addTag": "Add Tag",
|
||||
"createTag": "Create tag",
|
||||
"inputPlaceholder": "Tag name",
|
||||
"applyTag": "Apply tag",
|
||||
"useTags": "Use tags to better organise your games"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Add games to",
|
||||
"inputPlaceholder": "Search here",
|
||||
"alreadyInList": "from search results already in your list",
|
||||
"noResultsFound": "No results",
|
||||
"missingGame": "Missing a game? Help out the community and",
|
||||
"addToIGDB": "Add it to IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Add note",
|
||||
"notes": "Notes"
|
||||
}
|
||||
}
|
334
src/i18n/es.json
334
src/i18n/es.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "atrás",
|
||||
"save": "Salvar",
|
||||
"cancel": "Cancelar",
|
||||
"create": "Crear",
|
||||
"filter": "Filtrar",
|
||||
"by": "por",
|
||||
"no": "no",
|
||||
"yes": "sí",
|
||||
"or": "o",
|
||||
"returnHome": "Volver a casa",
|
||||
"pageNotFound": "Página no encontrada"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Error al cargar datos"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Fecha de Publicación}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary es gratuito y de código abierto, considere ayudar a su desarrollo mediante",
|
||||
"donating": "donando",
|
||||
"reportBugs": "informar errores",
|
||||
"submitFeedback": "enviando comentarios"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Desarrollado por IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Fondo de pantalla personalizado",
|
||||
"shareLink": "Enlaces compartibles (experimental)",
|
||||
"dangerZone": "Zona peligrosa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sesión expirada",
|
||||
"login": "Iniciar sesión",
|
||||
"exit": "Salida"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Capturas de pantalla",
|
||||
"perspective": "Perspectiva",
|
||||
"releaseDate": "Fecha de lanzamiento",
|
||||
"timeToBeat": "Hora de vencer",
|
||||
"gameModes": "Modo de juego",
|
||||
"genres": "Género",
|
||||
"gamePlatforms": "También disponible para:",
|
||||
"developers": "Desarrollador",
|
||||
"publishers": "Editores",
|
||||
"removeFromList": "Quitar de la lista",
|
||||
"links": {
|
||||
"official": "Sitio oficial",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Gorjeo",
|
||||
"twitch": "Contracción nerviosa",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Tienda de juegos",
|
||||
"steam": "Vapor",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discordia",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editar nombre de lista",
|
||||
"type": "Tipo de lista",
|
||||
"placeholder": "Escriba el nombre de su lista aquí",
|
||||
"suggestions": {
|
||||
"owned": "De propiedad",
|
||||
"wishlist": "Lista de deseos",
|
||||
"currentlyPlaying": "Reproduciendo",
|
||||
"completed": "Terminado"
|
||||
},
|
||||
"input": "Ingrese el suyo",
|
||||
"add": "Añadir lista",
|
||||
"duplicateWarning": "Ya tienes una lista con este nombre",
|
||||
"getStarted": "¡Empezar!",
|
||||
"addFirstTime": "Bienvenido, agrega tu primera lista!",
|
||||
"sortByName": "LA",
|
||||
"sortByRating": "Puntuación",
|
||||
"sortByReleaseDate": "Fecha",
|
||||
"sortByCustom": "Personalizado",
|
||||
"delete": "Borrar",
|
||||
"moveLeft": "Mover hacia la izquierda",
|
||||
"moveRight": "Mover a la derecha",
|
||||
"emptyList": "Esta lista esta vacia",
|
||||
"addGame": "Agregar juego",
|
||||
"view": "Vista de la lista",
|
||||
"moveList": "Mover lista",
|
||||
"sortList": "Lista Ordenada",
|
||||
"coversSizeTitle": "Cubre a través de",
|
||||
"views": {
|
||||
"single": "Defecto",
|
||||
"wide": "Compacto",
|
||||
"text": "Solo texto",
|
||||
"grid": "Cuadrícula"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "atrás",
|
||||
"save": "Salvar",
|
||||
"cancel": "Cancelar",
|
||||
"create": "Crear",
|
||||
"filter": "Filtrar",
|
||||
"by": "por",
|
||||
"no": "no",
|
||||
"yes": "sí",
|
||||
"or": "o",
|
||||
"returnHome": "Volver a casa",
|
||||
"pageNotFound": "Página no encontrada"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Error al cargar datos"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Fecha de Publicación}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary es gratuito y de código abierto, considere ayudar a su desarrollo mediante",
|
||||
"donating": "donando",
|
||||
"reportBugs": "informar errores",
|
||||
"submitFeedback": "enviando comentarios"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Desarrollado por IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "Acerca de",
|
||||
"platforms": "Plataformas",
|
||||
"gameBoard": "Juego de mesa",
|
||||
"tags": "Etiquetas",
|
||||
"account": "Cuenta",
|
||||
"global": "Global",
|
||||
"darkTheme": "Tema oscuro",
|
||||
"reloading": "Recargando ...",
|
||||
"releases": "Lanzamientos",
|
||||
"newsletter": "Recibir correos electrónicos de actualización (próximamente)",
|
||||
"branding": "Marca de la plataforma (colores, logotipo, etc.)",
|
||||
"language": "Idioma",
|
||||
"languages": {
|
||||
"en": "Inglés",
|
||||
"es": "Español",
|
||||
"pl": "polaco",
|
||||
"de": "alemán",
|
||||
"ar": "Arábica",
|
||||
"fr": "francés",
|
||||
"it": "italiano",
|
||||
"eu": "vasco",
|
||||
"cs": "checo",
|
||||
"ja": "japonés"
|
||||
},
|
||||
"ownedLists": "Mostrar solo mis plataformas",
|
||||
"sortPlatforms": "Ordenar plataformas alfabéticamente",
|
||||
"ratings": "Ocultar puntuación del juego",
|
||||
"signOut": "desconectar",
|
||||
"wallpaper": {
|
||||
"title": "Subir fondo de pantalla",
|
||||
"transparency": "Permitir transparencia",
|
||||
"currentWallpaper": "Fondo de pantalla actual",
|
||||
"removeWallpaper": "Eliminar fondo de pantalla"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Borrar cuenta",
|
||||
"message": "Los datos de su cuenta se eliminarán para siempre.",
|
||||
"title": "¿Estás seguro?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Etiquetas de juego",
|
||||
"addTag": "Añadir etiqueta",
|
||||
"createTag": "Crear etiqueta",
|
||||
"inputPlaceholder": "Nombre del día",
|
||||
"applyTag": "Aplicar etiqueta",
|
||||
"useTags": "Usa etiquetas para organizar mejor tus juegos"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Agregar juegos a",
|
||||
"inputPlaceholder": "Busca aquí",
|
||||
"alreadyInList": "de los resultados de búsqueda que ya están en su lista",
|
||||
"noResultsFound": "No hay resultados",
|
||||
"missingGame": "¿Te falta un juego? Ayuda a la comunidad y",
|
||||
"addToIGDB": "Agréguelo a IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Añadir la nota"
|
||||
"wallpaper": "Fondo de pantalla personalizado",
|
||||
"shareLink": "Enlaces compartibles (experimental)",
|
||||
"dangerZone": "Zona peligrosa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sesión expirada",
|
||||
"login": "Iniciar sesión",
|
||||
"exit": "Salida"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Videos",
|
||||
"screenshots": "Capturas de pantalla",
|
||||
"perspective": "Perspectiva",
|
||||
"releaseDate": "Fecha de lanzamiento",
|
||||
"timeToBeat": "Hora de vencer",
|
||||
"gameModes": "Modo de juego",
|
||||
"genres": "Género",
|
||||
"gamePlatforms": "También disponible para:",
|
||||
"developers": "Desarrollador",
|
||||
"publishers": "Editores",
|
||||
"removeFromList": "Quitar de la lista",
|
||||
"links": {
|
||||
"official": "Sitio oficial",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Gorjeo",
|
||||
"twitch": "Contracción nerviosa",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Tienda de juegos",
|
||||
"steam": "Vapor",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discordia",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editar nombre de lista",
|
||||
"type": "Tipo de lista",
|
||||
"placeholder": "Escriba el nombre de su lista aquí",
|
||||
"suggestions": {
|
||||
"owned": "De propiedad",
|
||||
"wishlist": "Lista de deseos",
|
||||
"currentlyPlaying": "Reproduciendo",
|
||||
"completed": "Terminado"
|
||||
},
|
||||
"input": "Ingrese el suyo",
|
||||
"add": "Añadir lista",
|
||||
"duplicateWarning": "Ya tienes una lista con este nombre",
|
||||
"getStarted": "¡Empezar!",
|
||||
"addFirstTime": "Bienvenido, agrega tu primera lista!",
|
||||
"sortByName": "LA",
|
||||
"sortByRating": "Puntuación",
|
||||
"sortByReleaseDate": "Fecha",
|
||||
"sortByCustom": "Personalizado",
|
||||
"delete": "Borrar",
|
||||
"moveLeft": "Mover hacia la izquierda",
|
||||
"moveRight": "Mover a la derecha",
|
||||
"emptyList": "Esta lista esta vacia",
|
||||
"addGame": "Agregar juego",
|
||||
"view": "Vista de la lista",
|
||||
"moveList": "Mover lista",
|
||||
"sortList": "Lista Ordenada",
|
||||
"coversSizeTitle": "Cubre a través de",
|
||||
"views": {
|
||||
"single": "Defecto",
|
||||
"wide": "Compacto",
|
||||
"text": "Solo texto",
|
||||
"grid": "Cuadrícula"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "Acerca de",
|
||||
"platforms": "Plataformas",
|
||||
"gameBoard": "Juego de mesa",
|
||||
"tags": "Etiquetas",
|
||||
"account": "Cuenta",
|
||||
"global": "Global",
|
||||
"darkTheme": "Tema oscuro",
|
||||
"reloading": "Recargando ...",
|
||||
"releases": "Lanzamientos",
|
||||
"newsletter": "Recibir correos electrónicos de actualización (próximamente)",
|
||||
"branding": "Marca de la plataforma (colores, logotipo, etc.)",
|
||||
"language": "Idioma",
|
||||
"languages": {
|
||||
"en": "Inglés",
|
||||
"es": "Español",
|
||||
"pl": "polaco",
|
||||
"de": "alemán",
|
||||
"ar": "Arábica",
|
||||
"fr": "francés",
|
||||
"it": "italiano",
|
||||
"eu": "vasco",
|
||||
"cs": "checo",
|
||||
"ja": "japonés"
|
||||
},
|
||||
"ownedLists": "Mostrar solo mis plataformas",
|
||||
"sortPlatforms": "Ordenar plataformas alfabéticamente",
|
||||
"ratings": "Ocultar puntuación del juego",
|
||||
"signOut": "desconectar",
|
||||
"wallpaper": {
|
||||
"title": "Subir fondo de pantalla",
|
||||
"transparency": "Permitir transparencia",
|
||||
"currentWallpaper": "Fondo de pantalla actual",
|
||||
"removeWallpaper": "Eliminar fondo de pantalla"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Borrar cuenta",
|
||||
"message": "Los datos de su cuenta se eliminarán para siempre.",
|
||||
"title": "¿Estás seguro?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Etiquetas de juego",
|
||||
"addTag": "Añadir etiqueta",
|
||||
"createTag": "Crear etiqueta",
|
||||
"inputPlaceholder": "Nombre del día",
|
||||
"applyTag": "Aplicar etiqueta",
|
||||
"useTags": "Usa etiquetas para organizar mejor tus juegos"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Agregar juegos a",
|
||||
"inputPlaceholder": "Busca aquí",
|
||||
"alreadyInList": "de los resultados de búsqueda que ya están en su lista",
|
||||
"noResultsFound": "No hay resultados",
|
||||
"missingGame": "¿Te falta un juego? Ayuda a la comunidad y",
|
||||
"addToIGDB": "Agréguelo a IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Añadir la nota"
|
||||
}
|
||||
}
|
334
src/i18n/eu.json
334
src/i18n/eu.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Utzi",
|
||||
"create": "Sortu",
|
||||
"filter": "Filter",
|
||||
"by": "arabera",
|
||||
"no": "no",
|
||||
"yes": "bai",
|
||||
"or": "edo",
|
||||
"returnHome": "Etxera itzuli",
|
||||
"pageNotFound": "Ez da orria aurkitu"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Errorea gertatu da datuak kargatzean"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Argitaratua {data}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary iturri librea eta irekia da eta kontuan hartu bere garapenari laguntzen",
|
||||
"donating": "eman",
|
||||
"reportBugs": "akatsen berri ematea",
|
||||
"submitFeedback": "feedbacka bidaltzea"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "IGDB-k eginda"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Neurri pertsonalizatua",
|
||||
"shareLink": "Lotura partekagarriak (esperimentalak)",
|
||||
"dangerZone": "Arriskuen zona"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Saioa iraungita dago",
|
||||
"login": "Saioa hasi",
|
||||
"exit": "Irten"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Bideoak",
|
||||
"screenshots": "Pantaila-",
|
||||
"perspective": "perspektiba",
|
||||
"releaseDate": "Kaleratze data",
|
||||
"timeToBeat": "Irabazteko garaia",
|
||||
"gameModes": "Joko modua",
|
||||
"genres": "generoa",
|
||||
"gamePlatforms": "Eskuragarri ere:",
|
||||
"developers": "Developer",
|
||||
"publishers": "Argitaletxeak",
|
||||
"removeFromList": "Kendu zerrendatik",
|
||||
"links": {
|
||||
"official": "Gune ofiziala",
|
||||
"wikia": "fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "twitch",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play denda",
|
||||
"steam": "Lurrun",
|
||||
"reddit": "Reddit",
|
||||
"discord": "discord",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editatu zerrendaren izena",
|
||||
"type": "Zerrenda mota",
|
||||
"placeholder": "Idatzi hemen zure zerrenda izena",
|
||||
"suggestions": {
|
||||
"owned": "sozietateak",
|
||||
"wishlist": "Gustuko",
|
||||
"currentlyPlaying": "Gaur egun jolasten",
|
||||
"completed": "Osatua"
|
||||
},
|
||||
"input": "Sartu zurea",
|
||||
"add": "Gehitu zerrenda",
|
||||
"duplicateWarning": "Dagoeneko zerrenda bat duzu izen horrekin",
|
||||
"getStarted": "Hasi!",
|
||||
"addFirstTime": "Ongi etorri, gehitu zure lehen zerrenda!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "Puntuazioa",
|
||||
"sortByReleaseDate": "data",
|
||||
"sortByCustom": "pertsonalizatua",
|
||||
"delete": "ezabatu",
|
||||
"moveLeft": "Mugitu ezkerrera",
|
||||
"moveRight": "Mugitu eskuinera",
|
||||
"emptyList": "Zerrenda hau hutsik dago",
|
||||
"addGame": "Gehitu jokoa",
|
||||
"view": "Zerrenda ikuspegia",
|
||||
"moveList": "Mugitu zerrenda",
|
||||
"sortList": "Sailkapen zerrenda",
|
||||
"coversSizeTitle": "Estaldurak zehar",
|
||||
"views": {
|
||||
"single": "Default",
|
||||
"wide": "Compact",
|
||||
"text": "Testua soilik",
|
||||
"grid": "Grid"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Utzi",
|
||||
"create": "Sortu",
|
||||
"filter": "Filter",
|
||||
"by": "arabera",
|
||||
"no": "no",
|
||||
"yes": "bai",
|
||||
"or": "edo",
|
||||
"returnHome": "Etxera itzuli",
|
||||
"pageNotFound": "Ez da orria aurkitu"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Errorea gertatu da datuak kargatzean"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Argitaratua {data}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary iturri librea eta irekia da eta kontuan hartu bere garapenari laguntzen",
|
||||
"donating": "eman",
|
||||
"reportBugs": "akatsen berri ematea",
|
||||
"submitFeedback": "feedbacka bidaltzea"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "IGDB-k eginda"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "About",
|
||||
"platforms": "plataformak",
|
||||
"gameBoard": "Joko taula",
|
||||
"tags": "Tags",
|
||||
"account": "Kontu-",
|
||||
"global": "Global",
|
||||
"darkTheme": "Gai iluna",
|
||||
"reloading": "Berkargatzean ...",
|
||||
"releases": "oharrak",
|
||||
"newsletter": "Jaso eguneratze mezu elektronikoak (laster etorriko dira)",
|
||||
"branding": "Plataforma marka (koloreak, logotipoa, etab ...)",
|
||||
"language": "Hizkuntza",
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Espainiako",
|
||||
"pl": "Poloniako",
|
||||
"de": "Alemaniako",
|
||||
"ar": "arabiera",
|
||||
"fr": "Frantziako",
|
||||
"it": "Italiako",
|
||||
"eu": "Euskal",
|
||||
"cs": "Txekiar",
|
||||
"ja": "Japoniako"
|
||||
},
|
||||
"ownedLists": "Nire plataformak bakarrik erakutsi",
|
||||
"sortPlatforms": "Ordenatu plataformak alfabetikoki",
|
||||
"ratings": "Ezkutatu jokoaren puntuazioa",
|
||||
"signOut": "Hasi saioa",
|
||||
"wallpaper": {
|
||||
"title": "Kargatu horma-irudia",
|
||||
"transparency": "Gardentasuna eman",
|
||||
"currentWallpaper": "Uneko horma-irudia",
|
||||
"removeWallpaper": "Kendu papera"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Ezabatu kontua",
|
||||
"message": "Zure kontuko datuak betiko ezabatuko dira.",
|
||||
"title": "Ziur zaude?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Jokoaren etiketak",
|
||||
"addTag": "Gehitu etiketa",
|
||||
"createTag": "Etiketa sortu",
|
||||
"inputPlaceholder": "Egunaren izena",
|
||||
"applyTag": "Aplikatu etiketa",
|
||||
"useTags": "Erabili etiketak zure jokoak hobeto antolatzeko"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Gehitu jokoak",
|
||||
"inputPlaceholder": "Bilatu hemen",
|
||||
"alreadyInList": "dagoeneko zure zerrendako bilaketa-emaitzetatik",
|
||||
"noResultsFound": "Emaitzarik ez",
|
||||
"missingGame": "Joko bat falta al zaizu? Lagundu komunitateari eta",
|
||||
"addToIGDB": "Gehitu IGDB-ri"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Oharra gehitu"
|
||||
"wallpaper": "Neurri pertsonalizatua",
|
||||
"shareLink": "Lotura partekagarriak (esperimentalak)",
|
||||
"dangerZone": "Arriskuen zona"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Saioa iraungita dago",
|
||||
"login": "Saioa hasi",
|
||||
"exit": "Irten"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Bideoak",
|
||||
"screenshots": "Pantaila-",
|
||||
"perspective": "perspektiba",
|
||||
"releaseDate": "Kaleratze data",
|
||||
"timeToBeat": "Irabazteko garaia",
|
||||
"gameModes": "Joko modua",
|
||||
"genres": "generoa",
|
||||
"gamePlatforms": "Eskuragarri ere:",
|
||||
"developers": "Developer",
|
||||
"publishers": "Argitaletxeak",
|
||||
"removeFromList": "Kendu zerrendatik",
|
||||
"links": {
|
||||
"official": "Gune ofiziala",
|
||||
"wikia": "fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "twitch",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play denda",
|
||||
"steam": "Lurrun",
|
||||
"reddit": "Reddit",
|
||||
"discord": "discord",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editatu zerrendaren izena",
|
||||
"type": "Zerrenda mota",
|
||||
"placeholder": "Idatzi hemen zure zerrenda izena",
|
||||
"suggestions": {
|
||||
"owned": "sozietateak",
|
||||
"wishlist": "Gustuko",
|
||||
"currentlyPlaying": "Gaur egun jolasten",
|
||||
"completed": "Osatua"
|
||||
},
|
||||
"input": "Sartu zurea",
|
||||
"add": "Gehitu zerrenda",
|
||||
"duplicateWarning": "Dagoeneko zerrenda bat duzu izen horrekin",
|
||||
"getStarted": "Hasi!",
|
||||
"addFirstTime": "Ongi etorri, gehitu zure lehen zerrenda!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "Puntuazioa",
|
||||
"sortByReleaseDate": "data",
|
||||
"sortByCustom": "pertsonalizatua",
|
||||
"delete": "ezabatu",
|
||||
"moveLeft": "Mugitu ezkerrera",
|
||||
"moveRight": "Mugitu eskuinera",
|
||||
"emptyList": "Zerrenda hau hutsik dago",
|
||||
"addGame": "Gehitu jokoa",
|
||||
"view": "Zerrenda ikuspegia",
|
||||
"moveList": "Mugitu zerrenda",
|
||||
"sortList": "Sailkapen zerrenda",
|
||||
"coversSizeTitle": "Estaldurak zehar",
|
||||
"views": {
|
||||
"single": "Default",
|
||||
"wide": "Compact",
|
||||
"text": "Testua soilik",
|
||||
"grid": "Grid"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "About",
|
||||
"platforms": "plataformak",
|
||||
"gameBoard": "Joko taula",
|
||||
"tags": "Tags",
|
||||
"account": "Kontu-",
|
||||
"global": "Global",
|
||||
"darkTheme": "Gai iluna",
|
||||
"reloading": "Berkargatzean ...",
|
||||
"releases": "oharrak",
|
||||
"newsletter": "Jaso eguneratze mezu elektronikoak (laster etorriko dira)",
|
||||
"branding": "Plataforma marka (koloreak, logotipoa, etab ...)",
|
||||
"language": "Hizkuntza",
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Espainiako",
|
||||
"pl": "Poloniako",
|
||||
"de": "Alemaniako",
|
||||
"ar": "arabiera",
|
||||
"fr": "Frantziako",
|
||||
"it": "Italiako",
|
||||
"eu": "Euskal",
|
||||
"cs": "Txekiar",
|
||||
"ja": "Japoniako"
|
||||
},
|
||||
"ownedLists": "Nire plataformak bakarrik erakutsi",
|
||||
"sortPlatforms": "Ordenatu plataformak alfabetikoki",
|
||||
"ratings": "Ezkutatu jokoaren puntuazioa",
|
||||
"signOut": "Hasi saioa",
|
||||
"wallpaper": {
|
||||
"title": "Kargatu horma-irudia",
|
||||
"transparency": "Gardentasuna eman",
|
||||
"currentWallpaper": "Uneko horma-irudia",
|
||||
"removeWallpaper": "Kendu papera"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Ezabatu kontua",
|
||||
"message": "Zure kontuko datuak betiko ezabatuko dira.",
|
||||
"title": "Ziur zaude?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Jokoaren etiketak",
|
||||
"addTag": "Gehitu etiketa",
|
||||
"createTag": "Etiketa sortu",
|
||||
"inputPlaceholder": "Egunaren izena",
|
||||
"applyTag": "Aplikatu etiketa",
|
||||
"useTags": "Erabili etiketak zure jokoak hobeto antolatzeko"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Gehitu jokoak",
|
||||
"inputPlaceholder": "Bilatu hemen",
|
||||
"alreadyInList": "dagoeneko zure zerrendako bilaketa-emaitzetatik",
|
||||
"noResultsFound": "Emaitzarik ez",
|
||||
"missingGame": "Joko bat falta al zaizu? Lagundu komunitateari eta",
|
||||
"addToIGDB": "Gehitu IGDB-ri"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Oharra gehitu"
|
||||
}
|
||||
}
|
334
src/i18n/fr.json
334
src/i18n/fr.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Retour",
|
||||
"save": "sauvegarder",
|
||||
"cancel": "Annuler",
|
||||
"create": "Créer",
|
||||
"filter": "Filtre",
|
||||
"by": "par",
|
||||
"no": "non",
|
||||
"yes": "Oui",
|
||||
"or": "ou",
|
||||
"returnHome": "Rentrer à la maison",
|
||||
"pageNotFound": "Page non trouvée"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Erreur lors du chargement des données"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Date de publication}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary est gratuit et open source, envisagez d’aider son développement en",
|
||||
"donating": "faire un don",
|
||||
"reportBugs": "signaler des bugs",
|
||||
"submitFeedback": "soumettre des commentaires"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Propulsé par IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Papier peint personnalisé",
|
||||
"shareLink": "Liens partageables (expérimental)",
|
||||
"dangerZone": "Zone dangereuse"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "La session a expiré",
|
||||
"login": "S'identifier",
|
||||
"exit": "Sortie"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Vidéos",
|
||||
"screenshots": "Captures d'écran",
|
||||
"perspective": "La perspective",
|
||||
"releaseDate": "Date de sortie",
|
||||
"timeToBeat": "Temps à battre",
|
||||
"gameModes": "Mode de jeu",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Aussi disponible pour:",
|
||||
"developers": "Développeur",
|
||||
"publishers": "Les éditeurs",
|
||||
"removeFromList": "Retirer de la liste",
|
||||
"links": {
|
||||
"official": "Site officiel",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipédia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Gazouillement",
|
||||
"twitch": "Tic",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Vapeur",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discorde",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editer le nom de la liste",
|
||||
"type": "Type de liste",
|
||||
"placeholder": "Tapez votre nom de liste ici",
|
||||
"suggestions": {
|
||||
"owned": "Possédé",
|
||||
"wishlist": "Liste de souhaits",
|
||||
"currentlyPlaying": "En train de jouer",
|
||||
"completed": "Terminé"
|
||||
},
|
||||
"input": "Entrez votre propre",
|
||||
"add": "Ajouter la liste",
|
||||
"duplicateWarning": "Vous avez déjà une liste avec ce nom",
|
||||
"getStarted": "Commencer!",
|
||||
"addFirstTime": "Bienvenue, ajoutez votre première liste!",
|
||||
"sortByName": "LA",
|
||||
"sortByRating": "But",
|
||||
"sortByReleaseDate": "Rendez-vous amoureux",
|
||||
"sortByCustom": "Douane",
|
||||
"delete": "Effacer",
|
||||
"moveLeft": "Se déplacer à gauche",
|
||||
"moveRight": "Déplacer vers la droite",
|
||||
"emptyList": "Cette liste est vide",
|
||||
"addGame": "Ajouter un jeu",
|
||||
"view": "Vue liste",
|
||||
"moveList": "Déplacer la liste",
|
||||
"sortList": "Liste de tri",
|
||||
"coversSizeTitle": "Couvre à travers",
|
||||
"views": {
|
||||
"single": "Défaut",
|
||||
"wide": "Compact",
|
||||
"text": "Texte seulement",
|
||||
"grid": "la grille"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Retour",
|
||||
"save": "sauvegarder",
|
||||
"cancel": "Annuler",
|
||||
"create": "Créer",
|
||||
"filter": "Filtre",
|
||||
"by": "par",
|
||||
"no": "non",
|
||||
"yes": "Oui",
|
||||
"or": "ou",
|
||||
"returnHome": "Rentrer à la maison",
|
||||
"pageNotFound": "Page non trouvée"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Erreur lors du chargement des données"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Date de publication}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary est gratuit et open source, envisagez d’aider son développement en",
|
||||
"donating": "faire un don",
|
||||
"reportBugs": "signaler des bugs",
|
||||
"submitFeedback": "soumettre des commentaires"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Propulsé par IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "À propos",
|
||||
"platforms": "Plateformes",
|
||||
"gameBoard": "Plateau de jeu",
|
||||
"tags": "Mots clés",
|
||||
"account": "Compte",
|
||||
"global": "Global",
|
||||
"darkTheme": "Thème sombre",
|
||||
"reloading": "Rechargement ...",
|
||||
"releases": "Communiqués",
|
||||
"newsletter": "Recevoir des emails de mise à jour (à venir)",
|
||||
"branding": "Marque de la plateforme (couleurs, logo, etc ...)",
|
||||
"language": "La langue",
|
||||
"languages": {
|
||||
"en": "Anglais",
|
||||
"es": "Espanol",
|
||||
"pl": "polonais",
|
||||
"de": "allemand",
|
||||
"ar": "arabe",
|
||||
"fr": "français",
|
||||
"it": "italien",
|
||||
"eu": "basque",
|
||||
"cs": "tchèque",
|
||||
"ja": "Japonais"
|
||||
},
|
||||
"ownedLists": "Afficher uniquement mes plateformes",
|
||||
"sortPlatforms": "Trier les plateformes par ordre alphabétique",
|
||||
"ratings": "Masquer le score du jeu",
|
||||
"signOut": "Déconnexion",
|
||||
"wallpaper": {
|
||||
"title": "Télécharger un fond d'écran",
|
||||
"transparency": "Autoriser la transparence",
|
||||
"currentWallpaper": "Fond d'écran actuel",
|
||||
"removeWallpaper": "Supprimer le papier peint"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Supprimer le compte",
|
||||
"message": "Les données de votre compte seront définitivement supprimées.",
|
||||
"title": "Êtes-vous sûr?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Balises de jeu",
|
||||
"addTag": "Ajouter une étiquette",
|
||||
"createTag": "Créer un tag",
|
||||
"inputPlaceholder": "Nom du jour",
|
||||
"applyTag": "Appliquer le tag",
|
||||
"useTags": "Utilisez des tags pour mieux organiser vos jeux"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Ajouter des jeux à",
|
||||
"inputPlaceholder": "Cherche ici",
|
||||
"alreadyInList": "des résultats de recherche déjà dans votre liste",
|
||||
"noResultsFound": "Aucun résultat",
|
||||
"missingGame": "Manquer un jeu? Aidez la communauté et",
|
||||
"addToIGDB": "Ajoutez-le à IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Ajouter une note"
|
||||
"wallpaper": "Papier peint personnalisé",
|
||||
"shareLink": "Liens partageables (expérimental)",
|
||||
"dangerZone": "Zone dangereuse"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "La session a expiré",
|
||||
"login": "S'identifier",
|
||||
"exit": "Sortie"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Vidéos",
|
||||
"screenshots": "Captures d'écran",
|
||||
"perspective": "La perspective",
|
||||
"releaseDate": "Date de sortie",
|
||||
"timeToBeat": "Temps à battre",
|
||||
"gameModes": "Mode de jeu",
|
||||
"genres": "Genre",
|
||||
"gamePlatforms": "Aussi disponible pour:",
|
||||
"developers": "Développeur",
|
||||
"publishers": "Les éditeurs",
|
||||
"removeFromList": "Retirer de la liste",
|
||||
"links": {
|
||||
"official": "Site officiel",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipédia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Gazouillement",
|
||||
"twitch": "Tic",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Vapeur",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discorde",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Editer le nom de la liste",
|
||||
"type": "Type de liste",
|
||||
"placeholder": "Tapez votre nom de liste ici",
|
||||
"suggestions": {
|
||||
"owned": "Possédé",
|
||||
"wishlist": "Liste de souhaits",
|
||||
"currentlyPlaying": "En train de jouer",
|
||||
"completed": "Terminé"
|
||||
},
|
||||
"input": "Entrez votre propre",
|
||||
"add": "Ajouter la liste",
|
||||
"duplicateWarning": "Vous avez déjà une liste avec ce nom",
|
||||
"getStarted": "Commencer!",
|
||||
"addFirstTime": "Bienvenue, ajoutez votre première liste!",
|
||||
"sortByName": "LA",
|
||||
"sortByRating": "But",
|
||||
"sortByReleaseDate": "Rendez-vous amoureux",
|
||||
"sortByCustom": "Douane",
|
||||
"delete": "Effacer",
|
||||
"moveLeft": "Se déplacer à gauche",
|
||||
"moveRight": "Déplacer vers la droite",
|
||||
"emptyList": "Cette liste est vide",
|
||||
"addGame": "Ajouter un jeu",
|
||||
"view": "Vue liste",
|
||||
"moveList": "Déplacer la liste",
|
||||
"sortList": "Liste de tri",
|
||||
"coversSizeTitle": "Couvre à travers",
|
||||
"views": {
|
||||
"single": "Défaut",
|
||||
"wide": "Compact",
|
||||
"text": "Texte seulement",
|
||||
"grid": "la grille"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "À propos",
|
||||
"platforms": "Plateformes",
|
||||
"gameBoard": "Plateau de jeu",
|
||||
"tags": "Mots clés",
|
||||
"account": "Compte",
|
||||
"global": "Global",
|
||||
"darkTheme": "Thème sombre",
|
||||
"reloading": "Rechargement ...",
|
||||
"releases": "Communiqués",
|
||||
"newsletter": "Recevoir des emails de mise à jour (à venir)",
|
||||
"branding": "Marque de la plateforme (couleurs, logo, etc ...)",
|
||||
"language": "La langue",
|
||||
"languages": {
|
||||
"en": "Anglais",
|
||||
"es": "Espanol",
|
||||
"pl": "polonais",
|
||||
"de": "allemand",
|
||||
"ar": "arabe",
|
||||
"fr": "français",
|
||||
"it": "italien",
|
||||
"eu": "basque",
|
||||
"cs": "tchèque",
|
||||
"ja": "Japonais"
|
||||
},
|
||||
"ownedLists": "Afficher uniquement mes plateformes",
|
||||
"sortPlatforms": "Trier les plateformes par ordre alphabétique",
|
||||
"ratings": "Masquer le score du jeu",
|
||||
"signOut": "Déconnexion",
|
||||
"wallpaper": {
|
||||
"title": "Télécharger un fond d'écran",
|
||||
"transparency": "Autoriser la transparence",
|
||||
"currentWallpaper": "Fond d'écran actuel",
|
||||
"removeWallpaper": "Supprimer le papier peint"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Supprimer le compte",
|
||||
"message": "Les données de votre compte seront définitivement supprimées.",
|
||||
"title": "Êtes-vous sûr?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Balises de jeu",
|
||||
"addTag": "Ajouter une étiquette",
|
||||
"createTag": "Créer un tag",
|
||||
"inputPlaceholder": "Nom du jour",
|
||||
"applyTag": "Appliquer le tag",
|
||||
"useTags": "Utilisez des tags pour mieux organiser vos jeux"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Ajouter des jeux à",
|
||||
"inputPlaceholder": "Cherche ici",
|
||||
"alreadyInList": "des résultats de recherche déjà dans votre liste",
|
||||
"noResultsFound": "Aucun résultat",
|
||||
"missingGame": "Manquer un jeu? Aidez la communauté et",
|
||||
"addToIGDB": "Ajoutez-le à IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Ajouter une note"
|
||||
}
|
||||
}
|
334
src/i18n/it.json
334
src/i18n/it.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Indietro",
|
||||
"save": "Salvare",
|
||||
"cancel": "Annulla",
|
||||
"create": "Creare",
|
||||
"filter": "Filtro",
|
||||
"by": "di",
|
||||
"no": "no",
|
||||
"yes": "sì",
|
||||
"or": "o",
|
||||
"returnHome": "Torna a casa",
|
||||
"pageNotFound": "pagina non trovata"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Errore durante il caricamento dei dati"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Pubblicato {data}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary è gratuito e open source, considera di aiutarne lo sviluppo",
|
||||
"donating": "la donazione",
|
||||
"reportBugs": "segnalazione di bug",
|
||||
"submitFeedback": "invio feedback"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Alimentato da IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Sfondo personalizzato",
|
||||
"shareLink": "Link condivisibili (sperimentale)",
|
||||
"dangerZone": "Zona pericolosa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sessione scaduta",
|
||||
"login": "Accesso",
|
||||
"exit": "Uscita"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "video",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Prospettiva",
|
||||
"releaseDate": "Data di rilascio",
|
||||
"timeToBeat": "È tempo di battere",
|
||||
"gameModes": "Modalità di gioco",
|
||||
"genres": "Genere",
|
||||
"gamePlatforms": "Disponibile anche per:",
|
||||
"developers": "Sviluppatore",
|
||||
"publishers": "editori",
|
||||
"removeFromList": "Rimuovere dalla lista",
|
||||
"links": {
|
||||
"official": "Sito ufficiale",
|
||||
"wikia": "Mondo dei fan",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "cinguettio",
|
||||
"twitch": "Contrazione",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Vapore",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discordia",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Modifica il nome dell'elenco",
|
||||
"type": "Tipo di elenco",
|
||||
"placeholder": "Digita qui il nome della tua lista",
|
||||
"suggestions": {
|
||||
"owned": "Di proprietà",
|
||||
"wishlist": "Lista dei desideri",
|
||||
"currentlyPlaying": "Attualmente in riproduzione",
|
||||
"completed": "Completato"
|
||||
},
|
||||
"input": "Inserisci il tuo",
|
||||
"add": "Aggiungi elenco",
|
||||
"duplicateWarning": "Hai già un elenco con questo nome",
|
||||
"getStarted": "Iniziare!",
|
||||
"addFirstTime": "Benvenuto, aggiungi il tuo primo elenco!",
|
||||
"sortByName": "IL",
|
||||
"sortByRating": "Punto",
|
||||
"sortByReleaseDate": "Data",
|
||||
"sortByCustom": "costume",
|
||||
"delete": "Elimina",
|
||||
"moveLeft": "Muovere a sinistra",
|
||||
"moveRight": "Vai a destra",
|
||||
"emptyList": "Questo elenco è vuoto",
|
||||
"addGame": "Aggiungi gioco",
|
||||
"view": "Visualizzazione elenco",
|
||||
"moveList": "Sposta elenco",
|
||||
"sortList": "Elenco di ordinamento",
|
||||
"coversSizeTitle": "Copre attraverso",
|
||||
"views": {
|
||||
"single": "Predefinito",
|
||||
"wide": "Compatto",
|
||||
"text": "Solo testo",
|
||||
"grid": "Griglia"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Indietro",
|
||||
"save": "Salvare",
|
||||
"cancel": "Annulla",
|
||||
"create": "Creare",
|
||||
"filter": "Filtro",
|
||||
"by": "di",
|
||||
"no": "no",
|
||||
"yes": "sì",
|
||||
"or": "o",
|
||||
"returnHome": "Torna a casa",
|
||||
"pageNotFound": "pagina non trovata"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Errore durante il caricamento dei dati"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Pubblicato {data}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary è gratuito e open source, considera di aiutarne lo sviluppo",
|
||||
"donating": "la donazione",
|
||||
"reportBugs": "segnalazione di bug",
|
||||
"submitFeedback": "invio feedback"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Alimentato da IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "Di",
|
||||
"platforms": "piattaforme",
|
||||
"gameBoard": "Tavolo da gioco",
|
||||
"tags": "tag",
|
||||
"account": "account",
|
||||
"global": "Globale",
|
||||
"darkTheme": "Tema scuro",
|
||||
"reloading": "Ricaricamento ...",
|
||||
"releases": "Uscite",
|
||||
"newsletter": "Ricevi email di aggiornamento (in arrivo)",
|
||||
"branding": "Marchio della piattaforma (colori, logo, ecc ...)",
|
||||
"language": "linguaggio",
|
||||
"languages": {
|
||||
"en": "Inglese",
|
||||
"es": "spagnolo",
|
||||
"pl": "polacco",
|
||||
"de": "Tedesco",
|
||||
"ar": "Arabo",
|
||||
"fr": "francese",
|
||||
"it": "italiano",
|
||||
"eu": "basco",
|
||||
"cs": "ceco",
|
||||
"ja": "giapponese"
|
||||
},
|
||||
"ownedLists": "Mostra solo le mie piattaforme",
|
||||
"sortPlatforms": "Ordina le piattaforme in ordine alfabetico",
|
||||
"ratings": "Nascondi il punteggio del gioco",
|
||||
"signOut": "disconnessione",
|
||||
"wallpaper": {
|
||||
"title": "Carica sfondo",
|
||||
"transparency": "Consenti trasparenza",
|
||||
"currentWallpaper": "Sfondo corrente",
|
||||
"removeWallpaper": "Rimuovi sfondo"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Eliminare l'account",
|
||||
"message": "I dati del tuo account verranno eliminati per sempre.",
|
||||
"title": "Sei sicuro?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tag di gioco",
|
||||
"addTag": "Aggiungi Tag",
|
||||
"createTag": "Crea tag",
|
||||
"inputPlaceholder": "Nome del giorno",
|
||||
"applyTag": "Applica tag",
|
||||
"useTags": "Usa i tag per organizzare meglio i tuoi giochi"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Aggiungi giochi a",
|
||||
"inputPlaceholder": "Cerca qui",
|
||||
"alreadyInList": "dai risultati di ricerca già nel tuo elenco",
|
||||
"noResultsFound": "Nessun risultato",
|
||||
"missingGame": "Manca una partita? Aiuta la comunità e",
|
||||
"addToIGDB": "Aggiungilo a IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Aggiungi nota"
|
||||
"wallpaper": "Sfondo personalizzato",
|
||||
"shareLink": "Link condivisibili (sperimentale)",
|
||||
"dangerZone": "Zona pericolosa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sessione scaduta",
|
||||
"login": "Accesso",
|
||||
"exit": "Uscita"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "video",
|
||||
"screenshots": "Screenshots",
|
||||
"perspective": "Prospettiva",
|
||||
"releaseDate": "Data di rilascio",
|
||||
"timeToBeat": "È tempo di battere",
|
||||
"gameModes": "Modalità di gioco",
|
||||
"genres": "Genere",
|
||||
"gamePlatforms": "Disponibile anche per:",
|
||||
"developers": "Sviluppatore",
|
||||
"publishers": "editori",
|
||||
"removeFromList": "Rimuovere dalla lista",
|
||||
"links": {
|
||||
"official": "Sito ufficiale",
|
||||
"wikia": "Mondo dei fan",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "cinguettio",
|
||||
"twitch": "Contrazione",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Play Store",
|
||||
"steam": "Vapore",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Discordia",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Modifica il nome dell'elenco",
|
||||
"type": "Tipo di elenco",
|
||||
"placeholder": "Digita qui il nome della tua lista",
|
||||
"suggestions": {
|
||||
"owned": "Di proprietà",
|
||||
"wishlist": "Lista dei desideri",
|
||||
"currentlyPlaying": "Attualmente in riproduzione",
|
||||
"completed": "Completato"
|
||||
},
|
||||
"input": "Inserisci il tuo",
|
||||
"add": "Aggiungi elenco",
|
||||
"duplicateWarning": "Hai già un elenco con questo nome",
|
||||
"getStarted": "Iniziare!",
|
||||
"addFirstTime": "Benvenuto, aggiungi il tuo primo elenco!",
|
||||
"sortByName": "IL",
|
||||
"sortByRating": "Punto",
|
||||
"sortByReleaseDate": "Data",
|
||||
"sortByCustom": "costume",
|
||||
"delete": "Elimina",
|
||||
"moveLeft": "Muovere a sinistra",
|
||||
"moveRight": "Vai a destra",
|
||||
"emptyList": "Questo elenco è vuoto",
|
||||
"addGame": "Aggiungi gioco",
|
||||
"view": "Visualizzazione elenco",
|
||||
"moveList": "Sposta elenco",
|
||||
"sortList": "Elenco di ordinamento",
|
||||
"coversSizeTitle": "Copre attraverso",
|
||||
"views": {
|
||||
"single": "Predefinito",
|
||||
"wide": "Compatto",
|
||||
"text": "Solo testo",
|
||||
"grid": "Griglia"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "Di",
|
||||
"platforms": "piattaforme",
|
||||
"gameBoard": "Tavolo da gioco",
|
||||
"tags": "tag",
|
||||
"account": "account",
|
||||
"global": "Globale",
|
||||
"darkTheme": "Tema scuro",
|
||||
"reloading": "Ricaricamento ...",
|
||||
"releases": "Uscite",
|
||||
"newsletter": "Ricevi email di aggiornamento (in arrivo)",
|
||||
"branding": "Marchio della piattaforma (colori, logo, ecc ...)",
|
||||
"language": "linguaggio",
|
||||
"languages": {
|
||||
"en": "Inglese",
|
||||
"es": "spagnolo",
|
||||
"pl": "polacco",
|
||||
"de": "Tedesco",
|
||||
"ar": "Arabo",
|
||||
"fr": "francese",
|
||||
"it": "italiano",
|
||||
"eu": "basco",
|
||||
"cs": "ceco",
|
||||
"ja": "giapponese"
|
||||
},
|
||||
"ownedLists": "Mostra solo le mie piattaforme",
|
||||
"sortPlatforms": "Ordina le piattaforme in ordine alfabetico",
|
||||
"ratings": "Nascondi il punteggio del gioco",
|
||||
"signOut": "disconnessione",
|
||||
"wallpaper": {
|
||||
"title": "Carica sfondo",
|
||||
"transparency": "Consenti trasparenza",
|
||||
"currentWallpaper": "Sfondo corrente",
|
||||
"removeWallpaper": "Rimuovi sfondo"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Eliminare l'account",
|
||||
"message": "I dati del tuo account verranno eliminati per sempre.",
|
||||
"title": "Sei sicuro?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tag di gioco",
|
||||
"addTag": "Aggiungi Tag",
|
||||
"createTag": "Crea tag",
|
||||
"inputPlaceholder": "Nome del giorno",
|
||||
"applyTag": "Applica tag",
|
||||
"useTags": "Usa i tag per organizzare meglio i tuoi giochi"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Aggiungi giochi a",
|
||||
"inputPlaceholder": "Cerca qui",
|
||||
"alreadyInList": "dai risultati di ricerca già nel tuo elenco",
|
||||
"noResultsFound": "Nessun risultato",
|
||||
"missingGame": "Manca una partita? Aiuta la comunità e",
|
||||
"addToIGDB": "Aggiungilo a IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Aggiungi nota"
|
||||
}
|
||||
}
|
334
src/i18n/ja.json
334
src/i18n/ja.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "バック",
|
||||
"save": "保存する",
|
||||
"cancel": "キャンセル",
|
||||
"create": "作成する",
|
||||
"filter": "フィルタ",
|
||||
"by": "によって",
|
||||
"no": "いや",
|
||||
"yes": "はい",
|
||||
"or": "または",
|
||||
"returnHome": "帰宅",
|
||||
"pageNotFound": "ページが見つかりません"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "データの読み込みエラー"
|
||||
},
|
||||
"releases": {
|
||||
"published": "{date}を公開しました"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebraryは無料でオープンソースです。その開発を支援することを検討してください",
|
||||
"donating": "寄付",
|
||||
"reportBugs": "バグを報告する",
|
||||
"submitFeedback": "フィードバックを送信する"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "IGDBを搭載"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "カスタム壁紙",
|
||||
"shareLink": "共有可能なリンク(実験的)",
|
||||
"dangerZone": "危険区域"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "セッションの有効期限が切れ",
|
||||
"login": "ログイン",
|
||||
"exit": "出口"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "動画",
|
||||
"screenshots": "スクリーンショット",
|
||||
"perspective": "遠近法",
|
||||
"releaseDate": "発売日",
|
||||
"timeToBeat": "ビートする時間",
|
||||
"gameModes": "ゲームモード",
|
||||
"genres": "ジャンル",
|
||||
"gamePlatforms": "以下にも利用可能:",
|
||||
"developers": "開発者",
|
||||
"publishers": "出版社",
|
||||
"removeFromList": "リストから削除する",
|
||||
"links": {
|
||||
"official": "オフィシャルサイト",
|
||||
"wikia": "ファンダム",
|
||||
"wikipedia": "ウィキペディア",
|
||||
"facebook": "フェイスブック",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "けいれん",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "プレイストア",
|
||||
"steam": "蒸気",
|
||||
"reddit": "Reddit",
|
||||
"discord": "不和",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "タンブラー",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "リスト名を編集",
|
||||
"type": "リストタイプ",
|
||||
"placeholder": "ここにリスト名を入力してください",
|
||||
"suggestions": {
|
||||
"owned": "所有",
|
||||
"wishlist": "ウィッシュリスト",
|
||||
"currentlyPlaying": "現在プレイ中",
|
||||
"completed": "完了しました"
|
||||
},
|
||||
"input": "あなた自身を入力してください",
|
||||
"add": "リストを追加",
|
||||
"duplicateWarning": "この名前のリストは既にあります",
|
||||
"getStarted": "始めましょう!",
|
||||
"addFirstTime": "ようこそ、最初のリストを追加してください!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "スコア",
|
||||
"sortByReleaseDate": "日付",
|
||||
"sortByCustom": "カスタム",
|
||||
"delete": "削除する",
|
||||
"moveLeft": "左に移動",
|
||||
"moveRight": "右に動く",
|
||||
"emptyList": "このリストは空です",
|
||||
"addGame": "ゲームを追加",
|
||||
"view": "リストビュー",
|
||||
"moveList": "リストを移動する",
|
||||
"sortList": "ソートリスト",
|
||||
"coversSizeTitle": "全体をカバー",
|
||||
"views": {
|
||||
"single": "デフォルト",
|
||||
"wide": "コンパクト",
|
||||
"text": "テキストのみ",
|
||||
"grid": "グリッド"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "バック",
|
||||
"save": "保存する",
|
||||
"cancel": "キャンセル",
|
||||
"create": "作成する",
|
||||
"filter": "フィルタ",
|
||||
"by": "によって",
|
||||
"no": "いや",
|
||||
"yes": "はい",
|
||||
"or": "または",
|
||||
"returnHome": "帰宅",
|
||||
"pageNotFound": "ページが見つかりません"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "データの読み込みエラー"
|
||||
},
|
||||
"releases": {
|
||||
"published": "{date}を公開しました"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebraryは無料でオープンソースです。その開発を支援することを検討してください",
|
||||
"donating": "寄付",
|
||||
"reportBugs": "バグを報告する",
|
||||
"submitFeedback": "フィードバックを送信する"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "IGDBを搭載"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "約",
|
||||
"platforms": "プラットフォーム",
|
||||
"gameBoard": "ゲームボード",
|
||||
"tags": "タグ",
|
||||
"account": "アカウント",
|
||||
"global": "グローバル",
|
||||
"darkTheme": "暗いテーマ",
|
||||
"reloading": "再読み込みしています...",
|
||||
"releases": "リリース",
|
||||
"newsletter": "更新メールを受け取る(近日公開予定)",
|
||||
"branding": "プラットフォームのブランディング(色、ロゴなど)",
|
||||
"language": "言語",
|
||||
"languages": {
|
||||
"en": "英語",
|
||||
"es": "スペイン語",
|
||||
"pl": "研磨",
|
||||
"de": "ドイツ人",
|
||||
"ar": "アラビア語",
|
||||
"fr": "フランス語",
|
||||
"it": "イタリアの",
|
||||
"eu": "バスク",
|
||||
"cs": "チェコ語",
|
||||
"ja": "日本人"
|
||||
},
|
||||
"ownedLists": "プラットフォームのみを表示する",
|
||||
"sortPlatforms": "プラットフォームをアルファベット順に並べ替えます",
|
||||
"ratings": "ゲームのスコアを非表示",
|
||||
"signOut": "サインアウト",
|
||||
"wallpaper": {
|
||||
"title": "壁紙をアップロード",
|
||||
"transparency": "透明化を許可する",
|
||||
"currentWallpaper": "現在の壁紙",
|
||||
"removeWallpaper": "壁紙を削除"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "アカウントを削除する",
|
||||
"message": "アカウントデータは完全に削除されます。",
|
||||
"title": "本気ですか?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "ゲームタグ",
|
||||
"addTag": "タグ付けする",
|
||||
"createTag": "タグを作成",
|
||||
"inputPlaceholder": "曜日名",
|
||||
"applyTag": "タグを適用",
|
||||
"useTags": "タグを使用してゲームを整理します"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "にゲームを追加",
|
||||
"inputPlaceholder": "検索",
|
||||
"alreadyInList": "すでにリストにある検索結果から",
|
||||
"noResultsFound": "結果がありません",
|
||||
"missingGame": "ゲームが見つかりませんか?コミュニティを助け、",
|
||||
"addToIGDB": "IGDBに追加します"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "メモを追加"
|
||||
"wallpaper": "カスタム壁紙",
|
||||
"shareLink": "共有可能なリンク(実験的)",
|
||||
"dangerZone": "危険区域"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "セッションの有効期限が切れ",
|
||||
"login": "ログイン",
|
||||
"exit": "出口"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "動画",
|
||||
"screenshots": "スクリーンショット",
|
||||
"perspective": "遠近法",
|
||||
"releaseDate": "発売日",
|
||||
"timeToBeat": "ビートする時間",
|
||||
"gameModes": "ゲームモード",
|
||||
"genres": "ジャンル",
|
||||
"gamePlatforms": "以下にも利用可能:",
|
||||
"developers": "開発者",
|
||||
"publishers": "出版社",
|
||||
"removeFromList": "リストから削除する",
|
||||
"links": {
|
||||
"official": "オフィシャルサイト",
|
||||
"wikia": "ファンダム",
|
||||
"wikipedia": "ウィキペディア",
|
||||
"facebook": "フェイスブック",
|
||||
"twitter": "Twitter",
|
||||
"twitch": "けいれん",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "Youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "プレイストア",
|
||||
"steam": "蒸気",
|
||||
"reddit": "Reddit",
|
||||
"discord": "不和",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "タンブラー",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "リスト名を編集",
|
||||
"type": "リストタイプ",
|
||||
"placeholder": "ここにリスト名を入力してください",
|
||||
"suggestions": {
|
||||
"owned": "所有",
|
||||
"wishlist": "ウィッシュリスト",
|
||||
"currentlyPlaying": "現在プレイ中",
|
||||
"completed": "完了しました"
|
||||
},
|
||||
"input": "あなた自身を入力してください",
|
||||
"add": "リストを追加",
|
||||
"duplicateWarning": "この名前のリストは既にあります",
|
||||
"getStarted": "始めましょう!",
|
||||
"addFirstTime": "ようこそ、最初のリストを追加してください!",
|
||||
"sortByName": "THE",
|
||||
"sortByRating": "スコア",
|
||||
"sortByReleaseDate": "日付",
|
||||
"sortByCustom": "カスタム",
|
||||
"delete": "削除する",
|
||||
"moveLeft": "左に移動",
|
||||
"moveRight": "右に動く",
|
||||
"emptyList": "このリストは空です",
|
||||
"addGame": "ゲームを追加",
|
||||
"view": "リストビュー",
|
||||
"moveList": "リストを移動する",
|
||||
"sortList": "ソートリスト",
|
||||
"coversSizeTitle": "全体をカバー",
|
||||
"views": {
|
||||
"single": "デフォルト",
|
||||
"wide": "コンパクト",
|
||||
"text": "テキストのみ",
|
||||
"grid": "グリッド"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "約",
|
||||
"platforms": "プラットフォーム",
|
||||
"gameBoard": "ゲームボード",
|
||||
"tags": "タグ",
|
||||
"account": "アカウント",
|
||||
"global": "グローバル",
|
||||
"darkTheme": "暗いテーマ",
|
||||
"reloading": "再読み込みしています...",
|
||||
"releases": "リリース",
|
||||
"newsletter": "更新メールを受け取る(近日公開予定)",
|
||||
"branding": "プラットフォームのブランディング(色、ロゴなど)",
|
||||
"language": "言語",
|
||||
"languages": {
|
||||
"en": "英語",
|
||||
"es": "スペイン語",
|
||||
"pl": "研磨",
|
||||
"de": "ドイツ人",
|
||||
"ar": "アラビア語",
|
||||
"fr": "フランス語",
|
||||
"it": "イタリアの",
|
||||
"eu": "バスク",
|
||||
"cs": "チェコ語",
|
||||
"ja": "日本人"
|
||||
},
|
||||
"ownedLists": "プラットフォームのみを表示する",
|
||||
"sortPlatforms": "プラットフォームをアルファベット順に並べ替えます",
|
||||
"ratings": "ゲームのスコアを非表示",
|
||||
"signOut": "サインアウト",
|
||||
"wallpaper": {
|
||||
"title": "壁紙をアップロード",
|
||||
"transparency": "透明化を許可する",
|
||||
"currentWallpaper": "現在の壁紙",
|
||||
"removeWallpaper": "壁紙を削除"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "アカウントを削除する",
|
||||
"message": "アカウントデータは完全に削除されます。",
|
||||
"title": "本気ですか?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "ゲームタグ",
|
||||
"addTag": "タグ付けする",
|
||||
"createTag": "タグを作成",
|
||||
"inputPlaceholder": "曜日名",
|
||||
"applyTag": "タグを適用",
|
||||
"useTags": "タグを使用してゲームを整理します"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "にゲームを追加",
|
||||
"inputPlaceholder": "検索",
|
||||
"alreadyInList": "すでにリストにある検索結果から",
|
||||
"noResultsFound": "結果がありません",
|
||||
"missingGame": "ゲームが見つかりませんか?コミュニティを助け、",
|
||||
"addToIGDB": "IGDBに追加します"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "メモを追加"
|
||||
}
|
||||
}
|
334
src/i18n/pl.json
334
src/i18n/pl.json
|
@ -1,171 +1,171 @@
|
|||
{
|
||||
"global": {
|
||||
"back": "Z powrotem",
|
||||
"save": "Zapisać",
|
||||
"cancel": "Anuluj",
|
||||
"create": "Stwórz",
|
||||
"filter": "Filtr",
|
||||
"by": "przez",
|
||||
"no": "Nie",
|
||||
"yes": "tak",
|
||||
"or": "lub",
|
||||
"returnHome": "Wrócić do domu",
|
||||
"pageNotFound": "Strona nie znaleziona"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Błąd ładowania danych"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Data publikacji}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary jest darmowym i otwartym oprogramowaniem, rozważ pomoc w jego rozwoju",
|
||||
"donating": "darowizny",
|
||||
"reportBugs": "zgłaszanie błędów",
|
||||
"submitFeedback": "przesyłanie opinii"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Obsługiwane przez IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"wallpaper": "Własna tapeta",
|
||||
"shareLink": "Udostępniane linki (eksperymentalne)",
|
||||
"dangerZone": "Strefa niebezpieczeństwa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sesja wygasła",
|
||||
"login": "Zaloguj Się",
|
||||
"exit": "Wyjście"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Wideo",
|
||||
"screenshots": "Zrzuty ekranu",
|
||||
"perspective": "Perspektywiczny",
|
||||
"releaseDate": "Data wydania",
|
||||
"timeToBeat": "Czas na pokonanie",
|
||||
"gameModes": "Tryb gry",
|
||||
"genres": "Gatunek muzyczny",
|
||||
"gamePlatforms": "Dostępne również dla:",
|
||||
"developers": "Deweloper",
|
||||
"publishers": "Wydawcy",
|
||||
"removeFromList": "Usunąć z listy",
|
||||
"links": {
|
||||
"official": "Oficjalna strona",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Świergot",
|
||||
"twitch": "Skurcz",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Sklep Play",
|
||||
"steam": "Parowy",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Niezgoda",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Edytuj nazwę listy",
|
||||
"type": "Rodzaj listy",
|
||||
"placeholder": "Wpisz tutaj swoją nazwę listy",
|
||||
"suggestions": {
|
||||
"owned": "Posiadane",
|
||||
"wishlist": "Lista życzeń",
|
||||
"currentlyPlaying": "Obecnie gra",
|
||||
"completed": "Zakończony"
|
||||
},
|
||||
"input": "Wpisz własne",
|
||||
"add": "Dodaj listę",
|
||||
"duplicateWarning": "Masz już listę o tej nazwie",
|
||||
"getStarted": "Zaczynać!",
|
||||
"addFirstTime": "Witamy, dodaj swoją pierwszą listę!",
|
||||
"sortByName": "",
|
||||
"sortByRating": "Wynik",
|
||||
"sortByReleaseDate": "Data",
|
||||
"sortByCustom": "Zwyczaj",
|
||||
"delete": "Kasować",
|
||||
"moveLeft": "Przesuń w lewo",
|
||||
"moveRight": "Ruch w prawo",
|
||||
"emptyList": "Ta lista jest pusta",
|
||||
"addGame": "Dodaj grę",
|
||||
"view": "Widok listy",
|
||||
"moveList": "Przenieś listę",
|
||||
"sortList": "Sortuj listę",
|
||||
"coversSizeTitle": "Obejmuje w poprzek",
|
||||
"views": {
|
||||
"single": "Domyślna",
|
||||
"wide": "Kompaktowy",
|
||||
"text": "Tylko tekst",
|
||||
"grid": "Krata"
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"back": "Z powrotem",
|
||||
"save": "Zapisać",
|
||||
"cancel": "Anuluj",
|
||||
"create": "Stwórz",
|
||||
"filter": "Filtr",
|
||||
"by": "przez",
|
||||
"no": "Nie",
|
||||
"yes": "tak",
|
||||
"or": "lub",
|
||||
"returnHome": "Wrócić do domu",
|
||||
"pageNotFound": "Strona nie znaleziona"
|
||||
},
|
||||
"errors": {
|
||||
"loading": "Błąd ładowania danych"
|
||||
},
|
||||
"releases": {
|
||||
"published": "Data publikacji}"
|
||||
},
|
||||
"platforms": {
|
||||
"donateMessage": "Gamebrary jest darmowym i otwartym oprogramowaniem, rozważ pomoc w jego rozwoju",
|
||||
"donating": "darowizny",
|
||||
"reportBugs": "zgłaszanie błędów",
|
||||
"submitFeedback": "przesyłanie opinii"
|
||||
},
|
||||
"igdbCredit": {
|
||||
"poweredByIgdb": "Obsługiwane przez IGDB"
|
||||
},
|
||||
"gameBoard": {
|
||||
"settings": {
|
||||
"about": "O",
|
||||
"platforms": "Platformy",
|
||||
"gameBoard": "Gra planszowa",
|
||||
"tags": "Tagi",
|
||||
"account": "Konto",
|
||||
"global": "Światowy",
|
||||
"darkTheme": "ciemny schemat",
|
||||
"reloading": "Ponowne ładowanie ...",
|
||||
"releases": "Wydawnictwa",
|
||||
"newsletter": "Otrzymuj e-maile z aktualizacją (wkrótce)",
|
||||
"branding": "Znakowanie platformy (kolory, logo itp.)",
|
||||
"language": "Język",
|
||||
"languages": {
|
||||
"en": "język angielski",
|
||||
"es": "hiszpański",
|
||||
"pl": "Polskie",
|
||||
"de": "Niemiecki",
|
||||
"ar": "arabski",
|
||||
"fr": "Francuski",
|
||||
"it": "Włoski",
|
||||
"eu": "baskijski",
|
||||
"cs": "Czech",
|
||||
"ja": "język japoński"
|
||||
},
|
||||
"ownedLists": "Pokaż tylko moje platformy",
|
||||
"sortPlatforms": "Sortuj platformy alfabetycznie",
|
||||
"ratings": "Ukryj wynik gry",
|
||||
"signOut": "Wyloguj się",
|
||||
"wallpaper": {
|
||||
"title": "Prześlij tapetę",
|
||||
"transparency": "Zezwól na przezroczystość",
|
||||
"currentWallpaper": "Aktualna tapeta",
|
||||
"removeWallpaper": "Usuń tapetę"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Usuń konto",
|
||||
"message": "Twoje dane zostaną usunięte na zawsze.",
|
||||
"title": "Jesteś pewny?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tagi gier",
|
||||
"addTag": "Dodaj tag",
|
||||
"createTag": "Utwórz tag",
|
||||
"inputPlaceholder": "Nazwa dnia",
|
||||
"applyTag": "Zastosuj tag",
|
||||
"useTags": "Użyj tagów, aby lepiej zorganizować swoje gry"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Dodaj gry do",
|
||||
"inputPlaceholder": "Szukaj tutaj",
|
||||
"alreadyInList": "z wyników wyszukiwania już na twojej liście",
|
||||
"noResultsFound": "Brak wyników",
|
||||
"missingGame": "Brakuje gry? Pomóż społeczności i",
|
||||
"addToIGDB": "Dodaj go do IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Dodaj notatkę"
|
||||
"wallpaper": "Własna tapeta",
|
||||
"shareLink": "Udostępniane linki (eksperymentalne)",
|
||||
"dangerZone": "Strefa niebezpieczeństwa"
|
||||
}
|
||||
},
|
||||
"sessionExpired": {
|
||||
"title": "Sesja wygasła",
|
||||
"login": "Zaloguj Się",
|
||||
"exit": "Wyjście"
|
||||
},
|
||||
"gameDetail": {
|
||||
"videos": "Wideo",
|
||||
"screenshots": "Zrzuty ekranu",
|
||||
"perspective": "Perspektywiczny",
|
||||
"releaseDate": "Data wydania",
|
||||
"timeToBeat": "Czas na pokonanie",
|
||||
"gameModes": "Tryb gry",
|
||||
"genres": "Gatunek muzyczny",
|
||||
"gamePlatforms": "Dostępne również dla:",
|
||||
"developers": "Deweloper",
|
||||
"publishers": "Wydawcy",
|
||||
"removeFromList": "Usunąć z listy",
|
||||
"links": {
|
||||
"official": "Oficjalna strona",
|
||||
"wikia": "Fandom",
|
||||
"wikipedia": "Wikipedia",
|
||||
"facebook": "Facebook",
|
||||
"twitter": "Świergot",
|
||||
"twitch": "Skurcz",
|
||||
"instagram": "Instagram",
|
||||
"youtube": "youtube",
|
||||
"iphone": "iOS",
|
||||
"ipad": "iPad",
|
||||
"android": "Sklep Play",
|
||||
"steam": "Parowy",
|
||||
"reddit": "Reddit",
|
||||
"discord": "Niezgoda",
|
||||
"google_plus": "Google Plus",
|
||||
"tumblr": "Tumblr",
|
||||
"linkedin": "Linkedin",
|
||||
"pinterest": "Pinterest",
|
||||
"soundcloud": "Soundcloud"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"edit": "Edytuj nazwę listy",
|
||||
"type": "Rodzaj listy",
|
||||
"placeholder": "Wpisz tutaj swoją nazwę listy",
|
||||
"suggestions": {
|
||||
"owned": "Posiadane",
|
||||
"wishlist": "Lista życzeń",
|
||||
"currentlyPlaying": "Obecnie gra",
|
||||
"completed": "Zakończony"
|
||||
},
|
||||
"input": "Wpisz własne",
|
||||
"add": "Dodaj listę",
|
||||
"duplicateWarning": "Masz już listę o tej nazwie",
|
||||
"getStarted": "Zaczynać!",
|
||||
"addFirstTime": "Witamy, dodaj swoją pierwszą listę!",
|
||||
"sortByName": "",
|
||||
"sortByRating": "Wynik",
|
||||
"sortByReleaseDate": "Data",
|
||||
"sortByCustom": "Zwyczaj",
|
||||
"delete": "Kasować",
|
||||
"moveLeft": "Przesuń w lewo",
|
||||
"moveRight": "Ruch w prawo",
|
||||
"emptyList": "Ta lista jest pusta",
|
||||
"addGame": "Dodaj grę",
|
||||
"view": "Widok listy",
|
||||
"moveList": "Przenieś listę",
|
||||
"sortList": "Sortuj listę",
|
||||
"coversSizeTitle": "Obejmuje w poprzek",
|
||||
"views": {
|
||||
"single": "Domyślna",
|
||||
"wide": "Kompaktowy",
|
||||
"text": "Tylko tekst",
|
||||
"grid": "Krata"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"about": "O",
|
||||
"platforms": "Platformy",
|
||||
"gameBoard": "Gra planszowa",
|
||||
"tags": "Tagi",
|
||||
"account": "Konto",
|
||||
"global": "Światowy",
|
||||
"darkTheme": "ciemny schemat",
|
||||
"reloading": "Ponowne ładowanie ...",
|
||||
"releases": "Wydawnictwa",
|
||||
"newsletter": "Otrzymuj e-maile z aktualizacją (wkrótce)",
|
||||
"branding": "Znakowanie platformy (kolory, logo itp.)",
|
||||
"language": "Język",
|
||||
"languages": {
|
||||
"en": "język angielski",
|
||||
"es": "hiszpański",
|
||||
"pl": "Polskie",
|
||||
"de": "Niemiecki",
|
||||
"ar": "arabski",
|
||||
"fr": "Francuski",
|
||||
"it": "Włoski",
|
||||
"eu": "baskijski",
|
||||
"cs": "Czech",
|
||||
"ja": "język japoński"
|
||||
},
|
||||
"ownedLists": "Pokaż tylko moje platformy",
|
||||
"sortPlatforms": "Sortuj platformy alfabetycznie",
|
||||
"ratings": "Ukryj wynik gry",
|
||||
"signOut": "Wyloguj się",
|
||||
"wallpaper": {
|
||||
"title": "Prześlij tapetę",
|
||||
"transparency": "Zezwól na przezroczystość",
|
||||
"currentWallpaper": "Aktualna tapeta",
|
||||
"removeWallpaper": "Usuń tapetę"
|
||||
},
|
||||
"deleteAccount": {
|
||||
"button": "Usuń konto",
|
||||
"message": "Twoje dane zostaną usunięte na zawsze.",
|
||||
"title": "Jesteś pewny?"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tagi gier",
|
||||
"addTag": "Dodaj tag",
|
||||
"createTag": "Utwórz tag",
|
||||
"inputPlaceholder": "Nazwa dnia",
|
||||
"applyTag": "Zastosuj tag",
|
||||
"useTags": "Użyj tagów, aby lepiej zorganizować swoje gry"
|
||||
},
|
||||
"gameSearch": {
|
||||
"title": "Dodaj gry do",
|
||||
"inputPlaceholder": "Szukaj tutaj",
|
||||
"alreadyInList": "z wyników wyszukiwania już na twojej liście",
|
||||
"noResultsFound": "Brak wyników",
|
||||
"missingGame": "Brakuje gry? Pomóż społeczności i",
|
||||
"addToIGDB": "Dodaj go do IGDB"
|
||||
},
|
||||
"notes": {
|
||||
"addNote": "Dodaj notatkę"
|
||||
}
|
||||
}
|
|
@ -72,3 +72,4 @@ new Vue({
|
|||
components: { App },
|
||||
template: '<App/>',
|
||||
});
|
||||
|
||||
|
|
|
@ -1,60 +1,62 @@
|
|||
<template lang="html">
|
||||
<div
|
||||
class="game-board"
|
||||
ref="gameBoard"
|
||||
v-if="user && platform"
|
||||
<div
|
||||
v-if="user && platform"
|
||||
ref="gameBoard"
|
||||
class="game-board"
|
||||
>
|
||||
<game-board-placeholder
|
||||
v-if="loading"
|
||||
:id="gameDetailId" />
|
||||
|
||||
<modal
|
||||
ref="game"
|
||||
large
|
||||
@close="closeGame"
|
||||
>
|
||||
<game-board-placeholder :id="gameDetailId" v-if="loading" />
|
||||
<game-detail
|
||||
v-if="gameDetailId"
|
||||
slot="content"
|
||||
:id="gameDetailId"
|
||||
:list-id="gameDetailListIndex"
|
||||
/>
|
||||
</modal>
|
||||
|
||||
<modal
|
||||
ref="game"
|
||||
large
|
||||
@close="closeGame"
|
||||
<modal
|
||||
ref="tag"
|
||||
:title="$t('tags.applyTag')"
|
||||
:message="$t('tags.useTags')"
|
||||
>
|
||||
<div slot="content">
|
||||
<div
|
||||
v-for="(tag, name) in tags"
|
||||
:key="name"
|
||||
class="tags"
|
||||
>
|
||||
<game-detail
|
||||
v-if="gameDetailId"
|
||||
slot="content"
|
||||
:id="gameDetailId"
|
||||
:list-id="gameDetailListIndex"
|
||||
/>
|
||||
</modal>
|
||||
<tag
|
||||
:label="name"
|
||||
:hex="tag.hex"
|
||||
:readonly="!tag.games.includes(gameTagsId)"
|
||||
@action="tryAdd(tag.games, name)"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
<modal
|
||||
ref="tag"
|
||||
:title="$t('tags.applyTag')"
|
||||
:message="$t('tags.useTags')"
|
||||
>
|
||||
<div slot="content">
|
||||
<div
|
||||
class="tags"
|
||||
v-for="(tag, name) in tags"
|
||||
:key="name"
|
||||
>
|
||||
<tag
|
||||
:label="name"
|
||||
:hex="tag.hex"
|
||||
:readonly="!tag.games.includes(gameTagsId)"
|
||||
@action="tryAdd(tag.games, name)"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</modal>
|
||||
<template>
|
||||
<list
|
||||
v-for="(list, listIndex) in gameLists[platform.code]"
|
||||
v-if="list && !loading"
|
||||
:name="list.name"
|
||||
:game-list="list.games"
|
||||
:list-index="listIndex"
|
||||
:key="`${list.name}-${listIndex}`"
|
||||
@end="dragEnd"
|
||||
/>
|
||||
|
||||
<template>
|
||||
<list
|
||||
:name="list.name"
|
||||
:game-list="list.games"
|
||||
:listIndex="listIndex"
|
||||
:key="`${list.name}-${listIndex}`"
|
||||
v-if="list && !loading"
|
||||
v-for="(list, listIndex) in gameLists[platform.code]"
|
||||
@end="dragEnd"
|
||||
/>
|
||||
|
||||
<list-add />
|
||||
</template>
|
||||
</div>
|
||||
<list-add />
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -214,21 +216,21 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.game-board {
|
||||
user-select: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
height: calc(100vh - 48px);
|
||||
padding: 0 $gp;
|
||||
box-sizing: border-box;
|
||||
overflow-x: auto;
|
||||
overflow-x: overlay;
|
||||
display: flex;
|
||||
}
|
||||
.game-board {
|
||||
user-select: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
height: calc(100vh - 48px);
|
||||
padding: 0 $gp;
|
||||
box-sizing: border-box;
|
||||
overflow-x: auto;
|
||||
overflow-x: overlay;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.list-placeholder {
|
||||
opacity: 0.25;
|
||||
}
|
||||
.list-placeholder {
|
||||
opacity: 0.25;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,93 +1,120 @@
|
|||
<template lang="html">
|
||||
<div class="game-detail">
|
||||
<header>
|
||||
<aside>
|
||||
<img :src="coverUrl" :alt="games[id].name" class="game-cover" />
|
||||
<div class="game-detail">
|
||||
<header>
|
||||
<aside>
|
||||
<img
|
||||
:src="coverUrl"
|
||||
:alt="games[id].name"
|
||||
class="game-cover" >
|
||||
|
||||
<div class="game-rating" v-if="game && game.age_ratings">
|
||||
<img
|
||||
v-for="{ rating, synopsis, id } in game.age_ratings"
|
||||
:key="id"
|
||||
:src='`/static/img/age-ratings/${ageRatings[rating]}.png`'
|
||||
:alt="synopsis"
|
||||
/>
|
||||
</div>
|
||||
</aside>
|
||||
<div
|
||||
v-if="game && game.age_ratings"
|
||||
class="game-rating">
|
||||
<img
|
||||
v-for="{ rating, synopsis, id } in game.age_ratings"
|
||||
:key="id"
|
||||
:src="`/static/img/age-ratings/${ageRatings[rating]}.png`"
|
||||
:alt="synopsis"
|
||||
>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<article>
|
||||
<h2>{{ games[id].name }}</h2>
|
||||
{{ platform.name }}
|
||||
<game-rating :rating="games[id].rating" v-if="games[id].rating" />
|
||||
<article>
|
||||
<h2>{{ games[id].name }}</h2>
|
||||
{{ platform.name }}
|
||||
<game-rating
|
||||
v-if="games[id].rating"
|
||||
:rating="games[id].rating" />
|
||||
|
||||
<div class="details" v-if="game">
|
||||
<p class="game-description" v-html="game.summary" />
|
||||
<div class="actions">
|
||||
<button
|
||||
v-if="list.games.includes(game.id)"
|
||||
class="danger"
|
||||
@click="removeGame"
|
||||
>
|
||||
<i class="far fa-trash-alt delete-game" />
|
||||
{{ $t('gameDetail.removeFromList')}}
|
||||
</button>
|
||||
<div
|
||||
v-if="game"
|
||||
class="details">
|
||||
<p
|
||||
class="game-description"
|
||||
v-html="game.summary" />
|
||||
<div class="actions">
|
||||
<button
|
||||
v-if="list.games.includes(game.id)"
|
||||
class="danger"
|
||||
@click="removeGame"
|
||||
>
|
||||
<i class="far fa-trash-alt delete-game" />
|
||||
{{ $t('gameDetail.removeFromList') }}
|
||||
</button>
|
||||
|
||||
<button class="primary" v-else>
|
||||
{{ $t('list.addGame') }}
|
||||
<button
|
||||
v-else
|
||||
class="primary">
|
||||
{{ $t('list.addGame') }}
|
||||
|
||||
</button>
|
||||
</button>
|
||||
|
||||
<div class="tags" v-if="hasTags">
|
||||
<button class="primary hollow" @click="openTags">
|
||||
<i class="fas fa-tag" />
|
||||
{{ $t('tags.addTag') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<game-notes />
|
||||
<div
|
||||
v-if="hasTags"
|
||||
class="tags">
|
||||
<button
|
||||
class="primary hollow"
|
||||
@click="openTags">
|
||||
<i class="fas fa-tag" />
|
||||
{{ $t('tags.addTag') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<game-notes />
|
||||
|
||||
<section v-if="gamePlatforms && gamePlatforms.length > 0">
|
||||
<h4>{{ $t('gameDetail.gamePlatforms') }}</h4>
|
||||
<section v-if="gamePlatforms && gamePlatforms.length > 0">
|
||||
<h4>{{ $t('gameDetail.gamePlatforms') }}</h4>
|
||||
|
||||
<div class="platforms">
|
||||
<platform
|
||||
v-for="platform in gamePlatforms"
|
||||
:key="platform.name"
|
||||
:platform="platform"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
<div class="platforms">
|
||||
<platform
|
||||
v-for="platform in gamePlatforms"
|
||||
:key="platform.name"
|
||||
:platform="platform"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<tag
|
||||
v-if="games.includes(game.id)"
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
:key="name"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
<tag
|
||||
v-for="({ games, hex }, name) in tags"
|
||||
v-if="games.includes(game.id)"
|
||||
:key="name"
|
||||
:label="name"
|
||||
:hex="hex"
|
||||
readonly
|
||||
@action="openTags"
|
||||
@close="removeTag(name)"
|
||||
/>
|
||||
|
||||
<igdb-credit gray />
|
||||
<igdb-credit gray />
|
||||
|
||||
<div class="tabs">
|
||||
<span v-for="{ value, icon, text } in tabs" :key="value">
|
||||
<label :for="value" :class="{ active: value === tab }">
|
||||
<i :class="icon" />
|
||||
{{ text }}
|
||||
</label>
|
||||
<div class="tabs">
|
||||
<span
|
||||
v-for="{ value, icon, text } in tabs"
|
||||
:key="value">
|
||||
<label
|
||||
:for="value"
|
||||
:class="{ active: value === tab }">
|
||||
<i :class="icon" />
|
||||
{{ text }}
|
||||
</label>
|
||||
|
||||
<input type="radio" :id="value" :value="value" v-model="tab" />
|
||||
</span>
|
||||
</div>
|
||||
<input
|
||||
:id="value"
|
||||
:value="value"
|
||||
v-model="tab"
|
||||
type="radio" >
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<component :is="activeComponent" />
|
||||
</div>
|
||||
<component :is="activeComponent" />
|
||||
</div>
|
||||
|
||||
<placeholder :lines="3" v-else />
|
||||
</article>
|
||||
</header>
|
||||
</div>
|
||||
<placeholder
|
||||
v-else
|
||||
:lines="3" />
|
||||
</article>
|
||||
</header>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -120,8 +147,14 @@ export default {
|
|||
},
|
||||
|
||||
props: {
|
||||
id: [Number, String],
|
||||
listId: [Number, String],
|
||||
id: {
|
||||
type: [Number, String],
|
||||
default: null,
|
||||
},
|
||||
listId: {
|
||||
type: [Number, String],
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
@ -247,47 +280,47 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
header {
|
||||
display: grid;
|
||||
grid-template-columns: 180px auto;
|
||||
grid-gap: $gp;
|
||||
margin-top: $gp;
|
||||
header {
|
||||
display: grid;
|
||||
grid-template-columns: 180px auto;
|
||||
grid-gap: $gp;
|
||||
margin-top: $gp;
|
||||
|
||||
@media($small) {
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
@media($small) {
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
}
|
||||
|
||||
aside {
|
||||
@media($small) {
|
||||
text-align: center;
|
||||
}
|
||||
aside {
|
||||
@media($small) {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.game-cover {
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
|
||||
.platforms {
|
||||
margin-top: $gp;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.platform {
|
||||
width: 90px;
|
||||
height: 50px;
|
||||
margin-right: $gp / 2;
|
||||
padding: $gp / 4;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.game-cover {
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
|
||||
.platforms {
|
||||
margin-top: $gp;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.platform {
|
||||
width: 90px;
|
||||
height: 50px;
|
||||
margin-right: $gp / 2;
|
||||
padding: $gp / 4;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<template lang="html">
|
||||
<div class="not-found-page">
|
||||
<h1>404</h1>
|
||||
<h3>{{ $t('pageNotFound') }}</h3>
|
||||
<div class="not-found-page">
|
||||
<h1>404</h1>
|
||||
<h3>{{ $t('pageNotFound') }}</h3>
|
||||
|
||||
<a :href="homeUrl" class="link primary">
|
||||
{{ $t('returnHome') }}
|
||||
</a>
|
||||
</div>
|
||||
<a
|
||||
:href="homeUrl"
|
||||
class="link primary">
|
||||
{{ $t('returnHome') }}
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -22,28 +24,28 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.not-found-page {
|
||||
color: #555555;
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: 0 $gp;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.not-found-page {
|
||||
color: #555555;
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: 0 $gp;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 300px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 300px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 50px;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
h3 {
|
||||
font-size: 50px;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
|
||||
a.link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
a.link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<template lang="html">
|
||||
<div class="platforms-page">
|
||||
<div class="platforms">
|
||||
<platform
|
||||
v-for="platform in filteredPlatforms"
|
||||
:key="platform.name"
|
||||
:platform="platform"
|
||||
clickable
|
||||
/>
|
||||
</div>
|
||||
|
||||
<page-footer />
|
||||
<div class="platforms-page">
|
||||
<div class="platforms">
|
||||
<platform
|
||||
v-for="platform in filteredPlatforms"
|
||||
:key="platform.name"
|
||||
:platform="platform"
|
||||
clickable
|
||||
/>
|
||||
</div>
|
||||
|
||||
<page-footer />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -79,15 +79,15 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.platforms-page {
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: $gp / 2 $gp;
|
||||
}
|
||||
.platforms-page {
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: $gp / 2 $gp;
|
||||
}
|
||||
|
||||
.platforms {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.platforms {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,12 +1,23 @@
|
|||
<template lang="html">
|
||||
<div class="session-expired">
|
||||
<h2>{{ $t('sessionExpired.title')}}</h2>
|
||||
<div class="session-expired">
|
||||
<h2>{{ $t('sessionExpired.title') }}</h2>
|
||||
|
||||
<div class="actions">
|
||||
<button class="success" @click="login">{{ $t('sessionExpired.login') }}</button>
|
||||
<a class="link primary" :href="exitUrl">{{ $t('sessionExpired.exit') }}</a>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<button
|
||||
class="success"
|
||||
@click="login"
|
||||
>
|
||||
{{ $t('sessionExpired.login') }}
|
||||
</button>
|
||||
|
||||
<a
|
||||
:href="exitUrl"
|
||||
class="link primary"
|
||||
>
|
||||
{{ $t('sessionExpired.exit') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -37,23 +48,23 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.session-expired {
|
||||
color: #555555;
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: 0 $gp;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.session-expired {
|
||||
color: #555555;
|
||||
min-height: calc(100vh - #{$navHeight});
|
||||
padding: 0 $gp;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.actions {
|
||||
display: grid;
|
||||
margin-top: $gp;
|
||||
grid-template-columns: auto auto;
|
||||
grid-gap: $gp;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
.actions {
|
||||
display: grid;
|
||||
margin-top: $gp;
|
||||
grid-template-columns: auto auto;
|
||||
grid-gap: $gp;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,39 +1,46 @@
|
|||
<template lang="html">
|
||||
<modal title="Settings" action-text="Save" @action="save">
|
||||
<button class="small primary">
|
||||
<i class="fas fa-cog" />
|
||||
<modal
|
||||
title="Settings"
|
||||
action-text="Save"
|
||||
@action="save">
|
||||
<button class="small primary">
|
||||
<i class="fas fa-cog" />
|
||||
</button>
|
||||
|
||||
<div
|
||||
slot="content"
|
||||
class="settings">
|
||||
<game-board-settings v-model="localSettings" />
|
||||
<tags-settings v-model="localSettings" />
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-sign-out-alt" />
|
||||
{{ $t('settings.signOut') }}
|
||||
|
||||
<button
|
||||
class="secondary"
|
||||
@click="signOut">
|
||||
{{ $t('settings.signOut') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="settings" slot="content">
|
||||
<game-board-settings v-model="localSettings" />
|
||||
<tags-settings v-model="localSettings" />
|
||||
<modal
|
||||
:message="$t('settings.deleteAccount.message')"
|
||||
:title="$t('settings.deleteAccount.title')"
|
||||
:action-text="$t('settings.deleteAccount.button')"
|
||||
@action="deleteAccount"
|
||||
>
|
||||
<div class="setting">
|
||||
<i class="fas fa-exclamation-triangle" />
|
||||
{{ $t('settings.deleteAccount.button') }}
|
||||
|
||||
<div class="setting">
|
||||
<i class="fas fa-sign-out-alt" />
|
||||
{{ $t('settings.signOut') }}
|
||||
|
||||
<button class="secondary" @click="signOut">
|
||||
{{ $t('settings.signOut') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<modal
|
||||
:message="$t('settings.deleteAccount.message')"
|
||||
:title="$t('settings.deleteAccount.title')"
|
||||
:action-text="$t('settings.deleteAccount.button')"
|
||||
@action="deleteAccount"
|
||||
>
|
||||
<div class="setting">
|
||||
<i class="fas fa-exclamation-triangle" />
|
||||
{{ $t('settings.deleteAccount.button') }}
|
||||
|
||||
<button class="danger">
|
||||
{{ $t('settings.deleteAccount.button') }}
|
||||
</button>
|
||||
</div>
|
||||
</modal>
|
||||
<button class="danger">
|
||||
{{ $t('settings.deleteAccount.button') }}
|
||||
</button>
|
||||
</div>
|
||||
</modal>
|
||||
</modal>
|
||||
</div>
|
||||
</modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -126,7 +133,7 @@ export default {
|
|||
// TOOD: move to actions
|
||||
db.collection('settings').doc(this.user.uid).delete()
|
||||
.then(() => {
|
||||
// TOOD: move to actions
|
||||
// TOOD: move to actions
|
||||
db.collection('lists').doc(this.user.uid).delete()
|
||||
.then(() => {
|
||||
this.$bus.$emit('TOAST', { message: 'Account deleted' });
|
||||
|
@ -162,10 +169,10 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss" scoped>
|
||||
@import "~styles/styles";
|
||||
@import "~styles/styles";
|
||||
|
||||
.settings {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.settings {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,56 +1,56 @@
|
|||
$iconSmallSize: 32px;
|
||||
|
||||
a {
|
||||
color: var(--accent-color);
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
a.link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
button, a.link {
|
||||
outline: none;
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0 $gp;
|
||||
width: auto;
|
||||
overflow: visible;
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
border-radius: $border-radius;
|
||||
line-height: normal;
|
||||
-webkit-font-smoothing: inherit;
|
||||
-moz-osx-font-smoothing: inherit;
|
||||
-webkit-appearance: none;
|
||||
min-height: 40px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
transition: background-color 300ms ease;
|
||||
outline: none;
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0 $gp;
|
||||
width: auto;
|
||||
overflow: visible;
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
border-radius: $border-radius;
|
||||
line-height: normal;
|
||||
-webkit-font-smoothing: inherit;
|
||||
-moz-osx-font-smoothing: inherit;
|
||||
-webkit-appearance: none;
|
||||
min-height: 40px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
transition: background-color 300ms ease;
|
||||
|
||||
&[disabled] {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
}
|
||||
&[disabled] {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
&.small {
|
||||
min-height: $iconSmallSize;
|
||||
min-width: $iconSmallSize;
|
||||
padding: 0 $gp / 2;
|
||||
}
|
||||
&.small {
|
||||
min-height: $iconSmallSize;
|
||||
min-width: $iconSmallSize;
|
||||
padding: 0 $gp / 2;
|
||||
}
|
||||
|
||||
&.xsmall {
|
||||
min-height: $iconSmallSize / 3;
|
||||
min-width: $iconSmallSize / 3;
|
||||
padding: $gp / 3;
|
||||
font-size: 12px;
|
||||
}
|
||||
&.xsmall {
|
||||
min-height: $iconSmallSize / 3;
|
||||
min-width: $iconSmallSize / 3;
|
||||
padding: $gp / 3;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
&.primary { background: var(--primary-background); color: var(--primary-text-color); }
|
||||
&.secondary { background: var(--secondary-background); color: var(--secondary-text-color); }
|
||||
&.danger { background: var(--danger-background); color: var(--danger-text-color); }
|
||||
&.warning { background: var(--warning-background); color: var(--warning-text-color); }
|
||||
}
|
||||
&.primary { background: var(--primary-background); color: var(--primary-text-color); }
|
||||
&.secondary { background: var(--secondary-background); color: var(--secondary-text-color); }
|
||||
&.danger { background: var(--danger-background); color: var(--danger-text-color); }
|
||||
&.warning { background: var(--warning-background); color: var(--warning-text-color); }
|
||||
}
|
||||
|
|
|
@ -1,69 +1,69 @@
|
|||
input, select {
|
||||
background: #fff;
|
||||
border: 1px solid #555555;
|
||||
border-radius: $border-radius;
|
||||
height: 40px;
|
||||
padding: 0 $gp / 2;
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
margin-bottom: $gp;
|
||||
background: #fff;
|
||||
border: 1px solid #555555;
|
||||
border-radius: $border-radius;
|
||||
height: 40px;
|
||||
padding: 0 $gp / 2;
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
margin-bottom: $gp;
|
||||
}
|
||||
|
||||
.checkbox-group {
|
||||
display: inline-flex;
|
||||
display: inline-flex;
|
||||
|
||||
> span {
|
||||
width: 60px;
|
||||
margin-right: $gp / 2;
|
||||
> span {
|
||||
width: 60px;
|
||||
margin-right: $gp / 2;
|
||||
|
||||
> input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
&.active {
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
i {
|
||||
margin-bottom: $gp / 4;
|
||||
}
|
||||
}
|
||||
> input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
&.active {
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
i {
|
||||
margin-bottom: $gp / 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tabs {
|
||||
display: inline-flex;
|
||||
border-bottom: 1px solid var(--accent-color);
|
||||
display: inline-flex;
|
||||
border-bottom: 1px solid var(--accent-color);
|
||||
|
||||
> span {
|
||||
&:not(:last-child) {
|
||||
margin-right: $gp / 2;
|
||||
}
|
||||
|
||||
> input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label {
|
||||
padding: $gp / 4 $gp;
|
||||
border-radius: $gp / 2;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border: 1px solid var(--accent-color);
|
||||
border-bottom: 0;
|
||||
|
||||
&.active {
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
i {
|
||||
margin-bottom: $gp / 4;
|
||||
}
|
||||
}
|
||||
> span {
|
||||
&:not(:last-child) {
|
||||
margin-right: $gp / 2;
|
||||
}
|
||||
}
|
||||
|
||||
> input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label {
|
||||
padding: $gp / 4 $gp;
|
||||
border-radius: $gp / 2;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border: 1px solid var(--accent-color);
|
||||
border-bottom: 0;
|
||||
|
||||
&.active {
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
i {
|
||||
margin-bottom: $gp / 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
* {
|
||||
box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.fast-spin {
|
||||
animation: a 500ms infinite linear;
|
||||
animation: a 500ms infinite linear;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "Fira Sans", sans-serif;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
font-family: "Fira Sans", sans-serif;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body, p, a, li, blockquote {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-weight: 400;
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
h5.title {
|
||||
margin: $gp 0 0;
|
||||
margin: $gp 0 0;
|
||||
}
|
||||
|
||||
.setting {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(24px, auto) 1fr auto;
|
||||
border-bottom: 1px dashed rgba(85, 85, 85, .5);
|
||||
align-items: center;
|
||||
padding: $gp 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(24px, auto) 1fr auto;
|
||||
border-bottom: 1px dashed rgba(85, 85, 85, .5);
|
||||
align-items: center;
|
||||
padding: $gp 0;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@mixin drag-cursor {
|
||||
cursor : -webkit-grab;
|
||||
cursor : -moz-grab;
|
||||
cursor : -o-grab;
|
||||
cursor : grab;
|
||||
cursor : -webkit-grab;
|
||||
cursor : -moz-grab;
|
||||
cursor : -o-grab;
|
||||
cursor : grab;
|
||||
}
|
||||
|
|
|
@ -18,4 +18,3 @@ $list-width: 300px;
|
|||
// Media queries
|
||||
$small: "max-width: 780px";
|
||||
$medium: "max-width: 1024px";
|
||||
|
||||
|
|
|
@ -1,54 +1,54 @@
|
|||
{
|
||||
"name": "Gamebrary",
|
||||
"short_name": "Gamebrary",
|
||||
"theme_color": "#555555",
|
||||
"background_color": "#333333",
|
||||
"display": "standalone",
|
||||
"description": "Open source tool to organize video game collections.",
|
||||
"orientation": "portrait",
|
||||
"Scope": "/",
|
||||
"start_url": "/?utm_source=pwa",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/static\/icons\/icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-128x128.png",
|
||||
"sizes": "128x128",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-152x152.png",
|
||||
"sizes": "152x152",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"splash_pages": null
|
||||
"name": "Gamebrary",
|
||||
"short_name": "Gamebrary",
|
||||
"theme_color": "#555555",
|
||||
"background_color": "#333333",
|
||||
"display": "standalone",
|
||||
"description": "Open source tool to organize video game collections.",
|
||||
"orientation": "portrait",
|
||||
"Scope": "/",
|
||||
"start_url": "/?utm_source=pwa",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/static\/icons\/icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-128x128.png",
|
||||
"sizes": "128x128",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-152x152.png",
|
||||
"sizes": "152x152",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "\/static\/icons\/icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"splash_pages": null
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue