You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feature: multilingual support for 9 additional languages (#56)
* Add OpenAI-based translation system
* added proper github actions
* github actions fix
* git acitons fix
* Fix typo in admin documentation
* Auto-translate documentation
Translated files:
- docs/en/administration/admin.md
* Update admin.md
* Auto-translate documentation
Translated files:
- docs/en/administration/admin.md
* Fix grammatical error in admin documentation
* Auto-translate documentation
Translated files:
- docs/en/administration/admin.md
* added new translations files and added navigation translation
* homepage transalted
* refactoring and cleaning up
* removed duplicate image and added more languages
* translated docs to more languages
* added it, fi and da translations without docs yet
* added ukrainian, tested search because lunr.js is supposed to not support ukrainian. works fine anyways :)
* added it, da, fi and uk. Tested ukrainan search because lunr.js supposedly does not support it. still works
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+137-3Lines changed: 137 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,19 +4,153 @@ Thanks for helping to improve the Gramps Web documentation! This guide will help
4
4
5
5
## Finding your way around
6
6
7
-
The documentation pages are written in Markdown and stored in the `docs` directory. Each page on [grampsweb.org](https://www.grampsweb.org/) corresponds to a `.md` file in this directory.
7
+
The documentation pages are written in Markdown and stored in the `docs/en` directory. Each page on [grampsweb.org](https://www.grampsweb.org/) corresponds to a `.md` file in this directory.
8
8
9
9
The navigation structure is defined in the `mkdocs.yml` file at the root of the repository. This file controls how the pages are organized and displayed in the sidebar.
10
10
11
+
There is a automated translation service implemented, which will translate all new/changed files in `docs/en` to the other languages.
12
+
11
13
## Making changes
12
14
13
-
To make changes to the documentation, simply change the relevant Markdown files in the `docs` directory and submit a pull request.
15
+
To make changes to the documentation, simply change the relevant Markdown files in the `docs/en` directory and submit a pull request.
14
16
15
17
If you are proficient with git, you can clone the repository, make your changes locally, and push them to your fork. If you're not familiar with git, you can also edit files directly on Github using the web interface.
16
18
17
19
## Adding new pages
18
20
19
-
To add a new page to the documentation, create a new Markdown file in the `docs` directory and add it to the `mkdocs.yml` file under the appropriate section. Make sure to follow the existing structure and formatting.
21
+
To add a new page to the documentation, create a new Markdown file in the `docs/en` directory and add it to the `mkdocs.yml` file under the appropriate section. Make sure to follow the existing structure and formatting. If you can, also add the translations for the navigation under `mkdocs.yml` .
22
+
23
+
## Adding translations
24
+
25
+
The documentation currently supports:
26
+
27
+
1.**English** (en) - Default
28
+
2.**Deutsch** (de) - German
29
+
3.**Français** (fr) - French
30
+
4.**Español** (es) - Spanish
31
+
5.**简体中文** (zh) - Simplified Chinese
32
+
6.**Tiếng Việt** (vi) - Vietnamese
33
+
7.**Türkçe** (tr) - Turkish
34
+
8.**Русский** (ru) - Russian
35
+
9.**Português** (pt) - Portuguese
36
+
10.**日本語** (ja) - Japanese
37
+
11.**Dansk** (da) - Danish
38
+
12.**Suomi** (fi) - Finnish
39
+
13.**Italiano** (it) - Italian
40
+
14.**Українська** (uk) - Ukrainian
41
+
42
+
The translations of the actual `.md files` are managed automatically using OpenAI GPT-4o-mini. The navigation (under `mkdocs.yml`) and `home.html` need to be translated manually.
43
+
44
+
### Adding a new language
45
+
46
+
To add a new language to the documentation:
47
+
48
+
1.**Update the configuration** in `translate.py` and add the Language under **LANGUAGE_NAMES**:
49
+
50
+
```python
51
+
CONFIG= {
52
+
"translation": {
53
+
"target_languages": ["de", "fr", "es"], # Add your language code
54
+
...
55
+
}
56
+
}
57
+
58
+
# Language names for prompting and display
59
+
LANGUAGE_NAMES= {
60
+
"de": "German",
61
+
"fr": "French",
62
+
"es": "Spanish",
63
+
"it": "Italian",
64
+
"en": "English"
65
+
}
66
+
```
67
+
68
+
2.**Add the language to MkDocs** in `mkdocs.yml` and add the navigation translations:
for file in ${{ steps.changed-files.outputs.files }}; do
113
+
COMMIT_MSG="${COMMIT_MSG}- ${file}\n"
114
+
done
115
+
116
+
git commit -m "$(echo -e "$COMMIT_MSG")"
117
+
```
118
+
119
+
4.**Add homepage translations** in `overrides/translations/home.yml`:
120
+
121
+
```yaml
122
+
hero:
123
+
es:
124
+
title: "Gramps Web"
125
+
description: "..."
126
+
demo_button: "..."
127
+
learn_more:
128
+
es:
129
+
title: "..."
130
+
# ... add all homepage translations
131
+
```
132
+
133
+
5.**Run the translation**:
134
+
135
+
```bash
136
+
python translate.py --lang es
137
+
```
138
+
139
+
### Translating content
140
+
141
+
All English source files are in `docs/en/`. When you modify an English file, translations are automatically generated via GitHub Actions. For manual translation:
142
+
143
+
```bash
144
+
# Set up your OpenAI API key
145
+
cp .env.example .env
146
+
# Add your API key to .env
147
+
148
+
# Translate specific file
149
+
python translate.py --file user-guide/blog.md --lang de
Uanset om du har opsat din egen instans af Gramps Web eller tilmeldt dig en forudinstalleret, er næste skridt at befolke og administrere din slægtstrædatabase.
4
+
5
+
Fokus for denne sektion er på administrative opgaver udført af **træejere**. Normalt er der én træejer for hver slægtstrædatabase (selvom du som træejer også kan oprette andre træejerkonti).
6
+
7
+
Denne sektion omhandler kun handlinger, der kan udføres fra webgrænsefladen. For kommandolinjeværktøjer eller serverkonfiguration, se den forrige sektion [Opsætning](../install_setup/setup.md).
For at oprette en sikkerhedskopi af dit slægtstræ, skal du åbne eksport-siden i Gramps Web og vælge Gramps XML-formatet.
4
+
5
+
Ved at klikke på "eksport" vil filen blive genereret og downloadet, når den er klar.
6
+
7
+
Bemærk, at hvis din Gramps Web-bruger ikke har tilladelse til at se private optegnelser, vil eksporten ikke være en fuld sikkerhedskopi, da den ikke vil indeholde nogen private optegnelser.
8
+
9
+
## Del dit slægtstræ med brugere af andre slægtsforskningsprogrammer
10
+
11
+
Når deling af genealogiske data som Gramps XML ikke er en mulighed, kan du også eksportere en GEDCOM-fil. Bemærk, at dette ikke er egnet som en sikkerhedskopi af dit Gramps Web-træ.
12
+
13
+
## Sikkerhedskopier dine mediefiler
14
+
15
+
For at sikkerhedskopiere dine mediefiler kan du oprette og downloade et ZIP-arkiv af alle mediefiler på eksport-siden.
16
+
17
+
Bemærk, at dette, især for store træer, kan være en dyr operation for serveren og kun bør gøres, hvis det er absolut nødvendigt.
18
+
19
+
En bedre mulighed for regelmæssigt at sikkerhedskopiere dine mediefiler er at bruge [Gramps Web Sync-tilføjelsen](sync.md) (som i sig selv ikke er en sikkerhedsløsning) og oprette inkrementelle sikkerhedskopier på din lokale computer.
20
+
21
+
I begge tilfælde, hvis din Gramps Web-bruger ikke har tilladelse til at se private optegnelser, vil eksporten ikke indeholde filer af private medieobjekter.
22
+
23
+
## Flyt til en anden Gramps Web-instans
24
+
25
+
Gramps Web låser dig ikke til en specifik udbyder, og du kan altid flytte til en anden Gramps Web-instans uden at miste data og uden at have direkte adgang til nogen af serverne.
26
+
27
+
For at opnå en fuld migration, følg disse trin (forudsat at du har ejerrettigheder til træet):
28
+
29
+
1. Gå til eksport-siden og eksportér dit træ som en Gramps XML (`.gramps`) fil. Hvis du bruger [Sync-tilføjelsen](sync.md), kan du også generere eksporten i Gramps desktop.
30
+
2. På eksport-siden, generer og download et mediearkiv. Hvis du bruger [Sync-tilføjelsen](sync.md), kan du også blot ZIP'e din lokale Gramps mediemappe.
31
+
3. Gå til Indstillinger > Administration > Administrer brugere og klik på knappen "Eksportér brugeroplysninger". Det vil downloade en JSON-fil.
32
+
4. I den nye Gramps Web-instans, åbn import-siden. Importér den `.gramps` fil, der blev eksporteret i trin 1.
33
+
5. På import-siden af den nye Gramps Web-instans, upload mediearkivet (ZIP).
34
+
6. Gå til Indstillinger > Administration > Administrer brugere af den nye Gramps Web-instans. Klik på knappen "Importer brugerkonti" og upload JSON-filen, der blev downloadet i trin 3.
35
+
36
+
Bemærk, at mens dine brugerkonti vil blive migreret, skal alle dine brugere indstille nye adgangskoder ved at bruge linket "glemt adgangskode", da adgangskoder opbevares i krypteret form og ikke kan eksporteres.
Hvis du bruger Gramps Desktop, er der to trin til at forberede din database for at sikre, at alt kører glat i det følgende. Hvis du migrerer fra et andet slægtsforskningsprogram, kan du springe dette trin over.
4
+
5
+
1. Tjek og reparer databasen
6
+
- Valgfrit: opret en databasebackup ved at eksportere til Gramps XML
7
+
- Kør [Tjek og reparer databaseværktøjet](https://gramps-project.org/wiki/index.php/Gramps_5.2_Wiki_Manual_-_Tools#Check_and_Repair_Database). Dette retter nogle interne inkonsistenser, der kan føre til problemer i Gramps Web.
8
+
2. Konverter mediestier til relative
9
+
- Brug Gramps Media Manager til at [konvertere alle mediestier fra absolutte til relative](https://gramps-project.org/wiki/index.php/Gramps_5.2_Wiki_Manual_-_Tools#Convert_paths_from_relative_to_absolute). Bemærk, at selv med relative stier vil mediefiler uden for din Gramps mediemappe ikke fungere korrekt, når de synkroniseres med Gramps Web.
10
+
11
+
## Importer slægtsdata
12
+
13
+
For at importere et eksisterende slægtstræ, brug "Import" siden og upload en fil i et af de filformater, der understøttes af Gramps – se [Import fra et andet slægtsforskningsprogram](https://www.gramps-project.org/wiki/index.php/Import_from_another_genealogy_program) i Gramps Wiki.
14
+
15
+
Hvis du allerede bruger Gramps Desktop, anbefales det stærkt at bruge Gramps XML (`.gramps`) formatet for at sikre, at dine online og offline træer bruger de samme identifikatorer og kan [synkroniseres](sync.md).
16
+
17
+
## Hvorfor ingen support for Gramps XML-pakke?
18
+
19
+
Mens Gramps XML (`.gramps`) er det foretrukne format til import af data, understøttes Gramps XML *pakke* (`.gpkg`) ikke af Gramps Web. Dette skyldes, at import- og eksportrutinerne for mediefiler ikke er velegnede til brug på en webserver.
20
+
21
+
For at importere mediefilerne, der tilhører en importeret `.gramps` fil, se næste sektion.
22
+
23
+
## Importer mediefiler
24
+
25
+
Hvis du har uploadet et slægtstræ og har brug for at uploade de tilsvarende mediefiler, kan du bruge knappen "importer mediearkiv" på "Import" siden.
26
+
27
+
Det forventer en ZIP-fil med de manglende mediefiler indeni. Mappestrukturen i ZIP-filen behøver ikke at være den samme som mappestrukturen inde i Gramps mediemappe, da filerne matches til medieobjekter ved deres checksum.
28
+
29
+
Bemærk, at denne funktion kun fungerer for filer, der har den korrekte checksum i Gramps-databasen (hvilket bør sikres ved at køre tjek og reparer værktøjet i det første trin).
30
+
31
+
Når du flytter til Gramps Web fra et andet slægtsforskningsprogram, der inkluderer mediefiler, anbefales det først at importere alt til Gramps Desktop, som har flere muligheder for at associere eksisterende mediefiler med et importeret træ.
0 commit comments