* Update 01-development.md Update Communication Channels channels to reflect removal of Twitter and Telegram, and emphasize SimpleX, Nostr, and Matrix chats * Update 02-languages.md Update Telegram verbiage to reference SimpleX instead. * Update 04-guides.md Update Telegram verbiage to reference SimpleX instead. * Update 05-art.md Update Telegram verbiage to reference SimpleX instead. * Update 06-outreach.md Update Twitter verbiage and reference Nostr instead * Update 00-quicks-start-guide.md Update verbiage slightly. Add more info and links. * Update 01-lightning.md Add rough draft to provide overview of Lightning Network and its relation to RoboSats * Update 02-tor.md Provide rough draft of introduction to TOR. * Update 03-access.md Add access method via Android app APK. Adjust slight typos and some wording for clarity. * Update 01-trade-pipeline.md Add TOC, swap steps and pictures placement, adjust small typos and wording. Picture was swapped with the steps because I think the picture can be slightly overwhelming versus a simple list of steps. The pictures are great but they are a lot to throw at someone right when they open the very first doc under "Understand" to learn about RoboSats. * Update 02-robots.md Clean up hyperlinks, adjust grammar slightly. * Update 03-premium.md Update verbiage, adjust grammar slightly. * Update 03-premium.md Add paragraphs on advice for choosing a premium * Update 04-bonds.md Various changes to verbiage and adding/updating information. Grammar fixes, remove reference to Telegram. * Update 05-trade-escrow.md Clean up hyperlinks, adjust some wording * Update 06-disputes.md Rough draft of disputes section. Committed changes are a placeholder for a longer and more detailed version of the dispute process. * Update 07-wallets.md Fix typos, grammar edits, add new section at bottom * Update 08-limits.md Rough draft of new content in the limits docs * Update 09-swaps.md Adjust "on-chain" to "on chain" and "sats" to "Sats" for consistency across other docs. Slight grammar fixes. * Update 10-telegram.md Small grammar fixes, clean up formatting and add table of contents * Update 12-prices.md Add verbiage note about explicit pricing method, clean up hyperlinks * Update 13-fees.md Clean up hyperlinks, small spelling fixes * Update 14-on-chain-payouts.md Add table of contents, small grammar fixes, adjust formatting * Update 07-wallets.md Change "on chain" to "on-chain" * Update 09-swaps.md Change "on chain" to "on-chain" * Update 02-tor.md Add note when using TOR and experiencing connection issues
5.0 KiB
layout | title | permalink | sidebar | toc | toc_sticky | src | ||||
---|---|---|---|---|---|---|---|---|---|---|
single | Translate RoboSats | /contribute/languages/ |
|
true | true | _pages/contribute/02-languages.md |
RoboSats is a way to exchange bitcoin for any currency of the world. As such, many users might only find this tool useful if it is available in a language they understand. Translating RoboSats into a new language is one of the most valuable contributions to the project! It makes the platform available to new audiences, increases the reach of this cool freedom tool, and subsequently increases order book liquidity for even more users to stack Sats privately.
There isn't a lot of text in RoboSats; however, it might be best to split the work with another contributor. You can reach out to the RoboSats communities and find users willing to split the task.
How To Contribute a New Translation
Simply create a new translation file in frontend/static/locales
link to GitHub. In locales
there is a single file with a json dictionary for every language. In order to create a new translation, simply copy en.json
(the master text) into a new file named after the language's ISO 639 two character code.
Guidelines
Each language .json
dictionary contains pairs of keys and values in the following format { "key1":"value1", "key2":"value2", ...}. Most keys are the literal English sentence. These simply have to be translated on the right side, for example, in order to translate the Make Order
button to Spanish, you would edit the json file to look like this {... "Make Order":"Crear Orden",...}
.
1. Not all keys are explicit sentences.
Some keys are not the English sentence, but a variable name. E.g., "phone_unsafe_alert". In this case, you must take a look at the value originally in en.json
.
2. The language dictionary is split into 9 sections.
The first key of each section is a reference and does not need to be translated. For example, the second section starts with the key:value "USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation"
. It does not need to be translated; it is just information for the translator to understand what part of the app they will be working on.
3. Try to keep a similar length to the original sentence.
In most cases it will be okay if the translation is shorter. However, translations that result in a higher character count might break the UI! It might not always be possible to stick to the length of the English sentence. In those cases, the UI might have to be changed. Contact the person responsible for such a change.
4. Some sentences contain variables.
For example, {{currencyCode}}. It will insert the currency code where the variable is found. E.g., "Pay 30 {{currencyCode}}"
will render as "Pay 30 USD".
5. Some sentences contain HTML tags.
These tags are usually hyperlinks. For example, in {"phone_unsafe_alert": "Use <1>Tor Browser</1> and visit the <3>Onion</3> site."}
the children text of <1> (Tor Browser) will link to the Tor Download website, and the children of <3> will link to the RoboSats Onion site.
6. It is best to translate from top to bottom of the .json file
Some text is high priority, other text is low priority. Some keys are likely to change soon or they might not be so relevant for the user of the app. The translation files are sorted from top to bottom by the priority of the translation.
7. Use a spell checker.
Yes, please! 😉
8. Understand the context; where will this string be displayed?
Literal translations might not work well in some languages. While in English the wording is always similar regardless of the position in the UI, in some languages it might be very different if you are translating a button (the user is taking an action) or if you are simply translating a tooltip. It might be clever to translate the strings while looking at the app. However, many strings can only be found while trading. The testnet RoboSats site is great for this use! You can explore the whole app by simply interacting with it using a testnet Lightning wallet. However, if you cannot find where a string is displayed, it might be faster to simply write a message on the SimpleX group.
9. Congratulate yourself!!
Seriously. It's so awesome you are helping build freedom tools!
{% include improve %}