<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Translation on Renne Rocha</title>
    <link>https://rennerocha.com/tags/translation/</link>
    <description>Recent content in Translation on Renne Rocha</description>
    <generator>Hugo</generator>
    <language>en</language>
    
      <managingEditor>blog@rocha.dev.br (Renne Rocha)</managingEditor>
    
    
      <webMaster>blog@rocha.dev.br (Renne Rocha)</webMaster>
    
    
    
      <lastBuildDate>Mon, 31 Mar 2025 00:00:00 +0000</lastBuildDate>
    
      <atom:link href="https://rennerocha.com/tags/translation/index.xml" rel="self" type="application/rss+xml" />
      <item>
        <title>Things I learned from translating free software projects</title>
        <link>https://rennerocha.com/posts/things-i-learned-from-translating-free-software-projects/</link>
        <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate><author>blog@rocha.dev.br (Renne Rocha)</author>
        <guid>https://rennerocha.com/posts/things-i-learned-from-translating-free-software-projects/</guid>
        <description>&lt;p&gt;Everyone who wants to start contributing to free software projects struggles to know how to start. There are different paths you can follow to get involved in a community. Smaller projects are easier to start with, but some will require technical knowledge that you don&amp;rsquo;t have yet. Other projects may be more welcoming to new contributors but will require you to learn how the community works and its culture.&lt;/p&gt;&#xA;&lt;p&gt;As a non-native English speaker, I found that one way to contribute is by translating applications &lt;strong&gt;I use&lt;/strong&gt; into Brazilian Portuguese.&lt;/p&gt;&#xA;&lt;p&gt;The first project I got involved with in translation was &lt;a href=&#34;https://gancio.org/&#34;&gt;Gancio&lt;/a&gt;, a shared agenda for local communities. It had several translations, but the Portuguese one wasn&amp;rsquo;t good — too many untranslated strings, and the translated ones weren&amp;rsquo;t consistent. As I was installing it to be used by the community of my &lt;a href=&#34;https://lhc.net.br/&#34;&gt;hackerspace&lt;/a&gt; in Brazil, having it in Portuguese was very important to help people who don&amp;rsquo;t know English use it entirely.&lt;/p&gt;&#xA;&lt;p&gt;Some months later, I installed &lt;a href=&#34;https://pretix.eu/about/en/&#34;&gt;pretix&lt;/a&gt;, a ticketing software I was going to use for a conference I was organizing. This project was in very bad shape, with only 18% translated into Portuguese, and the existing translations were terrible (with some very serious mistakes). Now, it is 95% translated, with almost everything reviewed.&lt;/p&gt;&#xA;&lt;p&gt;After working on these projects, I learned a few things that I believe are important to mention if you plan to start following this path to contribute to free software.&lt;/p&gt;&#xA;&lt;p&gt;This is not a full list of recommendations, techniques, and processes for translating free software. The two projects I worked on didn&amp;rsquo;t have a group of people dedicated to translating them into Portuguese, but for bigger projects (like Python documentation, for example), we will usually find a more organized group of people with more well-defined processes, communication channels, and discussions to decide which is the best translation to use.&lt;/p&gt;&#xA;&lt;h5 id=&#34;you-will-learn-the-business-of-the-software&#34;&gt;&#xA;    &lt;a href=&#34;#you-will-learn-the-business-of-the-software&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    You will learn the business of the software&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;When you start translating software, you probably know a bit about its business concepts. But during the process, you will come across sentences and words that will lead you to discover other features you probably didn&amp;rsquo;t know existed or didn&amp;rsquo;t realize were so complete.&lt;/p&gt;&#xA;&lt;p&gt;After working on these projects, I felt much more confident to start contributing with code (and I did for both projects). So, the translation task allowed me to contribute code as well.&lt;/p&gt;&#xA;&lt;h5 id=&#34;be-aware-of-regional-differences&#34;&gt;&#xA;    &lt;a href=&#34;#be-aware-of-regional-differences&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    Be aware of regional differences&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;Brazilian Portuguese is different from Portugal (or European) Portuguese. Even though we can understand both quite easily, software translated into one variant will look &amp;lsquo;weird&amp;rsquo; to a native speaker of the other. This is also true for other languages, so you need to consider this when translating.&lt;/p&gt;&#xA;&lt;p&gt;When I was working on Gancio, there was only &lt;code&gt;Portuguese&lt;/code&gt; as a language choice. One day, I noticed that another person started to contribute and re-translate lots of words and expressions from the Brazilian variant to the Portugal one. &lt;strong&gt;Don&amp;rsquo;t do that!&lt;/strong&gt; You will be throwing someone else&amp;rsquo;s work into the trash.&lt;/p&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t want to start a language war, so I asked the project&amp;rsquo;s maintainer to create two separate versions: &lt;code&gt;pt-br&lt;/code&gt; (for Brazilian Portuguese) and &lt;code&gt;pt-pt&lt;/code&gt; (for Portugal Portuguese), so we could continue translating using the terms that make more sense to us. This is probably true for other languages (Spanish came to mind).&lt;/p&gt;&#xA;&lt;h5 id=&#34;create-a-glossary&#34;&gt;&#xA;    &lt;a href=&#34;#create-a-glossary&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    Create a glossary&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;Keep your translation consistent. Even if there are many different words for a term, avoid using synonyms everywhere. When you find a term that is used in many places, add it to a glossary so other translators will know that they should use one form rather than another&lt;/p&gt;&#xA;&lt;p&gt;For example, in Portuguese, the verb &lt;code&gt;to delete&lt;/code&gt; can be translated as &lt;code&gt;apagar&lt;/code&gt;, &lt;code&gt;excluir&lt;/code&gt;, or &lt;code&gt;deletar&lt;/code&gt;. All of them are valid translations, but it is preferable to stick with one. This will make it easier for new translators to decide which expression/word to use, and for final users, the UI will look much better and be easier to use.&lt;/p&gt;&#xA;&lt;h5 id=&#34;know-your-own-language&#34;&gt;&#xA;    &lt;a href=&#34;#know-your-own-language&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    Know your own language&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;It is acceptable to make some mistakes during your translation. Usually, we are not language experts and/or professional translators. But we need to be very careful not to commit gross mistakes. Correct spelling and verb conjugations are essential. If you are not sure about how to spell a word, check it in a dictionary beforehand. Even if you have 1% doubt about whether that is the correct spelling, validate it.&lt;/p&gt;&#xA;&lt;h5 id=&#34;short-words-in-english-may-not-be-short-in-other-languages&#34;&gt;&#xA;    &lt;a href=&#34;#short-words-in-english-may-not-be-short-in-other-languages&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    Short words in English may not be short in other languages&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;Some words in English that are short can be longer in other languages. For example, &lt;code&gt;Next&lt;/code&gt; is &lt;code&gt;Próximo&lt;/code&gt; in Portuguese (3 extra characters). Sometimes this is not relevant, but some UIs have strict layout limits (e.g., the width of a button may be fixed), and it will not look good with longer translations. When you find something like this, checking how the translation will look is important.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes you will be able to choose a synonym in your language that keeps the same meaning; other times, you may suggest changes in the project code so the UI is not broken.&lt;/p&gt;&#xA;&lt;p&gt;This &lt;a href=&#34;https://github.com/pretix/pretix/issues/4796&#34;&gt;issue in pretix&lt;/a&gt; is a great example of this.&lt;/p&gt;&#xA;&lt;h5 id=&#34;inclusive-language-is-important&#34;&gt;&#xA;    &lt;a href=&#34;#inclusive-language-is-important&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    Inclusive language is important&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;Inclusive language is a way of speaking that aims to avoid expressions that may be sexist, racist, or biased against certain groups of people. I noticed during the translations that sometimes it is difficult to translate some neutral terms in English into Portuguese.&lt;/p&gt;&#xA;&lt;p&gt;Many nouns in English are not gender-specific, so if you say &lt;code&gt;the reviewer&lt;/code&gt;, you are not specifying the gender of the person reviewing a proposal. But in Portuguese, this noun can be translated as &lt;code&gt;o revisor&lt;/code&gt; (male) or &lt;code&gt;a revisora&lt;/code&gt; (female). &lt;code&gt;All&lt;/code&gt; can be &lt;code&gt;todos&lt;/code&gt; (male) or &lt;code&gt;todas&lt;/code&gt; (female). So, you can see how hard this can be.&lt;/p&gt;&#xA;&lt;p&gt;The common &amp;lsquo;default&amp;rsquo; is to use the male variant, but I tried my best to avoid it. There are some constructions that people use (in Portuguese, but I know that every language has constructions like this) to remove that bias. For example, instead of &lt;code&gt;todos&lt;/code&gt; and &lt;code&gt;todas&lt;/code&gt;, some people use &lt;code&gt;todes&lt;/code&gt; (the &lt;code&gt;e&lt;/code&gt; is added instead of using &lt;code&gt;o&lt;/code&gt; and &lt;code&gt;a&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;This is not a common way to write Portuguese, and I personally don&amp;rsquo;t like it (but it is not wrong if you decide to use it). So, some possibilities can be:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Remove the article before the noun. For example, when translating &lt;code&gt;the speaker&lt;/code&gt;, instead of using &lt;code&gt;o palestrante&lt;/code&gt; or &lt;code&gt;a palestrante&lt;/code&gt;, use only &lt;code&gt;palestrante&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Choose a different word that has the same meaning.&lt;/li&gt;&#xA;&lt;li&gt;Write the sentence in a different way, keeping the meaning but avoiding gender markers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It is not an easy task, but it is important to worry about that. Remember that the software you are translating will be used by people worldwide. &lt;strong&gt;Be respectful to them!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;you-may-procrastinate-a-lot-doing-this&#34;&gt;&#xA;    &lt;a href=&#34;#you-may-procrastinate-a-lot-doing-this&#34; class=&#34;anchor&#34;&gt;&#xA;        &lt;svg class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; height=&#34;16&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 16 16&#34; width=&#34;16&#34;&gt;&#xA;            &lt;path fill-rule=&#34;evenodd&#34;&#xA;                d=&#34;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/a&gt;&#xA;    You may procrastinate a lot doing this&#xA;&lt;/h5&gt;&#xA;&lt;p&gt;Some days, I was tired and didn&amp;rsquo;t want to do anything else. But I felt guilty for not doing anything, so I spent a significant amount of time translating the projects. I started to consider this a form of procrastination (at least the result of my procrastination was something meaningful), but — at least for me — it was important to set some boundaries and limit my time spent doing translations. I limited myself to 30 minutes every business day. It worked well for me.&lt;/p&gt;&#xA;</description>
      </item>
  </channel>
</rss>