labrinth icon indicating copy to clipboard operation
labrinth copied to clipboard

Localization for projects

Open Madis0 opened this issue 2 years ago • 8 comments

Is your feature request related to a problem? Please describe. Now that Modrinth itself is getting localization for the frontend, it would make sense to give authors control to translate their project descriptions as well.

Describe the solution you'd like Allow authors to define their projects in more than one language. The languages could be chosen from a list for the author management and the viewer side and they should not be restricted to Modrinth frontend's own languages (because those may get added later).

When the user views a project page and their browser requests a language that is supported by the project, the project should automatically be displayed in that language.

Describe alternatives you've considered Multilingual summaries at least?

Additional context Obviously it's a big task and not the biggest priority, just nice to have.

Madis0 avatar May 29 '22 18:05 Madis0

I also thought about the system of "translation requests" and how it could conceptually work. If it makes sense, I can write my thoughts here.

Felix14-v2 avatar May 30 '22 15:05 Felix14-v2

I also thought about the system of "translation requests" and how it could conceptually work. If it makes sense, I can write my thoughts here.

That doesn't sound very logical. Why should users be able to request translations from the author? Most humans speak only 1-3 languages.

Madis0 avatar May 30 '22 15:05 Madis0

Not users :) I meant for the author to be able to request a translation for his project from the translation community, and they could have limited access to the project even before the project is published or updated.

Felix14-v2 avatar May 30 '22 15:05 Felix14-v2

Perhaps, along with the "developer", it would be worthwhile to add a new project role — translator, upon receipt of which a person would be able to choose in the profile settings the languages into which (and from which) he can translate. After that, he will receive notifications from the authors who sent the translation request. The corresponding button can be placed, for example, next to the text editing button.

It would be convenient if the translator automatically got limited access to the project, so that, if desired, he could also track the creation of new versions and translate the changelog even before publication.

How to protect yourself from incorrect or comic translations? Firstly, the translator only offers his own translation to the author of the project at his request, and only the author decides on its use. He can check its contents using any machine translation service by performing a reverse translation, for example. Secondly, other translators can view the text created by the translator and vote for it or offer their own. Based on the votes, the author of the project can evaluate the correctness of the translation. Thirdly, the translator role will be assigned only after receiving the same role in Modrinth Discord. This is done so that translators can easily discuss disagreements among themselves, and "jokers" would quickly lose their role.

Felix14-v2 avatar May 30 '22 15:05 Felix14-v2

Hmm, okay, feel free to post your idea.

But before you do, I would like to present my own viewpoint: there shouldn't be any "central database" of projects that request translations, because that would just encourage spam, machine translations, competitor flaming etc.

Instead, the translator should show clear intent that they are interested in a specific project, in a specific language (or multiple, but those would be individual requests instead of batch).

Madis0 avatar May 30 '22 15:05 Madis0

Haha, my message was intended to be posted before yours. But yeah, I don't really like that part of the idea:

After that, he will receive notifications from the authors who sent the translation request.

I think the users should actually be interested and use the content they translate. Perhaps instead only notify if a followed project requests for translators?

Madis0 avatar May 30 '22 15:05 Madis0

I think the users should actually be interested and use the content they translate. Perhaps instead only notify if a followed project requests for translators?

Why not? Good idea. But as for me, I've tracked the new projects on Modrinth before to help them with the translation on GitHub (if they left a link). I have not always subscribed to project updates for various reasons (for example, due to spam update notifications, Modrinth still not grouping them). It would be nice to have some way for those who want to help with the translation even before the first publication.

Felix14-v2 avatar May 30 '22 16:05 Felix14-v2

I honestly think Modrinth should not handle anything related to translation process, there exist better solutions for that (GitHub Pull Requests / Crowdin / Weblate / whatever). Modrinth should just allow creators to upload README's as files and maybe have some meta file in repository properties of which can be translated, and then also accept translations in form of README.[BCP 47 code].md (e.g. README.fr.md, README.uk-UA.md).

I believe Google Play allows to do that, so why not take this for inspiration. Modrinth then could handle, say, Accept-Language header, or have specific query parameter for language, so Knossos can request translated variants.

Example of possible Modrinth meta file
# meta.modrinth.toml
# Minotaur plugin could upload this file or use it to call specific API endpoints to configure project.

version = 1
name = "LambDynamicLights"
description = "A dynamic lights mod for Fabric."
tags = ["utility", "decoration", "adventure"]

[translations.ru-RU]
name = "LambDynamicLights"
description = "Fabric мод, добавляющий динамическое освещение."

Or, don't use any metafiles, relying on README.md itself with front matter to determine mod name and description in translated locale! This way it better integrates with existing translation management solutions.

Example of translatable README's

README.md:

name: LambDynamicLights
description: A dynamic lights mod for Fabric.
---

# LambDynamicLights

A dynamic lights mod for Fabric.

## 📖 What's this mod?

It's dark outside, extremely dark...

README.ru-RU.md

name: LambDynamicLights
description: Fabric мод, добавляющий динамическое освещение.
---

# LambDynamicLights

Fabric мод, добавляющий динамическое освещение.

## 📖 Что это за мод?

Снаружи очень темно...

This wouldn't too hard to implement, I believe.

brawaru avatar Jun 03 '22 17:06 brawaru