Translation Projects - General Information


In this article you will find the most common questions and general information about the Community Sourced Translation Projects, conducted in the the Translations section (only accessible to Translators). The Ubiquiti Translator Team is formed by Community users who volunteer their time and expertise to improve the UI experience for users all around the world. This article is geared towards Translators or prospective Translators.

Translators, please subscribe to this thread in the Community: Translations - General Information. This is where announcements are made. Comments are disabled in this thread so you won't receive unnecessary email notifications.

Table of Contents

  1. General Information
  2. Rules of the Game
  3. FAQs & General Considerations
  4. Our Projects
  5. Terms and Conditions

General Information

Back to Top

Translations are done in a Web Based Application called Transifex. See this thread for information specific to Transifex: Getting to Know Transifex. If you are a native speaker of another language (other than English) and you wish to become involved in the Translation Project, you can volunteer by tagging UI-AlexCaldas in the Community. You will need Beta access to participate in the project, and to request access to the Translation forum which is nestled under Alpha access in the Community. If you're not sure how to get Beta access, take a look at this article: How To Sign Up for Early Access.

These two Transifex docs are helpful to get you started on Transifex:

A useful link to have handy is the Microsoft Terminology Collection, when you're unsure of a technical term this can be used as a guide. In some countries IT language remains in English and that is acceptable if it is commonly known and referred to in this way. 

Rules of the Game

Back to Top

1) Language Coordinators, Reviewers and Translators: We accept any number of volunteers in each language team. The Coordinator's main tasks will include:

  1. Save a phrase after discussing different options with the team. Note: phrases that have been saved, cannot be changed by another Translator. Reviewers and Coordinators will be able to change saved translations.
  2. Being the main point of contact between Ubiquiti and the language team.
  3. Keep harmony and consistency in the translation. The language team may use the Suggestions that appear in the right menu of the translating screen. Note: always review the accuracy of the suggestion before selecting it.

2) Discussions specific to one language should be taken care of in a separate Community thread. This in order to keep email notifications of big threads to the minimum. Some existing language-specific threads are listed below. If none apply for you, feel free to start a new one in Translations:

3) That being said, be patient with one another! Sometimes a new translator doesn't know where to post a question, or one of our translators who are alone in their language don't have anyone else to ask. Be team-players.

4) If you disagree with someone's translation and want to change it, use your language thread to discuss why and be open to discuss alternatives. Remember different countries or regions might have different ways of saying the same thing. Be open-minded. The Language Coordinator will take everyone's vote in consideration and make the final decision if a consensus cannot be reached. 

5) Unlike OneSky, Transifex phrase comments in the Transifex translation platform are shared by all languages, so please post in English so everyone can join in on the conversation!

6) Make sure to enjoy this project! Remember this is all volunteer work! Feel free to contact me about anything pertaining Translations: UI-AlexCaldas.

FAQs & General Considerations

Back to Top

  1. The infamous ON/OFF Toggle
  2. What part of the macros do I need to translate?
  3. Are there any macros I need to be extra careful with?
  4. How do I ensure consistency in my translation?
  5. I have questions! Where and how to ask?

1. The infamous ON/OFF Toggle


In most translation projects you will bump into the ON/OFF Toggle. These are usually found in the Preferences panel of the GUI. On the translating platform, it will just look like you're translating the word On, and then separately, translating the word Off. The toggles all follow the same graphic look, and will fit three characters at most. Pretty much all languages except English will have longer words for ON/OFF than that. Below is a screenshot of what the Portuguese translation looked like when they translated On / Off as Ligado / Desligado on the UniFi Network Controller project:


Unfortunately, changing the size or shape of the toggles is not a possibility. Instead, you have three options:

  1. Just leave it as "On/Off" if you think it would be acceptable in your language. ON/OFF is pretty universal.
  2. Some translators opted for translating it to their language but shortening the word. In Portuguese, "Ligado/Desligado" became "LIG./DES."
  3. Find alternative words: yes/no, active/inactive, enable/disable...any of those and then maybe shortening it if necessary.
  4. You know your language and your people best. What would they understand the easiest? There is no right or wrong answer, adapt this to your language the best way you can.

Back to FAQs & General Considerations

2. What part of the macros do I need to translate?

Transifex has a very user friendly way of translating plurals. You can see a Community post about it here: Pluralized Phrases. And a Transifex help center article here. There will be cases where you still need to translate macros. Read on for an explanation on that.

