The error in the de.language file got fixed by Leonel Câmara in the github
repo. If you feel an instand need for a clean German language file, find
one attached, with some additional text enhancements included.
Stephan schrieb am Donnerstag, 29. Dezember 2022 um 11:52:54 UTC+1:
> [image: Bildschirmfoto 2022-12-29 um 11.47.52.jpg]
>
> Okay, the error sits in the standard translation file for German
> /languages/de.py
> (haven't checked other languages) that comes with the welcome app. It
> contains in four entries an unsupported character instead of a whitespace
> (see pic). This character might be reintroduced into the file, once new
> untranslated entries are added while using the system.
>
>
> Stephan schrieb am Mittwoch, 28. Dezember 2022 um 17:32:28 UTC+1:
>
>> Hello,
>> did anyone notice that index.html of the welcome app in recent web2py
>> versions is throwing an UnicodeDecodeError (at least when the browser
>> language is not set to English (tested for German))
>> <type 'exceptions.UnicodeDecodeError'> 'utf8' codec can't decode byte
>> 0xa0 in position 8: invalid start byte>
>> I could narrow the error down to the web2py_ajax.html which is included
>> in the layout.html, which itself loads a bunch of js.-files.
>> Did anyone run into this? Maybe should/could to be fixed?!
>> Thanks,
>> Stephan
>>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/84bd1a0e-b786-4c3e-9992-94b318421a12n%40googlegroups.com.
# -*- coding: utf-8 -*-
{
'!langcode!': 'de',
'!langname!': 'Deutsch (DE)',
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"Update" ist ein optionaler Ausdruck wie "feld1=\'newvalue\'". JOIN Ergebnisse können nicht aktualisiert oder gelöscht werden',
'%s %%{row} deleted': '%s %%{row} gelöscht',
'%s %%{row} updated': '%s %%{row} aktualisiert',
'%s selected': '%s ausgewählt',
'%Y-%m-%d': '%Y-%m-%d',
'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
'(**%.0d MB**)': '(**%.0d MB**)',
'**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** %%{Item(Items)}, **%(bytes)s** %%{Byte(Bytes)}',
'**%(items)s** items, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** Items, **%(bytes)s** %%{Byte(Bytes)}',
'**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '**nicht verfügbar** (benötigt die Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] Bibliothek)',
'?': '?',
'@markmin\x01(**%.0d MB**)': '(**%.0d MB**)',
'@markmin\x01**%(items)s** %%{item(items)}, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** %%{Item(items)}, **%(bytes)s** %%{Byte(bytes)}',
'@markmin\x01**%(items)s** items, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** items, **%(bytes)s** %%{Byte(bytes)}',
'@markmin\x01**not available** (requires the Python [[Pympler https://pypi.python.org/pypi/Pympler popup]] library)': '**nicht verfügbar** (requires the Python [[Pympler https://pypi.python.org/pypi/Pympler popup]] library)',
'@markmin\x01``**not available**``:red (requires the Python [[Pympler https://pypi.python.org/pypi/Pympler popup]] library)': '``**nicht verfügbar**``:red (requires the Python [[Pympler https://pypi.python.org/pypi/Pympler popup]] library)',
'@markmin\x01An error occured, please [[reload %s]] the page': 'Hi ha hagut un error, si us plau [[recarregui %s]] la pàgina',
'@markmin\x01Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'Cache geleert enthält Artikel bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
'@markmin\x01DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'DISK enthält Artikel bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
'@markmin\x01Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})': 'Trefferquote:**%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})',
'@markmin\x01Number of entries: **%s**': "Nombre d'entrades: **%s**",
'@markmin\x01RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'RAM enthält Elemente bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
'``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '``**nicht verfügbar**``:rot (benötigt die Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] Bibliothek)',
'A new password was emailed to you': 'Ein neues Passwort wurde per E-Mail an Sie gesendet',
'About': 'Über',
'Access Control': 'Zugangskontrolle',
'admin': 'admin',
'Ajax Recipes': 'Ajax Rezepte',
'An error occured, please [[reload %s]] the page': 'Ein Fehler ist aufgetreten, bitte [[laden %s]] Sie die Seite neu',
'API Example': 'API Beispiel',
'appadmin is disabled because insecure channel': 'Appadmin ist deaktiviert, wegen der Benutzung eines unsicheren Kanals',
'Apply changes': 'Aplicar canvis',
'Are you sure you want to delete this object?': 'Sind Sie sich sicher, dass Sie dieses Objekt löschen wollen?',
'Authentication code': 'Authentifizierungs code',
'Available Databases and Tables': 'Verfügbare Datenbanken und Tabellen',
"Buy web2py's book": 'Web2py-Buch kaufen',
'cache': 'Zwischenspeicher',
'Cache': 'Zwischenspeicher',
'Cache Cleared': 'Cache geleert',
'Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'Cache enthält items die bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} alt sind.',
'Cache Keys': 'Cache Schlüssel',
'Cannot be empty': 'Darf nicht leer sein',
'Change Password': 'Canviï la Contrasenya',
'Change password': 'Canviï la contrasenya',
'Check to delete': 'Auswählen um zu löschen',
'Clear CACHE?': 'CACHE löschen?',
'Clear DISK': 'DISK löschen',
'Clear RAM': 'RAM löschen',
'Click on the link %(link)s to reset your password': 'Link %(link)s klicken, um das Passwort zurückzusetzen',
'Client IP': 'IP del Client',
'Community': 'Community',
'Components and Plugins': 'Komponenten und Plugins',
'Config.ini': 'Config.ini',
'Controller': 'Controller',
'Copyright': 'Urheberrechte',
'Current request': 'Derzeitiger Request',
'Current response': 'Derzeitige Response',
'Current session': 'Derzeitige Session',
'data uploaded': 'Datei hochgeladen',
'Database': 'Datenbank',
'Database %s select': 'Datenbank %s ausgewählt',
'Database Administration (appadmin)': 'Datenbankadministration (appadmin)',
'db': 'db',
'DB Model': 'Muster-DB',
'Delete:': 'Lösche:',
'Demo': 'Demo',
'Deployment Recipes': 'Entwicklungsrezepte',
'Description': 'Beschreibung',
'design': 'Design',
'Design': 'Design',
'DISK': 'DISK',
'Disk Cache Keys': 'Festplatten-Cache-Schlüssel',
'Disk Cleared': 'Disk gelöscht',
'DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'DISK enthält items die bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} alt sind.',
'Documentation': 'Dokumentation',
"Don't know what to do?": 'Wissen Sie nicht weiter?',
'done!': 'Fertig!',
'Download': 'Download',
'E-mail': 'E-Mail',
'Edit current record': 'Diesen Eintrag editieren',
'Email and SMS': 'Email und SMS',
'Email sent': 'E-Mail gesendet',
'Email verification': 'Email-Verifizierung',
'Email verified': 'Email verifiziert',
'Errors': 'Fehlermeldungen',
'export as csv file': 'als csv Datei exportieren',
'FAQ': 'FAQ',
'First name': 'Vorname',
'Forms and Validators': 'Forms und Validators',
'Free Applications': 'Kostenlose Anwendungen',
'Function disabled': 'Funktion deaktiviert',
'Graph Model': 'Muster-Graph',
'Grid Example': 'Rasterbeispiel',
'Group %(group_id)s created': 'Grupo %(group_id)s creat',
'Group %(group_id)s deleted': 'Gruppe %(group_id)s gelöscht',
'Group ID': 'ID de Grup',
'Group uniquely assigned to user %(id)s': 'Gruppe ausschliesslich zum Nutzer %(id)s zugeordnet',
'Groups': 'Gruppen',
'Hello World': 'Hallo Welt',
'Helping web2py': 'web2py helfen',
'Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})': 'Trefferquote: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} und **%(misses)s** %%{miss(misses)})',
'Home': 'Startseite',
'How did you get here?': 'Wie sind Sie hier her gelangt?',
'import': 'Importieren',
'Import/Export': 'Importieren/Exportieren',
'Incorrect code. {0} more attempt(s) remaining.': 'Falscher Code. {0} weitere Versuche verbleiben.',
'Insufficient privileges': 'Ungenügende Privilegien',
'Internal State': 'Innerer Zustand',
'Introduction': 'Einführung',
'Invalid email': 'Ungültige E-Mail',
'Invalid key': 'Ungültiger Schlüssel',
'Invalid login': 'Ungültiger Login',
'Invalid password': 'Ungültiges Passwort',
'Invalid Query': 'Ungültige Datenbankanfrage',
'invalid request': 'Ungültiger Request',
'Invalid reset password': 'Ungültige Zurücksetzung des Passworts',
'Invalid user': 'Ungültiger Benutzer',
'Invalid username': 'Ungültiger Benutzername',
'Invitation to join %(site)s': 'Einladung um %(site)s beizutreten',
'Key': 'Schlüssel',
'Key verified': 'Schlüssel verifiziert',
'Last name': 'Nachname',
'Layout': 'Layout',
'Live Chat': 'Live Chat',
'Log In': 'Einloggen',
'Logged in': 'Sessió iniciada',
'Logged out': 'Sessió finalitzada',
'Login': 'Inici de sessió',
'Login disabled by administrator': 'Login durch Administrator deaktiviert',
'Logout': 'Fi de sessió',
'Lost Password': 'Passwort vergessen',
'Lost your password?': 'Passwort verloren?',
'Manage %(action)s': '%(action)s verwalten',
'Manage Access Control': 'Zugangskontrolle verwalten',
'Manage Cache': 'Cache verwalten',
'Memberships': 'Mitgliedschaften',
'Menu Model': 'Menü-Muster',
'My Sites': 'Meine Seiten',
'Name': 'Nombre',
'New password': 'Neues Passwort',
'New Record': 'Neuer Eintrag',
'new record inserted': 'Neuer Eintrag hinzugefügt',
'next %s rows': 'nächste %s Reihen',
'No databases in this application': 'Keine Datenbank in dieser Anwendung',
'Number of entries: **%s**': 'Nummer der Einträge: **%s**',
'Object or table name': 'Objekt oder Tabellenname',
'Old password': 'Altes Passwort',
'Online book': 'Online-Buch',
'Online examples': 'Online Beispiele',
'or import from csv file': 'oder von csv Datei importieren',
'Origin': 'Herkunft',
'Other Recipes': 'Andere Rezepte',
'Overview': 'Überblick',
'Password': 'Passwort',
'Password changed': 'Passwort geändert',
"Password fields don't match": 'Passwörter stimmen nicht überein',
'Password reset': 'Passwort zurücksetzen',
'Password retrieve': 'Passwort abrufen',
'Permission': 'Erlaubnis',
'Permissions': 'Erlaubnisse',
'please input your password again': 'Bitte Passwort erneut eingeben',
'Plugins': 'Plugins',
'Powered by': 'Unterstützt von',
'Preface': 'Allgemeines',
'previous %s rows': 'vorherige %s Reihen',
'Profile': 'Profik',
'Profile updated': 'Profil aktualisiert',
'pygraphviz library not found': 'pygraphviz Bibliothek wurde nicht gefunden',
'Python': 'Python',
'Query:': 'Abfrage:',
'Quick Examples': 'Kurze Beispiele',
'RAM': 'RAM',
'RAM Cache Keys': 'RAM Cache-Schlüssel',
'Ram Cleared': 'Ram gelöscht',
'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'RAM enthält items die bis zu **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} alt sind.',
'Recipes': 'Rezepte',
'Record': 'Eintrag',
'Record %(id)s created': 'Registre %(id)s creat',
'Record %(id)s deleted': 'Eintrag %(id)s gelöscht',
'Record %(id)s read': 'Eintrag %(id)s gelesen',
'Record %(id)s updated': 'Eintrag %(id)s aktualisiert',
'Record Created': 'Eintrag wurde erzeugt',
'Record Deleted': 'Eintrag gelöscht',
'record does not exist': 'Eintrag existiert nicht',
'Record ID': 'ID de Registre',
'Record id': 'id des Eintrags',
'Record Updated': 'Eintrag aktualisiert',
'Register': "Registri's",
'Registration identifier': 'Registrierungs-id',
'Registration is pending approval': 'Die Registrierung steht noch aus',
'Registration key': 'Registrierungsschlüssel',
'Registration needs verification': 'Registrierung muss überprüft werden',
'Registration successful': 'Registrierung erfolgreich',
'Remember me (for 30 days)': 'An mich erinnern (für 30 Tage)',
'Request reset password': 'Passwort zurücksetzen',
'Reset Password key': 'Passwortschlüssel zurücksetzen',
'Role': 'Rolle',
'Roles': 'Rollen',
'Rows in Table': 'Tabellenzeilen',
'Rows selected': 'Zeilen ausgewählt',
'Save model as...': 'Speichere Vorlage als...',
'Services': 'Dienste',
'Sign Up': 'Registrieren',
'Sign up': 'Anmelden',
'Size of cache:': 'Cachegröße:',
'state': 'Status',
'Statistics': 'Statistik',
'Stylesheet': 'Stylesheet',
'submit': 'Submit',
'Submit': 'Abschicken',
'Support': 'Support',
'Table': 'Tabelle',
'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'Die "query" ist eine Bedingung wie "db.tabelle1.feld1==\'wert\'". So etwas wie "db.tabelle1.feld1==db.tabelle2.feld2" resultiert in einem SQL JOIN.',
'The Core': 'Der Kern',
'The output of the file is a dictionary that was rendered by the view %s': 'Die Ausgabe der Datei ist ein "dictionary", welches vom "view" %s gerendert wurde',
'The Views': 'Die Views',
'This App': 'Diese App',
'This code was emailed to you and is required for login.': 'Dieser Code wurde per E-Mail an Sie gesendet und ist für die Anmeldung erforderlich.',
'This email already has an account': 'Mit dieser E-Mail existiert bereits ein Konto',
'Time in Cache (h:m:s)': 'Zeit im Cache (h:m:s)',
'Timestamp': 'Zeitstempel',
'Traceback': 'Zurückverfolgen',
'Twitter': 'Twitter',
'Two-step Login Authentication Code': 'Zweistufiger Login-Authentifizierungscode',
'unable to parse csv file': 'csv Datei konnte nicht geparst werden',
'Unable to send email': 'E-Mail kann nicht gesendet werden',
'Update:': 'Update:',
'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Benutze (...)&(...) für AND, (...)|(...) für OR, und ~(...) für NOT um komplexere Queries zu erstellen.',
'User': 'Benutzer',
'User %(id)s is impersonating %(other_id)s': 'User %(id)s steht für andere %(other_id)s',
'User %(id)s Logged-in': 'User %(id)s eingeloggt',
'User %(id)s Logged-out': 'Useri %(id)s ausgeloggt',
'User %(id)s Password changed': 'Passwort von User %(id)s geändert',
'User %(id)s Password reset': 'Passwort von User %(id)s zurückgesetzt',
'User %(id)s Password retrieved': 'Benutzer %(id)s Passwort abgerufen',
'User %(id)s Profile updated': 'Profil von User %(id)s aktualisiert',
'User %(id)s Registered': 'User %(id)s registriert',
'User %(id)s Username retrieved': 'Username zur ID %(id)s wurde abgerufen',
'User %(id)s Verification email sent': 'User %(id)s Bestätigungs-Email gesendet',
'User %(id)s verified registration key': 'User %(id)s verifizierter Registrierungsschlüssel',
'User ID': 'User UD',
'Username': 'Name des Users',
'Username already taken': 'Benutzername schon vergeben',
'Username retrieve': 'Usernamen abrufen',
'Users': 'User',
'Verify Password': 'Passwort bestätigen',
'Videos': 'Videos',
'View': 'Ansicht',
'Welcome %(username)s! Click on the link %(link)s to verify your email': 'Willkommen %(username)s! Klicken Sie auf den Link %(link)s, um Ihre E-Mail zu bestätigen',
'Welcome to web2py!': 'Willkommen bei web2py!',
'Which called the function %s located in the file %s': 'Welche die Funktion %s in der Datei %s aufrief',
'Wiki Example': 'Wiki Beispiel',
'Working...': 'Arbeite...',
'You are successfully running web2py': 'web2py wird erfolgreich ausgeführt',
'You can modify this application and adapt it to your needs': 'Sie können diese Anwendung verändern und Ihren Bedürfnissen anpassen',
'You have been invited to join %(site)s, click %(link)s to complete the process': 'Sie wurden eingeladen,%(site)s beizutreten. Klicken Sie auf %(link)s, um den Vorgang abzuschließen',
'You visited the url %s': 'Sie haben die URL %s besucht',
'Your password is: %(password)s': 'Ihr Passwort lautet: %(password)s',
'Your temporary login code is {0}': 'Ihr temporärer Login-Code lautet: {0}',
'Your username is: %(username)s': 'Ihr Username lautet: %(username)s',
'Your username was emailed to you': 'Ihr Benutzername wurde per E-Mail an Sie gesendet',
}