Nextcloud is available in many languages. How is that done?
Instead of maintaining our own translation server, like Pootle, Nextcloud uses Transifex to facilitate translations for many languages.
Transifex offers free service for open source projects.
How can I get involved?
Are you interested in translating Nextcloud?
Create an account on Transifex, then apply to join the Nextcloud organization. You are welcome.
Once you have joined the organization, apply to join one of the over 70 target languages available. Should yours be missing, feel free to request it.
Best way is to start translating some strings. Get an overview of what and how things have already been translated.
There are some features and functions in Transifex, but the basics is pretty much all that works.
If translating is not your boat of wood, or similar, you can be a reviewer. Even more fun
How to discuss at Transifex?
You can discuss for each string. Whoever reads it can respond. There is no way to subscribe to any discussion as long as somebody doesnât mark the discussion as an issue.
For language teams there is a chance to discuss as well. It is not easy to find through the web UI and not many people respond (German team experience with more than 100 members)
You can send private message to other members. Inbox and outbox are separate and there is no option to see threaded messages. You cannot invite a third person to private discussions.
Using the forum is a much better idea.
Different roles at Transifex?
To understand roles and their respective permissions see Transifex Help Center
You have Maintainers,language coordinators, reviewers and most importantly: translators. You are the engine of the car.
Information for Translators
Basic knowledge to start
You have joined a language team. Do not hesitate to contact people in it.
Newbie information: Whenever translating parts of a single resource please do not just translate a single string without looking at already translated strings. Most resources have a common wording and you should follow it. If you have a different position you should discuss first before changing strings.
Translate easy ones before trying complex ones.
Do not use translate.google.com to just enter and copy result to Transifex.
Common rules
Ellipsis
Whenever you need triple dots (punctuation mark) to show progress or similar status you should use unicode character ââŠâ instead of html entity (… ; … ; &hellip e.g. âUploading âŠâ
General rule:
- No space before ellipsis if you shorten a word
- Space before ellipsis when you shorten a sentence
When to comment a string at Transifex?
If you are struggling to translate a string feel free to add a comment including your question.
You like to discuss your thoughts? No problem, just invite your team members using @username.
When to create an issue at Transifex?
Whenever you feel just a comment is not sufficient and you need information to help all other language translators feel free to mark your comment as an issue.
What to do if I want to change a source string?
Sometimes you encounter a typo or some other spelling error inside a source string. Or you find an error or grammar issue. If so, feel free to file an issue by marking a comment as an issue, or, even better, go to GitHub and provide a PR (Pull request) to correct it.
Most translators are not familiar with coding tools like GitHub nor have any coding background. It is though easy enough to make a GitHub account and navigate to the related repository. From there you can file issues directly where coders see it, get help, and learn to fix things on your own. GitHub has a bigger community since it is more integrated in the workflow.
Information for Project Maintainers
How to handle new language requests?
Nextcloud wants to cover the world. To reach this target as many languages as possible need be covered.
Luckily every week we get new language requests. Great. But do not simply accept it.
Please check if similar languages are already there. If so, check the team size and send a personal message to the language requester. Tell him/her about the language you found, provide link to team and ask her/him to join named team.
How to work on issues
There are different kind of issues reported at Transifex. Unfortunately Transifex has no categories for issues like other platforms have e. g. Crowdin.
Error(s) in source strings
- In case of errors in source strings, an issue must be created at GitHub. The most difficult task is finding the right project. Be sure to check if the topic has already been reported.
- If you are more skilled with GitHub you can provide an PR to correct source strings.
Context is missing
The translator does not understand the meaning or the wording is not clear.
â You can answer the question yourself
- A detailed explanation should be given in case of comprehension questions.
- Donât close an issue without an explanation. The creator deserves an answer.
â You cannot answer the question yourself
- In this case an issue must be created at GitHub.
The issue should contain a description and screenshot of Transifex (not many developers are at TX). - If you are more skilled with GitHub you can add a permalink to the related source code line. For details please see Translation knowledge (valid for the entire Nextcloud project) - Wiki
General
- We close issues older than one year without activity.
Q&A
There are so many strings in my language that are not yet translated. What should I start with?
First off all the server bundle needs to be translated.
Please see List of resources and their priority for translation to get an idea about an working order.
The resources are marked by priority according to the list.
Transifex offers three rakings: âUrgentâ, âHighâ and âNormalâ
Benefit is you can sort the huge resources list by âPriority (Descending)â.
See image
Anyway, you can start with the app you prefer .
Why are there sometimes strange strings in Transifex where a translation does not make sense?
Answer:
Many apps are revised and then use packed javascript files. When this change is transferred for the first time, people often forget to create or add the â.l10nignoreâ file.
If this happens, please report it as an âissueâ on Transifex. It is enough to report a string (sometimes there are a lot of unnecessary strings).
What must be done:
- lock the resource in question on Transifex (to save the translators unnecessary work).
- edit the file â.l10nignoreâ and add the necessary files and their path.
- after merging and resyncing, check that the unnecessary strings on Transifex have disappeared.
- unlock the resource on Transifex again.
I have issues understanding the meaning of a source string and developer has not provided any comment. How to locate the source string of the app?
Answer:
Nearly all Nextcloud apps are located at GitHub. Not all apps are located inside the Nextcloud organisation at GitHub.
Therefor we maintain the following page: List of resources and their priority for translation .
- See information of âResourceâ section at Transifex.
- See List of resources and their priority for translation and look for the app and the link will point you to the correct code repository.
- See information of âOccurrencesâ section at Transifex.
- Navigate through the repo structure and open target file at specific line.
Example:
See resouce âehrâ.
Go to named list and there you will find repo URL:
See occurence at Transifex then open Github page and navigate to file.
VĂłila.
Some strings come from Vue files. This is something special and Transifex will not help you to find the exact file and line.
Here you have to go to the repository and use the search function (above). Best is to put the string you are looking for in quotes and then search.
Example:
Same as above:
- See resource value, here it is âpollsâ.
- Find it inside the list.
Now the difference starts.
See âspecialVueFakeDummyForL10nScriptsâ entry at âOccurencesâ.
- Copy source string, here it is âShare restrictionsâ.
- Open GitHub page
- Enter âShare restrictionsâ in search box and filter results for âVueâ.
VĂłila.
2022-03 BIg improvements on locating strings based in vue files.
The script doing the string preparation of vue files is writing a comment as âDEVELOPER NOTESâ. There you find the file and code line.
String Freeze! What is it and why is there a due date in the release schedule?
Nextcloud is translated into many, many languages.
Before a new major version is released, it is important that the translators still have time to complete or proofread their translations.
This is what the âstring freezeâ is for. After this date, developers are not allowed to integrate new strings or change existing ones.
For Nextcloud, the date of the first ârelease candidateâ was chosen.
For NC23, this is 11 November and the final release is 1 December 2021. The translators therefore have 20 days.
Specifications
Label of section âAPP Settingsâ
On the bottom left-hand side, each app has an area with settings.
At Conference 2023, it was decided that this area would always be labelled â{name of app} settingsâ.
The app name is the translated app name that appears in the row of navigation icons at the top of the user interface. It is therefore not a common name, and must begin with a capital letter (because itâs the app name), even if it is not the first word in the label.
Example in French for Files :
Good : âParamĂštres de Fichiersâ
Wrong : âParamĂštres des fichiersâ
Notes on Transifex
Discussions on Transifex are difficult to conduct. You can write messages, but only from one person to another. Currently no other people can be invited for discussions.
Furthermore Captchas appear there again and again.
The discussions are not shown as a conversation, but are available in the respective in- and sent boxes.
As further restrictions no formatting is possible and links are not clickable.
2020-11-11 rakekniven
Information for German Team Members (in German)
Moved to separate page. Link: