add documentation how to translate, and update readme accordingly

lektura
max.mehl 2017-09-07 23:02:11 +02:00
parent ff1992e849
commit f45e45eaa1
3 changed files with 71 additions and 14 deletions

View File

@ -1,5 +1,7 @@
# PMPC Web Site
[![Build Status](https://drone.fsfe.org/api/badges/pmpc/website/status.svg)](https://drone.fsfe.org/pmpc/website)
This website is the core of the "Public Money, Public Code" campaign. It is based on [Hugo](https://gohugo.io/), a modern static website generator.
The page is visible at [publiccode.eu](https://publiccode.eu). Please do not spread this URL. The website requires authentication to be visited. Username is `pmpc`, password is `publicmoneypubliccode`. Please do not spread this information to outside people not involved in the website development.
@ -30,21 +32,21 @@ git clone git@git.fsfe.org:pmpc/website.git # clone the website to the folde
In the newly created folder `pmpc-website` you'll find all source files the website consists of now. The hugo files are located under `site/`, whereas in the root directory you'll only find files informational files and those relevant for our build process (Drone, Ansible, Docker, Apache).
### Your first modification
### Translate
For more experienced Git users we recommend the Fork & Pull Request workflow, which you'll also find in the [wiki's Git Guides section](https://wiki.fsfe.org/TechDocs/Git#Guides_on_specific_actions) (not available yet). However, beginners can also directly commit to the repository which saves them some steps.
Visit [TRANSLATE.md](https://git.fsfe.org/pmpc/website/src/master/TRANSLATE.md) for detailed instructions how to translate publiccode.eu.
As an example, we will modify the website a bit, review the changes and push them to the repository to make them available to other users and the live website.
### Build locally
To see a preview of the website you need to have Hugo installed and be able to execute Bash scripts in your command line.
1. Navigate to the website's root directory (in the last example `~/FSFE/PMPC/website/`) and open a terminal window there. Type in `git pull`. This will get the latest changes from the server
2. After you received the latest version, you can edit the website. For testing purposes, open the file `CONTRIBUTORS.md`, scroll to the very end, and add your name there. No worries, this won't have any visible effect on the website.
3. In the terminal, execute `cd site/` to navigate in the right directory for hugo's website build.
4. Now check whether the website looks fine. Execute `hugo server` on your terminal. You will see a link containing `localhost:1313`. Open it and you see a preview of what the website looks like. This will help you to understand whether your changes actually have the effect you wanted.
5. If you're happy with it, you can execute `hugo`. This will build the website in its final form to the subfolder `public`. Make sure that the output of that command doesn't contain any errors or warnings. Note that your local built won't be sent to the server because it builds the website itself.
6. Check with `git status` what files have been changed on your side. In this example, you should see the file `../CONTRIBUTORS.md` marked red. This means that the file has been changed but you didn't mark it as to be pushed to the server yet. If there're more files listed, make sure that you actually intended to modify these files!
7. Add the changed file to the commit queue with `git add ../CONTRIBUTORS.md`. In case you have changed more files, you can also type `git add .` in the repositories root level to add all files at once. With `git status` you should see all files marked green now, which means that they're ready to be committed.
8. Commit the files with `git commit -m "added myself to the contributors list"`. In the comment after `-m` you should always write something meaningful that helps people to understand what you actually did.
9. Unlike with SVN, you're not finished yet. You will have to execute `git push` to actually upload the modifications to the server.
2. In the terminal, execute `cd site/` to navigate in the right directory for hugo's website build. You are now in `~/FSFE/PMPC/website/site/`
3. In your terminal, execute `./build/build.sh server`. This command will build the website and enable you to browse the result on your computer only. Open [localhost:1313](http://localhost:1313) in your web browser to see it.
If you want to make changes to the official website, please read [our Git guides](https://wiki.fsfe.org/TechDocs/Git). There you'll find out about the necessary commands pull, status, add, commit, or push.
Beginners can directly commit to the repository which saves them some steps, but they have to ask @max.mehl or @jonaso in advance to give them the necessary permission. For more experienced Git users we recommend the Fork & Pull Request workflow, which you'll also find in the [wiki's Git Guides section](https://wiki.fsfe.org/TechDocs/Git#Guides_on_specific_actions) (not available yet).
## Important file paths
@ -62,7 +64,8 @@ The website structure is very easy. The most important files and directories are
- `site/layouts/shortcodes`: HTML/Hugo code which can be important from within a Markdown file
- `site/public/`: Built files which are used to display the website. Generated by running `hugo`.
## Technical information about building
## Technical information about the online build
The FSFE uses Drone to automatically deploy the PMPC website. The website is
automatically deployed when there's a push to the master branch of the

54
TRANSLATE.md 100644
View File

@ -0,0 +1,54 @@
# How to translate publiccode.eu
Translating the publiccode.eu website isn't really hard but may be a bit different from what you worked with before. Before starting, please read the [README.md](https://git.fsfe.org/pmpc/website/src/master/README.md) file which will give you an overview of how this website is structured and built.
## Preparations
You should already have cloned the Git repository to your computer and be familiar with working with Git. You find the necessary instructions and links to tutorials in the aforementioned README file. Don't be afraid: you don't have to be a programmer to get Git working for you :)
What you should have:
- An account on git.fsfe.org
- Know how to clone, pull, commit, and push with Git
- Optional: Hugo installed on your computer
- Optional: The ability to run Bash scripts from command line
## Translatable files
There are a few locations where you find translatable files. All of them are inside the `site/` directory
### Content/
In `content/` are the sub-pages like [/privacy](https://publiccode.eu/privacy). All files are written in the [Markdown syntax](https://en.wikipedia.org/wiki/Markdown) which is very easy to learn and much more comfortable to write and translate than HTML.
In all files you'll find a *header* which starts and ends with `---` (three dashes). In this header, all you have to translate is the `title:` value which defines the title and headline of the page. The other values like `type` and `layout` stay the same over all languages.
The majority of the file is just text with very little markdown syntax. You should keep markup like `**`, `>`, `[fs]`, or `{{< fsdefinition >}}`. For hyperlinks like `[TEXT](http://link)`, please only translate the content inside the quare brackets (TEXT), the link has to stay the same obviously.
### data/share/
In `data/share/en/`, `data/share/it/` and so on there are tiny *.yaml* files for each share service we're offering (e.g. GNU Social or Diaspora).
There are only a few strings to translate. `titleBefore` is the text in front of the service's name, `titleAfter` the one behind. You can fill both fields to translate it. In English, this may be *Share on XYZ*, in German it is *Auf XYZ teilen*. There's also `customText` sometimes where you can find instructions how to translate it.
### languages/
Here you find one larger file for each language e.g. `strings.en.toml` for English, `strings.de.toml` for German.
If your language isn't present, copy the file `strings.XY.toml.sample` and rename it according to your two-letter language code. Then open it and translate all strings you find (there are only a few marked which you cannot translate).
Some strings contain the Markdown links you already know (`[TEXT](LINK)`). Again, please just translate the TEXT part, not the LINK.
At some occasions you'll find a variable like `$INDS`. Leave them as is, they will automatically replaced by numbers or similar auto-generated content.
Regarding the campaign name *Public Money, Public Code*. In the past we haven't made good experiences with translating such campaign names. All our graphics, logos, and other communication is using this brand. So if you can, just stick to the English term.
## Finished? What's next
Before submitting the translations you can test them locally if you have Hugo installed and are able to execute Bash scripts on your command line. Please refer to README.me for instructions.
You're welcome to work with the Git repository to upload your translations. If you feel confident enough with Git, please open a pull request of a separate branch in this repository or your fork. @max.mehl can help you if you have questions or lack permissions.
If you are unsure, you can also send the translations to [FSFE's translators list](https://lists.fsfe.org/mailman/listinfo/translators) to let them proofread by other speakers of your language.

View File

@ -3,7 +3,7 @@
# General strings
[Languages.XY]
languageCode = "xy" # 2-letter code of language (ISO 639-1)
languageName = "" # verbose name of language (e.g. "Français" or "Русский")
languageName = "English" # verbose name of language (e.g. "Français" or "Русский")
description = "Public Money, Public Code - A campaign for releasing publicly financed software as Free Software"
fsdefinition = "Free Software gives everybody the rights to use, study, share and improve software. These rights help support other fundamental freedoms like freedom of speech, press and privacy." # https://fsfe.org/about/mission.html may help you with translations
@ -12,7 +12,7 @@
[Languages.XY.navigation]
[Languages.XY.navigation.links]
start = "Start"
about = "Über"
about = "About"
arguments = "Arguments"
action = "Take Action"
spread = "Spread"