File: German.cpp

package info (click to toggle)
i2pd 2.58.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,612 kB
  • sloc: cpp: 59,663; makefile: 224; sh: 138
file content (221 lines) | stat: -rw-r--r-- 10,777 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
/*
* Copyright (c) 2022-2025, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
* See full license text in LICENSE file at top of project tree
*/

#include <map>
#include <vector>
#include <string>
#include <memory>
#include "I18N.h"

// German localization file

namespace i2p
{
namespace i18n
{
namespace german // language namespace
{
	// language name in lowercase
	static std::string language = "german";

	// See for language plural forms here:
	// https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html
	static int plural (int n) {
		return n != 1 ? 1 : 0;
	}

	// Right to Left language?
	static bool rtl = false;

	static const LocaleStrings strings
	{
		{"%.2f KiB", "%.2f KiB"},
		{"%.2f MiB", "%.2f MiB"},
		{"%.2f GiB", "%.2f GiB"},
		{"building", "In Bau"},
		{"failed", "fehlgeschlagen"},
		{"expiring", "läuft ab"},
		{"established", "hergestellt"},
		{"unknown", "Unbekannt"},
		{"exploratory", "erforschend"},
		{"Purple I2P Webconsole", "Purple I2P-Webkonsole"},
		{"<b>i2pd</b> webconsole", "<b>i2pd</b>-Webkonsole"},
		{"Main page", "Startseite"},
		{"Router commands", "Routerbefehle"},
		{"Local Destinations", "Lokale Ziele"},
		{"LeaseSets", "LeaseSets"},
		{"Tunnels", "Tunnel"},
		{"Transit Tunnels", "Transittunnel"},
		{"Transports", "Transporte"},
		{"I2P tunnels", "I2P Tunnel"},
		{"SAM sessions", "SAM Sitzungen"},
		{"ERROR", "FEHLER"},
		{"OK", "OK"},
		{"Testing", "Testen"},
		{"Firewalled", "Hinter einer Firewall"},
		{"Unknown", "Unbekannt"},
		{"Proxy", "Proxy"},
		{"Mesh", "Mesh"},
		{"Clock skew", "Zeitabweichung"},
		{"Offline", "Offline"},
		{"Symmetric NAT", "Symmetrisches NAT"},
		{"No Descriptors", "Keine Beschreibungen"},
		{"Uptime", "Laufzeit"},
		{"Network status", "Netzwerkstatus"},
		{"Network status v6", "Netzwerkstatus v6"},
		{"Stopping in", "Stoppt in"},
		{"Family", "Familie"},
		{"Tunnel creation success rate", "Erfolgsrate der Tunnelerstellung"},
		{"Received", "Eingegangen"},
		{"%.2f KiB/s", "%.2f KiB/s"},
		{"Sent", "Gesendet"},
		{"Transit", "Transit"},
		{"Data path", "Datenpfad"},
		{"Hidden content. Press on text to see.", "Versteckter Inhalt. Klicke hier, um ihn zu sehen."},
		{"Router Ident", "Routeridentität"},
		{"Router Family", "Routerfamilie"},
		{"Router Caps", "Routerattribute"},
		{"Version", "Version"},
		{"Our external address", "Unsere externe Adresse"},
		{"supported", "unterstützt"},
		{"Routers", "Router"},
		{"Floodfills", "Floodfills"},
		{"Client Tunnels", "Clienttunnel"},
		{"Services", "Services"},
		{"Enabled", "Aktiviert"},
		{"Disabled", "Deaktiviert"},
		{"Encrypted B33 address", "Verschlüsselte B33-Adresse"},
		{"Address registration line", "Adressregistrierungszeile"},
		{"Domain", "Domain"},
		{"Generate", "Generieren"},
		{"<b>Note:</b> result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "<b>Hinweis:</b> Der resultierende String kann nur für die Registrierung einer 2LD-Domain (beispiel.i2p) benutzt werden. Für die Registrierung von Subdomains kann i2pd-tools verwendet werden."},
		{"Address", "Adresse"},
		{"Type", "Typ"},
		{"EncType", "Verschlüsselungstyp"},
		{"Inbound tunnels", "Eingehende Tunnel"},
		{"%dms", "%dms"},
		{"Outbound tunnels", "Ausgehende Tunnel"},
		{"Tags", "Tags"},
		{"Incoming", "Eingehend"},
		{"Outgoing", "Ausgehend"},
		{"Destination", "Ziel"},
		{"Amount", "Anzahl"},
		{"Incoming Tags", "Eingehende Tags"},
		{"Tags sessions", "Tags-Sitzungen"},
		{"Status", "Status"},
		{"Local Destination", "Lokales Ziel"},
		{"Streams", "Streams"},
		{"Close stream", "Stream schließen"},
		{"I2CP session not found", "I2CP-Sitzung nicht gefunden"},
		{"I2CP is not enabled", "I2CP ist nicht aktiviert"},
		{"Invalid", "Ungültig"},
		{"Store type", "Speichertyp"},
		{"Expires", "Ablaufdatum"},
		{"Non Expired Leases", "Nicht abgelaufene Leases"},
		{"Gateway", "Gateway"},
		{"TunnelID", "TunnelID"},
		{"EndDate", "Enddatum"},
		{"floodfill mode is disabled", "Floodfill Modus ist deaktiviert"},
		{"Queue size", "Größe der Warteschlange"},
		{"Run peer test", "Peer-Test durchführen"},
		{"Reload tunnels configuration", "Tunnel Konfiguration neu laden"},
		{"Decline transit tunnels", "Transittunnel ablehnen"},
		{"Accept transit tunnels", "Transittunnel akzeptieren"},
		{"Cancel graceful shutdown", "Beende das kontrollierte Herunterfahren"},
		{"Start graceful shutdown", "Starte das kontrollierte Herunterfahren"},
		{"Force shutdown", "Herunterfahren erzwingen"},
		{"Reload external CSS styles", "Lade externe CSS-Stile neu"},
		{"<b>Note:</b> any action done here are not persistent and not changes your config files.", "<b>Hinweis:</b> Alle hier durchgeführten Aktionen sind nicht dauerhaft und ändern die Konfigurationsdateien nicht."},
		{"Logging level", "Protokollierungslevel"},
		{"Transit tunnels limit", "Limit für Transittunnel"},
		{"Change", "Ändern"},
		{"Change language", "Sprache ändern"},
		{"no transit tunnels currently built", "derzeit keine Transittunnel aufgebaut"},
		{"SAM disabled", "SAM deaktiviert"},
		{"no sessions currently running", "Derzeit keine laufenden Sitzungen"},
		{"SAM session not found", "SAM-Sitzung nicht gefunden"},
		{"SAM Session", "SAM-Sitzung"},
		{"Server Tunnels", "Servertunnel"},
		{"Client Forwards", "Client-Weiterleitungen"},
		{"Server Forwards", "Server-Weiterleitungen"},
		{"Unknown page", "Unbekannte Seite"},
		{"Invalid token", "Ungültiger Token"},
		{"SUCCESS", "ERFOLGREICH"},
		{"Stream closed", "Stream geschlossen"},
		{"Stream not found or already was closed", "Stream nicht gefunden oder bereits geschlossen"},
		{"Destination not found", "Ziel nicht gefunden"},
		{"StreamID can't be null", "StreamID kann nicht null sein"},
		{"Return to destination page", "Zurück zur Ziel-Seite"},
		{"You will be redirected in %d seconds", "Du wirst umgeleitet in %d Sekunden"},
		{"Transit tunnels count must not exceed %d", "Die Anzahl der Transittunnel darf nicht über %d gehen"},
		{"Back to commands list", "Zurück zur Befehlsliste"},
		{"Register at reg.i2p", "Auf reg.i2p registrieren"},
		{"Description", "Beschreibung"},
		{"A bit information about service on domain", "Ein paar Informationen über den Service auf der Domain"},
		{"Submit", "Absenden"},
		{"Domain can't end with .b32.i2p", "Domain kann nicht auf .b32.i2p enden"},
		{"Domain must end with .i2p", "Domain muss auf .i2p enden"},
		{"Such destination is not found", "Ein solches Ziel konnte nicht gefunden werden"},
		{"Unknown command", "Unbekannter Befehl"},
		{"Command accepted", "Befehl akzeptiert"},
		{"Proxy error", "Proxy-Fehler"},
		{"Proxy info", "Proxy-Info"},
		{"Proxy error: Host not found", "Proxy-Fehler: Host nicht gefunden"},
		{"Remote host not found in router's addressbook", "Remote-Host nicht im Router-Adressbuch gefunden"},
		{"You may try to find this host on jump services below", "Vielleicht kannst du diesen Host auf einem der nachfolgenden Jump-Services finden"},
		{"Invalid request", "Ungültige Anfrage"},
		{"Proxy unable to parse your request", "Proxy konnte die Anfrage nicht verarbeiten"},
		{"Addresshelper is not supported", "Adresshelfer wird nicht unterstützt"},
		{"Host %s is <font color=red>already in router's addressbook</font>. <b>Be careful: source of this URL may be harmful!</b> Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Host %s ist <font color=red>bereits im Adressbuch des Routers</font>. <b>Vorsicht: Die Quelle dieser URL kann schädlich sein!</b> Klicken Sie hier, um den Datensatz zu aktualisieren: <a href=\"%s%s%s&update=true\">Weiter</a>."},
		{"Addresshelper forced update rejected", "Adresshelfer gezwungene Aktualisierung abgelehnt"},
		{"To add host <b>%s</b> in router's addressbook, click here: <a href=\"%s%s%s\">Continue</a>.", "Um den Host <b>%s</b> im Adressbuch des Routers hinzuzufügen, klicken Sie hier: <a href=\"%s%s%s\">Weiter</a>."},
		{"Addresshelper request", "Adresshelfer gefunden"},
		{"Host %s added to router's addressbook from helper. Click here to proceed: <a href=\"%s\">Continue</a>.", "Host %s wurde vom Helfer zum Adressbuch des Routers hinzugefügt. Klicken Sie hier, um fortzufahren: <a href=\"%s\">Weiter</a>."},
		{"Addresshelper adding", "Adresshelfer hinzufügen"},
		{"Host %s is <font color=red>already in router's addressbook</font>. Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Host %s ist <font color=red>bereits im Adressbuch des Routers</font>. Klicken Sie hier, um den Eintrag zu aktualisieren: <a href=\"%s%s%s&update=true\">Weiter</a>."},
		{"Addresshelper update", "Adresshelfer aktualisieren"},
		{"Invalid request URI", "Ungültige Anfrage-URI"},
		{"Can't detect destination host from request", "Kann den Ziel-Host von der Anfrage nicht erkennen"},
		{"Outproxy failure", "Outproxy-Fehler"},
		{"Bad outproxy settings", "Ungültige Outproxy-Einstellungen"},
		{"Host %s is not inside I2P network, but outproxy is not enabled", "Host %s außerhalb des I2P-Netzwerks, aber Outproxy ist nicht aktiviert"},
		{"Unknown outproxy URL", "Unbekannte Outproxy-URL"},
		{"Cannot resolve upstream proxy", "Kann den Upstream-Proxy nicht auflösen"},
		{"Hostname is too long", "Hostname zu lang"},
		{"Cannot connect to upstream SOCKS proxy", "Kann keine Verbindung zum Upstream-SOCKS-Proxy herstellen"},
		{"Cannot negotiate with SOCKS proxy", "Kann nicht mit SOCKS-Proxy verhandeln"},
		{"CONNECT error", "CONNECT-Fehler"},
		{"Failed to connect", "Verbindung konnte nicht hergestellt werden"},
		{"SOCKS proxy error", "SOCKS-Proxy-Fehler"},
		{"Failed to send request to upstream", "Anfrage an den Upstream zu senden ist gescheitert"},
		{"No reply from SOCKS proxy", "Keine Antwort vom SOCKS-Proxy"},
		{"Cannot connect", "Kann nicht verbinden"},
		{"HTTP out proxy not implemented", "HTTP-Outproxy nicht implementiert"},
		{"Cannot connect to upstream HTTP proxy", "Kann nicht zu Upstream-HTTP-Proxy verbinden"},
		{"Host is down", "Host ist offline"},
		{"Can't create connection to requested host, it may be down. Please try again later.", "Konnte keine Verbindung zum angefragten Host aufbauen, vielleicht ist er offline. Versuche es später noch mal."},
		{"", ""},
	};

	static std::map<std::string, std::vector<std::string>> plurals
	{
		{"%d days", {"%d Tag", "%d Tage"}},
		{"%d hours", {"%d Stunde", "%d Stunden"}},
		{"%d minutes", {"%d Minute", "%d Minuten"}},
		{"%d seconds", {"%d Sekunde", "%d Sekunden"}},
		{"", {"", ""}},
	};

	std::shared_ptr<const i2p::i18n::Locale> GetLocale()
	{
		return std::make_shared<i2p::i18n::Locale>(language, rtl, strings, plurals, [] (int n)->int { return plural(n); });
	}

} // language
} // i18n
} // i2p