always write FN field; bugfix: use editing tempfile as basis for modifications, impor...
[confetti] / l10n.sh
1 # Copyright 2014, 2016, 2019, 2021 Paul Hänsch
2 #
3 # This file is part of Confetti.
4
5 # Confetti is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
9
10 # Confetti is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU Affero General Public License for more details.
14
15 # You should have received a copy of the GNU Affero General Public License
16 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
17
18 l10n(){
19   local word
20   [ $# -eq 0 ] && read -r word || word="$*"
21   l10n_global "$word"
22 }
23
24 l10n_global() {
25   case $1 in
26     # Nav Menu
27     cards) printf %s "Teil&shy;neh&shy;mende";;
28     courses) printf %s "Kurse";;
29
30     # VCF Default
31     PHOTO) printf %s "Foto";;
32     LOGO) printf %s "Logo";;
33     FN) printf %s "Voller Name";;
34     N) printf %s "Name";;
35     n_pre) printf %s "Titel";;
36     n_first) printf %s "Vorname";;
37     n_middle) printf %s "Mittel&shy;namen";;
38     n_last) printf %s "Nachname";;
39     n_post) printf %s "Zusätze";;
40     NICKNAME) printf %s "Spitz&shy;name";;
41     SOUND) printf %s "Aus&shy;sprache";;
42     GENDER) printf %s "Ge&shy;schlecht";;
43     KIND) printf %s "Typ";;
44     TITLE) printf %s "Beruf";;
45     ROLE) printf %s "Position";;
46     ORG) printf %s "Orga&shy;ni&shy;sation";;
47     MEMBER) printf %s "Mitglied";;
48     CATEGORIES) printf %s "Kategorien";;
49     ANNIVERSARY) printf %s "Jubiläum";;
50     BDAY) printf %s "Geburtstag";;
51     EMAIL) printf %s "E-Mail";;
52     TEL) printf %s "Telefon";;
53     teltype) printf %s "Anschluss&shy;typ:";;
54     TYPE=HOME) printf %s "Privat";;
55     TYPE=WORK) printf %s "Geschäft&shy;lich";;
56     TYPE=CELL) printf %s "Mobil";;
57     TYPE=FAX) printf %s "Fax";;
58     IMPP) printf %s "Chat";;
59     ADR) printf %s "Anschrift";;
60     URL) printf %s "Webseite";;
61     LANG) printf %s "Sprache";;
62     NOTE) printf %s "Notiz";;
63     RELATED) printf %s "Kontakte";;
64
65     # ICS Default
66     SUMMARY) printf "Bezeichnung";;
67     COMMENT) printf "Kommentar";;
68     DTSTART) printf "Beginn";;
69     DURATION) printf "Dauer";;
70     RRULE) printf "Regelmäßigkeit";;
71     DAILY) printf "Tage";;
72     WEEKLY) printf "Wochen";;
73     MONTHLY) printf "Monate";;
74     YEARLY) printf "Jahre";;
75     sDAILY) printf "Täglich";;
76     sWEEKLY) printf "Wöchentlich";;
77     sMONTHLY) printf "Monatlich";;
78     sYEARLY) printf "Jährlich";;
79
80     # UI labels
81     edit) printf %s "Bearbeiten";;
82     edit_categories) printf %s "Kategorien Bearbeiten";;
83     vcf_export) printf %s "Vcard Exportieren";;
84     control) printf %s "Aktionen";;
85     delete) printf %s "entfernen";;
86     edit_update) printf %s "Daten übernehmen";;
87     edit_cancel) printf %s "Abbrechen";;
88     edit_delete) printf %s "Eintrag löschen";;
89     edit_addfieldtext) printf %s "Neues Feld";;
90     edit_addfield) printf %s "+";;
91     edit_deletefield) printf %s "X";;
92
93     filter_label) printf %s "Filter";;
94     filter_item) printf %s "Eingrenzung nach";;
95     filter_placeholder) printf %s "Begriffe zur Eingrenzung eingeben";;
96     filter_type) printf %s "Filter&shy;typ";;
97     filter_order) printf %s "Sortie&shy;rung";;
98     filter_any) printf %s "Alles";;
99     filter_name) printf %s "Name";;
100     filter_firstname) printf %s "Vor&shy;name";;
101     filter_lastname) printf %s "Nach&shy;name";;
102     filter_street) printf %s "Straße";;
103     filter_zip) printf %s "PLZ.";;
104     filter_TEL) printf %s "Tele&shy;fon";;
105     filter_BDAY) printf %s "Geburts&shy;jahr";;
106     filter_bdate) printf %s "Geburts&shy;datum";;
107     filter_course) printf %s "Kurs";;
108     filter_CATEGORIES) printf %s "Kate&shy;go&shy;rien";;
109     filter_more) printf %s "+ mehr Filter";;
110     filter_apply) printf %s "Filtern";;
111     filter_cancel) printf %s "Filter löschen";;
112
113     # UI Labels Special
114     course_attendance) printf %s "Kurs&shy;teil&shy;nahme";;
115   
116     gender_none) printf %s "keine Angabe";;
117     gender_female) printf %s "Weiblich";;
118     gender_male) printf %s "Männlich";;
119     gender_other) printf %s "Sonstiges";;
120   
121     female) printf %s "&#x2640;";;
122     male) printf %s "&#x2642;";;
123     other) printf %s "&#x26A5;";;
124     none) printf %s "&#x26AA;";;
125
126     # Fallback
127     *) printf %s "$word";;
128   esac
129 }
130
131 l10n_time() {
132   [ $# -eq 0 ] && read -r time || time="$*"
133   printf '%s\n' "$time" |sed -E '
134     s;Monday;Mon\&shy\;tag;g;           s;Mon\.;Mo.;g;
135     s;Tuesday;Diens\&shy\;tag;g;        s;Tue\.;Di.;g;
136     s;Wednesday;Mitt\&shy\;woch;g;      s;Wed\.;Mi.;g;
137     s;Thursday;Don\&shy\;ners\&shy\;tag;g; s;Thu\.;Do.;g;
138     s;Friday;Frei\&shy\;tag;g;          s;Fri\.;Fr.;g;
139     s;Saturday;Sams\&shy\;tag;g;        s;Sat\.;Sa.;g;
140     s;Sunday;Sonn\&shy\;tag;g;          s;Sun\.;So.;g;
141
142     s;January;Ja\&shy\;nu\&shy\;ar;g;           s;Jan\.;Jan.;g;
143     s;February;Fe\&shy\;bru\&shy\;ar;g;         s;Feb\.;Feb.;g;
144     s;March;März;g;                            s;Mar\.;Mär.;g;
145     s;April;April;g;                            s;Apr\.;Apr.;g;
146     s;May;Mai;g;                                s;May\.;Mai.;g;
147     s;June;Juni;g;                              s;Jun\.;Jun.;g;
148     s;July;Juli;g;                              s;Jul\.;Jul.;g;
149     s;August;Au\&shy\;gust;g;                   s;Aug\.;Aug.;g;
150     s;September;Sep\&shy\;tem\&shy\;ber;g;      s;Sep\.;Sep.;g;
151     s;October;Ok\&shy\;to\&shy\;ber;g;          s;Oct\.;Okt.;g;
152     s;November;No\&shy\;vem\&shy\;ber;g;        s;Nov\.;Nov.;g;
153     s;December;De\&shy\;zem\&shy\;ber;g;        s;Dec\.;Dez.;g;
154   '
155 }