22. Contributing to FreeNAS®¶
FreeNAS® is an open source community, relying on the input and expertise of users to grow and improve. When users take time to assist the community, their contributions benefit everyone.
This section describes how to participate and contribute to FreeNAS®. It is by no means an exhaustive list. If you have an idea that will benefit the community, bring it up on one of the resources mentioned in Support Resources.
This section demonstrates how to:
FreeNAS® is developed and documented in English. Having complete translations of the user interface into other languages helps make FreeNAS® much more useful to communities around the world.
.po files stored in the
webui GitHub repository
to manage the translation of text shown in the FreeNAS®
graphical administrative interface. GitHub provides an easy to use
web-based editor, making it possible for individuals to assist with
translation or comment on existing translations.
To view translation files, open the
of the FreeNAS®
as shown in Figure 22.1.1.
To assist with translating FreeNAS®, first create an account with GitHub.
There are two methods to contribute translations to the project:
pofiles and submit pull requests through the GitHub website.
- Copy the
repository, make changes using a
poeditor, and submit these changes back “upstream” to the freenas/webui repository.
22.1.1. Translate with GitHub¶
Go to the
and click the
directory. Click on the desired language
po file to begin
Here is a list of common language abbreviations
Click the Pencil icon in the upper right area to open the online file editor. Figure 22.1.2 shows the page that appears:
There are numerous
msgid "" and
entries in the file. Read the
msgid text and enter the
translation between the
Scroll to the bottom of the page when finished entering translations. Enter a descriptive title and summary of changes for the edits and set Create a new branch. Click Propose file change to submit the translations to the FreeNAS® project.
22.1.2. Download and Translate Offline¶
Install Git. There are numerous examples in these instructions of using git, but full documentation for git is available online.
Open a Command Line Interface (CLI). Navigate to or create a suitable
location to store the local copy of the
Download the repository with git clone:
% git clone https://github.com/freenas/webui.git
The download can take several minutes, depending on connection speed.
cd into the
webui directory and create a new branch
of the repository to store the translation changes:
% git checkout -b new_translations
Type git status at any time to see which branch of the repository is active.
Navigate to the
% cd src/assets/i18n/
po editor to add translations to the desired language
file. Any capable editor will work, but
are two common options.
Commit any file changes with git commit:
% git commit ar.po
Enter a descriptive message about the changes and save the commit.
When finished making commits to the branch, git push the
branch to the online
% git push origin new_translations Username for `https://github.com`: Password for `https://firstname.lastname@example.org`: Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 8.56 KiB | 4.28 MiB/s, done. Total 6 (delta 5), reused 0 (delta 0) remote: Resolving deltas: 100% (5/5), completed with 5 local objects. To https://github.com/freenas/webui.git * [new branch] new_translations -> new_translations
Open a web browser and navigate to the freenas/webui repository. GitHub automatically detects when a new branch is pushed to the repository and displays a message with an option to Compare & pull request. Click this, review the changes, and click Create pull request.
22.1.3. Translation Pull Requests¶
The FreeNAS® project automatically tests pull requests for compatibility. If there any issues with a pull request, either the automated system will update the request or a FreeNAS® team member will leave a message in the comment section of the request.
All assistance with translations helps to benefit the FreeNAS® community. Thank you!