Commit 7991df34 authored by Eliot Berriot's avatar Eliot Berriot 💬

Initial localization of the UI

parent 342b317f
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: front 0.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-06 19:17+0100\n"
"POT-Creation-Date: 2018-11-06 20:20+0100\n"
"PO-Revision-Date: 2018-11-06 19:17+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
......@@ -17,6 +17,166 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: front/src/views/Home.vue:39
msgctxt "Task duration"
msgid "1 hour"
msgstr ""
#: front/src/components/Task.vue:22 src/components/guide/Menu.vue:27
#: front/src/views/Home.vue:27
msgctxt "Task duration"
msgid "15 minutes"
msgstr ""
#: front/src/components/Task.vue:37 src/components/guide/Menu.vue:42
#: front/src/views/Home.vue:45
msgctxt "Task duration"
msgid "2 hours"
msgstr ""
#: front/src/components/Task.vue:27 src/components/guide/Menu.vue:32
#: front/src/views/Home.vue:33
msgctxt "Task duration"
msgid "30 minutes"
msgstr ""
#: front/src/components/Task.vue:17 src/components/guide/Menu.vue:22
#: front/src/views/Home.vue:21
msgctxt "Task duration"
msgid "5 minutes"
msgstr ""
#: front/src/views/Home.vue:180
msgctxt "Contribution type"
msgid "All"
msgstr ""
#: front/src/components/guide/Menu.vue:101
msgctxt "Sidebar link to get help"
msgid "Ask your question on Socialhub.network"
msgstr ""
#: front/src/components/Modal.vue:18
msgctxt "Modal button"
msgid "Cancel"
msgstr ""
#: front/src/components/guide/Menu.vue:93
msgctxt "Sidebar link to get help"
msgid "Chat with us on #Funkwhale:Matrix.org"
msgstr ""
#: front/src/components/guide/Image.vue:27
msgctxt "Link title to zoom on image"
msgid "Click to zoom"
msgstr ""
#: front/src/views/Home.vue:182
msgctxt "Contribution type"
msgid "Development/Issue"
msgstr ""
#: front/src/components/guide/Menu.vue:85
msgctxt "Sidebar label"
msgid "Do you need some help?"
msgstr ""
#: front/src/views/Home.vue:8
msgid "Do you want to help the project but don't know where to start? Tell us how much time you can spend and we'll get you started!"
msgstr ""
#: front/src/views/Home.vue:181
msgctxt "Contribution type"
msgid "Donations"
msgstr ""
#: front/src/components/guide/Menu.vue:109
msgctxt "Sidebar link to get help"
msgid "Drop us a toot on Mastodon"
msgstr ""
#: front/src/components/guide/Menu.vue:16
msgctxt "Sidebar label"
msgid "Duration:"
msgstr ""
#: front/src/components/Task.vue:52
msgctxt "Call to action to start contributing"
msgid "Get started"
msgstr ""
#: front/src/views/Home.vue:57
msgid "Here is a list of suggestions"
msgstr ""
#: front/src/views/Home.vue:11
msgid "How much time can you spend?"
msgstr ""
#: front/src/views/Home.vue:7
msgid "How to help?"
msgstr ""
#: front/src/views/Home.vue:15
msgctxt "Answer to a question where the user is asked about the time they can spend"
msgid "I don't know"
msgstr ""
#: front/src/components/guide/Menu.vue:117
msgctxt "Sidebar text to get help"
msgid "Include a link to this page and the number of the step that's giving you trouble."
msgstr ""
#: front/src/App.vue:5
msgid "Language"
msgstr "Language"
#: front/src/views/Home.vue:51
msgctxt "Answer to a question where the user is asked about the time they can spend"
msgid "More"
msgstr ""
#: front/src/components/Task.vue:42 src/components/guide/Menu.vue:47
msgctxt "Task duration"
msgid "More than two hours"
msgstr ""
#: front/src/components/Task.vue:32 src/components/guide/Menu.vue:37
msgctxt "Task duration"
msgid "One hour"
msgstr ""
#: front/src/components/guide/Step.vue:4
msgctxt "Badge displayed next to guide step"
msgid "Optional"
msgstr ""
#: front/src/components/guide/Menu.vue:56
msgctxt "Sidebar label"
msgid "Required skills:"
msgstr ""
#: front/src/components/guide/Menu.vue:6
msgctxt "Sidebar link"
msgid "Return home"
msgstr ""
#: front/src/components/Modal.vue:13
msgctxt "Modal button"
msgid "Save changes"
msgstr ""
#: front/src/components/guide/Step.vue:8
msgctxt "Guide step title"
msgid "Step %{ index }: %{ title }"
msgstr ""
#: front/src/components/guide/Menu.vue:70
msgctxt "Sidebar label"
msgid "Steps"
msgstr ""
#: front/src/components/guide/Content.vue:13
msgctxt "Success message once the task is completed"
msgid "You're done, thank you for the help!"
msgstr ""
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: front 0.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-06 19:20+0100\n"
"PO-Revision-Date: 2018-11-06 19:17+0100\n"
"POT-Creation-Date: 2018-11-06 20:05+0100\n"
"PO-Revision-Date: 2018-11-06 20:13+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fr_FR\n"
......@@ -16,7 +16,168 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.2\n"
#: front/src/views/Home.vue:39
msgctxt "Task duration"
msgid "1 hour"
msgstr "1 heure"
#: front/src/components/Task.vue:22 src/components/guide/Menu.vue:27
#: front/src/views/Home.vue:27
msgctxt "Task duration"
msgid "15 minutes"
msgstr "15 minutes"
#: front/src/components/Task.vue:37 src/components/guide/Menu.vue:42
#: front/src/views/Home.vue:45
msgctxt "Task duration"
msgid "2 hours"
msgstr "2 heures"
#: front/src/components/Task.vue:27 src/components/guide/Menu.vue:32
#: front/src/views/Home.vue:33
msgctxt "Task duration"
msgid "30 minutes"
msgstr "30 minutes"
#: front/src/components/Task.vue:17 src/components/guide/Menu.vue:22
#: front/src/views/Home.vue:21
msgctxt "Task duration"
msgid "5 minutes"
msgstr "5 minutes"
#: front/src/views/Home.vue:180
msgctxt "Contribution type"
msgid "All"
msgstr "Tous"
#: front/src/components/guide/Menu.vue:101
msgctxt "Sidebar link to get help"
msgid "Ask your question on Socialhub.network"
msgstr "Posez votre question sur Socialhub.network"
#: front/src/components/Modal.vue:18
msgctxt "Modal button"
msgid "Cancel"
msgstr "Annuler"
#: front/src/components/guide/Menu.vue:93
msgctxt "Sidebar link to get help"
msgid "Chat with us on #Funkwhale:Matrix.org"
msgstr "Discutez avec nous sur #Funkwhale:Matrix.org"
#: front/src/components/guide/Image.vue:27
msgctxt "Link title to zoom on image"
msgid "Click to zoom"
msgstr "Cliquez pour zoomer"
#: front/src/views/Home.vue:182
msgctxt "Contribution type"
msgid "Development/Issue"
msgstr "Développement / ticket"
#: front/src/components/guide/Menu.vue:85
msgctxt "Sidebar label"
msgid "Do you need some help?"
msgstr "Besoin d'aide ?"
#: front/src/views/Home.vue:8
msgid "Do you want to help the project but don't know where to start? Tell us how much time you can spend and we'll get you started!"
msgstr "Vous souhaitez contribuer au projet mais ne savez pas par où commencer ? Dites-nous de combien de temps vous disposez et nous vous aiderons à bien démarrer !"
#: front/src/views/Home.vue:181
msgctxt "Contribution type"
msgid "Donations"
msgstr "Dons"
#: front/src/components/guide/Menu.vue:109
msgctxt "Sidebar link to get help"
msgid "Drop us a toot on Mastodon"
msgstr "Envoyez nous un pouet sur Mastodon"
#: front/src/components/guide/Menu.vue:16
msgctxt "Sidebar label"
msgid "Duration:"
msgstr "Durée :"
#: front/src/components/Task.vue:52
msgctxt "Call to action to start contributing"
msgid "Get started"
msgstr "Commencer"
#: front/src/views/Home.vue:57
msgid "Here is a list of suggestions"
msgstr "Voici une liste de propositions"
#: front/src/views/Home.vue:11
msgid "How much time can you spend?"
msgstr "De combien de temps disposez vous ?"
#: front/src/views/Home.vue:7
msgid "How to help?"
msgstr "Comment contribuer ?"
#: front/src/views/Home.vue:15
msgctxt "Answer to a question where the user is asked about the time they can spend"
msgid "I don't know"
msgstr "Je ne sais pas"
#: front/src/components/guide/Menu.vue:117
msgctxt "Sidebar text to get help"
msgid "Include a link to this page and the number of the step that's giving you trouble."
msgstr "Incluez dans votre message un lien vers cette page ainsi que le numéro de l'étape qui vous pose problème."
#: front/src/App.vue:5
msgid "Language"
msgstr "Langue"
#: front/src/views/Home.vue:51
msgctxt "Answer to a question where the user is asked about the time they can spend"
msgid "More"
msgstr "Plus"
#: front/src/components/Task.vue:42 src/components/guide/Menu.vue:47
msgctxt "Task duration"
msgid "More than two hours"
msgstr "Plus de deux heures"
#: front/src/components/Task.vue:32 src/components/guide/Menu.vue:37
msgctxt "Task duration"
msgid "One hour"
msgstr "Une heure"
#: front/src/components/guide/Step.vue:4
msgctxt "Badge displayed next to guide step"
msgid "Optional"
msgstr "Optionnel"
#: front/src/components/guide/Menu.vue:56
msgctxt "Sidebar label"
msgid "Required skills:"
msgstr "Compétences requises :"
#: front/src/components/guide/Menu.vue:6
msgctxt "Sidebar link"
msgid "Return home"
msgstr "Retourner à l'accueil"
#: front/src/components/Modal.vue:13
msgctxt "Modal button"
msgid "Save changes"
msgstr "sauvegarder"
#: front/src/components/guide/Step.vue:8
msgctxt "Guide step title"
msgid "Step %{ index }: %{ title }"
msgstr "Étape %{ index } : %{ title }"
#: front/src/components/guide/Menu.vue:70
msgctxt "Sidebar label"
msgid "Steps"
msgstr "Étapes"
#: front/src/components/guide/Content.vue:13
msgctxt "Success message once the task is completed"
msgid "You're done, thank you for the help!"
msgstr "Vous avez terminé, merci de votre aide !"
......@@ -10,8 +10,16 @@
<slot></slot>
</section>
<footer v-if="showFooter" class="modal-card-foot">
<button class="button is-success">Save changes</button>
<button class="button">Cancel</button>
<button class="button is-success">
<translate translate-context="Modal button">
Save changes
</translate>
</button>
<button class="button">
<translate translate-context="Modal button">
Cancel
</translate>
</button>
</footer>
</div>
</div>
......
......@@ -15,29 +15,45 @@
<small>
<icon name="clock-o " />
<template v-if="task.category === 5">
5 minutes
<translate translate-context="Task duration">
5 minutes
</translate>
</template>
<template v-else-if="task.category === 15">
15 minutes
<translate translate-context="Task duration">
15 minutes
</translate>
</template>
<template v-else-if="task.category === 30">
30 minutes
<translate translate-context="Task duration">
30 minutes
</translate>
</template>
<template v-else-if="task.category === 60">
One hour
<translate translate-context="Task duration">
One hour
</translate>
</template>
<template v-else-if="task.category === 120">
2 hours
<translate translate-context="Task duration">
2 hours
</translate>
</template>
<template v-else-if="task.category === 9999">
More than two hours
<translate translate-context="Task duration">
More than two hours
</translate>
</template>
</small>
<router-link
:to="{name: 'guide', params: {slug: task.slug}}"
v-if="task.slug && task.steps && task.steps.length > 0"
class="right floated button is-link">Get started</router-link>
class="right floated button is-link">
<translate translate-context="Call to action to start contributing">
Get started
</translate>
</router-link>
</div>
</article>
</div>
......
......@@ -10,7 +10,10 @@
:index="i + 1"></guide-step>
<hr class="hidden" />
<p class="success-message">
<icon name="check"/> You're done, thank you for the help!
<icon name="check"/>
<translate translate-context="Success message once the task is completed">
You're done, thank you for the help!
</translate>
</p>
</div>
</template>
......
<template>
<figure class="image box">
<a href="" title="Click to zoom" @click.stop.prevent="modal = true">
<a href="" :title="labels.title" @click.stop.prevent="modal = true">
<icon name="search" class="is-large"></icon>
<img :src="media.url" class="square" :alt="media.caption">
<!-- <div class="img" :style="{'background-image': 'url(' + media.url + ')'}">
</div> -->
<!-- <img :src="media.url" :alt="media.caption"> -->
</a>
<p>{{ media.caption }}</p>
<div class="modals">
......@@ -23,6 +20,13 @@ export default {
return {
modal: false,
}
},
computed: {
labels () {
return {
title: this.$pgettext('Link title to zoom on image', 'Click to zoom')
}
}
}
}
</script>
......
......@@ -4,7 +4,9 @@
<li>
<router-link to="/">
<icon name="arrow-left"></icon>
Return home
<translate translate-context="Sidebar link">
Return home
</translate>
</router-link>
</li>
</ul>
......@@ -12,33 +14,49 @@
<div class="field">
<div class="label">
<icon name="clock-o"></icon>&nbsp;
Duration:
<translate translate-context="Sidebar label">
Duration:
</translate>
</div>
<div class="value">
<template v-if="metadata.category === 5">
5 minutes
<translate translate-context="Task duration">
5 minutes
</translate>
</template>
<template v-else-if="metadata.category === 15">
15 minutes
<translate translate-context="Task duration">
15 minutes
</translate>
</template>
<template v-else-if="metadata.category === 30">
30 minutes
<translate translate-context="Task duration">
30 minutes
</translate>
</template>
<template v-else-if="metadata.category === 60">
One hour
<translate translate-context="Task duration">
One hour
</translate>
</template>
<template v-else-if="metadata.category === 120">
2 hours
<translate translate-context="Task duration">
2 hours
</translate>
</template>
<template v-else-if="metadata.category === 9999">
More than two hours
<translate translate-context="Task duration">
More than two hours
</translate>
</template>
</div>
</div>
<div class="field skills" v-if="metadata.skills && metadata.skills.length > 0 ">
<div class="label">
<icon name="wrench"></icon>&nbsp;
Required skills:
<translate translate-context="Sidebar label">
Required skills:
</translate>
</div>
<div class="value">
<ul>
......@@ -49,7 +67,11 @@
</div>
</div>
<hr>
<p class="menu-label">Steps</p>
<p class="menu-label">
<translate translate-context="Sidebar label">
Steps
</translate>
</p>
<ul class="menu-list">
<li v-for="(step, i) in metadata.steps">
<a
......@@ -60,26 +82,43 @@
</li>
</ul>
<hr>
<p class="menu-label">Do you need some help?</p>
<p class="menu-label">
<translate translate-context="Sidebar label">
Do you need some help?
</translate>
</p>
<ul class="menu-list">
<li>
<a rel="noopener noreferrer" href="https://matrix.to/#/!SwDTmjceJHHroSEIPP:matrix.org" target="_blank">
<icon name="matrix-org"></icon> Chat with us on #Funkwhale:Matrix.org
<icon name="matrix-org"></icon>
<translate translate-context="Sidebar link to get help">
Chat with us on #Funkwhale:Matrix.org
</translate>
</a>
</li>
<li>
<a rel="noopener noreferrer" href="https://socialhub.network/c/funkwhale/support" target="_blank">
<icon name="comment"></icon> Ask your question on Socialhub.network
<icon name="comment"></icon>
<translate translate-context="Sidebar link to get help">
Ask your question on Socialhub.network
</translate>
</a>
</li>
<li>
<a rel="noopener noreferrer" href="https://mastodon.eliotberriot.com/@funkwhale" target="_blank">
<icon name="mastodon"></icon> Drop us a toot on Mastodon
<icon name="mastodon"></icon>
<translate translate-context="Sidebar link to get help">
Drop us a toot on Mastodon
</translate>
</a>
</li>
</ul>
<hr class="small hidden">
<p>Include a link to this page and the number of the step that's giving you trouble.</p>
<p>
<translate translate-context="Sidebar text to get help">
Include a link to this page and the number of the step that's giving you trouble.
</translate>
</p>
</aside>
</template>
......
<template>
<div :class="['box', {'is-active': current === 'step-' + index}]" :id="'step-' + index">
<h3 class="subtitle">
<span v-if="step.optional" class="tag is-info">Optional</span>
Step {{ index }}: {{ step.title }}
<span v-if="step.optional" class="tag is-info">
<translate translate-context="Badge displayed next to guide step">
Optional
</translate>
</span>
<translate :translate-params="{index: index, title: step.title}" translate-context="Guide step title">
Step %{ index }: %{ title }
</translate>
</h3>
<p>{{ step.content }}</p>
<p class="buttons" v-if="step.links && step.links.length > 0">
......
......@@ -5,51 +5,63 @@
<img src="/logo-full.png" alt="Funkwhale logo">
</div>
<hr class="hidden">
<h1 class="title">How to help?</h1>
<p>Do you want to help the project but don't know where to start? Tell us how much time you can spend and we'll get you started!</p>
<h1 class="title" v-translate>How to help?</h1>
<p v-translate>Do you want to help the project but don't know where to start? Tell us how much time you can spend and we'll get you started!</p>
<hr class="hidden">
<div class="field">
<label class="label">How much time can you spend?</label>
<label class="label" v-translate>How much time can you spend?</label>
<div class="control">
<label class="radio">
<input type="radio" name="time" :value="null" v-model="availableTime">
I don't know
<translate translate-context="Answer to a question where the user is asked about the time they can spend">
I don't know
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="5" v-model="availableTime">
5 minutes
<translate translate-context="Task duration">
5 minutes
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="15" v-model="availableTime">
15 minutes
<translate translate-context="Task duration">
15 minutes
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="30" v-model="availableTime">
30 minutes
<translate translate-context="Task duration">
30 minutes
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="60" v-model="availableTime">
1 hour
<translate translate-context="Task duration">
1 hour
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="120" v-model="availableTime">
2 hours
<translate translate-context="Task duration">
2 hours
</translate>
</label>
<label class="radio">
<input type="radio" name="time" :value="9999" v-model="availableTime">
More
<translate translate-context="Answer to a question where the user is asked about the time they can spend">More</translate>
</label>
</div>
</div>
<hr class="hidden">
<div>
<h3 class="subtitle">Here is a list of suggestions</h3>
<h3 class="subtitle" v-translate>Here is a list of suggestions</h3>
<div class="tasks">
<task v-for="t in suggestedTasks" :task="t" />
</div>
</div>
</div>
<div class="text container contributions" v-if="stats" >
<div class="text container contributions" v-if="stats">
<h1 class="title">Contribution logs</h1>
<div class="filters">
<div class="field">
......@@ -115,11 +127,6 @@ export default {
next: null,
stats: null,
availableTime: null,
typeOptions: [
{ value: null, label: "All" },
{ value: "donation", label: "Donations" },
{ value: "dev:issue", label: "Development/Issue" }
],
};
},
created() {
......@@ -168,6 +175,13 @@ export default {
}
},
computed: {
typeOptions () {
return [
{ value: null, label: this.$pgettext("Contribution type", "All") },
{ value: "donation", label: this.$pgettext("Contribution type", "Donations") },
{ value: "dev:issue", label: this.$pgettext("Contribution type", "Development/Issue") }
]
},
suggestedTasks () {
let self = this
let tasks = this.tasks.filter(e => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment