Add package translations page

This commit is contained in:
rubenwardy 2024-02-25 17:50:33 +00:00
parent 658d319eb0
commit 9b36fb2c19
3 changed files with 95 additions and 1 deletions

@ -32,6 +32,11 @@ def get_package_tabs(user: User, package: Package):
"title": gettext("Edit Details"), "title": gettext("Edit Details"),
"url": package.get_url("packages.create_edit") "url": package.get_url("packages.create_edit")
}, },
{
"id": "translation",
"title": gettext("Translation"),
"url": package.get_url("packages.translation")
},
{ {
"id": "releases", "id": "releases",
"title": gettext("Releases"), "title": gettext("Releases"),
@ -70,7 +75,7 @@ def get_package_tabs(user: User, package: Package):
] ]
if package.type == PackageType.MOD or package.type == PackageType.TXP: if package.type == PackageType.MOD or package.type == PackageType.TXP:
retval.insert(1, { retval.insert(2, {
"id": "game_support", "id": "game_support",
"title": gettext("Supported Games"), "title": gettext("Supported Games"),
"url": package.get_url("packages.game_support") "url": package.get_url("packages.game_support")

@ -461,6 +461,14 @@ def move_to_state(package):
return redirect(package.get_url("packages.view")) return redirect(package.get_url("packages.view"))
@bp.route("/packages/<author>/<name>/translation/")
@login_required
@is_package_page
def translation(package):
return render_template("packages/translation.html", package=package,
tabs=get_package_tabs(current_user, package), current_tab="translation")
@bp.route("/packages/<author>/<name>/remove/", methods=["GET", "POST"]) @bp.route("/packages/<author>/<name>/remove/", methods=["GET", "POST"])
@login_required @login_required
@is_package_page @is_package_page

@ -0,0 +1,81 @@
{% extends "packages/package_base.html" %}
{% block title %}
{{ _("Translation") }}
{% endblock %}
{% block content %}
{% set translations = package.translations.all() %}
{% set num = translations | length + 1 %}
<a class="btn btn-secondary float-end" href="https://api.minetest.net/translations/#translating-content-meta">
{{ _("Help") }}
</a>
<h2 class="mt-0 mb-4">{{ self.title() }}</h2>
{% if num == 1 %}
<p>
{{ _("To provide translations for your %(type)s, you need to create .tr files and upload a new release.", type=package.type.text | lower) }}
{{ _("For information on how to do this, see the modding book chapter and lua_api.md") }}
</p>
<p>
<a class="btn btn-primary me-2" href="https://rubenwardy.com/minetest_modding_book/en/quality/translations.html">
{{ _("Translation - Minetest Modding Book") }}
</a>
<a class="btn btn-primary" href="https://api.minetest.net/translations/#translating-content-meta">
{{ _("Translating content meta - lua_api.md") }}
</a>
</p>
{% else %}
<p>
{{ _("%(title)s is available in %(num)d languages.", title=package.title, num=num) }}
{{ _("ContentDB reads translations from locale files (.tr) in your package.") }}
</p>
<div class="list-group">
<div class="list-group-item">
<div class="row text-muted">
<div class="col-sm-2">
{{ _("Language") }}
</div>
<div class="col-sm">
{{ _("Title") }}
</div>
<div class="col-sm">
{{ _("Short Description") }}
</div>
</div>
</div>
<div class="list-group-item">
<div class="row">
<div class="col-sm-2">
English
</div>
<div class="col-sm">
{{ package.title }}
</div>
<div class="col-sm">
{{ package.short_desc }}
</div>
</div>
</div>
{% for translation in translations %}
<div class="list-group-item">
<div class="row">
<div class="col-sm-2">
{{ translation.language.title }}
</div>
<div class="col-sm">
{{ translation.title or "" }}
</div>
<div class="col-sm">
{{ translation.short_desc or "" }}
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
{% endblock %}