Make the UI translatable

This commit is contained in:
Bat 2018-06-17 16:26:15 +01:00
parent cafb0e2277
commit 3207aa0e22
22 changed files with 326 additions and 89 deletions

View File

@ -12,6 +12,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Latest articles"
msgstr ""
msgid "Welcome on {{ instance_name }}" msgid "Welcome on {{ instance_name }}"
msgstr "Welcome on {{ instance_name }}" msgstr "Welcome on {{ instance_name }}"

View File

@ -14,3 +14,8 @@ msgstr ""
msgid "Welcome on {{ instance_name }}" msgid "Welcome on {{ instance_name }}"
msgstr "Welcome on {{ instance_name }}" msgstr "Welcome on {{ instance_name }}"
msgid "One follower"
msgid_plural "{{ count }} followers"
msgstr[0] "One follower"
msgstr[1] "{{ count }} followers"

View File

@ -12,6 +12,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "Latest articles"
msgstr "Derniers articles"
msgid "Welcome on {{ instance_name }}" msgid "Welcome on {{ instance_name }}"
msgstr "Bienvenue sur {{ instance_name }}" msgstr "Bienvenue sur {{ instance_name }}"

View File

@ -14,3 +14,8 @@ msgstr ""
msgid "Welcome on {{ instance_name }}" msgid "Welcome on {{ instance_name }}"
msgstr "Bienvenue sur {{ instance_name }}" msgstr "Bienvenue sur {{ instance_name }}"
msgid "One follower"
msgid_plural "{{ count }} followers"
msgstr[0] "{{ count }} abonné⋅e"
msgstr[1] "{{ count }} abonné⋅e⋅s"

View File

@ -12,10 +12,231 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
msgid "Latest articles"
msgstr ""
msgid "No posts to see here yet."
msgstr ""
msgid "New article"
msgstr ""
msgid "New blog"
msgstr ""
msgid "Create a blog"
msgstr ""
msgid "Title"
msgstr ""
msgid "Create blog"
msgstr ""
msgid "Comment \"{{ post }}\""
msgstr ""
msgid "Content"
msgstr ""
msgid "Submit comment"
msgstr ""
msgid "Something broke on our side."
msgstr ""
msgid "Sorry about that. If you think this is a bug, please report it."
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Configure your instance"
msgstr ""
msgid "Name"
msgstr ""
msgid "Let's go!"
msgstr ""
msgid "Welcome on {{ instance_name }}" msgid "Welcome on {{ instance_name }}"
msgstr "" msgstr ""
msgid "Notifications"
msgstr ""
msgid "Written by {{ link_start }}{{ name }}{{ link_end }}"
msgstr ""
msgid "This article is under the {{ license }} license."
msgstr ""
msgid "One like"
msgid_plural "{{ count }} likes"
msgstr[0] ""
msgstr[1] ""
msgid "I don't like this anymore"
msgstr ""
msgid "Add yours"
msgstr ""
msgid "One reshare"
msgid_plural "{{ count }} reshares"
msgstr[0] ""
msgstr[1] ""
msgid "I don't want to reshare this anymore"
msgstr ""
msgid "Reshare"
msgstr ""
msgid "Comments"
msgstr ""
msgid "Respond"
msgstr ""
msgid "Comment"
msgstr ""
msgid "New post"
msgstr ""
msgid "Create a post"
msgstr ""
msgid "Title"
msgstr ""
msgid "Content"
msgstr ""
msgid "License"
msgstr ""
msgid "Publish"
msgstr ""
msgid "Login"
msgstr ""
msgid "Username or email"
msgstr ""
msgid "Password"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Your Dashboard"
msgstr ""
msgid "Your Blogs"
msgstr ""
msgid "You don't have any blog yet. Create your own, or ask to join one."
msgstr ""
msgid "Start a new blog"
msgstr ""
msgid "Admin"
msgstr ""
msgid "It is you"
msgstr ""
msgid "Edit your profile"
msgstr ""
msgid "Open on {{ instance_url }}"
msgstr ""
msgid "Follow"
msgstr ""
msgid "Unfollow"
msgstr ""
msgid "Recently reshared"
msgstr ""
msgid "One follower" msgid "One follower"
msgid_plural "{{ count }} followers" msgid_plural "{{ count }} followers"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgid "Edit your account"
msgstr ""
msgid "Your Profile"
msgstr ""
msgid "Display Name"
msgstr ""
msgid "Email"
msgstr ""
msgid "Summary"
msgstr ""
msgid "Update account"
msgstr ""
msgid "{{ name }}'s followers"
msgstr ""
msgid "Followers"
msgstr ""
msgid "New Account"
msgstr ""
msgid "Create an account"
msgstr ""
msgid "Username"
msgstr ""
msgid "Email"
msgstr ""
msgid "Password"
msgstr ""
msgid "Password confirmation"
msgstr ""
msgid "Create account"
msgstr ""
msgid "Plume"
msgstr ""
msgid "Menu"
msgstr ""
msgid "Dashboard"
msgstr ""
msgid "Notifications"
msgstr ""
msgid "My account"
msgstr ""
msgid "Log Out"
msgstr ""
msgid "Log In"
msgstr ""
msgid "Register"
msgstr ""

