Localization (#108)

* Added new strings to localization

* Add localization support to ReviewBox
Add localization support to GameScreenshots
Add localization support to GameVideos

* Finished finding hardcoded strings
This commit is contained in:
Alex Noble 2019-05-18 13:56:05 +01:00 committed by Roman Cervantes
parent 378a04432f
commit 26c72206a9
13 changed files with 88 additions and 42 deletions

View file

@ -10,14 +10,14 @@
</button>
<modal
title="Game tags"
:title="$t('listActions.title.gameTags')"
ref="tags"
message="Use tags to better organize your games"
:message="$t('listActions.message.useTags')"
padded
>
<button
class="small primary"
title="Game tags"
:title="$t('listActions.title.gameTags')"
>
<i class="fas fa-tag" />
</button>
@ -32,7 +32,7 @@
>
<button
class="small accent"
title="Game tags"
:title="$t('listActions.title.gameTags')"
>
<i class="fas fa-cog" />
</button>

View file

@ -2,33 +2,27 @@
<div v-if="game" class="review-box">
<div class="info">
<section v-if="playerPerspectives">
<strong>{{ $t('gameDetails.reviewBox.playerPerspectives') }}</strong>
{{ playerPerspectives }}
<strong>Perspective</strong> {{ playerPerspectives }}
</section>
<section v-if="gameModes">
<strong>{{ $t('gameDetails.reviewBox.gameModes') }}</strong>
{{ gameModes }}
<strong>{{ $t('gameDetails.reviewBox.gameModes') }}</strong> {{ gameModes }}
</section>
<section v-if="genres">
<strong>{{ $t('gameDetails.reviewBox.genres') }}</strong>
{{ genres }}
<strong>{{ $t('gameDetails.reviewBox.genres') }}</strong> {{ genres }}
</section>
<section v-if="gamePlatforms">
<strong>{{ $t('gameDetails.reviewBox.gamePlatforms') }}</strong>
{{ gamePlatforms }}
<strong>{{ $t('gameDetails.reviewBox.gamePlatforms') }}</strong> {{ gamePlatforms }}
</section>
<section v-if="developers">
<strong>{{ $t('gameDetails.reviewBox.developers') }}</strong>
{{ developers }}
<strong>{{ $t('gameDetails.reviewBox.developers') }}</strong> {{ developers }}
</section>
<section v-if="publishers">
<strong>{{ $t('gameDetails.reviewBox.publishers') }}</strong>
{{ publishers }}
<strong>{{ $t('gameDetails.reviewBox.publishers') }}</strong> {{ publishers }}
</section>
<!-- <section v-if="releaseDate">

View file

@ -30,7 +30,7 @@
<div class="note-actions">
<button class="info tag" v-shortkey="['shift', 'c']" @shortkey="reset" @click="reset">
Cancel
{{ $t('global.cancel') }}
</button>
<button class="error tag" v-shortkey="['shift', 'del']" @shortkey="deleteNote" @click="deleteNote">
@ -44,7 +44,7 @@
@click="saveNote"
:disabled="!localNote"
>
Save
{{ $t('save') }}
</button>
</div>
@ -59,7 +59,7 @@
v-if="!hasNote && !editingNote"
>
<i class="fas fa-sticky-note" />
Add note
{{ $t('notes.addNote') }}
</button>
</div>
</template>

View file

@ -5,7 +5,7 @@
ref="searchInput"
type="text"
v-model="searchText"
placeholder="Search here"
:placeholder="$t('gameSearch.input.placeholder')"
/>
<button class="primary small search-button" @click="search">
@ -17,7 +17,7 @@
<!-- TODO: move logic out of template -->
<small v-if="gamesInList.length" :title="gamesInList.map(({ name }) => name).join(', ')">
<strong>{{ gamesInList.length }} game{{ gamesInList.length === 1 ? '' : 's' }}</strong>
from search results already in your list
{{ $t('gameSearch.alreadyInList') }}
</small>
<div class="search-results" ref="searchResults" v-if="filteredResults.length > 0">
@ -32,14 +32,14 @@
</div>
<panel class="warning" v-if="noResults">
<h4>No results found for "{{searchText}}"</h4>
<p>Missing a game? Help out the community and <a href="https://www.igdb.com/games/new" target="_blank">Add it to IGDB</a></p>
<h4>{{ $t('gameSearch.noResultsFound') }} "{{searchText}}"</h4>
<p>{{ $t('gameSearch.missingGame') }} <a href="https://www.igdb.com/games/new" target="_blank">{{$t('gameSearch.addToIGDB')}}</a></p>
</panel>
<div class="search-actions">
<button class="small filled info" v-shortkey="['esc']" @shortkey="back" @click="back" title="back">
<i class="fas fa-chevron-left" />
Back
{{ $t('back') }}
</button>
<igdb-credit linkable />

View file

@ -1,7 +1,7 @@
<template lang="html">
<a :href="href" class="igdb-credit" target="_blank" :class="{ gray }">
<img :src="`/static/img/igdb-logo${logo}.svg`" />
<strong>Powered by IGDB</strong>
<strong>{{ $t('igdbCredit.poweredBy') }}</strong>
</a>
</template>

View file

@ -3,7 +3,7 @@
class="settings"
:class="{ dark: darkModeEnabled }"
>
<h4>Global</h4>
<h4>{{ $t('settings.title.global') }}</h4>
<section>
<i class="fas fa-moon" />

View file

@ -12,13 +12,13 @@
class="add-tag"
:class="textColor"
>
<h5>Add tag</h5>
<h5>{{ $t('tags.title.addTag') }}</h5>
<div class="tag-input">
<input
type="text"
v-model="tagName"
placeholder="Tag name"
:placeholder="$t('tags.input.placeholder')"
/>
<input
@ -35,7 +35,7 @@
>
<i class="fas fa-plus-circle" />
Create tag
{{ $t('tags.button.createTag') }}
</button>
</div>
</div>

View file

@ -6,7 +6,7 @@
<div v-else>
<div v-show="!wallpaperUrl">
Upload wallpaper
{{ $t('settings.wallpaper.title') }}
<input
type="file"
@ -16,7 +16,7 @@
</div>
<div v-if="wallpaperUrl">
<h5>Semi transparent lists</h5>
<h5>{{ $t('settings.wallpaper.transparency') }}</h5>
<div class="button-group">
<button
@ -24,7 +24,7 @@
:class="{ primary: !transparent }"
@click="setTransparent(false)"
>
No
{{ $t('global.no') }}
</button>
<button
@ -32,14 +32,14 @@
:class="{ primary: transparent }"
@click="setTransparent(true)"
>
Yes
{{ $t('global.yes') }}
</button>
</div>
<br>
<br>
<h5>Current wallpaper</h5>
<h5>{{ $t('settings.wallpaper.currentWallpaper') }}</h5>
<img
:src="wallpaperUrl"
@ -48,7 +48,7 @@
<button class="error small tiny" @click="removeWallpaper">
<i class="fas fa-trash" />
Remove wallpaper
{{ $t('settings.wallpaper.removeWallpaper') }}
</button>
</div>
</div>

View file

@ -3,12 +3,20 @@ module.exports = {
share: 'Share',
empty: 'empty',
back: 'Back',
save: 'Save',
global: {
cancel: 'Cancel',
create: 'Create',
filter: 'Filter',
with: 'with',
by: 'by',
no: 'no',
yes: 'yes',
or: 'or',
returnHome: 'Return home',
},
errors: {
pageNotFound: 'Page not found',
},
platforms: {
computersArcade: 'Computers and Arcade',
@ -21,6 +29,7 @@ module.exports = {
nd: 'nd',
rd: 'rd',
th: 'th',
donateMessage: 'Gamebrary is free and open source, consider helping its development by',
},
game: {
add: 'Add game',
@ -52,6 +61,7 @@ module.exports = {
delete: 'Delete list',
moveLeft: 'Move left',
moveRight: 'Move right',
emptyList: 'This list is empty',
},
settings: {
darkTheme: 'Dark theme',
@ -65,8 +75,50 @@ module.exports = {
message: 'Your account data will be deleted forever.',
title: 'Are you sure?',
},
title: {
global: 'Global',
},
donate: 'donating',
reportBugs: 'reporting bugs',
submitFeedback: 'submitting feedback',
wallpaper: {
title: 'Upload wallpaper',
transparency: 'Semi transparent lists',
currentWallpaper: 'Current wallpaper',
removeWallpaper: 'Remove wallpaper',
},
},
tags: {
title: {
addTag: 'Add Tag',
},
button: {
createTag: 'Create tag',
},
input: {
placeholder: 'Tag name',
},
applyTag: 'Apply tag',
useTags: 'Use tags to better organise your games',
},
listActions: {
title: {
gameTags: 'Game tags'
},
},
igdbCredit: {
poweredBy: 'Powered by IGDB',
},
gameSearch: {
input: {
placeholder: 'Search here',
},
alreadyInList: 'from search results already in your list',
noResultsFound: 'No results found for ',
missingGame: 'Missing a game? Help out the community and',
addToIGDB: 'Add it to IGDB',
},
notes: {
addNote: 'Add note',
},
};

View file

@ -24,8 +24,8 @@
<modal
ref="tag"
title="Apply tag"
message="Use tags to better organize your games"
:title="$t('tags.applyTag')"
:message="$t('tags.useTags')"
padded
>
<div slot="content">

View file

@ -1,10 +1,10 @@
<template lang="html">
<div class="not-found-page">
<h1>404</h1>
<h3>Page not found</h3>
<h3>{{ $t('errors.pageNotFound') }}</h3>
<a :href="homeUrl" class="link primary">
Return home
{{ $t('global.returnHome') }}
</a>
</div>
</template>

View file

@ -13,7 +13,7 @@
<footer>
<small>
Gamebrary is free and open source, consider helping its development by
{{ $t('platforms.donateMessage') }}
<a href="https://www.paypal.me/RomanCervantes/5" target="_blank">
{{ $t('settings.donate') }}
</a>
@ -21,7 +21,7 @@
<a href="https://github.com/romancmx/gamebrary/issues" target="_blank">
{{ $t('settings.reportBugs') }}
</a>
or
{{$t('global.or')}}
<a href="https://goo.gl/forms/r0juBCsZaUtJ03qb2" target="_blank">
{{ $t('settings.submitFeedback') }}
</a>

View file

@ -10,7 +10,7 @@
<header>{{ list.name }} ({{ list.games.length }})</header>
<div class="games">
<p v-if="!list.games.length">This list is empty</p>
<p v-if="!list.games.length">{{$('list.emptyList')}}</p>
<div
v-if="publicGameData[game]"