diff --git a/api/user_setting.go b/api/user_setting.go
index 68df9b5d..d8320075 100644
--- a/api/user_setting.go
+++ b/api/user_setting.go
@@ -34,7 +34,7 @@ func (key UserSettingKey) String() string {
}
var (
- UserSettingLocaleValue = []string{"en", "zh", "vi", "fr", "sv", "de"}
+ UserSettingLocaleValue = []string{"en", "zh", "vi", "fr", "nl", "sv", "de"}
UserSettingAppearanceValue = []string{"system", "light", "dark"}
UserSettingMemoVisibilityValue = []Visibility{Private, Protected, Public}
UserSettingMemoDisplayTsOptionKeyValue = []string{"created_ts", "updated_ts"}
diff --git a/web/src/components/Settings/PreferencesSection.tsx b/web/src/components/Settings/PreferencesSection.tsx
index dfa45a5e..90444a07 100644
--- a/web/src/components/Settings/PreferencesSection.tsx
+++ b/web/src/components/Settings/PreferencesSection.tsx
@@ -24,6 +24,10 @@ const localeSelectorItems = [
text: "French",
value: "fr",
},
+ {
+ text: "Nederlands",
+ value: "nl",
+ },
{
text: "Svenska",
value: "sv",
diff --git a/web/src/i18n.ts b/web/src/i18n.ts
index 96b33520..066a1088 100644
--- a/web/src/i18n.ts
+++ b/web/src/i18n.ts
@@ -4,6 +4,7 @@ import enLocale from "./locales/en.json";
import zhLocale from "./locales/zh.json";
import viLocale from "./locales/vi.json";
import frLocale from "./locales/fr.json";
+import nlLocale from "./locales/nl.json";
import svLocale from "./locales/sv.json";
import deLocale from "./locales/de.json";
@@ -21,6 +22,9 @@ i18n.use(initReactI18next).init({
fr: {
translation: frLocale,
},
+ nl: {
+ translation: nlLocale,
+ },
sv: {
translation: svLocale,
},
@@ -28,7 +32,7 @@ i18n.use(initReactI18next).init({
translation: deLocale,
},
},
- lng: "en",
+ lng: "nl",
fallbackLng: "en",
});
diff --git a/web/src/locales/nl.json b/web/src/locales/nl.json
new file mode 100644
index 00000000..d179cd2d
--- /dev/null
+++ b/web/src/locales/nl.json
@@ -0,0 +1,200 @@
+{
+ "common": {
+ "about": "Over",
+ "email": "E-mailadres",
+ "password": "Wachtwoord",
+ "new-password": "Nieuw wachtwoord",
+ "repeat-new-password": "Nieuw wachtwoord herhalen",
+ "username": "Gebruikersnaam",
+ "nickname": "Bijnaam",
+ "save": "Opslaan",
+ "close": "Sluiten",
+ "cancel": "Annuleren",
+ "create": "Aanmaken",
+ "change": "Wijzigen",
+ "confirm": "Bevestigen",
+ "reset": "Herstel",
+ "language": "Taal",
+ "version": "Versie",
+ "pin": "Vastzetten",
+ "unpin": "Losmaken",
+ "edit": "Bijwerken",
+ "restore": "Terugzetten",
+ "delete": "Verwijderen",
+ "null": "Null",
+ "share": "Delen",
+ "archive": "Archiveren",
+ "basic": "Simpel",
+ "admin": "Admin",
+ "explore": "Ontdekken",
+ "sign-in": "Inloggen",
+ "sign-up": "Registreren",
+ "sign-out": "Uitloggen",
+ "back-to-home": "Terug naar homepagina",
+ "type": "Type",
+ "shortcuts": "Snelkoppelingen",
+ "title": "Titel",
+ "filter": "Filter",
+ "tags": "Labels",
+ "yourself": "Jij zelf",
+ "archived-at": "Gearchiveerd op",
+ "changed": "gewijzigd",
+ "update-on": "Update op",
+ "fold": "Invouwen",
+ "expand": "Uitklappen"
+ },
+ "slogan": "Een open-source, zelf-beheerd memo applicatie voor kennismanagement en collaboratie.",
+ "auth": {
+ "signup-as-host": "Registreren als Host",
+ "host-tip": "Je registreert je als Site Host.",
+ "not-host-tip": "Als je geen account hebt, neem dan contact op met de site host."
+ },
+ "sidebar": {
+ "daily-review": "Dagelijkse Review",
+ "resources": "Bronnen",
+ "setting": "Instellingen",
+ "archived": "Gearchiveerd"
+ },
+ "daily-review": {
+ "oops-nothing": "Oeps, er is niets."
+ },
+ "resources": {
+ "description": "Bekijk je statische bronnen in memos, zoals foto's.",
+ "no-resources": "Geen bronnen.",
+ "fetching-data": "data aan het ophalen...",
+ "upload": "Uploaden",
+ "preview": "Voorbeeld",
+ "copy-link": "Kopiëer Link",
+ "delete-resource": "Bron verwijderen",
+ "warning-text": "Weet je zeker dat je deze bron wilt verwijderen? Deze actie is NIET terug te draaien!",
+ "linked-amount": "Aantal gelinkte memo's",
+ "rename": "Hernoemen",
+ "clear-unused-resources": "Ongebruikte bronnen opruimen",
+ "warning-text-unused": "Weet je zeker dat je deze ongebruikte bron wilt verwijderen? Deze actie is NIET terug te draaien!",
+ "no-unused-resources": "Geen ongebruikte bronnen"
+ },
+ "archived": {
+ "archived-memos": "Gearchiveerde Memos",
+ "no-archived-memos": "Geen gearchiveerde memos.",
+ "fetching-data": "data aan het ophalen..."
+ },
+ "editor": {
+ "editing": "Aan het wijzigen...",
+ "cancel-edit": "Annuleer wijziging",
+ "save": "Opslaan",
+ "placeholder": "Leeg je gedachten...",
+ "only-image-supported": "Alleen afbeeldingen worden ondersteund.",
+ "cant-empty": "Inhoud kan niet leeg zijn"
+ },
+ "memo": {
+ "view-detail": "Bekijk Detail",
+ "copy": "Kopiëer",
+ "visibility": {
+ "private": "Privé",
+ "protected": "Zichtbaar voor leden",
+ "public": "Openbaar"
+ }
+ },
+ "memo-list": {
+ "fetching-data": "data aan het ophalen...",
+ "fetch-more": "Klik hier om meer op te halen"
+ },
+ "shortcut-list": {
+ "shortcut-title": "snelkoppelingstitel",
+ "create-shortcut": "Maak Snelkoppeling",
+ "edit-shortcut": "Wijzig Shortcut",
+ "eligible-memo": "geschikte memo",
+ "fill-previous": "Vul alsjeblieft het vorige filter in",
+ "title-required": "Titel is verplicht",
+ "value-required": "Filter is verplicht"
+ },
+ "filter": {
+ "new-filter": "Nieuw Filter",
+ "operator": {
+ "contains": "Bevat",
+ "not-contains": "Bevat niet",
+ "is": "Is",
+ "is-not": "Is Niet",
+ "before": "Voor",
+ "after": "Na"
+ },
+ "value": {
+ "not-tagged": "Geen labels",
+ "linked": "Heeft links"
+ },
+ "text-placeholder": "Begin met ^ om RegEx te gebruiken."
+ },
+ "tag-list": {
+ "tip-text": "Typ `#label ` om aan te maken"
+ },
+ "search": {
+ "quickly-filter": "Snel filteren"
+ },
+ "setting": {
+ "my-account": "Mijn account",
+ "preference": "Voorkeuren",
+ "member": "Lid",
+ "member-list": "Ledenlijst",
+ "system": "Systeem",
+ "account-section": {
+ "title": "Accountinformatie",
+ "update-information": "Informatie wijzigen",
+ "change-password": "Wachtwoord wijzigen"
+ },
+ "preference-section": {
+ "default-memo-visibility": "Standaard memo zichtbaarheid",
+ "enable-folding-memo": "Vouwende memo aanzetten",
+ "editor-font-style": "Editor lettertype",
+ "mobile-editor-style": "Mobiele editor uiterlijk",
+ "default-memo-sort-option": "Sorteer op tijd van aanmaken/wijziging",
+ "created_ts": "Tijd van aanmaken",
+ "updated_ts": "Tijd van wijziging"
+ },
+ "member-section": {
+ "create-a-member": "Lid toevoegen"
+ },
+ "system-section": {
+ "database-file-size": "Database bestandsgrootte",
+ "allow-user-signup": "Registratie toestaan",
+ "additional-style": "Optionele stijl",
+ "additional-script": "Optionele scripts",
+ "additional-style-placeholder": "Optionele CSS code",
+ "additional-script-placeholder": "Optionele JavaScript code"
+ },
+ "apperance-option": {
+ "auto": "Volg systeem",
+ "light": "Altijd licht",
+ "dark": "Altijd donker"
+ }
+ },
+ "amount-text": {
+ "memo": "MEMO",
+ "tag": "LABEL",
+ "day": "DAG"
+ },
+ "message": {
+ "no-memos": "geen memos 🌃",
+ "memos-ready": "alle memos zijn geladen 🎉",
+ "restored-successfully": "Succesvol teruggezet",
+ "memo-updated-datetime": "Tijd van aanmaken gewijzigd.",
+ "invalid-created-datetime": "Onjuiste tijd van aanmaken.",
+ "change-memo-created-time": "Tijd van aanmaken wijzigen",
+ "memo-not-found": "Memo niet gevonden.",
+ "fill-all": "Vul alsjeblieft alle velden in.",
+ "new-password-not-match": "Nieuwe wachtwoorden komen niet overeen.",
+ "image-load-failed": "Afbeelding laden mislukt",
+ "fill-form": "Vul alsjeblieft het formulier in.",
+ "login-failed": "Inloggen mislukt",
+ "signup-failed": "Registreren mislukt",
+ "user-not-found": "Gebruiker niet gevonden",
+ "password-changed": "Wachtwoord gewijzigd.",
+ "private-only": "Deze memo is alleen privé.",
+ "copied": "Gekopiëerd",
+ "succeed-copy-content": "Inhoud gekopiëerd naar klembord.",
+ "change-resource-filename": "Bestandsnaam van bron wijzigen",
+ "resource-filename-updated": "Bestandsnaam van bron gewijzigd.",
+ "invalid-resource-filename": "Onjuiste bestandsnaam.",
+ "click-to-save-the-image": "Klik om de afbeelding op te slaan",
+ "generating-the-screenshot": "Screenshot genereren..."
+ }
+}
diff --git a/web/src/pages/Auth.tsx b/web/src/pages/Auth.tsx
index 396fc9e0..71d247f2 100644
--- a/web/src/pages/Auth.tsx
+++ b/web/src/pages/Auth.tsx
@@ -176,6 +176,7 @@ const Auth = () => {
+
diff --git a/web/src/types/i18n.d.ts b/web/src/types/i18n.d.ts
index 1a750816..cf1c3128 100644
--- a/web/src/types/i18n.d.ts
+++ b/web/src/types/i18n.d.ts
@@ -1 +1 @@
-type Locale = "en" | "zh" | "vi" | "fr" | "sv" | "de";
+type Locale = "en" | "zh" | "vi" | "fr" | "nl" | "sv" | "de";