Created How to translate (markdown)
parent
3e2c440037
commit
c2fa318066
87
How-to-translate.md
Normal file
87
How-to-translate.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
This article will show you how you can help to translate this project.
|
||||||
|
|
||||||
|
## Preparation
|
||||||
|
1. Install git and gettext.
|
||||||
|
2. Fork this project.
|
||||||
|
3. Clone your fork on your computer.
|
||||||
|
|
||||||
|
|
||||||
|
We will begin with the simplest translations:
|
||||||
|
|
||||||
|
## Translation within the program - gettext
|
||||||
|
1. Change into the `po` directory.
|
||||||
|
2. Run `msginit --locale=<your locale here>` (for example `msginit --locale=de_DE.UTF-8`). This will ask for some information about you. It will generate a file ending with `.po` which you want to translate.
|
||||||
|
|
||||||
|
### .po translation convention
|
||||||
|
- Please don't translate words with big letters, for example `ERROR`.
|
||||||
|
- Please don't translate words in surrounding of `\"`, for example `\"allow\"`.
|
||||||
|
- Please include all spaces and special characters like in `msgid`.
|
||||||
|
|
||||||
|
### .po structure
|
||||||
|
The .po file will contain a structure like
|
||||||
|
```
|
||||||
|
msgid "Key? "
|
||||||
|
msgstr ""
|
||||||
|
```
|
||||||
|
|
||||||
|
Your task will be to put your translation in the quotes of `msgstr` **including all spaces and special characters**:
|
||||||
|
```
|
||||||
|
msgid "Key? "
|
||||||
|
msgstr "Schlüssel? "
|
||||||
|
```
|
||||||
|
|
||||||
|
#### c-format
|
||||||
|
There are also c-Strings which look like
|
||||||
|
```
|
||||||
|
#, c-format
|
||||||
|
msgid "Please run this program under root. Write access to %s is mandatory.\n"
|
||||||
|
```
|
||||||
|
which you'd have to translate including %s (which is a place holder) and \n (which is a control character).
|
||||||
|
|
||||||
|
#### Big messages
|
||||||
|
Sometimes there are big messages like
|
||||||
|
```
|
||||||
|
msgid ""
|
||||||
|
"ERROR: Arguments invalid. Note that \"allow\" and \"reject\" must have a "
|
||||||
|
"valid GPT UUID."
|
||||||
|
```
|
||||||
|
|
||||||
|
Just do it the same:
|
||||||
|
```
|
||||||
|
msgstr ""
|
||||||
|
"ERROR: Foo foo blablabla \"allow\" und \"reject\" foo awoo woo yip "
|
||||||
|
"ararara yip yap GPT UUID."
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## man pages
|
||||||
|
Sadly there's no system implemented yet to translate man pages. It means you have to do it by hand.
|
||||||
|
|
||||||
|
### man pages location
|
||||||
|
The man pages are at
|
||||||
|
```
|
||||||
|
src/pam_panic/man/man8
|
||||||
|
src/pam_panic_pw/man/man1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Preparation
|
||||||
|
For pam_panic:
|
||||||
|
1. Go to `src/pam_panic/man`.
|
||||||
|
2. Make a new directory called like your ISO locale. (de for German, es for Spanish, ...). `mkdir de`.
|
||||||
|
3. Copy recursively the man[digit] to your directory which you just created. `cp -r man8 de`.
|
||||||
|
|
||||||
|
For pam_panic_pw:
|
||||||
|
1. Go to `src/pam_panic_pw/man`.
|
||||||
|
2. Make a new directory called like your ISO locale. (de for German, es for Spanish, ...). `mkdir de`.
|
||||||
|
3. Copy recursively the man[digit] to your directory which you just created. `cp -r man1 de`.
|
||||||
|
|
||||||
|
### Translate
|
||||||
|
Try to translate the man page. The man page file is ending with a digit like `pam_panic.8`.
|
||||||
|
You will see something like `\fBpam_panic\&.so\fR` which looks weird:
|
||||||
|
- `\fB` and `\fR` are formatting control characters. Just try to adopt them.
|
||||||
|
- `\&.` is actually a `.`. You need to escape dots like this. Sadly.
|
||||||
|
|
||||||
|
### Integration of the man pages
|
||||||
|
- Open `src/pam_panic/man/Makefile.am` and put your new man page path into the `nobase_dist_cant_believe_its_not_man_DATA` list. Note that you have to add a `\` at the end of the last entry.
|
||||||
|
- Same thing for `src/pam_panic_pw/man/Makefile.am`.
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user