Everything in the inner brackets { } should be translated. In these examples, everything in red must be translated:

{count, plural, one{1 device} other{# devices}}?

{count, plural, one{1 client} other{# clients}}? 

or a longer phrase inside the innermost brackets:

{count, plural, one{is one item} other{are # items}}

What you would NOT translate are those in double brackets, where there is no "inner bracket" phrase, these are placeholders and we don't translate them ever:

Send beacons at {{rate}} Mbps

You can't select the range greater than {{maxDays}} days.

Are you sure you want to force provision {{deviceName}}?

{{percent}}% Utilized

Some languages have more complicated pluralization than English. For example, look at the following phrase, used in the green health dials in the dashboard of the UniFi Network Controller.

In English, it's a pretty simple phrase. Where "active" won't change if it's one or more devices.

active {NUMBER, plural, one{device} other{devices}}


In Spanish however, the word for "active" also changes along with "device" if it's plural. The order of the words would also need to change: noun - adjective, instead of adjective - noun as in English. So the macro was modified in the following way to make it appear correctly in the dashboard as is seen in the image below.

{NUMBER, plural, one{equipo} other{equipos}} {NUMBER, plural, one{activo} other{activos}}


To translate it correctly to Czech, it's a completely different game: there is a different word for "active" depending on how many devices there are. If there is 1-4 devices it's one word, 5 or more it's another. So the Czech translator adjusted the macro like so, to get the results you see in the image below:

{NUMBER, plural, one{aktivní zařízení} =2{aktivní zařízení} =3{aktivní zařízení} =4{aktivní zařízení} other{aktivních zařízení}}



Back to FAQs & General Considerations

3. Are there any macros I need to be extra careful with?

Yes! This happened specifically in the UniFi Network Controller translation, but you will want to be careful whenever you see a word attached to a macro. So User  [{{user}}] is not an issue: you would translate the first 'User' and leave the one inside the brackets in English. But, if it's User[{{user}}with no spaces, the whole thing is a macro that the software will search for to substitute with the localized info.

For example, there was an issue with the Events window in the UniFi Network Controller. When the user was using another language other than English, the names and link of the device clients weren't appearing. Instead, the controller was showing the MAC address. Compare the images below. 

In the English version (and the correct way it should appear):


This is what the Spanish translation looked like (notice the second event at 10:54 am):


This occurs when we translate the words that, although outside of the brackets [ ], are adjoining. The whole phrase is a macro. For example, look at the second event, at 10:54 am shown in my images above. In Transifex, that would be phrase ID# 2091, UniFi project.


The way it appears in the English version is the way it should always work: the controller replaces User[{{user}}] with the alias (in this case my Kindle) and the link to access this client's property panel. But in the second image, the Spanish translation, it doesn't find User[{{user}}], so it leaves 'El usuario' and just plugs in the MAC address in place of [{{user}}]

The solution: leave the User[{{user}}part without translating, after all, that will not appear in the controller in your language, it will be replaced by the alias of the client as it does in the English version.  

Read a little more in the forum post

Back to FAQs & General Considerations

5. How do I ensure consistency in my translation? 

One common issue is keeping consistency of a word throughout a project, or a phrase. There are many ways of translating a confirmation phrase like: "Are you sure you want to (delete/upgrade/forget/adopt) the client?" It will be important to translate the "Are you sure you want to" the same way throughout the project. This is specially difficult if there are several different people translating at the same time. You can use the Translation Memory section in the Suggestions bar at the right of the screen. This will give you suggestions of how a similar phrase has been translated in other Ubiquiti projects. You select the one you like by clicking on the translated phrase, and saving. If you see a suggestion in this section that is incorrect, please let us know on the Community by tagging! We can clean these up so they don't appear any longer, or even add the word we WANT Transifex to suggest.

NOTE:Always double-check the Suggested phrase you are selecting. Transifex will recommend similar phrases that may contain a few words in common, but not all.

Back to FAQs & General Considerations

6. I have questions! Where and how to ask?

All questions are welcome! The best place to ask is in the Translations forum, in the specific thread for that project. So if it's a UCRM translation project question, ask it in the UCRM thread. Feel free to tag UI-AlexCaldas if needed, or whichever Ubiquiti developer is mentioned in the introductory post of that thread. Or if not, just go ahead and ask, your fellow translators will come to the rescue. Always include the project name, the phrase KEY (visible in the Context tab of the Transifex editor), as well as the phrase itself. This makes it easier and faster to get responses and will later on help others find answers.

On that topic: before you ask, always search. You can search for the phrase using the Community's regular search bar and then filtering the search to only show results within Translations by selecting Alpha and the Translations tag.


Back to FAQs & General Considerations

Our Projects

UniFi Controller  |  UniFi Hotspot  |  UniFi SDN  |  UniFi Cloud Key  |  Account  |  UCRM  |  airFiber WebUI |  UniFi iPhone/iPad App  |  AmpliFi iPhone/iPad  |  AmpliFi Play Store App  |  FrontRowOS  |  FrontRow iPhone/iPad FrontRow Android

Back to Top

UniFi Controller · Community Thread  ·  

It is our biggest project, the one with most active translators and most regular updates.


To change the language in the Controller. Go to the upper right hand corner, click on your username and select Preferences. Select the language from the drop-down menu. Close the Preferences screen by clicking on the X. 

How to check context and updated translations

For the UniFi Network Controller translation there are several options. You can check the last updated version in the demo controller. Or you can get the most updated translations and upload them locally in your Controller.

To do so, follow these steps:

1. Download all translation files for your language. These are split in resource folders and you must download them individually. Before you can upload it in your controller you must prepare the files as follows:

2. The resource folders will have different names, but inside each folder all the json files will have the same name (the abbreviation for your language). You need to change each json file name, to match the name of the folder it is in. 


3. Once you do that to all files in all folders, it will look like this: 


4. Next, transfer all json files out of those individual folders and into one same folder and name it with the abbreviation of your language. (In this example, it would be "de_DE" for German (Germany)). You should have the same number of files as there were folders originally in this new folder you just created. 


5. Folder is ready, now follow these instructions to upload it in your Controller:

To test it on Mac:

  1. Stop UniFi Controller
  2. Find "UniFi.app" in Finder ("/Applications/UniFi.app")
  3. Click right mouse button on "UniFi.app" and select "Show package contents" - it should open new finder window with content of UniFi app
  4. Navigate to "/Applications/UniFi.app/Contents/Resources/webapps/ROOT/app-unifi/locales"
  5. Unpack attachment and move unpacked folder ("de_DE") to "/Applications/UniFi.app/Contents/Resources/webapps/ROOT/app-unifi/locales" (you have to confirm it as administrator)
  6. Rename "en" folder as "en-copy" (you have to confirm it as administrator) - you will need to restore English translations, so make sure that you followed this step
  7. Rename "de_DE" folder as "en" (you have to confirm it as administrator) - we are going to override English translations with German
  8. Start Controller and test changes
  9. When you are done with testing:
  • Stop UniFi Controller
  • Go back to Finder window with "/Applications/UniFi.app/Contents/Resources/webapps/ROOT/app-unifi/locales"
  • Remove "en" folder  (you have to confirm it as administrator)
  • Rename "en-copy" to "en" - this should restore original english translations

To test it on Windows:

  1. Stop UniFi Controller
  2. Navigate to "C:\Users\{user_name}\Ubiquiti UniFi\webapps\ROOT\app-unifi\locales\" - note that {user_name} should be replaced with actual user name
  3. Unpack attachment and move unpacked folder ("de_DE") to "C:\Users\{user_name}\Ubiquiti UniFi\webapps\ROOT\app-unifi\locales\"
  4. Rename "en" folder as "en-copy" (you have to confirm it as administrator) - you will need to restore English translations, so make sure that did this step
  5. Rename "de_DE" folder as "en" - we are going to override English translations with German
  6. Start Controller and test changes
  7. When you are done with testing:
  • Stop UniFi Controller
  • Go back to "C:\Users\{user_name}\Ubiquiti UniFi\webapps\ROOT\app-unifi\locales\"
  • Remove "en" folder  (you have to confirm it as administrator)
  • Rename "en-copy" to "en" - this should restore original english translations

To test on Linux:

1. Copy the file to you linux machine. Put it in the /tmp folder.

2. Extract the file with (depending on the file name) unzip UniFi.zip

3. Backup the original folder sudo cp -avr /usr/lib/unifi/webapps/ROOT/app-unifi/locales/nl /usr/lib/unifi/webapps/ROOT/app-unifi/locales/nl.old

4. Remove al original files from the language folder sudo rm -f /usr/lib/unifi/webapps/ROOT/app-unifi/locales/nl/*.json

5. Copy all json files to the language folder sudo find /tmp/UniFi/ -name '*.json' -exec cp {} /usr/lib/unifi/webapps/ROOT/app-unifi/locales/nl  \;

6. Restart the controller sudo service unifi restart

How to See String Keys in the Controller

The UniFi devs created a special view for Translators. It is a hidden toggle in Settings > User Interface that will expose the string keys in the Controller instead of the phrases. It will appear in User Interface when you go in your browser (Chrome was used, and this is an older version of the Controller, the images will be slightly different to what you say nowadays) into View > Developer > Developer Tools > Console tab. Type in showHiddenPreferences=1 and hit enter. Voilà! If you click on the User Interface window again, you will see a switch called Debug translation key.  


Switch the toggle to On and there you go. You will have to repeat this again to make the hidden switch appear again so you can turn it off for your controller to return to normal. 


This works with Controller versions 5.4.7 and newer. If you have the correct version but it's still not working, try turning on the Force WebRTC On before launching your Controller, as shown below. 


UniFi Hotspot Portal  379 words* · Community Thread  ·

The Hotspot Portal project creates translation options for the client's of the UniFi controller hotspot.

UniFi SDN 3,098 words* · Community Thread  · 

The landing page of https://unifi.ui.com from where you can see your different controllers and you launch them. Change the language by clicking on your username avatar in the upper right hand corner, selecting Preferences and changing the language in the drop-down menu.


UniFi Cloud Key 702 words* · Community Thread 

Another small project, will eventually translate the Configure your UniFi Cloud Key UI to match the translations done in the rest of UniFi. Waiting on devs to make a new release and add translations.

Account Page 584 words* · Community Thread 

A small project, this is the translation for the login page for https://account.ui.com/login. To change the translation, click on Language at the bottom of the screen, next to Terms of Service and Privacy Policy.


UCRM (CRM now within UNMS) · Community Thread  · 

Our second biggest project. It is a WISP Management Tool, so there is some financial language mixed in with the usual networking language. Previously this was a independent software, but now it is part of UNMS.

How to check context and updated translations

You may go to https://dev-ucrm-billing-demo.ubnt.com/login and select the language from the dropdown, then click Administrator to log in. You can also change the language within UCRM by going to System > Settings > Localization and change the Language from the drop-down menu, click Save. We all share the demo environment, so when someone changes the language we all see it. When you're done using the demo, please logout so it reverts back to English for the next user. 

Some UCRM specific considerations

1. UCRM is one of the projects that has not adapted the method that Transifex offers to translate plurals. So we must use the traditional way, by translate around the code and placeholders. For example in this case we must translate around the ">" code in the phrase: "Settings → Maintenance → Prepare an Export" So, in this case, you would translate the words in red:

Settings → Maintenance → Prepare an Export

2. Pluralization! If you encounter crashes (error 500) it may be caused by a missing translation for pluralization phrases for your language. For example, this phrase:

%count% item|%count% items

In English, there are two forms, as you can see, separated by the pipe |

In your language, there might be more forms. If that's the case, please add the other forms separated by the pipe character. For example in Czech:

%count% polozka|%count% polozky|%count% polozek

The first one is for 1, second for 2-4, the last for 5-inf.

The proper translation will be automatically chosen (if they are ordered ascending), you just need to define all of them for your language. More info for this issue can be found here: http://symfony.com/doc/current/components/translation/usage.html#component-translation-pluralization

Read full post here

3. The word client actually means client, unlike the rest of the translations we've worked on, where client=device. In UCRM "client" refers to the WISP's customer.

airFiber WebUI · Community Thread  · 

The airFiber UI. We can now switch languages ourselves. First go here:

username: ubnt

password: ubnt2017

Then go to Settings > System and choose the language from the drop down menu for Interface Language. This is not changed locally, so when one translator changes the language, it changes for everyone. So when you are finished checking your language, please change it back to English so the next translator knows he is free to check his own work.

UniFi - iPhone/iPad App · Community Thread  ·

This is for the iPhone/iPad UniFi App of the Controller. The contact for this project is @UI-Jonge.

Some points to take in consideration:

  • We can't really use the nice variables like in the controller (e.g. {{device}}), except in Events. Instead we usually have something like %1$@ or %2$d. You will see notes for some phrases to explain what those variables contain (e.g. "argument 1 is formatted localized date"). You should not change those 4 characters, only their order, otherwise it will cause the app to crash.
  • Regarding capitalization, follow your languages grammar rules, so our app will match with the rest of the iOS system. If in doubt check out how words are capitalized in your phone's Settings for example. 

ULabs Translations Community Thread

All ULabs translations share the same Community thread, but will have different project links. Find those below. ULabs are for our consumer market, so the tone and words used will be less technical. See more about these products in their websites: https://amplifi.com and https://www.frontrow.com/

Project name and link Number of words* Quick Description  
AmpliFi iPhone/iPad 870 AmpliFi's iOS app.  
AmpliFi Play Store App 1,914 AmpliFi's Android app.  
FrontRowOS 1,600 The FrontRow camera's device operative system. The size of the screen is very small, must take this into account when translating.  
FrontRow iPhone/iPad 3,228 FrontRow's iOS app. The phone must be paired with the FrontRow camera, and the app controls the device, as well as edits, shares, downloads media.   
FrontRow Android  2,775  FrontRow's Android app. The phone must be paired with the FrontRow camera, and the app controls the device, as well as edits, shares, downloads media.   

Terms & Conditions

Back to Top



GENERAL CONDITIONS: TRANSLATIONS MAY NOT BE SUBMITTED BY ANY RESIDENTS OF ANY COUNTRY SANCTIONED BY THE OFFICE OF FOREIGN ASSETS CONTROL (OFAC) OF THE US DEPARTMENT OF THE TREASURY AND WHERE PROHIBITED BY LAW.  All federal, state, provincial and local laws and regulations apply. Ubiquiti reserves the right to disqualify any participant in Ubiquiti’s sole discretion.  All additional guidelines, terms, or rules on the Ubiquiti website , including the Terms of Service and the Privacy Policy, are incorporated by reference into these terms and conditions and you are agreeing to accept and abide by them by submitting any translation.

INTELLECTUAL PROPERTY RIGHTS: As between Ubiquiti and the participant, Ubiquiti retains ownership of all intellectual and industrial property rights (including moral rights) in and to any of the translations submitted.  To the extent ownership does not automatically vest in Ubiquiti, participant hereby irrevocably assigns fully to Ubiquiti, its subsidiaries, agents and partner companies, all existing and future right, title and interest in and to the translations worldwide, in each case, for the full duration of such right, title and interest, including without limitation the entire duration of the author’s economic rights in copyright. The Participant agrees, at any time, to sign all instruments reasonably necessary to effect such assignment.

INDEMNIFICATION.   To the maximum extent permitted by law, each participant indemnifies and agrees to keep indemnified Ubiquiti, its subsidiaries, agents and partner companies at all times from and against any liability, claims, demands, losses, damages, costs and expenses resulting from any act, default or omission of the participant and/or a breach of any warranty set forth herein. To the maximum extent permitted by law, each participant agrees to defend, indemnify and hold harmless Ubiquiti, its subsidiaries, agents and partner companies a from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorney’s fees) arising out of or accruing from (a) any material uploaded or otherwise provided by the participant that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, (b) any misrepresentation made by the participant in connection with the translation submission; (c) any non-compliance by the participant with these terms and conditions; (d) claims brought by persons or entities other than the parties to these terms and conditions arising from or related to the participant’s involvement with the translation submission; (e) acceptance, possession, misuse or use of any reward or participation in any translation submission; or (f) any malfunction or other problem with the Community site.

NOT AN OFFER OR CONTRACT OF EMPLOYMENT: Under no circumstances shall the submission of a translation, the awarding of a prize or reward, or anything in these Terms and Conditions be construed as an offer or contract of employment with Ubiquiti, its subsidiaries, agents and partner companies.

GOVERNING LAW AND JURISDICTION: These terms and conditions shall be governed by, subject to, and construed in accordance with the laws of the State of New York, United States of America, excluding all conflict of law rules. If any provision(s) of these terms and conditions are held to be invalid or unenforceable, all remaining provisions hereof will remain in full force and effect. To the extent permitted by law, the rights to litigate, seek injunctive relief or make any other recourse to judicial or any other procedure in case of disputes or claims resulting from or in connection with any translation submission are hereby excluded, and all participants expressly waive any and all such rights. All disputes arising out of or in connection with any translation submission shall be finally settled under the Rules of Arbitration of the International Chamber of Commerce by one or more arbitrators appointed in accordance with said rules. The place of arbitration shall be New York, New York, USA and the language of the arbitration shall be English.

Was this article helpful?
0 out of 1 found this helpful
Can't find what you're looking for?
Visit our worldwide community of Ubiquiti experts for more answers
Visit the Ubiquiti Community