Add German translation for collective settings page

This commit is contained in:
eikek 2021-06-06 00:28:35 +02:00
parent 9db75f3e71
commit fe4f48dd7f
20 changed files with 421 additions and 30 deletions

View File

@ -291,7 +291,7 @@ view2 flags texts settings model =
] ]
[] []
, span [ class "ml-2" ] , span [ class "ml-2" ]
[ text texts.integrationEndpointHelp [ text texts.integrationEndpointLabel
] ]
] ]
, div [ class "opacity-50 text-sm" ] , div [ class "opacity-50 text-sm" ]

View File

@ -60,7 +60,7 @@ view2 texts model =
, th [ class "text-left" ] [ text texts.login ] , th [ class "text-left" ] [ text texts.login ]
, th [ class "text-center" ] [ text texts.state ] , th [ class "text-center" ] [ text texts.state ]
, th [ class "hidden md:table-cell text-left" ] [ text texts.email ] , th [ class "hidden md:table-cell text-left" ] [ text texts.email ]
, th [ class "hidden md:table-cell text-center" ] [ text texts.login ] , th [ class "hidden md:table-cell text-center" ] [ text texts.logins ]
, th [ class "hidden sm:table-cell text-center" ] [ text texts.lastLogin ] , th [ class "hidden sm:table-cell text-center" ] [ text texts.lastLogin ]
, th [ class "hidden md:table-cell text-center" ] , th [ class "hidden md:table-cell text-center" ]
[ text texts.basics.created [ text texts.basics.created

View File

@ -46,6 +46,9 @@ get lang =
English -> English ->
gb gb
German ->
de
{-| Get a ISO-3166-1 code of the given lanugage. {-| Get a ISO-3166-1 code of the given lanugage.
-} -}
@ -100,3 +103,23 @@ gb =
, manageData = Messages.Page.ManageData.gb , manageData = Messages.Page.ManageData.gb
, home = Messages.Page.Home.gb , home = Messages.Page.Home.gb
} }
de : Messages
de =
{ lang = German
, iso2 = "de"
, label = "Deutsch"
, flagIcon = "flag-icon flag-icon-de"
, app = Messages.App.de
, collectiveSettings = Messages.Page.CollectiveSettings.de
, login = Messages.Page.Login.gb
, register = Messages.Page.Register.gb
, newInvite = Messages.Page.NewInvite.gb
, upload = Messages.Page.Upload.gb
, itemDetail = Messages.Page.ItemDetail.gb
, queue = Messages.Page.Queue.gb
, userSettings = Messages.Page.UserSettings.gb
, manageData = Messages.Page.ManageData.gb
, home = Messages.Page.Home.gb
}

View File

@ -1,5 +1,6 @@
module Messages.App exposing module Messages.App exposing
( Texts ( Texts
, de
, gb , gb
) )
@ -33,17 +34,16 @@ gb =
} }
de : Texts
-- de : Texts de =
-- de = { collectiveProfile = "Kollektiv-Profil"
-- { collectiveProfile = "Kollektiv-Profil" , userProfile = "Benutzer-Profil"
-- , userProfile = "Benutzer-Profil" , lightDark = "Hell/Dunkel"
-- , lightDark = "Hell/Dunkel" , logout = "Abmelden"
-- , logout = "Abmelden" , items = "Dokumente"
-- , items = "Dokumente" , manageData = "Daten verwalten"
-- , manageData = "Daten verwalten" , uploadFiles = "Dateien hochladen"
-- , uploadFiles = "Dateien hochladen" , processingQueue = "Verarbeitung"
-- , processingQueue = "Verarbeitung" , newInvites = "Neue Einladung"
-- , newInvites = "Neue Einladung" , help = "Hilfe (English)"
-- , help = "Hilfe (English)" }
-- }

View File

