Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

French translation #455

Closed
wants to merge 1 commit into from
Closed

Conversation

ryanemerson
Copy link
Contributor

@karesti As part of the day of learning I decided to play with some hugging face models translation models. The following is the result of an automated script that converts the en.json from this repository into french via the inference API of this Apache 2.0 license model.

As you know, my French is very limited, so I'll let you be the judge of the translation quality. If it seems reasonable, then we can easily modify my script to convert to other languages 🙂

"modal-user-exists": "Un utilisateur nomm\u00e9 {{name}} existe. Vous n'avez pas besoin de cr\u00e9er un mapper principal.",
"modal-roles": "R\u00f4les",
"modal-roles-list-placeholder": "S\u00e9lectionner les r\u00f4les",
"grant-success": "Acc\u00e8s accord\u00e9 \u00e0 {{112,114,105,110,99,105,112,97,108,78,97,109,101}.",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CSV of numbers inbetween {{ }} is a bug in my script. I'll fix this if you think the previous translations are reasonable, otherwise I'll just close the PR.

@tristantarrant
Copy link
Member

Maybe @yrodiere can have a look

Copy link

@yrodiere yrodiere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a look for lines 1 to 100, but I can't spend the time needed to process the almost 1000 lines, sorry :)

Note to @ryanemerson: this is a very nice thing you've done here, so I want to clarify I'm not commenting on your work, but on the AI's translation.

I'd say you're getting more or less what you'd expect from an AI: good in general, unnatural from time to time, completely nonsensical in some cases (see the empty string translated to something about the European Union, near the end).

As a primarily French speaker who also happens to speak English, I think I'd personally prefer the original version in English, rather than end up with awkward or sometimes misleading wording.

I suppose this could be useful to people who have a very bad understanding of English, but then... I suspect these people will have a hard time finding good documentation, so they are unlikely to be able to use Infinispan in the first place.

You seem to already have other translations, though, so perhaps you've already decided that an imperfect translation is better than no translation; I'll admit there are good points on both sides of the argument.

},
"common": {
"actions": {
"actions": "Mesures \u00e0 prendre",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very weird way of putting it. I don't know the context, but I'd suggest keeping "Actions", which is also a word in french.

Suggested change
"actions": "Mesures \u00e0 prendre",
"actions": "Actions",

"common": {
"actions": {
"actions": "Mesures \u00e0 prendre",
"refresh": "Rafra\u00eechir",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't this file be UTF-8? It's hard to read as it is, but I guarantee you'll split your hair out on the Chinese or Japanese versions :)

Comment on lines +20 to +21
"delete": "Supprimer",
"remove": "Supprimer"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want to nitpick, we're losing some information here; I suppose remove only removes an element from a collection, and doesn't delete it completely?
That being said, Supprimer indeed feels more natural in Franch; the exact translation Retirer could feel rather weird depending on context.

"current-version": "Version actuelle",
"latest-version": "Derni\u00e8re version",
"already-latest-version": "D\u00e9j\u00e0 \u00e0 jour",
"description1": "{{brandname}} est un magasin de donn\u00e9es en m\u00e9moire qui offre l'\u00e9volutivit\u00e9, l'interop\u00e9rabilit\u00e9 et la tol\u00e9rance aux d\u00e9fauts.",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This translated "data store" to "magasin de données", which is very literal: it's closer to "data shop" and I would never use that wording.

I guess this shows the limits of translation to begin with; I personally would say "data store", even when talking in french.

"already-latest-version": "D\u00e9j\u00e0 \u00e0 jour",
"description1": "{{brandname}} est un magasin de donn\u00e9es en m\u00e9moire qui offre l'\u00e9volutivit\u00e9, l'interop\u00e9rabilit\u00e9 et la tol\u00e9rance aux d\u00e9fauts.",
"description2": "Utilisez des capacit\u00e9s de cache haute performance et cr\u00e9ez des grilles de donn\u00e9es distribu\u00e9es con\u00e7ues pour les architectures de microservice.",
"license": "Disponible sous",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The trailing space got removed by the translation. Won't this cause problems?

"text-command": "bin/cli.sh user create myuser -p changeme -g admin"
},
"cache-managers": {
"title": "R\u00e9cipient de donn\u00e9es",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Récipient" is more what you would call a bowl of a vase.

I think people would expect a more straightforward translation here: container => conteneur.

Suggested change
"title": "R\u00e9cipient de donn\u00e9es",
"title": "Conteneur de donn\u00e9es",

"tasks-tab": "T\u00e2ches",
"schemas-tab": "Sch\u00e9mas",
"cache-table-label": "Caches",
"cache-name": "D\u00e9nomination",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Dénomination" is very formal, something you'd find on official documents rather than in a web UI.

The simpler translation of "Name" is just "Nom".

Suggested change
"cache-name": "D\u00e9nomination",
"cache-name": "Nom",

"cache-name": "D\u00e9nomination",
"cache-mode": "Type",
"cache-health": "Sant\u00e9",
"cache-features": "Caract\u00e9ristiques",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically this means "Characteristics". Not sure that's what is meant by "Features" here: "Fonctionnalités" might be a better fit. Again, hard to say without context.

"cache-mode": "Type",
"cache-health": "Sant\u00e9",
"cache-features": "Caract\u00e9ristiques",
"cache-status": "Le pr\u00e9sent r\u00e8glement entre en vigueur le jour suivant celui de sa publication au Journal officiel de l'Union europ\u00e9enne.",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Serious hallucination here: an empty string got translated to "This regulation is effective the day after its publication to the official journal of the European union".

"undo-ignore": "Afficher",
"ignored-status": "Cach\u00e9",
"delete": "Supprimer",
"available": "Mise \u00e0 disposition",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"available": "Mise \u00e0 disposition",
"available": "Rendre disponible",

@ryanemerson
Copy link
Contributor Author

I had a look for lines 1 to 100, but I can't spend the time needed to process the almost 1000 lines, sorry :)

Thanks so much for the detailed feedback you have provided, it's really illustrated the limitations of a purely AI based solution 🙂

As a primarily French speaker who also happens to speak English, I think I'd personally prefer the original version in English, rather than end up with awkward or sometimes misleading wording.

I suppose this could be useful to people who have a very bad understanding of English, but then... I suspect these people will have a hard time finding good documentation, so they are unlikely to be able to use Infinispan in the first place.

This is a very good point!

You seem to already have other translations, though, so perhaps you've already decided that an imperfect translation is better than no translation; I'll admit there are good points on both sides of the argument.

I was hoping that we could generate something that was imperfect, but usable, however given that we can't guard against hallucinations without a human-review this was probably too optimistic. I think for this to be effective we would need to combine the generated AI with a thorough human review, which given that this isn't a priority and we only have a small number of languages spoken in the team, is not realistic.

@tristantarrant
Copy link
Member

It probably makes sense to feed the output into https://hosted.weblate.org/projects/infinispan/infinispan-console/ which then has tools to edit/maintain the translations

@ryanemerson ryanemerson closed this Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants