diff --git a/README.md b/README.md index 26fce7655..4d2d9c90b 100644 --- a/README.md +++ b/README.md @@ -163,19 +163,20 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent If you'd like to add translations, take a look a look at the [english translation file](ui/src/translations/en.ts). -- Languages supported: English (`en`), Chinese (`zh`), Esperanto (`eo`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`). +- Languages supported: English (`en`), Chinese (`zh`), Dutch (`nl`), Esperanto (`eo`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`). ### Report lang | done | missing --- | --- | --- -de | 90% | cross_posts,cross_post,users,settings,subscribed,expires,recent_comments,nsfw,show_nsfw,crypto,monero,joined,by,to,transfer_community,transfer_site -es | 100% | -eo | 100% | -fr | 93% | cross_posts,cross_post,users,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site -ru | 95% | cross_posts,cross_post,recent_comments,monero,by,to,transfer_community,transfer_site -sv | 93% | cross_posts,cross_post,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site -zh | 93% | cross_posts,cross_post,users,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site +de | 88% | cross_posts,cross_post,users,number_of_communities,settings,subscribed,expires,recent_comments,nsfw,show_nsfw,crypto,monero,joined,by,to,transfer_community,transfer_site,are_you_sure,yes,no +eo | 98% | number_of_communities,are_you_sure,yes,no +es | 98% | number_of_communities,are_you_sure,yes,no +fr | 91% | cross_posts,cross_post,users,number_of_communities,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site,are_you_sure,yes,no +nl | 100% | +ru | 93% | cross_posts,cross_post,number_of_communities,recent_comments,monero,by,to,transfer_community,transfer_site,are_you_sure,yes,no +sv | 91% | cross_posts,cross_post,number_of_communities,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site,are_you_sure,yes,no +zh | 91% | cross_posts,cross_post,users,number_of_communities,settings,recent_comments,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site,are_you_sure,yes,no ## Credits diff --git a/ansible/templates/nginx.conf b/ansible/templates/nginx.conf index 21560b5f5..74fbcda97 100644 --- a/ansible/templates/nginx.conf +++ b/ansible/templates/nginx.conf @@ -47,7 +47,7 @@ server { add_header X-XSS-Protection "1; mode=block"; location / { - rewrite (\/(user|u|inbox|post|community|c|login|search|sponsors|communities|modlog|home)+) /static/index.html break; + rewrite (\/(user|u\/|inbox|post|community|c\/|login|search|sponsors|communities|modlog|home)+) /static/index.html break; proxy_pass http://0.0.0.0:8536; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 843b5d889..9e438cc95 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -10,7 +10,7 @@ services: volumes: - lemmy_db:/var/lib/postgresql/data lemmy: - image: dessalines/lemmy:v0.0.8.6 + image: dessalines/lemmy:v0.0.8.7 ports: - "8536:8536" environment: diff --git a/ui/src/css/main.css b/ui/src/css/main.css index 621a5fb74..9a6e2067e 100644 --- a/ui/src/css/main.css +++ b/ui/src/css/main.css @@ -129,3 +129,7 @@ blockquote { top: -9999px !important; left: -9999px !important; } + +hr { + border-top: 1px solid var(--secondary); +} diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index ba81b8d4b..069c820d1 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -4,10 +4,11 @@ import { en } from './translations/en'; import { eo } from './translations/eo'; import { es } from './translations/es'; import { de } from './translations/de'; -import { zh } from './translations/zh'; import { fr } from './translations/fr'; import { sv } from './translations/sv'; import { ru } from './translations/ru'; +import { zh } from './translations/zh'; +import { nl } from './translations/nl'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 // TODO don't forget to add moment locales for new languages. @@ -20,6 +21,7 @@ const resources = { fr, sv, ru, + nl, } function format(value: any, format: any, lng: any) { diff --git a/ui/src/translations/nl.ts b/ui/src/translations/nl.ts new file mode 100644 index 000000000..33fc24eb0 --- /dev/null +++ b/ui/src/translations/nl.ts @@ -0,0 +1,176 @@ +export const nl = { + translation: { + post: 'post', + remove_post: 'Verwijder post', + no_posts: 'Geen posts.', + create_a_post: 'Plaats een post', + create_post: 'Plaats post', + number_of_posts:'{{count}} posts', + posts: 'posts', + related_posts: 'Deze posts kunnen gerelateerd zijn', + cross_posts: 'Deze link is ook geplaatst in:', + cross_post: 'cross-post', + comments: 'Reacties', + number_of_comments:'{{count}} reacties', + remove_comment: 'Verwijder reactie', + communities: 'Communities', + users: 'Gebruikers', + create_a_community: 'Maak een community', + create_community: 'Maak community', + remove_community: 'Verwijder community', + subscribed_to_communities:'Geabonneerd op <1>communities', + trending_communities:'Populaire <1>communities', + list_of_communities: 'Lijst van communities', + number_of_communities:'{{count}} communities', + community_reqs: 'kleine letters, onderstrepingsteken en geen spaties', + edit: 'bewerk', + reply: 'reageer', + cancel: 'Annuleer', + unlock: 'ontsluiten', + lock: 'sluiten', + link: 'link', + mod: 'moderator', + mods: 'moderators', + moderates: 'Modereert', + settings: 'Instellingen', + remove_as_mod: 'Verwijder als moderator', + appoint_as_mod: 'Benoemen tot moderator', + modlog: 'Moderatorlog', + admin: 'beheerder', + admins: 'beheerders', + remove_as_admin: 'verwijder als beheerder', + appoint_as_admin: 'benoemen tot beheerder', + remove: 'weghalen', + removed: 'weggehaald', + locked: 'gesloten', + reason: 'Reden', + mark_as_read: 'markeer als gelezen', + mark_as_unread: 'markeer als ongelezen', + delete: 'verwijder', + deleted: 'verwijderd', + restore: 'herstellen', + ban: 'verban', + ban_from_site: 'verban van site', + unban: 'verbanning opzeggen', + unban_from_site: 'verbanning van site opzeggen', + save: 'opslaan', + unsave: 'unsave', + create: 'maak', + username: 'Gebruikersnaam', + email_or_username: 'E-mail of gebruikersnaam', + number_of_users:'{{count}} gebruikers', + number_of_subscribers:'{{count}} abonnees', + number_of_points:'{{count}} punten', + name: 'Naam', + title: 'Titel', + category: 'Categorie', + subscribers: 'Abonnees', + both: 'Beide', + saved: 'Opgeslagen', + unsubscribe: 'Afmelden', + subscribe: 'Abonneren', + subscribed: 'Geabonneerd', + prev: 'Vorige', + next: 'Volgende', + sidebar: 'Zijbalk', + sort_type: 'Sorteertype', + hot: 'Populair', + new: 'Nieuw', + top_day: 'Dagelijkse top', + week: 'Week', + month: 'Maand', + year: 'Jaar', + all: 'Alle', + top: 'Top', + api: 'API', + inbox: 'Postvak-in', + inbox_for: 'Postvak-in voor <1>{{user}}', + mark_all_as_read: 'markeer alle als gelezen', + type: 'Type', + unread: 'Ongelezen', + reply_sent: 'Reactie gestuurd', + search: 'Zoek', + overview: 'Overzicht', + view: 'Beeld', + logout: 'Log uit', + login_sign_up: 'Log in / Aanmelden', + login: 'Log in', + sign_up: 'Aanmelden', + notifications_error: 'Bureabladberichten niet beschikbaar in je browser. Probeer Firefox of Chrome.', + unread_messages: 'Ongelezen berichten', + password: 'Wachtwoord', + verify_password: 'Herhaal wachtwoord', + email: 'E-mail', + optional: 'Optioneel', + expires: 'Verloopt', + url: 'url', + body: 'Tekst', + copy_suggested_title: 'neem voorgestelde titel over: {{title}}', + community: 'Community', + expand_here: 'Breid hier uit', + subscribe_to_communities: 'Abonneer je op een paar <1>communities.', + chat: 'Praat', + recent_comments: 'Recente reacties', + no_results: 'Geen resultaten', + setup: 'Installatie', + lemmy_instance_setup: 'Installatie van Lemmy-instantie', + setup_admin: 'Maak een administrator', + your_site: 'jouw site', + modified: 'bewerkt', + nsfw: 'NSFW', + show_nsfw: 'Laat NSFW-inhoud zien', + sponsors: 'Sponsoren', + sponsors_of_lemmy: 'Sponsoren van Lemmy', + sponsor_message: 'Lemmy is vrije, <1>open-source software, dus zonder reclame, winstoogmerk en durfkapitaal, punt. Jouw donaties gaan direct naar de full-time-ontwikkeling van het project. Met veel dank aan de volgende mensen:', + support_on_patreon: 'Ondersteun op Patreon', + general_sponsors:'Algemene sponsors zijn sponsors die tussen de $10 en $39 hebben gegeven aan Lemmy.', + crypto: 'Cryptovaluta', + bitcoin: 'Bitcoin', + ethereum: 'Ethereum', + monero: 'Monero', + code: 'Code', + joined: 'toegetreden', + by: 'door', + to: 'aan', + transfer_community: 'community overplaatsen', + transfer_site: 'site overplaatsen', + are_you_sure: 'weet je het zeker?', + yes: 'ja', + no: 'nee', + powered_by: 'Mogelijk gemaakt door', + landing_0: 'Lemmy is een <1>linkverzameler / reddit-alternatief, bedoeld om in de <2>fediverse te werken.<3>Lemmy kan door om het even wie gehost worden, heeft live-bijgewerkte reacties en is superklein (<4>ca. 80 kB). Federatie in hte ActivityPub-netwerk is gepland. <5>Dit is een <6>erg vroege bèta-versie, en een hoop functies zijn stuk of afwezig. <7>Stel nieuwe functies voor of meldt fouten <8>hier.<9>Gemaakt met <10>Rust, <11>Actix, <12>Inferno en <13>Typescript.', + not_logged_in: 'Niet ingelogd.', + community_ban: 'Je bent verbannen uit deze community.', + site_ban: 'Je bent verbannen van deze site.', + couldnt_create_comment: 'Kon reactie niet maken.', + couldnt_like_comment: 'Kon reactie niet leuk vinden.', + couldnt_update_comment: 'Kon reactie niet bijwerken.', + couldnt_save_comment: 'Kon reactie niet opslaan.', + no_comment_edit_allowed: 'Niet toegestaan om reactie te bewerken.', + no_post_edit_allowed: 'Niet toegestaan om posts te bewerken.', + no_community_edit_allowed: 'Niet toegestaan om community te bewerken.', + couldnt_find_community: 'Kon community niet vinden.', + couldnt_update_community: 'Kon community niet bijwerken.', + community_already_exists: 'Community bestaat al.', + community_moderator_already_exists: 'Community-moderator bestaat al.', + community_follower_already_exists: 'Community-volger bestaat al.', + community_user_already_banned: 'Community-gebruiker reeds verbannen.', + couldnt_create_post: 'Kon post niet maken.', + couldnt_like_post: 'Kon post niet leuk vinden.', + couldnt_find_post: 'Kon post niet vinden.', + couldnt_get_posts: 'Kon posts niet ophalen.', + couldnt_update_post: 'Kon post niet bijwerken.', + couldnt_save_post: 'Kon post niet opslaan.', + no_slurs: 'Geen beledigingen.', + not_an_admin: 'Niet een beheerder.', + site_already_exists: 'Site bestaat al.', + couldnt_update_site: 'Kon site niet bijwerken.', + couldnt_find_that_username_or_email: 'Kon gebruikersnaam of e-mailadres niet vinden.', + password_incorrect: 'Wachtwoord incorrect.', + passwords_dont_match: 'Wachtwoorden zijn niet gelijk.', + admin_already_created: 'Sorry, er is al een beheerder.', + user_already_exists: 'Gebruiker bestaat al.', + couldnt_update_user: 'Kon gebruiker niet bijwerken.', + system_err_login: 'Systeemfout. Probeer uit te loggen en weer in te loggen.', + }, +} diff --git a/ui/src/utils.ts b/ui/src/utils.ts index c7de7a511..d69bf421c 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -5,6 +5,7 @@ import 'moment/locale/zh-cn'; import 'moment/locale/fr'; import 'moment/locale/sv'; import 'moment/locale/ru'; +import 'moment/locale/nl'; import { UserOperation, Comment, User, SortType, ListingType } from './interfaces'; import * as markdown_it from 'markdown-it'; @@ -198,6 +199,8 @@ export function getMomentLanguage(): string { lang = 'es'; } else if (lang.startsWith('eo')) { lang = 'eo'; + } else if (lang.startsWith('nl')) { + lang = 'nl'; } else { lang = 'en'; } diff --git a/ui/src/version.ts b/ui/src/version.ts index 994b29e6f..030b4a0e5 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export let version: string = "v0.0.8.6-0-gd3a2420"; \ No newline at end of file +export let version: string = "v0.0.8.7-0-g614c4f8"; \ No newline at end of file diff --git a/ui/translation_report.ts b/ui/translation_report.ts index 93579a371..8e579f274 100644 --- a/ui/translation_report.ts +++ b/ui/translation_report.ts @@ -6,12 +6,14 @@ import { zh } from './src/translations/zh'; import { fr } from './src/translations/fr'; import { sv } from './src/translations/sv'; import { ru } from './src/translations/ru'; +import { nl } from './src/translations/nl'; let files = [ {t: de, n: 'de'}, - {t: es, n: 'es'}, {t: eo, n: 'eo'}, + {t: es, n: 'es'}, {t: fr, n: 'fr'}, + {t: nl, n: 'nl'}, {t: ru, n: 'ru'}, {t: sv, n: 'sv'}, {t: zh, n: 'zh'},