@ -1,4 +1,8 @@
module Messages.Basics exposing (Texts, gb) module Messages.Basics exposing
( Texts
, de
, gb
)
type alias Texts = type alias Texts =
@ -68,3 +72,38 @@ gb =
, customFields = "Custom Fields" , customFields = "Custom Fields"
, direction = "Direction" , direction = "Direction"
} }
de : Texts
de =
{ incoming = "Eingehend"
, outgoing = "Ausgehend"
, tags = "Tags"
, items = "Dokumente"
, submit = "Absenden"
, submitThisForm = "Formular abschicken"
, cancel = "Abbrechen"
, delete = "Löschen"
, created = "Erstellt"
, edit = "Ändern"
, back = "Zurück"
, backToList = "Zurück zur Liste"
, searchPlaceholder = "Suche"
, selectPlaceholder = "Auswahl"
, id = "Id"
, ok = "Ok"
, yes = "Ja"
, no = "Nein"
, chooseTag = "Wähle enien Tag"
, loading = "Laden"
, name = "Name"
, organization = "Organisation"
, person = "Person"
, equipment = "Zubehör"
, folder = "Ordner"
, date = "Datum"
, correspondent = "Korrespondent"
, concerning = "Betreffend"
, customFields = "Benutzer-Felder"
, direction = "Richtung"
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.CalEventInput exposing (Texts, gb) module Messages.Comp.CalEventInput exposing
( Texts
, de
, gb
)
import Http import Http
import Messages.Comp.HttpError import Messages.Comp.HttpError
@ -35,3 +39,19 @@ gb =
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English , formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
, httpError = Messages.Comp.HttpError.gb , httpError = Messages.Comp.HttpError.gb
} }
de : Texts
de =
{ weekday = "Wochentag"
, year = "Jahr"
, month = "Monat"
, day = "Tag"
, hour = "Stunde"
, minute = "Minute"
, error = "Fehler"
, schedule = "Zeitplan"
, next = "Nächsten Zeiten"
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
, httpError = Messages.Comp.HttpError.de
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.ClassifierSettingsForm exposing (Texts, gb) module Messages.Comp.ClassifierSettingsForm exposing
( Texts
, de
, gb
)
import Messages.Basics import Messages.Basics
import Messages.Comp.CalEventInput import Messages.Comp.CalEventInput
@ -40,3 +44,28 @@ Use an empty whitelist to disable auto tagging.
, schedule = "Schedule" , schedule = "Schedule"
, itemCountHelp = "The maximum number of items to learn from, order by date newest first. Use 0 to mean all." , itemCountHelp = "The maximum number of items to learn from, order by date newest first. Use 0 to mean all."
} }
de : Texts
de =
{ basics = Messages.Basics.de
, calEventInput = Messages.Comp.CalEventInput.de
, autoTaggingText =
"""
Das Auto-Tagging funktioniert über das Lernen aus bereits
existierenden Dokumenten. Je mehr Dokumente korrekt getagged sind,
desto besser. Das Lernen passiert regelmäßig nach einem Zeitplan. Hier
können Tag-Gruppen definiert werden, die entweder nicht gelernt werden
sollen (blacklist) oder ausschließlich gelernt werden sollen
(whitelist).
Eine leere Whitelist stellt das Auto-Tagging ab.
"""
, blacklistOrWhitelist = "Ist das folgende eine Blacklist oder eine Whitelist?"
, whitelistLabel = "Nur aus diesen Tag-Katogrien lernen"
, blacklistLabel = "Aus diesen Tag-Kategorien nicht lernen"
, itemCount = "Anzahl Dokumente"
, schedule = "Zeitplan"
, itemCountHelp = "Die maximale Anzahl an Dokumenten, von denen gelernt werden soll (sortiert nach Datum, neueste zuerst). Verwende 0 um alle einzuschließen."
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.CollectiveSettingsForm exposing (Texts, gb) module Messages.Comp.CollectiveSettingsForm exposing
( Texts
, de
, gb
)
import Data.Language exposing (Language) import Data.Language exposing (Language)
import Http import Http
@ -58,3 +62,32 @@ gb =
, fulltextReindexOkMissing = , fulltextReindexOkMissing =
"Please type OK in the field if you really want to start re-indexing your data." "Please type OK in the field if you really want to start re-indexing your data."
} }
de : Texts
de =
{ basics = Messages.Basics.de
, classifierSettingsForm = Messages.Comp.ClassifierSettingsForm.de
, httpError = Messages.Comp.HttpError.de
, save = "Speichern"
, saveSettings = "Einstellungen speichern"
, documentLanguage = "Dokument Sprache"
, documentLanguageHelp = "Die Sprache der Dokumente. Das hilft der Text-Extraktion (OCR) und -Analyse."
, integrationEndpoint = "Integrations-Endpunkt"
, integrationEndpointLabel = "Aktiviere den Integrations-Endpunkt"
, integrationEndpointHelp =
"Der Integrations-Endpunkt erlaubt es (lokalen) Anwendungen, Dateien einzustellen. "
++ "Dies kann für dieses Kollektiv de-/aktiviert werden."
, fulltextSearch = "Volltext Suche"
, reindexAllData = "Alle Daten neu indexieren"
, reindexAllDataHelp =
"Es wird im Hintergrund der Index gelöscht und alle Daten neu indexiert. "
++ "Bitte tippe OK ein vor dem Klicken, um ein versehentliches Neu-Indexieren zu vermeiden."
, autoTagging = "Auto-Tagging"
, startNow = "Jetzt starten"
, languageLabel = Messages.Data.Language.de
, classifierTaskStarted = "Auto-Tagger Job gestartet."
, fulltextReindexSubmitted = "Volltext Neu-Indexierung gestartet."
, fulltextReindexOkMissing =
"Bitte tippe OK in das Feld, wenn Du wirklich den Index neu erzeugen möchtest."
}

