Help needed for duplicate translations in Transifex

Hi everyone!

We have recently made efforts to improve the translation experience. Currently we translate three separate resource files, which causes certain phrases to be translated multiple times and often in different ways. To make sure translators do not waste their time translating the same phrase multiple times, we will be moving to a single resource file before Christmas. For that move to happen, we need your help.

If you are native or fluent in one of the languages listed below, you could be of great help to us by choosing the right translations among the duplicates or re-translating phrases if necessary. You can make these changes directly in Transifex. If there are phrases that cannot be unified due to missing context that we should add, let us know.

I recommend to translate by copying the English phrase into Transifex (with exact matching), filtering to only show the resources ‘core.react.js’, ‘core.js’ and ‘core.py’ and then changing all the translations to be the same. See image below for an example where there are different translations for the same phrase/word:

In the attached log file below you will see all the phrases that need fixing. (Updated on 04/12/2024)
duplicates.log (47.1 KB)

During translation, please refer to our Glossary (see image below, top right). When introducing new words or when you find them not to be descriptive enough, we would appreciate updating the glossary accordingly. You can also find the entire glossary by going to the side-menu and going to the ‘Glossaries’ tab.

Thank you in advance!

UPDATE: Some of the duplicate languages are already fixed. Check the file to see if your file is still there.


The affected languages:

  • Ukranian (36 duplicates)
  • Polish (59 duplicates)
  • Russian (13 duplicates)
  • French (56 duplicates)
  • Brazilian (56 duplicates)
  • Korean (21 duplicates)
  • Estonian (1 duplicates)
  • Portuguese (19 duplicates)
  • Italian (58 duplicates)
  • Turkish (54 duplicates)
  • Canadian (2 duplicates)
  • Spanish (60 duplicates)
  • Hungarian (76 duplicates)
  • Swedish (16 duplicates)
  • Japanese (51 duplicates)
  • Arabic (4 duplicates)
  • Czech (47 duplicates)
  • Mongolian (58 duplicates)
  • Croatian (1 duplicate)
  • Chinese (56 duplicates)
  • Taiwanese (12 duplicates)
  • Vietnamese (31 duplicates)
  • German (58 duplicates)
1 Like

Fix for Arabic:
ar 4 duplicates found:
Notifications: [‘إشعارات’]
No type: [ ‘بدون نوع’]
Link: [‘رابط’]
Session block: [‘منع الجلسة’, ‘كتلة الجلسة’] - needs context

1 Like

Thank you! Fixed the three translations you gave and will add context to ‘Session block’

I fixed the Russian translation ambiguity where it was possible.
Title - requires context, as it could mean header/name or salutation.
None - requires context, as it could mean no, nobody, nothing, empty, etc.

1 Like

Where the context is missing, it means a name (e.g. contribution title). In other cases, like salutation, there is context :slight_smile:

None - requires context, as it could mean no, nobody, nothing, empty, etc.

We’ll add that, thanks for letting us know!

1 Like

Some suggestions for german fixes (The other ones need a bit more thought)

de_DE 58 duplicates found:
Book of Abstracts: [ 'Buch der Abstracts']
User: ['Benutzer', 'Nutzer']
Details: ['Details']
Affiliation: ['Zugehörigkeit']
Previous year: ['Vorheriges Jahr']
No accommodation: ['Keine Unterbringung']
Edit template: [ 'Dokumentenvorlage bearbeiten']
Delete template: [ 'Dokumentenvorlage löschen']
Custom templates: ['Benutzerdefinierte Vorlagen']
Leave a comment...: ['Kommentar hinterlassen ...']
Enter #id or search string: ['#id oder Suchbegriff eingeben']
Notifications: [ 'Benachrichtigungen']
Do you really want to reset the judgment? This operation is irreversible.: ['Soll die Beurteilung wirklich zurückgesetzt werden? Diese Aktion lässt sich nicht rückgängig machen.']
Contribution List: ['Liste der Beiträge', ]
Speaker List: ['Liste der Sprecher']
Accepted: [ 'Akzeptiert']
Visible to reviewers and judges: ['Sichtbar für Gutachter und Juroren']
To be corrected: ['Zu korrigieren']
There is already a registration with this email address.: ['Es gibt bereits eine Anmeldung mit dieser E-Mail Adresse.']
Pending: ['Ausstehend']
There are no registrations yet.: ['Es gibt derzeit keine Anmeldungen.']
Availability: ['Verfügbarkeit']
Requested by: ['Angefragt von']
You may use Markdown for formatting.: ['Sie können Markdown für die Formatierung verwenden.']
Unlisted event: ['Nicht angezeigte Veranstaltung']
Search: ['Suchen']
Management: ['Verwaltung']
This email is pending and will be sent soon.: ['Der Versand dieser E-Mail steht noch bevor und wird in Kürze durchgeführt.']
This email has been sent.: [ 'Diese E-Mail wurde gesendet.']
Sending this email failed.: ['Senden dieser E-Mail ist gescheitert.']
Something went wrong: ['Es ist ein Fehler aufgetreten']
This field is required: ['Dies ist ein Pflichtfeld']
Choose from your computer: ['Datei auswählen']
This category cannot be deleted because it is not empty.: ['Diese Kategorie kann nicht gelöscht werden, weil sie nicht leer ist.']
The back side is empty.: ['Die Rückseite ist leer.']
Submit: [ 'Senden']
Create new lecture: ['Neue Vorlesung erstellen']
Create new meeting: ['Neue Besprechung erstellen']
Next: ['Nächste']
Previous: ['Vorherige']
Refresh: ['Aktualisieren']
Sessions: ['Sitzungen']
2 Likes

Thanks! I’ve applied the changes on Transifex and we’ll add more context to the remaining untranslatable strings.

Family name: [‘Soyad’]
Affiliation: [‘Kurum’]
Export: [‘Dışa aktar’]
If you need support, you can contact the following email address:: [‘Desteğe ihtiyaç duyarsanız aşağıdaki e-posta adresi ile iletişime geçebilirsiniz:’]
Location: [‘Konum’]
Review: [‘Gözden geçir’]
Leave a comment for the submitter…: [ ‘Gönderici için bir yorum bırak…’]
Accept: [‘Kabul et’, ‘Kabul’]
Enter #id or search string: [‘Kimlik numarası veya arama dizgisini gir’]
Reset judgment: [‘Kararı sıfırla’]
Do you really want to reset the judgment? This operation is irreversible.: [‘Gerçekten bu kararı sıfırlamak istiyor musunuz? Bu işlem geri alınamaz.’]
Status: [‘Durum’]
Time: [‘Saat’]
Timetable: [‘Zaman Çizelgesi’]
Visible to reviewers and judges: [‘Gözden geçirenler ve hakemlere görünür’]
Submission is open: [ ‘Gönderim açıktır’]
Submit paper: [‘Makaleyi gönder’]
Your paper is under review: [‘Makaleniz gözden geçirilmektedir’]
Rejected: [‘Reddedildi’]
Availability: [‘Kullanılabilirlik’, ‘Kullanılırlık’]
Ratings: [‘Puanlamalar’]

Here is some corrections for Turkish duplicates.

1 Like

Suggestions for portuguese-BR fixes

pt_BR 57 duplicates found:
File: ['Ficheiro']
Upload files: ['Adicionar ficheiros']
Email address: ['E-mail']
First name: ['Nome Próprio']
If you need support, you can contact the following email address:: ['Se você precisar de suporte, entre em contato através do seguinte endereço de e-mail:']
Poster: ['Pôster']
Event Logo: ['Logotipo do Evento']
First Name: ['Nome Próprio']
No accommodation: ['Sem acomodação']
Delete template: ['Apagar modelo']
Review: ['Revisar']
Comment: ['Comentar']
Leave a comment for the submitter...: ['Deixe um comentário para o remetente...']
Visible only to judges: ['Visível apenas para os juízes']
or: ['ou']
Judge: ['Juíz']
Start now: ['Iniciar agora']
Reset judgment: ['Redefinir Avaliação']
Do you really want to reset the judgment? This operation is irreversible.: ['Você realmente deseja redefinir a avaliação? Esta operação é irreversível.']
My Contributions: ['Minhas Contribuições']
Contribution List: ['Lista de Contribuições']
Author List: ['Lista de Autores']
Status: ['Estado']
Time: ['Hora']
Timetable: ['Horário']
Venue: ['Local do evento']
Submission is open: ['A submissão está aberta']
Last name: ['Apelido']
See details: ['Ver detalhes']
There are no registrations yet.: ['Ainda não há registros.']
Disabled sections: ['Seções desativadas']
Change reviews: ['Alterar revisões']
Privacy Policy: ['Política de Privacidade']
This email is pending and will be sent soon.: ['Este e-mail está pendente e será enviado em breve.']
This email has been sent.: ['O e-mail foi enviado.']
Sending this email failed.: ['O envio do e-mail falhou.']
Rooms I manage: ['Salas que eu gerencio']
Room Booking: ['Reserva de Sala']
Linked to: ['Ligado a']
Ms: ['Sra.']
Mrs: ['Sra.']
Something went wrong: ['Algo deu errado']
Report Error: ['Relatar Erro']
This field is required: ['Este campo é obrigatório']
Drag file here: ['Arrastar ficheiro aqui ']
Event Role: ['Papel no Evento']
Move here: ['Mover aqui']
Warning: ['Atenção']
The back side is empty.: ['O verso está vazio.']
Submit: ['Submeter']
Create new lecture: ['Criar nova palestra']
The passwords do not match.: ['As senhas não correspondem.']
Please choose an option: ['Por favor escolha uma opção']
Printable version: ['Versão para imprimir']
Session block: ['Bloco de Sessão']
Break: ['Intervalo']
Delete poster: ['Apagar pôster']

I think some context could be used to better understand the meaning:
Disabled sections, do you mean in a software- or a physical disability context?
Judgement, what is meant by this? (apologies as I don’t use indico that often)
Event role, is this a role attributed to a user (for an event) or a role attributed to the event itself?

1 Like

@akustra I tried to contribute to the French translation using Transifex but I don’t manage to see the current translation in the translation editor… What am I doing wrong?

Can you share a link to the translation?

Thanks for the feedback, we’ll be adding more context shortly :slight_smile:

Disabled sections, do you mean in a software- or a physical disability context?

in software

Judgement, what is meant by this? (apologies as I don’t use indico that often)

This meant in the context of judging papers

Event role, is this a role attributed to a user (for an event) or a role attributed to the event itself?

This is a role that a person might have in the event (e.g. a participant, author, speaker, etc…)

1 Like

When editing for example core.js, you should see a table like this:

Does that not look the same for you? I noticed in the past that with a bad network connection (like in a hotel or train), the translations are not visible immediately, likely due to the dynamic construction of the contents. Did you try from your lab?

I am in Saclay tomorrow and Jussieu on Wednesday. If you want, we can meet somewhere in between and have a look together with your account, @Michel_Jouvin.

Dirk,

Thanks. Yes I was able to see the same as your example but I thought it was possible to see all the translations for one word/expression from the 3 resources mentioned by @akustra and update those requiring to be updated. Going source by source to check the various words is a little bit painful. And the screenshot from @akustra suggests it is possible but I select “Lexicons” in the main menu, I see all the expected entries but they are said to be untranslated… I probably do something wrong…

Let’s assume you want to see all chains containing the word “comment” (the first “duplicate” in the fr_FR list according to the duplicates.log file). Select “All resources” in the top line of the screen and filter text:comment like this:

image

Does that make do for you?

“comment (noun)” and “comment (verb)” are indeed translated differently in french (commentaire, commenter). So it is not surprising that they appear in the list like this.

@akustra, @troun, a long time ago we had recommended that the glossary for each language be filled accordingly to take into account these specifics in a uniform way. The glossary interface has changed since then. (It is very similar to the translation interface now.) But here is an example of disambiguation for “review” in french:

As translators will see the glossary contents (at the very right of the screen), they are supposed to follow the guidance (or complete, if it does not exist), in order to have future translations of similar terms by other users done in a coherent way.

1 Like

Hello! I am a native speaker of Mandarin. Here are my suggestions for fixing the simplified Chinese

zh_CN.GB2312 56 duplicates found:
Session: ['分会']
Details: ['详情']
Email address: ['电子邮件地址']
Permissions: ['权限']
Day: ['日']
Contact: ['联系']
If you need support, you can contact the following email address:: ['如果你需要帮助,你可以联系下面邮件地址:']
Location: ['地点']
Comment: ['评论']
Leave a comment for the submitter...: ['给提交人留下评论...']
Accept: ['接受']
Enter #id or search string: ['输入 #id 或搜索字符串']
Do you really want to reset the judgment? This operation is irreversible.: ['您真的要重置评判吗?这个操作是不可逆的。']
Reason: ['理由']
Speaker List: ['报告人列表']
Visible to reviewers and judges: ['对审核人和评委可见']
Export as JSON: ['导出为JSON']
Capacity: ['容量']
There is already a registration with this email address.: ['此邮件地址的注册已存在。']
Occupancy: ['占用率']
Rejected: ['已拒绝']
Not specified: ['未指定']
See details: ['看详细信息']
Availability: ['可用性']
Unlisted event: ['未列出的事件']
Change review: [‘修改审核']
Change reviews: ['修改审核 ']
Rating this question is mandatory: ['给此问题评分是强制性的']
Are you sure you want to remove this comment?: ['您确定要删除此评论?']
This email is pending and will be sent soon.: ['此电子邮件在排队,将很快发送。']
This email has been sent.: ['此邮件已发出。']
Sending this email failed.: ['邮件发送失败。']
Show details: [ '显示详细信息']
Add to favorites: ['添加到收藏夹']
Options: ['选项']
Number: ['号码']
Choose from your computer: ['从您的电脑中选择']
This category cannot be deleted because it is not empty.: ['此类别不能删除因为它不为空。']
Move here: [ '移到这里']
Warning: ['警告']
The back side is empty.: ['背面是空的']
Add new session: ['添加新分会']
Add new track: ['添加新议题']
No type: [ '无类型']
Affiliation: ['工作单位']
Previous: ['上一个']
Something went wrong: ['出问题了']
OK: ['确定']
Go back: ['返回']
Export to PDF: ['导出为PDF']
Link: ['链接']
All days: ['全天']
Reschedule: ['重新安排']
et al.: ['等']
Manage protection: ['管理保护']
Title: ['称谓']

And the same suggestion for zh_Hans_CN.

However, I think both translations are bad in some items. It reads like a machine translation. For example, There is already a registration with this email address.: ['此邮件地址的注册已存在。', '已存在具有此电子邮件地址的注册。'] , it is better to translate it as 此邮箱已被注册 or 此电子邮件地址已被注册.

1 Like

Hi @Michel_Jouvin ,

To achieve exactly what I had but for the french translations, simply go to the link below:

https://app.transifex.com/indico/indico/translate/#fr_FR/$/112744222?q=resource%3Acore-messages-js|core-messages|core-messages-react+text%3A[review]

In the link I shared it already filters the relevant resources for french and specifically looks for exact matches for the word review. To fix each translation, simply modify the text between the brackets [] inside the input field and you will see duplicates.

To achieve this manually instead, do the following;

  1. Go to the editor of the French translations in Transifex and make sure you select All resources on the left.
  2. Below the filters button, click on Resource and in the input field type core. Select all three resources that appear and click Apply.
  3. Then click on the Text filter and in the input field write [...], where ... is any literal English word that is to be translated. In our case that will be one of the duplicates. Keep the square brackets for exact matching, although this does not take into account different types of capitalization.
  4. Then I proceeded to either translate by bulk or individually.

As @dirk stated, in our duplicates.log file we do not differentiate properly between for example nouns and verbs and we will need to fix that by adding context to the english phrases ourselves. The word review in French is indeed an example of that.

Yesterday we translated the Polish version, there should be no more duplicates

1 Like

Hi Dirk,

You are indeed correct, our duplicates.log file does not take into account the context we added in the glossaries and we will be fixing that soon by adding context ourselves to the English translations. I have adjusted the description of this post to mention the need for adjusting the glossary wherever necessary.