🌐 german translation

This commit is contained in:
DrMaxNix 2024-09-11 21:28:41 +02:00
parent 7663e3a43a
commit 73108f693a
3 changed files with 63 additions and 99 deletions

View File

@ -1,6 +1,6 @@
body {
font-family: Futura, sans-serif;
background-color: #9ED2FF;
background-color: #FFCF9E;
}
footer {

View File

@ -1,40 +1,5 @@
she her her hers herself
he him his his himself
they them their theirs themselves
ze hir hir hirs hirself
ze zir zir zirs zirself
xey xem xyr xyrs xemself
ae aer aer aers aerself
e em eir eirs emself
ey em eir eirs eirself
fae faer faer faers faerself
fey fem feir feirs feirself
hu hum hus hus humself
it it its its itself
jee jem jeir jeirs jemself
kit kit kits kits kitself
ne nem nir nirs nemself
peh pehm peh's peh's pehself
per per per pers perself
sie hir hir hirs hirself
se sim ser sers serself
shi hir hir hirs hirself
si hyr hyr hyrs hyrself
they them their theirs themself
thon thon thons thons thonself
ve ver vis vis verself
ve vem vir virs vemself
vi ver ver vers verself
vi vim vir virs vimself
vi vim vim vims vimself
xie xer xer xers xerself
xe xem xyr xyrs xemself
xey xem xeir xeirs xemself
yo yo yos yos yosself
ze zem zes zes zirself
ze mer zer zers zemself
zee zed zeta zetas zedself
zie zir zir zirs zirself
zie zem zes zes zirself
zie hir hir hirs hirself
zme zmyr zmyr zmyrs zmyrself
sie ihr ihr ihres sie
er ihm sein seines ihn
hen hem hens hens hen
dey dem deir deirs dem
dey dem deren deren dem

View File

@ -28,8 +28,8 @@
(let [c (count items)]
(cond
(<= c 1) (or (first items) "")
(= c 2) (s/join " and " items)
:else (str (s/join ", " (butlast items)) ", and " (last items)))))
(= c 2) (s/join " und " items)
:else (str (s/join ", " (butlast items)) ", und " (last items)))))
(defn href
[url text]
@ -44,77 +44,76 @@
(defn render-sentence [& content]
[:p.sentence content])
(defn subject-example
[subject]
(render-sentence (wrap-pronoun (s/capitalize subject)) " went to the park."))
(defn nominativ-example
[nominativ]
(render-sentence (wrap-pronoun (s/capitalize nominativ)) " ging in den Park."))
(defn object-example
[object]
(render-sentence "I went with " (wrap-pronoun object) "."))
(defn dativ-example
[dativ]
(render-sentence "Ich ging mit " (wrap-pronoun dativ) "."))
(defn posessive-determiner-example
[subject possessive-determiner]
(render-sentence (wrap-pronoun (s/capitalize subject))
" brought "
(wrap-pronoun possessive-determiner)
" frisbee."))
(defn possessiv-example
[nominativ possessiv]
(render-sentence (wrap-pronoun (s/capitalize nominativ))
" hatte "
(wrap-pronoun possessiv)
" Frisbee dabei."))
(defn possessive-pronoun-example
[possessive-pronoun]
(render-sentence "At least I think it was "
(wrap-pronoun possessive-pronoun)
(defn genitiv-example
[genitiv]
(render-sentence "Zumindest glaube ich, es war "
(wrap-pronoun genitiv)
"."))
(defn reflexive-example
[subject reflexive]
(render-sentence (wrap-pronoun (s/capitalize subject))
" threw the frisbee to "
(wrap-pronoun reflexive)
"."))
(defn akkusativ-example
[akkusativ]
(render-sentence "Ich habe "
(wrap-pronoun akkusativ)
" gestern schon damit gesehen."))
(defn header-block [header]
[:div {:class "section title"}
(href "/" [:h1 header])])
(defn examples-block
[subject object possessive-determiner possessive-pronoun reflexive]
(let [sub-obj (s/join "/" [subject object])
header-str (str "Here are some example sentences using my "
[nominativ dativ possessiv genitiv akkusativ]
(let [sub-obj (s/join "/" [nominativ dativ])
header-str (str "Hier sind einige Beispielsätze mit meinen "
sub-obj
" pronouns:")]
" Pronomen:")]
[:div {:class "section examples"}
[:h2 header-str]
[:div (subject-example subject)
(object-example object)
(posessive-determiner-example subject possessive-determiner)
(possessive-pronoun-example possessive-pronoun)
(reflexive-example subject reflexive)]]))
[:div (nominativ-example nominativ)
(dativ-example dativ)
(possessiv-example nominativ possessiv)
(genitiv-example genitiv)
(akkusativ-example akkusativ)]]))
(defn usage-block []
[:div {:class "section usage"}
[:p "Full usage: "
[:p "Volle Verwendung: "
;; FIXME morgan.astra <2018-11-14 Wed>
;; This looks really ugly in the browser
[:tt "https://pronomen.lol/subject-pronoun/object-pronoun/possessive-determiner/possessive-pronoun/reflexive"]
" displays examples of your pronouns."]
[:p "This is a bit unwieldy. If we have a good guess we'll let you use"
" just the first one or two."]])
[:tt "https://pronomen.lol/nominativ/dativ/possessiv/genitiv/akkusativ"]
" zeigt Beispiele zu deinen Pronomen."]
[:p "Das ist ein wenig unhandlich. Bei Pronomen, die der Webseite bekannt sind"
" reichen die ersten ein bis zwei Parameter."]])
(defn contact-block []
[:div {:class "section contact"}
[:p "Written by morganastra ("
(href "https://pronomen.lol/she" "pronomen.lol/she")
[:p "Geschrieben von morganastra ("
(href "https://pronomen.lol/sie" "pronomen.lol/sie")
")"]
[:p "pronomen.lol is free software under the "
[:p "pronomen.lol ist freie Software unter der Lizenz "
(href "https://www.gnu.org/licenses/agpl.html" "AGPLv3")
"! visit the project on "
"! besuche des Projekt auf "
(href "https://git.tjdev.de/kimendisch/pronomen.lol" "Git")]
[:p "Hosted by Kim Endisch ("
(href "https://pronomen.lol/they" "pronomen.lol/they")
[:p "Betrieben durch Kim Endisch ("
(href "https://pronomen.lol/dey" "pronomen.lol/dey")
")"]
[:p (href "https://www.tjdev.de/imprint" "Imprint")
[:p (href "https://www.tjdev.de/impressum" "Impressum")
" | "
(href "https://www.tjdev.de/privacy" "Privacy Policy")]
(href "https://www.tjdev.de/datenschutz" "Datenschutzerklärung")]
[:p "&lt;3"]])
(defn footer-block []
@ -123,7 +122,7 @@
(defn format-pronoun-examples
[pronoun-declensions]
(let [sub-objs (map #(s/join "/" (take 2 %)) pronoun-declensions)
title (str "Pronomen LOL: " (prose-comma-list sub-objs) " examples")
title (str "Pronomen LOL: " (prose-comma-list sub-objs) " Beispiele")
examples (map #(apply examples-block %) pronoun-declensions)]
(html
[:html
@ -166,7 +165,7 @@
(let [abbreviations (take 6 (u/abbreviate @pronouns-table))
links (map make-link abbreviations)
title "Pronomen LOL"
description "Pronomen.lol is a website for personal pronoun usage examples."]
description "Pronomen.lol ist eine Webseite mit Beispielen zur Nutzung persönlicher Pronomen."]
(html
[:html
[:head
@ -183,10 +182,10 @@
[:body
(header-block title)
[:div {:class "section table"}
[:p "pronomen.lol is a website for personal pronoun usage examples"]
[:p "here are some pronouns the site knows about:"]
[:p "pronomen.lol ist eine Webseite mit Beispielen zur Nutzung persönlicher Pronomen"]
[:p "hier einige Pronomen, die diese Webseite kennt:"]
[:ul links]
[:p [:small (href "all-pronouns" "see all pronouns in the database")]]]]
[:p [:small (href "all-pronouns" "alle Pronomen ansehen")]]]]
(footer-block)])))
(defn all-pronouns []
@ -205,12 +204,12 @@
[:body
(header-block title)
[:div {:class "section table"}
[:p "All pronouns the site knows about:"]
[:p "Alle Pronomen, die diese Webseite kennt:"]
[:ul links]]]
(footer-block)])))
(defn not-found [path]
(let [title "Pronomen LOL: English Language Examples"
(let [title "Pronomen LOL: Beispiele in Deutscher Sprache"
or-re #"/[oO][rR]/"]
(html
[:html
@ -224,13 +223,13 @@
[:body
(header-block title)
[:div {:class "section examples"}
[:p [:h2 "We couldn't find those pronouns in our database :("]
"If you think we should have them, please reach out!"]
[:p [:h2 "Wir konnten diese Pronomen nicht in unserer Datenbank finden :("]
"Wenn Du denkst, die Seite sollte diese Pronomen kennen, gib Bescheid!"]
(when (re-find or-re path)
(let [alts (s/split path or-re)
new-path (str "/" (s/join "/:OR/" alts))]
[:div
"Did you mean: "
"Meintest Du: "
(href new-path
(str "pronomen.lol"
new-path))]))]
@ -238,8 +237,8 @@
(defn pronouns [params]
(let [path (params :*)
param-alts (u/vec-coerce (or (params "or") []))
path-alts (s/split path #"/:[oO][rR]/")
param-alts (u/vec-coerce (or (params "oder") []))
path-alts (s/split path #"/:[oO][dD][eE][rR]/")
pronouns (lookup-pronouns (concat path-alts param-alts))]
(if (seq pronouns)
(format-pronoun-examples pronouns)