Localization of The ArduPilot Wiki Documentation

Topic: Localization of The ArduPilot Wiki Documentation

Proposal type: Hardware , Software , Other : Documentation

Description:

Description of the project and how it would improve ArduPilot

This proposal aims to establish independent localization projects for each sub-projects of the ardupilot_wiki repository through the infrastructure of the Localize the Docs organization:

Project ID Project Name
ardupilot-docs-l10n Localization of The ArduPilot Documentation
ardupilot-dev-docs-l10n Localization of The ArduPilot Development Documentation
ardupilot-copter-docs-l10n Localization of The ArduPilot Copter Documentation
ardupilot-plane-docs-l10n Localization of The ArduPilot Plane Documentation
ardupilot-planner-docs-l10n Localization of The ArduPilot Mission Planner Documentation
ardupilot-planner2-docs-l10n Localization of The ArduPilot APM Planner 2 Documentation
ardupilot-sub-docs-l10n Localization of The ArduPilot Sub Documentation
ardupilot-rover-docs-l10n Localization of The ArduPilot Rover Documentation
ardupilot-mavproxy-docs-l10n Localization of The ArduPilot MAVProxy Documentation
ardupilot-anttracker-docs-l10n Localization of The ArduPilot Antenna Tracker Documentation
ardupilot-blimp-docs-l10n Localization of The ArduPilot Blimp Documentation

These projects will have corresponding projects created on Crowdin and GitHub. Whenever the GitHub repository detects changes to the document content from the upstream project, it will automatically upload the updated .pot files to Crowdin and download the translated .po files back to the GitHub repository. This enables translators to contribute via a web browser (desktop or mobile) without needing to configure a complex local Git environment.

What resources are needed

  • Hardware: Personal computer.
  • Software: Crowdin, Conda, Sphinx, Gettext, and GitHub Actions.
  • Time: Total estimated duration of 6 months.

What core developer support is required

If the upstream project (ardupilot_wiki) intends to use the .po files maintained in the downstream project (e.g., ardupilot-docs-l10n), it only needs to:

  1. Download the prepared .po files from the po/$VERSION branch of the downstream project.
  2. Execute the sphinx-build command with the corresponding arguments to read the .po files.

Therefore, the core developers will need to slightly adjust the current CI/CD configuration of the upstream project.

What skills the developer has to complete the task

As the founder and maintainer of Localize the Docs, I am dedicated to building automated multi-language documentation infrastructure, and have extensive past experience successfully incubating and maintaining l10n projects for lots of Sphinx-based documentation.

Planned amount $ (USD): 12,000

As there are currently 11 sub-projects in the ardupilot_wiki repository, and referring to the ArduPilot Funding Commitee documentation regarding larger requests (over $2,000):

for larger requests (i.e. over $2,000) the committee may ask the applicant to undertake a smaller sub-task first to demonstrate their ability to take on the larger task.

This proposal will first complete the incubation of the ardupilot-docs-l10n project to demonstrate capability and reliability. The remaining 10 sub-projects are calculated at $1,200 each, bringing the total requested amount to $12,000, which covers the incubation of all sub-project infrastructure, automated pipeline setup, and ongoing maintenance.

Additionally, any future sub-projects created in the ardupilot_wiki repository will be incorporated directly into this proposal without any extra funding request.

Estimated time for completion: 6 months

The project is estimated to take a total of 6 months, broken down into the following milestones:

Milestone Task
Month 1 Complete the initial incubation of the ardupilot-docs-l10n project.
Month 2 Complete ardupilot-dev-docs-l10n and ardupilot-copter-docs-l10n.
Month 3 Complete ardupilot-plane-docs-l10n and ardupilot-planner-docs-l10n.
Month 4 Complete ardupilot-planner2-docs-l10n and ardupilot-sub-docs-l10n.
Month 5 Complete ardupilot-rover-docs-l10n and ardupilot-mavproxy-docs-l10n.
Month 6 Complete ardupilot-anttracker-docs-l10n and ardupilot-blimp-docs-l10n.

For any future sub-projects created in the ardupilot_wiki repository, the incubation process of each is estimated to take at most 1 month.

Hello,

Thanks for the proposal. That is way over our budget for proposal and I don’t think that is justified.

our current wiki architecture is the same for all wiki, so doing the job for one is the same as for all as we just loop the build across the different wiki name.

Then, why should we use your external service when Sphinx already have translation support Internationalization — Sphinx documentation ? We can just enable sphinx internationalization support and a OSS Crowdin account to have it working directly and have all stay into our organisation…

Last, we would need to discuss about this into the team. If translation is interesting for the community, it could also open the door to a lot of unwanted content that could go unoticed in our wiki.

I vote against it. Nowadays any browser can translate a webpage.

I’m not sure if this is just a SEO placement of links :thinking:

1 Like

Regarding the requested funding amount, I believe there is still room for further discussion and negotiation. Currently, the only two funding and grant opportunities related to “documentation translation” that I could find online are:

  1. “Internationalization and Spanish Translation of Spyder’s Documentation” from NumFOCUS Small Development Grants.
  2. “Scientific Python Community and Communications Infrastructure Grant” from Chan Zuckerberg Initiative (CZI).

The first one received a grant amount of $6,300, so I used that as a baseline and adjusted the quote upward. In fact, this proposal was originally quoted for ardupilot_wiki as a whole. That is why it was mentioned at the end:

BTW, according to the ArduPilot documentation, the ArduPilot Foundation provides funding via PayPal. If this proposal is ultimately approved after team discussion, mutual communication, and revisions, I hope the ArduPilot Foundation can support this proposal through monthly sponsorship by becoming a Patreon member (e.g., Silver Sponsor, $80/month) for a period of 5 to 10 years or more. (Note: Patreon accepts PayPal payments.) In this way, it can automatically generate a Financial Sponsor Table via SponsorKit, and display the ArduPilot Foundation’s logo in the README of all l10n projects.

This question is somewhat like: “If every household can buy a generator and generate its own electricity, why still connect to the grid?” Generating your own electricity is technically feasible and may seem more autonomous, but the value of the grid is not about whether electricity can be generated. It lies in stable supply, backup, economies of scale, professional maintenance, standardization, and sustained long-term operation. These capabilities and long-term costs are precisely what self-generation struggles to bear alone.

Of course, anyone can create a similar localization project for the ArduPilot Wiki under their own GitHub account; but the real challenge is whether the project can be maintained continuously. Here are some real-world examples:

  • The Qiskit maintenance team once created and maintained the qiskit-translations project through Crowdin, but archived it 2 years ago and announced that they would no longer maintain it.
  • 斯东Stone in the ArduPilot community once created a similar translation project through Crowdin, but it has gone nearly 8 years without any contribution.

The reason why Localize the Docs can significantly reduce maintenance costs is that the l10n projects under its umbrella essentially share the same infrastructure and framework. Therefore, in principle, an infrastructure maintainer who can maintain cmake-docs-l10n is also capable of maintaining ros2-docs-l10n, and so on. In other words, the question is not whether Sphinx i18n or Crowdin can do it, but whether each project should bear its own long-term maintenance costs.

You are assuming the reason for lack of contribution is that it was too difficult to maintain. I think it’s more reasonable to assume that there was no interest and possibly no need.

Frankly, if you aren’t smart enough to use Google Translate, you probably shouldn’t be building drones.

I can’t find any reason to support this proposal at all.

1 Like

Thanks for the proposal.

At this time, we aren’t interested to pay an external service to maintain a translation infrastructure.