# Translating Omnigit Omnigit is translated by the people who use it. You do not need to write code or know git. ## If you want to translate **The easy way is not available yet.** Omnigit is not on Weblate — a translation site where you would pick a language and fill in boxes, with the pull request opened for you. It is coming; until then the route below is the one that works, and it asks more of you than it should. ### Until then, by hand You need a text editor and a GitHub account. You do not need git installed, and you do not need to know how to use it. 1. **Get [Poedit](https://poedit.net/)** — free, on Windows, macOS and Linux, and made for exactly this. A plain text editor works too, but Poedit writes the file header for you and shows the right number of plural boxes for your language, which are the two things that are fiddly to get right by hand. 2. **Open `src/Omnigit/Resources/Locale/Omnigit.pot`** from this repository. Poedit will ask which language you are translating into and create the file. 3. **Fill in what you like.** Nothing has to be finished — see the notes above about `{0}`, context notes and plurals. 4. **Save it as `.po`** — `af.po`, `de.po`, `pt_BR.po` — using the code Poedit suggests. 5. **Open a pull request.** On GitHub, go to `src/Omnigit/Resources/Locale/`, press **Add file → Upload files**, drop your `.po` in, and choose *Create a new branch and start a pull request*. GitHub makes the fork and the branch for you. That is the whole thing. Nobody will ask you to rebase anything. If a string looks wrong in English, say so in the pull request rather than fixing it in your language alone — it is wrong for everybody. Three things worth knowing before you start: - **Leave `{0}` alone.** It is where a number, a name or a path is substituted. Move it wherever your language needs it, but do not translate it or change its number. - **Some English strings look identical and are not.** Where that happens the string carries a context note, shown beside it in Weblate — `between items of a list` on the `", "` separator, for example. - **Plurals are not two boxes everywhere.** Weblate shows as many as your language has: one for Japanese, two for German, three for Russian, six for Arabic. Fill in all of them — a plural with a form left blank falls back to English *whole*, deliberately, rather than showing a singular against every number. Nothing needs to be finished. A language ships at whatever percentage it has reached, and anything untranslated shows in English. ## If you want to add a string to the app Every user-facing sentence goes through `Strings`: ```csharp Strings.Get("Fetch origin") Strings.Format("Last fetched {0}", relative) Strings.Plural("{0} file changed", "{0} files changed", count) Strings.Particular("between items of a list", ", ") ``` and in XAML: ```xml