View File

@ -1,4 +1,7 @@
module Messages.Comp.HttpError exposing (gb) module Messages.Comp.HttpError exposing
( de
, gb
)
import Http import Http
@ -21,6 +24,24 @@ gb err =
errorToString texts err errorToString texts err
de : Http.Error -> String
de err =
let
texts =
{ badUrl = \url -> "Die URL ist falsch: " ++ url
, timeout = "Es gab einen Netzwerk-Timeout."
, networkError = "Es gab ein Netzwerk-Fehler."
, invalidResponseStatus =
\status ->
"Ein ungültiger Antwort-Code: " ++ String.fromInt status ++ "."
, invalidInput = "Die Daten im Request waren ungültig."
, notFound = "Die angegebene Ressource wurde nicht gefunden."
, invalidBody = \str -> "Es gab einen Fehler beim Dekodieren der Antwort: " ++ str
}
in
errorToString texts err
-- Error Utilities -- Error Utilities

View File

@ -1,4 +1,8 @@
module Messages.Comp.SourceForm exposing (Texts, gb) module Messages.Comp.SourceForm exposing
( Texts
, de
, gb
)
import Data.Language exposing (Language) import Data.Language exposing (Language)
import Messages.Basics import Messages.Basics
@ -59,3 +63,42 @@ Specify a file glob to filter files when uploading archives
++ "default language is used if not specified here." ++ "default language is used if not specified here."
, languageLabel = Messages.Data.Language.gb , languageLabel = Messages.Data.Language.gb
} }
de : Texts
de =
{ basics = Messages.Basics.de
, description = "Beschreibung"
, enabled = "Aktiviert"
, priority = "Priorität"
, priorityInfo = "Die Priorität, die für die Hintergrund-Jobs zur Verarbeitung der Dokument verwendet wird."
, metadata = "Metadaten"
, metadataInfoText =
"Die hier definierten Metadaten werden automatisch an das Dokument angefügt, was durch diese "
++ "Quelle hochgeladen wurde. Es kann im Upload-Request direkt nochmals überschrieben "
++ "oder (bei Tags) erweitert werden."
, folderInfo = "Wähle einen Ordner; Dokumente werden automatisch damit verknüpft."
, folderForbiddenText =
"""
Du bist *kein* Mitglied dieses Ordners. Dokumnte, welche durch diese
URL hochgeladen werden, sind für dich in der Suche *nicht* sichtbar.
Nutze lieber einen Ordner, dem Du als Mitglied zugeordnet bist. Diese
Nachricht verschwindet dann.
"""
, tagsInfo = "Wähle Tags, die automatisch angefügt werden sollen."
, fileFilter = "Datei Filter"
, fileFilterInfo = """
Hier kann ein "glob" definiert werden, um nur bestimmte Dateien *aus
Archiven* (zip oder E-Mail) zu importieren und die anderen zu
ignorieren. Zum Beispiel: um nur PDF Dateien aus E-Mails zu
importieren: `*.pdf`. Globs können auch via OR kombiniert werden:
`*.pdf|mail.html`.
"""
, language = "Sprache"
, languageInfo =
"Wird für Text-Extraktion und -Analyse verwendet. Die Standard-Sprache des Kollektivs "
++ "wird verwendet, falls hier nicht angegeben."
, languageLabel = Messages.Data.Language.de
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.SourceManage exposing (Texts, gb) module Messages.Comp.SourceManage exposing
( Texts
, de
, gb
)
import Http import Http
import Messages.Basics import Messages.Basics
@ -57,3 +61,33 @@ gb =
, errorGeneratingQR = "Error generating QR Code" , errorGeneratingQR = "Error generating QR Code"
, correctFormErrors = "Please correct the errors in the form." , correctFormErrors = "Please correct the errors in the form."
} }
de : Texts
de =
{ basics = Messages.Basics.de
, sourceTable = Messages.Comp.SourceTable.de
, sourceForm = Messages.Comp.SourceForm.de
, httpError = Messages.Comp.HttpError.de
, addSourceUrl = "Quell-URL hinzufügen"
, newSource = "Neue Quelle"
, publicUploads = "Öffentlicher Upload"
, sourceInfoText =
"Diese Quelle definiert eine zuällige URL, die von jedem genutzt werden kann, um Dateien ins "
++ "Kollektiv zu senden. Es gibt eine Webseite, die Du teilen kannst, oder die API URL "
++ "kann mit anderen Programmen, wie der Android App, verwendet werden."
, itemsCreatedInfo =
\n ->
"Es wurden "
++ String.fromInt n
++ " dokumente durch diese Quelle erzeugt."
, publicUploadPage = "Öffentliche Upload Webseite"
, copyToClipboard = "In die Zwischenablage kopieren"
, openInNewTab = "Im neuen Tab/Fenster öffnen"
, publicUploadUrl = "Öffentliche API Upload URL"
, reallyDeleteSource = "Diese Quelle wirklich entfernen?"
, createNewSource = "Neue Quelle erstellen"
, deleteThisSource = "Quelle löschen"
, errorGeneratingQR = "Fehler beim Generieren des QR Code"
, correctFormErrors = "Bitte korrigiere die Fehler im Formular."
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.SourceTable exposing (Texts, gb) module Messages.Comp.SourceTable exposing
( Texts
, de
, gb
)
import Messages.Basics import Messages.Basics
@ -24,3 +28,15 @@ gb =
, id = "Id" , id = "Id"
, show = "Show" , show = "Show"
} }
de : Texts
de =
{ basics = Messages.Basics.de
, abbrev = "Name"
, enabled = "Aktiviert"
, counter = "Zähler"
, priority = "Priorität"
, id = "Id"
, show = "Anzeigen"
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.UserForm exposing (Texts, gb) module Messages.Comp.UserForm exposing
( Texts
, de
, gb
)
import Messages.Basics import Messages.Basics
@ -20,3 +24,13 @@ gb =
, email = "E-Mail" , email = "E-Mail"
, password = "Password" , password = "Password"
} }
de : Texts
de =
{ basics = Messages.Basics.de
, login = "Benutzername"
, state = "Status"
, email = "E-Mail"
, password = "Passwort"
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.UserManage exposing (Texts, gb) module Messages.Comp.UserManage exposing
( Texts
, de
, gb
)
import Http import Http
import Messages.Basics import Messages.Basics
@ -36,3 +40,19 @@ gb =
, deleteThisUser = "Delete this user" , deleteThisUser = "Delete this user"
, pleaseCorrectErrors = "Please correct the errors in the form." , pleaseCorrectErrors = "Please correct the errors in the form."
} }
de : Texts
de =
{ userTable = Messages.Comp.UserTable.de
, userForm = Messages.Comp.UserForm.de
, basics = Messages.Basics.de
, httpError = Messages.Comp.HttpError.de
, users = "Benutzer"
, newUser = "Neuer Benutzer"
, addNewUser = "Neuen Benutzen hinzufügen"
, reallyDeleteUser = "Den Benutzer wirklich löschen?"
, createNewUser = "Neuen Benutzer erstellen"
, deleteThisUser = "Benutzer löschen"
, pleaseCorrectErrors = "Bitte korrigiere die Fehler im Formular."
}

View File

@ -1,4 +1,8 @@
module Messages.Comp.UserTable exposing (Texts, gb) module Messages.Comp.UserTable exposing
( Texts
, de
, gb
)
import Messages.Basics import Messages.Basics
import Messages.DateFormat as DF import Messages.DateFormat as DF
@ -26,3 +30,15 @@ gb =
, lastLogin = "Last Login" , lastLogin = "Last Login"
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English , formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
} }
de : Texts
de =
{ basics = Messages.Basics.de
, login = "Benutzername"
, state = "Status"
, email = "E-Mail"
, logins = "Anmeldungen"
, lastLogin = "Letzte Anmeldung"
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
}

View File

@ -1,4 +1,7 @@
module Messages.Data.Language exposing (gb) module Messages.Data.Language exposing
( de
, gb
)
import Data.Language exposing (Language(..)) import Data.Language exposing (Language(..))
@ -50,3 +53,52 @@ gb lang =
Latvian -> Latvian ->
"Latvian" "Latvian"
de : Language -> String
de lang =
case lang of
German ->
"Deutsch"
English ->
"Englisch"
French ->
"Französisch"
Italian ->
"Italienisch"
Spanish ->
"Spanisch"
Portuguese ->
"Portugiesisch"
Czech ->
"Tschechisch"
Danish ->
"Dänisch"
Finnish ->
"Finnisch"
Norwegian ->
"Norwegisch"
Swedish ->
"Schwedisch"
Russian ->
"Russisch"
Romanian ->
"Romänisch"
Dutch ->
"Niederländisch"
Latvian ->
"Lettisch"

