Add Dutch translation (nl) (#1682)

* Dutch language files for Ruby code

 * Created RoR translation ymls:
   * config/locales/devise.nl.yml
   * config/locales/doorkeeper.nl.yml
   * config/locales/nl.yml
   * config/locales/simple_form.nl.yml

 * Modified RoR config and helper
   * app/helpers/settings_helper.rb
   * config/application.rb

* Dutch language javascript locale

 * Created javascript locale files:
   * app/assets/javascripts/components/locales/index.jsx
   * app/assets/javascripts/components/locales/nl.jsx

 * Reference the newly created locale files:
   * app/assets/javascripts/components/containers/mastodon.jsx

* Fix syntax error in locale file (nl)

* Fix missing translate in js locale (nl)

* Convert all ruby Dutch locale (nl) file to utf8

Fix yml conversion issues.

* Fix duplicated key in devise.nl.yml

* Fix indentation error in doorkeeper.nl.yml
This commit is contained in:
Koala Yeung 2017-04-13 22:02:23 +08:00 committed by Eugen
parent edefcfcf42
commit 1206627c59
9 changed files with 473 additions and 1 deletions

View File

@ -48,6 +48,7 @@ import fr from 'react-intl/locale-data/fr';
import hu from 'react-intl/locale-data/hu'; import hu from 'react-intl/locale-data/hu';
import ja from 'react-intl/locale-data/ja'; import ja from 'react-intl/locale-data/ja';
import pt from 'react-intl/locale-data/pt'; import pt from 'react-intl/locale-data/pt';
import nl from 'react-intl/locale-data/nl';
import no from 'react-intl/locale-data/no'; import no from 'react-intl/locale-data/no';
import ru from 'react-intl/locale-data/ru'; import ru from 'react-intl/locale-data/ru';
import uk from 'react-intl/locale-data/uk'; import uk from 'react-intl/locale-data/uk';
@ -76,6 +77,7 @@ addLocaleData([
...hu, ...hu,
...ja, ...ja,
...pt, ...pt,
...nl,
...no, ...no,
...ru, ...ru,
...uk, ...uk,

View File

@ -3,6 +3,7 @@ import de from './de';
import es from './es'; import es from './es';
import hu from './hu'; import hu from './hu';
import fr from './fr'; import fr from './fr';
import nl from './nl';
import no from './no'; import no from './no';
import pt from './pt'; import pt from './pt';
import uk from './uk'; import uk from './uk';
@ -19,6 +20,7 @@ const locales = {
es, es,
hu, hu,
fr, fr,
nl,
no, no,
pt, pt,
uk, uk,

View File

@ -0,0 +1,68 @@
const nl = {
"column_back_button.label": "terug",
"lightbox.close": "Sluiten",
"loading_indicator.label": "Laden...",
"status.mention": "Vermeld @{name}",
"status.delete": "Verwijder",
"status.reply": "Reageer",
"status.reblog": "Boost",
"status.favourite": "Favoriet",
"status.reblogged_by": "{name} boostte",
"status.sensitive_warning": "Gevoelige inhoud",
"status.sensitive_toggle": "Klik om te zien",
"video_player.toggle_sound": "Geluid omschakelen",
"account.mention": "Vermeld @{name}",
"account.edit_profile": "Bewerk profiel",
"account.unblock": "Deblokkeer @{name}",
"account.unfollow": "Ontvolg",
"account.block": "Blokkeer @{name}",
"account.follow": "Volg",
"account.posts": "Berichten",
"account.follows": "Volgt",
"account.followers": "Volgers",
"account.follows_you": "Volgt jou",
"account.requested": "Wacht op goedkeuring",
"getting_started.heading": "Beginnen",
"getting_started.about_addressing": "Je kunt mensen volgen als je hun gebruikersnaam en het domein van hun server kent, door het e-mailachtige adres in het zoekscherm in te voeren.",
"getting_started.about_shortcuts": "Als de gezochte gebruiker op hetzelfde domein zit als jijzelf, is invoeren van de gebruikersnaam genoeg. Dat geldt ook als je mensen in de statussen wilt vermelden.",
"getting_started.open_source_notice": "Mastodon is open source software. Je kunt bijdragen of problemen melden op GitHub via {github}. {apps}.",
"column.home": "Thuis",
"column.community": "Lokale tijdlijn",
"column.public": "Federatietijdlijn",
"column.notifications": "Meldingen",
"tabs_bar.compose": "Schrijven",
"tabs_bar.home": "Thuis",
"tabs_bar.mentions": "Vermeldingen",
"tabs_bar.public": "Federatietijdlijn",
"tabs_bar.notifications": "Meldingen",
"compose_form.placeholder": "Waar ben je mee bezig?",
"compose_form.publish": "Toot",
"compose_form.sensitive": "Markeer media als gevoelig",
"compose_form.spoiler": "Verberg tekst achter waarschuwing",
"compose_form.private": "Mark als privé",
"compose_form.privacy_disclaimer": "Je besloten status wordt afgeleverd aan vermelde gebruikers op {domains}. Vertrouw je {domainsCount, plural, one {that server} andere {those servers}}? Privé plaatsen werkt alleen op Mastodon servers. Als {domains} {domainsCount, plural, een {is not a Mastodon instance} andere {are not Mastodon instances}}, dan wordt er geen indicatie gegeven dat he bericht besloten is, waardoor het kan worden geboost of op andere manier zichtbaar worden voor niet bedoelde lezers.",
"compose_form.unlisted": "Niet tonen op openbare tijdlijnen",
"navigation_bar.edit_profile": "Bewerk profiel",
"navigation_bar.preferences": "Voorkeuren",
"navigation_bar.community_timeline": "Lokale tijdlijn",
"navigation_bar.public_timeline": "Federatietijdlijn",
"navigation_bar.logout": "Uitloggen",
"reply_indicator.cancel": "Annuleren",
"search.placeholder": "Zoeken",
"search.account": "Account",
"search.hashtag": "Hashtag",
"upload_button.label": "Toevoegen media",
"upload_form.undo": "Ongedaan maken",
"notification.follow": "{name} volgde jou",
"notification.favourite": "{name} markeerde je status als favoriet",
"notification.reblog": "{name} boostte je status",
"notification.mention": "{name} vermeldde jou",
"notifications.column_settings.alert": "Desktopmeldingen",
"notifications.column_settings.show": "Tonen in kolom",
"notifications.column_settings.follow": "Nieuwe volgers:",
"notifications.column_settings.favourite": "Favoriten:",
"notifications.column_settings.mention": "Vermeldingen:",
"notifications.column_settings.reblog": "Boosts:",
};
export default nl;

View File

@ -8,6 +8,7 @@ module SettingsHelper
eo: 'Esperanto', eo: 'Esperanto',
fr: 'Français', fr: 'Français',
hu: 'Magyar', hu: 'Magyar',
nl: 'Nederlands',
no: 'Norsk', no: 'Norsk',
pt: 'Português', pt: 'Português',
fi: 'Suomi', fi: 'Suomi',

View File

@ -24,7 +24,6 @@ module Mastodon
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.available_locales = [ config.i18n.available_locales = [
:en, :en,
:bg, :bg,
@ -35,6 +34,7 @@ module Mastodon
:fr, :fr,
:hu, :hu,
:ja, :ja,
:nl,
:no, :no,
:pt, :pt,
:ru, :ru,

View File

@ -0,0 +1,59 @@
---
nl:
devise:
confirmations:
confirmed: 'Je account is bevestigd.'
send_instructions: 'Je ontvangt via e-mail instructies hoe je je account kan bevestigen.'
send_paranoid_instructions: 'Als je e-mailadres bestaat in de database, ontvang je via e-mail instructies hoe je je account kan bevestigen.'
failure:
already_authenticated: 'Je bent al ingelogd.'
unauthenticated: 'Je dient in te loggen of je in te schrijven.'
unconfirmed: 'Je dient eerst je account te bevestigen.'
locked: 'Je account is gelocked.'
invalid: 'Ongeldig e-mail of wachtwoord.'
invalid_token: 'Invalide authenticiteit token.'
timeout: 'Je sessie is verlopen, log a.u.b. opnieuw in.'
inactive: 'Je account is nog niet geactiveerd.'
last_attempt: 'Je hebt nog een poging over voordat je account wordt geblokkeerd.'
not_found_in_database: "Ongeldig e-mail of wachtwoord."
mailer:
confirmation_instructions:
subject: 'Bevestiging mailadres'
reset_password_instructions:
subject: 'Wachtwoord resetten'
unlock_instructions:
subject: 'Unlock instructies'
omniauth_callbacks:
success: 'Successvol aangemeld met je %{kind} account.'
failure: 'Kon je niet aanmelden met je %{kind} account, omdat "%{reason}".'
passwords:
no_token: 'Je kan deze pagina niet benaderen zonder een "wachtwoord reset e-mail"'
send_instructions: 'Je ontvangt via e-mail instructies hoe je je wachtwoord moet resetten.'
send_paranoid_instructions: 'Als je e-mailadres bestaat in de database, ontvang je via e-mail instructies hoe je je wachtwoord moet resetten.'
updated: 'Je wachtwoord is gewijzigd. Je bent nu ingelogd.'
updated_not_active: 'Je wachtwoord is gewijzigd.'
registrations:
signed_up_but_unconfirmed: 'Je ontvangt via e-mail instructies hoe je je account kunt activeren.'
signed_up_but_inactive: 'Je bent ingeschreven. Je kon alleen niet automatisch ingelogd worden omdat je account nog niet geactiveerd is.'
signed_up_but_locked: 'Je bent ingeschreven. Je kon alleen niet automatisch ingelogd worden omdat je account geblokkeerd is.'
signed_up: 'Je bent ingeschreven.'
update_needs_confirmation: 'Je hebt je e-mailadres succesvol gewijzigd, maar we moeten je nieuwe mailadres nog verifiëren. Controleer je e-mail en klik op de link in de mail om je mailadres te verifiëren.'
updated: 'Je account gegevens zijn opgeslagen.'
destroyed: 'Je account is verwijderd, wellicht tot ziens!'
sessions:
signed_in: 'Je bent succesvol ingelogd.'
signed_out: 'Je bent succesvol uitgelogd.'
unlocks:
send_instructions: 'Je ontvangt via e-mail instructies hoe je je account kan unlocken.'
send_paranoid_instructions: 'Als je e-mailadres bestaat in de database, ontvang je via e-mail instructies hoe je je account kan unlocken.'
unlocked: 'Je account is ge-unlocked. Je kan nu weer inloggen.'
errors:
messages:
already_confirmed: "is reeds bevestigd"
confirmation_period_expired: "moet worden bevestigd binnen %{period}, probeer het a.u.b. nog een keer"
expired: "is verlopen, vraag een nieuwe aan"
not_found: "niet gevonden"
not_locked: "is niet gesloten"
not_saved:
one: '1 fout blokkeerde het opslaan van deze %{resource}:'
other: "%{count} fouten blokkeerden het opslaan van deze %{resource}:"

View File

@ -0,0 +1,129 @@
nl:
activerecord:
attributes:
doorkeeper/application:
name: 'Naam'
redirect_uri: 'Redirect URI'
scopes: 'Scopes'
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
fragment_present: 'kan geen fragment bevatten.'
invalid_uri: 'moet een geldige URI zijn.'
relative_uri: 'moet een absolute URI zijn.'
secured_uri: 'moet een HTTPS/SSL URI zijn.'
doorkeeper:
applications:
confirmations:
destroy: 'Weet je het zeker?'
buttons:
edit: 'Bewerken'
destroy: 'Verwijderen'
submit: 'Opslaan'
cancel: 'Annuleren'
authorize: 'Autoriseren'
form:
error: 'Oops! Controleer het formulier op fouten'
help:
redirect_uri: 'Gebruik één regel per URI. '
native_redirect_uri: 'Gebruik %{native_redirect_uri} voor lokale tests'
scopes: 'Scheid scopes met spaties. Laat leeg om de standaard scopes te gebruiken.'
edit:
title: 'Bewerk applicatie'
index:
title: 'Jouw applicaties'
new: 'Nieuwe applicatie'
name: 'Naam'
callback_url: 'Callback URL'
new:
title: 'Nieuwe applicatie'
show:
title: 'Applicatie: %{name}'
application_id: 'Applicatie Id'
secret: 'Secret'
scopes: 'Scopes'
callback_urls: 'Callback urls'
actions: 'Acties'
authorizations:
buttons:
authorize: 'Autoriseren'
deny: 'Weigeren'
error:
title: 'Er is een fout opgetreden'
new:
title: 'Autorisatie vereist'
prompt: '%{client_name} autoriseren om uw account te gebruiken?'
able_to: 'Deze applicatie zal in staat zijn om'
show:
title: 'Autorisatie code'
authorized_applications:
confirmations:
revoke: 'Weet je het zeker?'
buttons:
revoke: 'Intrekken'
index:
title: 'Jouw geautoriseerde applicaties'
application: 'Applicatie'
created_at: 'Aangemaakt op'
date_format: '%d-%m-%Y %H:%M:%S'
errors:
messages:
# Common error messages
invalid_request: 'Het verzoek mist een vereiste parameter, bevat een niet-ondersteunde parameter waarde of is anderszins onjuist.'
invalid_redirect_uri: 'De opgegeven redirect uri is niet geldig.'
unauthorized_client: 'De client is niet bevoegd om dit verzoek met deze methode uit te voeren.'
access_denied: 'De resource eigenaar of autorisatie-server weigerde het verzoek.'
invalid_scope: 'De opgevraagde scope is niet geldig, onbekend of onjuist.'
server_error: 'De autorisatieserver is een onverwachte voorwaarde tegengekomen die het verzoek verhinderd.'
temporarily_unavailable: 'De autorisatieserver is momenteel niet in staat het verzoek te behandelen als gevolg van een tijdelijke overbelasting of onderhoud aan de server.'
#configuration error messages
credential_flow_not_configured: 'Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.'
resource_owner_authenticator_not_configured: 'Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.'
# Access grant errors
unsupported_response_type: 'De autorisatieserver ondersteund dit response type niet'
# Access token errors
invalid_client: 'Client verificatie is mislukt door onbekende klant, geen client authenticatie opgegeven, of een niet-ondersteunde authenticatie methode.'
invalid_grant: 'De verstrekte autorisatie is ongeldig, verlopen, ingetrokken, komt niet overeen met de redirect uri die is opgegeven, of werd uitgegeven aan een andere klant.'
unsupported_grant_type: 'Het type autorisatie is niet ondersteund door de autorisatieserver'
# Password Access token errors
invalid_resource_owner: 'De verstrekte resource eigenaar gegevens zijn niet geldig of de resource eigenaar kan niet worden gevonden'
invalid_token:
revoked: "Het toegangstoken is geweigerd"
expired: "Het toegangstoken is verlopen"
unknown: "Het toegangstoken is ongeldig"
flash:
applications:
create:
notice: 'Applicatie aangemaakt.'
destroy:
notice: 'Applicatie verwijderd.'
update:
notice: 'Applicatie bewerkt.'
authorized_applications:
destroy:
notice: 'Applicatie ingetrokken.'
layouts:
admin:
nav:
oauth2_provider: 'OAuth2 Provider'
applications: 'Applicaties'
home: 'Home'
application:
title: 'OAuth autorisatie vereist'
scopes:
follow: volg, blokkeer, deblokkeer en stop volgen accounts
read: lees je accountgegevens
write: plaatsen namens jou

165
config/locales/nl.yml Normal file
View File

@ -0,0 +1,165 @@
---
nl:
about:
about_mastodon: Mastodon is een <em>vrije, gratis, open-source</em> sociaal netwerk. E <em>gedecentraliseerd</em> alternatief voor commerciële platforms, het voorkomt de risico's van een enkel bedrijf dat jouw communicatie monopoliseert. Kies een server die je vertrouwt &mdash; welke je ook kiest, je kunt met iedere ander communiceren. Iedereen kan een eigen Mastodon server draaien en naadloos deelnemen in het <em>sociale netwerk</em>.
about_this: Over deze server
apps: Apps
business_email: 'Zakelijke e-mailadres:'
closed_registrations: Registrateren op deze server is momenteel uitgeschakeld.
contact: Contact
description_headline: Wat is %{domain}?
domain_count_after: andere servers
domain_count_before: Verbonden met
features:
api: Open API voor apps en services
blocks: Rijke blokkeer- en dempingshulpmiddelen
characters: 500 tekens per bericht
chronology: Tijdlijnen zijn chronologisch
ethics: 'Ethisch design: geen ads, geen spionage'
gifv: GIFV sets en korte video's
privacy: Granulaire, privacy instellingen per bericht
public: Openbare tijdlijnen
features_headline: Wat maak Mastodon anders
get_started: Beginnen
links: Links
other_instances: Andere servers
source_code: Source code
status_count_after: statussen
status_count_before: Wie schreef
terms: Voorw
user_count_after: gebruikers
user_count_before: Thuis naar
accounts:
follow: Volg
followers: Volgens
following: Volgend
nothing_here: Hier is niets!
people_followed_by: Mensen die %{name} volgt
people_who_follow: Mensen die %{name} volgen
posts: Berichten
remote_follow: Externe volg
unfollow: Ontvolgen
application_mailer:
settings: 'Wijzigen e-mailvoorkeuren: %{link}'
signature: Mastodon meldingen van %{instance}
view: 'Bekijk:'
applications:
invalid_url: De opgegevens URL is ongeldig
auth:
change_password: Inloggegevens
didnt_get_confirmation: Ontving je geen bevestigingsinstructies?
forgot_password: Wachtwoord vergeten?
login: Inloggen
logout: Uitloggen
register: Registreren
resend_confirmation: Herstuur de bevestigingsinstructies
reset_password: Herstel wachtwoord
set_new_password: Instellen nieuw wachtwoord
authorize_follow:
error: Helaas, er was een fout bij het opzoeken van het externe account
follow: Volgen
prompt_html: 'Je (<strong>%{self}</strong>) hebt volgen aangevraagd:'
title: Volg %{acct}
datetime:
distance_in_words:
about_x_hours: "%{count}u"
about_x_months: "%{count}ma"
about_x_years: "%{count}j"
almost_x_years: "%{count}j"
half_a_minute: Net
less_than_x_minutes: "%{count}m"
less_than_x_seconds: Net
over_x_years: "%{count}j"
x_days: "%{count}d"
x_minutes: "%{count}m"
x_months: "%{count}ma"
x_seconds: "%{count}s"
exports:
blocks: Je blokkeert
csv: CSV
follows: Je volgt
storage: Media-opslag
generic:
changes_saved_msg: Wijzigingen succesvol opgeslagen!
powered_by: powered by %{link}
save_changes: Wijziginen opslaan
validation_errors:
one: Er is iets niet helemaal goed! Bekijk onderstaande fout
other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten
imports:
preface: Je kunt bepaalde gegevens, zoals de mensen die je volgt of blokkeert, importeren voor je account op deze server, als ze zijn geëxporteerd op een andere server.
success: Je gegevens zijn succesvol ge-upload en wordt binnenkort verwerkt
types:
blocking: Blokkadelijst
following: Volglijst
upload: Uploaden
landing_strip_html: <strong>%{name}</strong> is een gebruiker op <strong>%{domain}</strong>. Je kunt deze volgen of ermee interacteren als je ergens in deze fediverse een account hebt. Als he dat niet hebt, kun je je <a href="%{sign_up_path}">hier aanmelden</a>.
notification_mailer:
digest:
body: 'Hier is een korte samenvatting van wat je hebt gemist op %{instance} sinds je laatste bezoek op %{since}:'
mention: "%{name} vermeldde je in:"
new_followers_summary:
one: Je hebt een nieuwe volger! Hoera!
other: Je hebt %{count} nieuwe volgers! Prachtig!
subject:
one: "1 nieuwe melding sinds je laatste bezoek \U0001F418"
other: "%{count} nieuwe meldingen sinds je laatste bezoek \U0001F418"
favourite:
body: 'Je status werd als favoriet gemarkeerd door %{name}:'
subject: "%{name} markeerde je status als favouriet"
follow:
body: "%{name} volgt je nu!"
subject: "%{name} volgt je nu"
follow_request:
body: "%{name} wil je graag volgend"
subject: 'Volgen in afwachting: %{name}'
mention:
body: 'Je werd door %{name} vermeld in:'
subject: Je werd vermeld door %{name}
reblog:
body: 'Je status werd geboost door %{name}:'
subject: "%{name} booste je status"
pagination:
next: Volgende
prev: Vorige
remote_follow:
acct: Geef je gebruikersnaam@domein op waarvandaan je wilt volgen
missing_resource: Kon geen de vereiste doorverwijszings-URL voor je account niet vinden
proceed: Ga door om te volgen
prompt: 'Je gaat volgen:'
settings:
authorized_apps: Geautoriseerde
back: Terug naar Mastodon
edit_profile: Bewerk profiel
export: Gegevensexport
import: Import
preferences: Voorkeuren
settings: Instellingen
two_factor_auth: Twe-factor authenticatie
statuses:
open_in_web: Openen in web
over_character_limit: Tekenlimiet van %{max} overschreden
show_more: Toon meer
visibilities:
private: Toon alleen aan volgers
public: Openbaar
unlisted: Openbaar, maar niet tonen op openbare tijdlijn
stream_entries:
click_to_show: Klik om te tonen
reblogged: boostte
sensitive_content: Gevoelige inhoud
time:
formats:
default: "%b %d, %J, %U:%M"
two_factor_auth:
description_html: Als je <strong>twee-factor authenticatie</strong> instelt, kun je alleen inloggen als je je mobiele telefoon bij je hebt, waarmee je de in te voeren tokens genereert.
disable: Uitschakelen
enable: Inschakelen
instructions_html: "<strong>Scan deze QR-code in Google Authenticator of een soortgelijke app op je mobiele telefoon</strong>. Van nu af aan creëert deze app tokens die je bij inloggen moet invoeren."
plaintext_secret_html: 'Gewone-tekst geheim: <samp>%{secret}</samp>'
warning: Als je nu geen authenticator app kunt installeren, moet je "Uitschakelen" kiezen of je kunt niet meer inloggen.
users:
invalid_email: Het e-mailadres is ongeldig
invalid_otp_token: Ongeldige twe-factor code
will_paginate:
page_gap: "&hellip;"

View File

@ -0,0 +1,46 @@
---
nl:
simple_form:
hints:
defaults:
avatar: PNG, GIF of JPG. Maximaal 2MB. Wordt teruggeschaald naar 120x120px
display_name: Maximaal 30 tekens
header: PNG, GIF of JPG. Maximaal 2MB. Wordt teruggeschaald naar 700x335px
locked: Vereist dat je handmatig volgers accepteert en stelt standaard plaatsen berichten privacy in op alleen-volgers
note: Maximaal 160 characters
imports:
data: CSV file geëxporteerd van een andere Mastodon server
labels:
defaults:
avatar: Avatar
confirm_new_password: Bevestig nieuw wachtwoord
confirm_password: Bevestig wachtwoord
current_password: Huidige wachtwoord
data: Gegevens
display_name: Weergavenaam
email: E-mailadres
header: Kop
locale: Taal
locked: Maak account besloten
new_password: Nieuwe wachtwoord
note: Bio
otp_attempt: Twee-factor code
password: Wachtwoord
setting_default_privacy: Berichten privacy
type: Import type
username: gebruikersnaam
interactions:
must_be_follower: Blokkeermeldingen van niet-volgers
must_be_following: Blokkeer meldingen van mensen die je niet volgt
notification_emails:
digest: Verstuur samenvattingse-mails
favourite: Verstuur een e-mail wanneer iemand je status als favoriet markeert
follow: Verstuur een e-mail wanneer iemand je volgt
follow_request: Verstuur een e-mail wanneer iemand je wil volgen
mention: Verstuur een e-mail wanneer iemand je vermeld
reblog: Verstuur een e-mail wanneer iemand je status boost
'no': 'Nee'
required:
mark: "*"
text: vereist
'yes': 'Ja'