Add More Locale Strings to Both the locales file and the app

This commit is contained in:
Preston 2020-08-11 23:26:49 -04:00
parent d929918eec
commit 287739de7c
9 changed files with 66 additions and 37 deletions

View File

@ -31,6 +31,7 @@ export default Vue.extend({
channelName: '',
channelId: '',
viewCount: 0,
parsedViewCount: '',
uploadedTime: '',
duration: '',
description: '',
@ -39,14 +40,6 @@ export default Vue.extend({
isLive: false,
isFavorited: false,
hideViews: false,
optionsNames: [
'Open in YouTube',
'Copy YouTube Link',
'Open YouTube Embedded Player',
'Copy YouTube Embedded Player Link',
'Open in Invidious',
'Copy Invidious Link'
],
optionsValues: [
'openYoutube',
'copyYoutube',
@ -90,6 +83,17 @@ export default Vue.extend({
return `https://www.youtube-nocookie.com/embed/${this.id}`
},
optionsNames: function () {
return [
this.$t('Video.Open in YouTube'),
this.$t('Video.Copy YouTube Link'),
this.$t('Video.Open YouTube Embedded Player'),
this.$t('Video.Copy YouTube Embedded Player Link'),
this.$t('Video.Open in Invidious'),
this.$t('Video.Copy Invidious Link')
]
},
thumbnail: function () {
let baseUrl
if (this.backendPreference === 'invidious') {
@ -206,15 +210,16 @@ export default Vue.extend({
this.duration = this.calculateVideoDuration(this.data.lengthSeconds)
this.description = this.data.description
this.isLive = this.data.liveNow
this.viewCount = this.data.viewCount
if (typeof (this.data.publishedText) !== 'undefined') {
this.uploadedTime = this.data.publishedText
}
if (typeof (this.data.viewCount) !== 'undefined' && this.data.viewCount !== null) {
this.viewCount = this.data.viewCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
this.parsedViewCount = this.data.viewCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
} else if (typeof (this.data.viewCountText) !== 'undefined') {
this.viewCount = this.data.viewCountText.replace(' views', '')
this.parsedViewCount = this.data.viewCountText.replace(' views', '')
} else {
this.hideViews = true
}
@ -232,6 +237,7 @@ export default Vue.extend({
if (typeof (this.data.author) === 'string') {
this.channelName = this.data.author
this.channelId = this.data.ucid
this.viewCount = this.data.views
// Data is returned as a literal string names 'undefined'
if (this.data.length_seconds !== 'undefined') {
@ -250,10 +256,10 @@ export default Vue.extend({
}
if (this.data.views !== null && typeof (this.data.views) !== 'undefined') {
this.viewCount = this.data.views.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
this.parsedViewCount = this.data.views.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
} else if (typeof (this.data.view_count) !== 'undefined') {
const viewCount = this.data.view_count.replace(',', '')
this.viewCount = viewCount.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
this.parsedViewCount = viewCount.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
} else {
this.hideViews = true
}

View File

@ -26,7 +26,7 @@
class="videoDuration"
:class="{ live: isLive }"
>
{{ isLive ? "Live" : duration }}
{{ isLive ? $t("Video.Live") : duration }}
</div>
<ft-icon-button
v-if="!isLive"
@ -41,7 +41,7 @@
v-if="watched"
class="videoWatched"
>
Watched
{{ $t("Video.Watched") }}
</div>
<div
v-if="watched"
@ -80,7 +80,9 @@
<span
v-if="!isLive && !hideViews"
class="viewCount"
> {{ viewCount }} views</span>
> {{ parsedViewCount }}</span>
<span v-if="viewCount > 1">{{ $t("Video.Views").toLowerCase() }}</span>
<span v-if="viewCount === 1">{{ $t("Video.View") }}</span>
<span
v-if="uploadedTime !== '' && !isLive"
class="uploadedTime"
@ -88,7 +90,7 @@
<span
v-if="isLive"
class="viewCount"
> {{ viewCount }} watching</span>
> {{ viewCount }} {{ $t("Video.Watching").toLowerCase() }}</span>
</div>
<p
v-if="listType !== 'grid' && appearance === 'result'"

View File

@ -26,12 +26,6 @@ export default Vue.extend({
lastUpdated: '',
description: '',
infoSource: '',
shareHeaders: [
'Copy YouTube Link',
'Open in YouTube',
'Copy Invidious Link',
'Open in Invidious'
],
shareValues: [
'copyYoutube',
'openYoutube',
@ -53,6 +47,15 @@ export default Vue.extend({
return this.$store.getters.getThumbnailPreference
},
shareHeaders: function () {
return [
this.$t('Playlist.Share Playlist.Copy YouTube Link'),
this.$t('Playlist.Share Playlist.Open in YouTube'),
this.$t('Playlist.Share Playlist.Copy Invidious Link'),
this.$t('Playlist.Share Playlist.Open in Invidious')
]
},
thumbnail: function () {
switch (this.thumbnailPreference) {
case 'start':

View File

@ -11,9 +11,9 @@
{{ title }}
</h2>
<p>
{{ videoCount }} videos - {{ viewCount }} views -
{{ videoCount }} {{ $t("Playlist.Videos") }} - {{ viewCount }} {{ $t("Playlist.Views") }} -
<span v-if="infoSource !== 'local'">
Last updated on
{{ $t("Playlist.Last Updated On") }}
</span>
{{ lastUpdated }}
</p>
@ -31,7 +31,7 @@
</div>
<br>
<ft-list-dropdown
title="SHARE PLAYLIST"
:title="$t('Playlist.Share Playlist.Share Playlist')"
:label-names="shareHeaders"
:label-values="shareValues"
@click="sharePlaylist"

View File

@ -116,7 +116,7 @@
class="getMoreComments"
@click="getCommentData"
>
{{ $t("Load More Comments") }}
{{ $t("Comments.Load More Comments") }}
</h4>
</ft-card>
</template>

View File

@ -37,7 +37,7 @@
v-else
class="relative"
>
<h4>Live Chat</h4>
<h4>{{ $t("Video.Live Chat") }}</h4>
<div
v-if="superChatComments.length > 0"
class="superChatComments"

View File

@ -56,6 +56,9 @@ activeLocales.forEach((locale) => {
const i18n = new VueI18n({
locale: 'en-US', // set locale
fallbackLocale: {
default: 'en-US'
},
messages // set locale messages
})

View File

@ -68,7 +68,7 @@
{{ $t("Channel.About.About").toUpperCase() }}
</div>
<ft-input
placeholder="Search Channel"
:placeholder="$t('Channel.Search Channel')"
class="channelSearch"
@click="newSearch"
/>
@ -171,7 +171,7 @@
class="getNextPage"
@click="handleFetchMore"
>
<font-awesome-icon icon="search" /> Fetch more results
<font-awesome-icon icon="search" /> {{ $t("Search Filters.Fetch more results") }}
</div>
</div>
</ft-card>

View File

@ -272,8 +272,21 @@ Channel:
Channel Description: Channel Description
Featured Channels: Featured Channels
Video:
Open in YouTube: Open in YouTube
Copy YouTube Link: Copy YouTube Link
Open YouTube Embedded Player: Open YouTube Embedded Player
Copy YouTube Embedded Player Link: Copy YouTube Embedded Player Link
Open in Invidious: Open in Invidious
Copy Invidious Link: Copy Invidious Link
View: View
Views: Views
# Context is "X People Watching"
Watching: Watching
Watched: Watched
# As in a Live Video
Live: Live
Live Now: Live Now
Live Chat: Live Chat
Enable Live Chat: Enable Live Chat
Live Chat is currently not supported in this build.: Live Chat is currently not supported in this build.
'Chat is disabled or the Live Stream has ended.': Chat is disabled or the Live Stream has ended.
@ -315,9 +328,11 @@ Videos:
Playlist:
#& About
View Full Playlist: View Full Playlist
# On Channel Playlist Page
Share Playlist:
Videos: Videos
View: View
Views: Views
Last Updated On: Last Updated On
Share Playlist:
Share Playlist: Share Playlist
Copy YouTube Link: Copy YouTube Link
Open in YouTube: Open in YouTube