View File

@ -30,6 +30,9 @@ get lang =
English -> English ->
gb gb
German ->
de
format : UiLanguage -> (DateTimeMsg -> List Token) -> Int -> String format : UiLanguage -> (DateTimeMsg -> List Token) -> Int -> String
format lang pattern millis = format lang pattern millis =

View File

@ -1,4 +1,8 @@
module Messages.Page.CollectiveSettings exposing (Texts, gb) module Messages.Page.CollectiveSettings exposing
( Texts
, de
, gb
)
import Http import Http
import Messages.Basics import Messages.Basics
@ -22,6 +26,7 @@ type alias Texts =
, user : String , user : String
, collective : String , collective : String
, size : String , size : String
, items : String
, submitSuccessful : String , submitSuccessful : String
} }
@ -41,5 +46,26 @@ gb =
, user = "User" , user = "User"
, collective = "Collective" , collective = "Collective"
, size = "Size" , size = "Size"
, items = "Items"
, submitSuccessful = "Settings saved." , submitSuccessful = "Settings saved."
} }
de : Texts
de =
{ basics = Messages.Basics.de
, userManage = Messages.Comp.UserManage.de
, collectiveSettingsForm = Messages.Comp.CollectiveSettingsForm.de
, sourceManage = Messages.Comp.SourceManage.de
, httpError = Messages.Comp.HttpError.de
, collectiveSettings = "Kollektiv Einstellungen"
, insights = "Einblicke"
, sources = "Quellen"
, settings = "Einstellungen"
, users = "Benuzter"
, user = "Benutzer"
, collective = "Kollektiv"
, size = "Größe"
, items = "Dokumente"
, submitSuccessful = "Einstellungen gespeichert."
}

View File

@ -9,9 +9,11 @@ module Messages.UiLanguage exposing
type UiLanguage type UiLanguage
= English = English
| German
all : List UiLanguage all : List UiLanguage
all = all =
[ English [ English
, German
] ]

View File

@ -158,7 +158,7 @@ viewInsights texts flags model =
[ class "py-2" [ class "py-2"
] ]
[ h4 [ class S.header3 ] [ h4 [ class S.header3 ]
[ text "Items" [ text texts.items
] ]
, div [ class "flex px-4 flex-wrap" ] , div [ class "flex px-4 flex-wrap" ]
[ stats (String.fromInt (model.insights.incomingCount + model.insights.outgoingCount)) texts.basics.items [ stats (String.fromInt (model.insights.incomingCount + model.insights.outgoingCount)) texts.basics.items