View File

@ -2,27 +2,27 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>{% block title %}{% endblock title %} ⋅ Plume</title> <title>{% block title %}{% endblock title %} ⋅ {{ "Plume" | _ }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/static/main.css"> <link rel="stylesheet" href="/static/main.css">
</head> </head>
<body> <body>
<header> <header>
<nav id="menu"><a href="#">Menu</a></nav> <nav id="menu"><a href="#">{{ "Menu" | _ }}</a></nav>
<nav> <nav>
<a href="/">Plume</a> <a href="/">{{ "Plume" | _ }}</a>
{% block header %} {% block header %}
{% endblock header %} {% endblock header %}
</nav> </nav>
<nav> <nav>
{% if account %} {% if account %}
<a href="/dashboard">Dashboard</a> <a href="/dashboard">{{ "Dashboard" | _ }}</a>
<a href="/notifications">Notifications</a> <a href="/notifications">{{ "Notifications" | _ }}</a>
<a href="/me">My account</a> <a href="/me">{{ "My account" | _ }}</a>
<a href="/logout">Log Out</a> <a href="/logout">{{ "Log Out" | _ }}</a>
{% else %} {% else %}
<a href="/login">Log In</a> <a href="/login">{{ "Log In" | _ }}</a>
<a href="/users/new">Register</a> <a href="/users/new">{{ "Register" | _ }}</a>
{% endif %} {% endif %}
</nav> </nav>
</header> </header>

View File

@ -10,12 +10,12 @@
<p>{{ blog.summary }}</p> <p>{{ blog.summary }}</p>
<section> <section>
<h2>Latest articles</h2> <h2>{{ "Latest articles" | _ }}</h2>
{% if recents | length < 1 %} {% if recents | length < 1 %}
<p>No posts to see here yet.</p> <p>{{ "No posts to see here yet." | _ }}</p>
{% endif %} {% endif %}
{% if is_author %} {% if is_author %}
<a href="new" class="button inline-block">New article</a> <a href="new" class="button inline-block">{{ "New article" | _ }}</a>
{% endif %} {% endif %}
<div class="cards"> <div class="cards">
{% for article in recents %} {% for article in recents %}

View File

@ -1,15 +1,15 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
New blog {{ "New blog" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Create a blog</h1> <h1>{{ "Create a blog" | _ }}</h1>
<form method="post"> <form method="post">
<label for="title">Title</label> <label for="title">{{ "Title" | _ }}</label>
<input name="title"> <input name="title">
<input type="submit" value="Create blog"/> <input type="submit" value="{{ "Create blog"}}"/>
</form> </form>
{% endblock content %} | _ {% endblock content %}

View File

@ -1,15 +1,15 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
Comment "{{ post.title }}" {{ "Comment \"{{ post }}\"" | _(post=post.title) }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Comment "{{ post.title }}"</h1> <h1>{{ "Comment \"{{ post }}\"" | _(post=post.title) }}</h1>
<form method="post"> <form method="post">
<label for="content">Content</label> <label for="content">{{ "Content" | _ }}</label>
<textarea name="content"></textarea> <textarea name="content"></textarea>
<input type="submit" value="Submit comment"/> <input type="submit" value="{{ "Submit comment" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}

View File

@ -1,6 +1,6 @@
{% extends "errors/base" %} {% extends "errors/base" %}
{% block error %} {% block error %}
<h1>Something broke on our side.</h1> <h1>{{ "Something broke on our side." | _ }}</h1>
<h2>Sorry about that. If you think this is a bug, please report it.</h2> <h2>{{ "Sorry about that. If you think this is a bug, please report it." | _ }}</h2>
{% endblock error %} {% endblock error %}

View File

@ -1,15 +1,15 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
Configuration {{ "Configuration" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Configure your instance</h1> <h1>{{ "Configure your instance" | _ }}</h1>
<form method="post"> <form method="post">
<label for="name">Name</label> <label for="name">{{ "Name" | _ }}</label>
<input name="name"> <input name="name">
<input type="submit" value="Let's go!"/> <input type="submit" value="{{ "Let's go!" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}

View File

@ -8,7 +8,7 @@
{% block content %} {% block content %}
<h1>{{ "Welcome on {{ instance_name }}" | _(instance_name=instance.name) }}</h1> <h1>{{ "Welcome on {{ instance_name }}" | _(instance_name=instance.name) }}</h1>
<h2>Latest articles</h2> <h2>{{ "Latest articles" }}</h2>
<div class="cards"> <div class="cards">
{% for article in recents %} {% for article in recents %}
{{ macros::post_card(article=article) }} {{ macros::post_card(article=article) }}

View File

@ -1,11 +1,11 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
Notifications {{ "Notifications" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Notifications</h1> <h1>{{ "Notifications" | _ }}</h1>
<div class="list"> <div class="list">
{% for notification in notifications %} {% for notification in notifications %}
<div class="card"> <div class="card">

View File

@ -16,7 +16,7 @@
{% endif %} {% endif %}
<p> <p>
<b>Written by <a href="/@/{{ author.fqn }}/">{{ name }}</a></b> <b>{{ "Written by {{ link_start }}{{ name }}{{ link_end }}" | _(link_start="<a href=\"/@/{{ author.fqn }}/\">", name=name, link_end="</a>")}}</b>
&mdash; &mdash;
<span>{{ date | date(format="%B %e, %Y") }}</span> <span>{{ date | date(format="%B %e, %Y") }}</span>
</p> </p>
@ -26,33 +26,33 @@
</article> </article>
<div class="article-meta"> <div class="article-meta">
<p>This article is under the {{ post.license }} license.</p> <p>{{ "This article is under the {{ license }} license." | _(license=post.license) }}</p>
<div class="inline"> <div class="inline">
<p> <p>
{{ n_likes }} like{{ n_likes | pluralize }} {{ "{{ count }} likes" | _n(singular="One like", count=n_likes) }}
</p> </p>
<a class="button" href="like"> <a class="button" href="like">
{% if has_liked %} {% if has_liked %}
I don't like this anymore {{ "I don't like this anymore" | _ }}
{% else %} {% else %}
Add yours {{ "Add yours" | _ }}
{% endif %} {% endif %}
</a> </a>
<p> <p>
{{ n_reshares }} reshare{{ n_reshares | pluralize }} {{ "{{ count }} reshares" | _n(singular="One reshare", count=n_reshares) }}
</p> </p>
<a class="button" href="reshare"> <a class="button" href="reshare">
{% if has_reshared %} {% if has_reshared %}
I don't want to reshare this anymore {{ "I don't want to reshare this anymore" | _ }}
{% else %} {% else %}
Reshare {{ "Reshare" | _ }}
{% endif %} {% endif %}
</a> </a>
</div> </div>
<h2>Comments</h2> <h2>{{ "Comments" | _ }}</h2>
<div class="list"> <div class="list">
{% for comment in comments %} {% for comment in comments %}
{% if comment.author.display_name %} {% if comment.author.display_name %}
@ -63,10 +63,10 @@
<div class="card" id="comment-{{ comment.id }}"> <div class="card" id="comment-{{ comment.id }}">
<a href="/@/{{ comment.author.fqn }}/"><b>{{ comment_author_name }}</b></a> <a href="/@/{{ comment.author.fqn }}/"><b>{{ comment_author_name }}</b></a>
<div>{{ comment.content | safe }}</div> <div>{{ comment.content | safe }}</div>
<a href="comment?responding_to={{ comment.id }}">Respond</a> <a href="comment?responding_to={{ comment.id }}">{{ "Respond" | _ }}</a>
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
<a class="button inline-block" href="comment?">Comment</a> <a class="button inline-block" href="comment?">{{ "Comment" | _ }}</a>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -1,21 +1,21 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
New post {{ "New post" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Create a post</h1> <h1>{{ "Create a post" | _ }}</h1>
<form method="post"> <form method="post">
<label for="title">Title</label> <label for="title">{{ "Title" | _ }}</label>
<input name="title"> <input name="title">
<label for="content">Content</label> <label for="content">{{ "Content" | _ }}</label>
<textarea name="content"></textarea> <textarea name="content"></textarea>
<label for="license">License</label> <label for="license">{{ "License" | _ }}</label>
<input name="license"> <input name="license">
<input type="submit" value="Publish"/> <input type="submit" value="{{ "Publish" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}

View File

@ -1,21 +1,21 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
Login {{ "Login" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Login</h1> <h1>{{ "Login" | _ }}</h1>
{% if message %} {% if message %}
<p>{{ message }}</p> <p>{{ message }}</p>
{% endif %} {% endif %}
<form method="post"> <form method="post">
<label for="email_or_name">Username or email</label> <label for="email_or_name">{{ "Username or email" | _ }}</label>
<input name="email_or_name"> <input name="email_or_name">
<label for="password">Password</label> <label for="password">{{ "Password" | _ }}</label>
<input type="password" name="password"> <input type="password" name="password">
<input type="submit" value="Login"/> <input type="submit" value="{{ "Login" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}

View File

@ -2,18 +2,18 @@
{% import "macros" as macros %} {% import "macros" as macros %}
{% block title %} {% block title %}
Dashboard {{ "Dashboard" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Your Dashboard</h1> <h1>{{ "Your Dashboard" | _ }}</h1>
<section> <section>
<h2>Your Blogs</h2> <h2>{{ "Your Blogs" | _ }}</h2>
{% if blogs | length < 1 %} {% if blogs | length < 1 %}
<p>You don't have any blog yet. Create your own, or ask to join one.</p> <p>{{ "You don't have any blog yet. Create your own, or ask to join one." | _ }}</p>
{% endif %} {% endif %}
<a class="button inline-block" href="/blogs/new">Start a new blog</a> <a class="button inline-block" href="/blogs/new">{{ "Start a new blog" | _ }}</a>
<div class="list"> <div class="list">
{% for blog in blogs %} {% for blog in blogs %}
<div class="card"> <div class="card">

View File

@ -16,27 +16,27 @@
<h1> <h1>
{{ name }} {{ name }}
{% if user.is_admin %} {% if user.is_admin %}
<span class="badge">Admin</span> <span class="badge">{{ "Admin" | _ }}</span>
{% endif %} {% endif %}
{% if is_self %} {% if is_self %}
<span class="badge">It is you</span> <span class="badge">{{ "It is you" | _ }}</span>
{% endif %} {% endif %}
</h1> </h1>
{% if is_self %} {% if is_self %}
<a href="edit" class="button inline-block">Edit your profile</a> <a href="edit" class="button inline-block">{{ "Edit your profile" | _ }}</a>
{% endif %} {% endif %}
{% if is_remote %} {% if is_remote %}
<a class="inline-block button" href="{{ user.ap_url }}">Open on {{ instance_url }}</a> <a class="inline-block button" href="{{ user.ap_url }}">{{ "Open on {{ instance_url }}" | _(instance_url=instance_url) }}</a>
{% endif %} {% endif %}
{% if not is_self and account %} {% if not is_self and account %}
{% if follows %} {% if follows %}
<a href="follow/" class="inline-block button">Follow</a> <a href="follow/" class="inline-block button">{{ "Follow" | _ }}</a>
{% else %} {% else %}
<a href="follow/" class="inline-block button">Unfollow</a> <a href="follow/" class="inline-block button">{{ "Unfollow" | _ }}</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
@ -50,7 +50,7 @@
</div> </div>
{% if recents | length != 0 %} {% if recents | length != 0 %}
<h2>Latest articles</h2> <h2>{{ "Latest articles" | _ }}</h2>
<div class="cards"> <div class="cards">
{% for article in recents %} {% for article in recents %}
{{ macros::post_card(article=article) }} {{ macros::post_card(article=article) }}
@ -59,7 +59,7 @@
{% endif %} {% endif %}
{% if reshares | length != 0 %} {% if reshares | length != 0 %}
<h2>Recently reshared</h2> <h2>{{ "Recently reshared" | _ }}</h2>
<div class="cards"> <div class="cards">
{% for article in reshares %} {% for article in reshares %}
{{ macros::post_card(article=article) }} {{ macros::post_card(article=article) }}

View File

@ -1,24 +1,24 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
Edit your account {{ "Edit your account" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Your Profile</h1> <h1>{{ "Your Profile" | _ }}</h1>
<form method="post"> <form method="post">
<!-- Rocket hack to use various HTTP methods --> <!-- Rocket hack to use various HTTP methods -->
<input type=hidden name="_method" value="put"> <input type=hidden name="_method" value="put">
<label for="display_name">Display Name</label> <label for="display_name">{{ "Display Name" | _ }}</label>
<input name="display_name" value="{{ account.display_name }}"> <input name="display_name" value="{{ account.display_name }}">
<label for="email">Email</label> <label for="email">{{ "Email" | _ }}</label>
<input name="email" value="{{ account.email }}"> <input name="email" value="{{ account.email }}">
<label for="summary">Summary</label> <label for="summary">{{ "Summary" | _ }}</label>
<input name="summary" value="{{ account.summary }}"> <input name="summary" value="{{ account.summary }}">
<input type="submit" value="Update account"/> <input type="submit" value="{{ "Update account" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}

View File

@ -7,7 +7,7 @@
{% set name = user.username %} {% set name = user.username %}
{% endif %} {% endif %}
{{ name }}'s Followers {{ "{{ name }}'s followers" | _(name=name) }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
@ -15,28 +15,28 @@
<h1> <h1>
{{ name }} {{ name }}
{% if user.is_admin %} {% if user.is_admin %}
<span class="badge">Admin</span> <span class="badge">{{ "Admin" | _ }}</span>
{% endif %} {% endif %}
{% if is_self %} {% if is_self %}
<span class="badge">It is you</span> <span class="badge">{{ "It is you" | _ }}</span>
{% endif %} {% endif %}
</h1> </h1>
{% if is_remote %} {% if is_remote %}
<a class="inline-block button" href="{{ user.ap_url }}">Open on {{ instance_url }}</a> <a class="inline-block button" href="{{ user.ap_url }}">{{ "Open on {{ instance_url }}" | _(instance_url=instance_url) }}</a>
{% endif %} {% endif %}
{% if not is_self and account %} {% if (not is_self) and account %}
{% if follows %} {% if follows %}
<a href="../follow/" class="inline-block button">Follow</a> <a href="../follow/" class="inline-block button">{{ "Follow" | _ }}</a>
{% else %} {% else %}
<a href="../follow/" class="inline-block button">Unfollow</a> <a href="../follow/" class="inline-block button">{{ "Unfollow" | _ }}</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
<h2>Followers</h2> <h2>{{ "Followers" | _ }}</h2>
<div class="cards"> <div class="cards">
{% for follower in followers %} {% for follower in followers %}
{% if follower.display_name %} {% if follower.display_name %}

View File

@ -1,24 +1,24 @@
{% extends "base" %} {% extends "base" %}
{% block title %} {% block title %}
New Account {{ "New Account" | _ }}
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
<h1>Create an account</h1> <h1>{{ "Create an account" | _ }}</h1>
<form method="post"> <form method="post">
<label for="username">Username</label> <label for="username">{{ "Username" | _ }}</label>
<input name="username"> <input name="username">
<label for="email">Email</label> <label for="email">{{ "Email" | _ }}</label>
<input name="email"> <input name="email">
<label for="password">Password</label> <label for="password">{{ "Password" | _ }}</label>
<input type="password" name="password"> <input type="password" name="password">
<label for="password_confirmation">Password confirmation</label> <label for="password_confirmation">{{ "Password confirmation" | _ }}</label>
<input type="password" name="password_confirmation"> <input type="password" name="password_confirmation">
<input type="submit" value="Create account"/> <input type="submit" value="{{ "Create account" | _ }}"/>
</form> </form>
{% endblock content %} {% endblock content %}