diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index 554279d..79b4b61 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -24,7 +24,7 @@ class MessagesController < ApplicationController
verify :method => :post, :only => [ :reply, :destroy ], :redirect_to => { :action => :show }
verify :xhr => true, :only => :quote
-
+ helper :watchers
helper :attachments
include AttachmentsHelper
diff --git a/app/models/message.rb b/app/models/message.rb
index 80df7a3..f1cb2d0 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -33,11 +33,14 @@ class Message < ActiveRecord::Base
{:id => o.parent_id, :anchor => "message-#{o.id}"})}
acts_as_activity_provider :find_options => {:include => [{:board => :project}, :author]}
+ acts_as_watchable
attr_protected :locked, :sticky
validates_presence_of :subject, :content
validates_length_of :subject, :maximum => 255
+ after_create :add_author_as_watcher
+
def validate_on_create
# Can not reply to a locked topic
errors.add_to_base 'Topic is locked' if root.locked? && self != root
@@ -68,4 +71,10 @@ class Message < ActiveRecord::Base
def project
board.project
end
+
+ private
+
+ def add_author_as_watcher
+ Watcher.create(:watchable => self.root, :user => author)
+ end
end
diff --git a/app/models/message_observer.rb b/app/models/message_observer.rb
index 0439881..d37b538 100644
--- a/app/models/message_observer.rb
+++ b/app/models/message_observer.rb
@@ -17,8 +17,9 @@
class MessageObserver < ActiveRecord::Observer
def after_create(message)
- # send notification to the authors of the thread
- recipients = ([message.root] + message.root.children).collect {|m| m.author.mail if m.author && m.author.active?}
+ recipients = []
+ # send notification to the topic watchers
+ recipients += message.root.watcher_recipients
# send notification to the board watchers
recipients += message.board.watcher_recipients
# send notification to project members who want to be notified
diff --git a/app/views/messages/show.rhtml b/app/views/messages/show.rhtml
index c24be7a..31696d5 100644
--- a/app/views/messages/show.rhtml
+++ b/app/views/messages/show.rhtml
@@ -2,6 +2,7 @@
link_to(h(@board.name), {:controller => 'boards', :action => 'show', :project_id => @project, :id => @board}) %>
+ <%= watcher_tag(@topic, User.current) %>
<%= link_to_remote_if_authorized l(:button_quote), { :url => {:action => 'quote', :id => @topic} }, :class => 'icon icon-comment' %>
<%= link_to_if_authorized l(:button_edit), {:action => 'edit', :id => @topic}, :class => 'icon icon-edit' %>
<%= link_to_if_authorized l(:button_delete), {:action => 'destroy', :id => @topic}, :method => :post, :confirm => l(:text_are_you_sure), :class => 'icon icon-del' %>
diff --git a/db/migrate/098_set_topic_authors_as_watchers.rb b/db/migrate/098_set_topic_authors_as_watchers.rb
new file mode 100644
index 0000000..5bc41fb
--- /dev/null
+++ b/db/migrate/098_set_topic_authors_as_watchers.rb
@@ -0,0 +1,14 @@
+class SetTopicAuthorsAsWatchers < ActiveRecord::Migration
+ def self.up
+ # Sets active users who created/replied a topic as watchers of the topic
+ # so that the new watch functionality at topic level doesn't affect notifications behaviour
+ Message.connection.execute("INSERT INTO watchers (watchable_type, watchable_id, user_id)" +
+ " SELECT DISTINCT 'Message', COALESCE(messages.parent_id, messages.id), messages.author_id FROM messages, users" +
+ " WHERE messages.author_id = users.id AND users.status = 1")
+ end
+
+ def self.down
+ # Removes all message watchers
+ Watcher.delete_all("watchable_type = 'Message'")
+ end
+end
diff --git a/extra/svn/reposman.rb b/extra/svn/reposman.rb
index 0e1c757..b7aa2a4 100755
--- a/extra/svn/reposman.rb
+++ b/extra/svn/reposman.rb
@@ -90,9 +90,10 @@ $test = false
$force = false
$scm = 'Subversion'
-def log(text,level=0, exit=false)
+def log(text, options={})
+ level = options[:level] || 0
puts text unless $quiet or level > $verbose
- exit 1 if exit
+ exit 1 if options[:exit]
end
def system_or_raise(command)
@@ -112,7 +113,7 @@ module SCM
Dir.mkdir path
Dir.chdir(path) do
system_or_raise "git --bare init --shared"
- system_or_raise "git-update-server-info"
+ system_or_raise "git update-server-info"
end
end
end
@@ -126,7 +127,7 @@ begin
when '--redmine-host'; $redmine_host = arg.dup
when '--owner'; $svn_owner = arg.dup; $use_groupid = false;
when '--url'; $svn_url = arg.dup
- when '--scm'; $scm = arg.dup.capitalize; log("Invalid SCM: #{$scm}", 0, true) unless SUPPORTED_SCM.include?($scm)
+ when '--scm'; $scm = arg.dup.capitalize; log("Invalid SCM: #{$scm}", :exit => true) unless SUPPORTED_SCM.include?($scm)
when '--command'; $command = arg.dup
when '--verbose'; $verbose += 1
when '--test'; $test = true
@@ -149,7 +150,7 @@ if $command.nil?
begin
scm_module = SCM.const_get($scm)
rescue
- log("Please use --command option to specify how to create a #{$scm} repository.", 0, true)
+ log("Please use --command option to specify how to create a #{$scm} repository.", :exit => true)
end
end
@@ -160,10 +161,10 @@ if ($redmine_host.empty? or $repos_base.empty?)
end
unless File.directory?($repos_base)
- log("directory '#{$repos_base}' doesn't exists", 0, true)
+ log("directory '#{$repos_base}' doesn't exists", :exit => true)
end
-log("querying Redmine for projects...", 1);
+log("querying Redmine for projects...", :level => 1);
$redmine_host.gsub!(/^/, "http://") unless $redmine_host.match("^https?://")
$redmine_host.gsub!(/\/$/, '')
@@ -173,16 +174,16 @@ wsdl_url = "#{$redmine_host}/sys/service.wsdl";
begin
soap = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver
rescue => e
- log("Unable to connect to #{wsdl_url} : #{e}", 0, true)
+ log("Unable to connect to #{wsdl_url} : #{e}", :exit => true)
end
projects = soap.ProjectsWithRepositoryEnabled
if projects.nil?
- log('no project found, perhaps you forgot to "Enable WS for repository management"', 0, true)
+ log('no project found, perhaps you forgot to "Enable WS for repository management"', :exit => true)
end
-log("retrieved #{projects.size} projects", 1)
+log("retrieved #{projects.size} projects", :level => 1)
def set_owner_and_rights(project, repos_path, &block)
if RUBY_PLATFORM =~ /mswin/
@@ -209,7 +210,7 @@ def owner_name(file)
end
projects.each do |project|
- log("treating project #{project.name}", 1)
+ log("treating project #{project.name}", :level => 1)
if project.identifier.empty?
log("\tno identifier for project #{project.name}")
@@ -219,7 +220,7 @@ projects.each do |project|
next;
end
- repos_path = $repos_base + "/" + project.identifier
+ repos_path = File.join($repos_base, project.identifier).gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR)
if File.directory?(repos_path)
@@ -247,7 +248,7 @@ projects.each do |project|
# if repository is already declared in redmine, we don't create
# unless user use -f with reposman
if $force == false and not project.repository.nil?
- log("\trepository for project #{project.identifier} already exists in Redmine", 1)
+ log("\trepository for project #{project.identifier} already exists in Redmine", :level => 1)
next
end
diff --git a/lang/da.yml b/lang/da.yml
index 2461d58..631d589 100644
--- a/lang/da.yml
+++ b/lang/da.yml
@@ -30,11 +30,11 @@ activerecord_error_too_long: er for lang
activerecord_error_too_short: er for kort
activerecord_error_wrong_length: har den forkerte længde
activerecord_error_taken: er allerede valgt
-activerecord_error_not_a_number: er ikke et nummer
+activerecord_error_not_a_number: er ikke et tal
activerecord_error_not_a_date: er en ugyldig dato
-activerecord_error_greater_than_start_date: skal være senere end start datoen
-activerecord_error_not_same_project: høre ikke til samme projekt
-activerecord_error_circular_dependency: Denne relation vil skabe et afhængigheds forhold
+activerecord_error_greater_than_start_date: skal være senere end startdatoen
+activerecord_error_not_same_project: hører ikke til samme projekt
+activerecord_error_circular_dependency: Denne relation vil skabe en cirkulær afhængighed
general_fmt_age: %d år
general_fmt_age_plural: %d år
@@ -46,7 +46,7 @@ general_text_No: 'Nej'
general_text_Yes: 'Ja'
general_text_no: 'nej'
general_text_yes: 'ja'
-general_lang_name: 'Danish (Dansk)'
+general_lang_name: 'Dansk'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: ISO-8859-1
@@ -55,56 +55,61 @@ general_day_names: Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag
general_first_day_of_week: '1'
notice_account_updated: Kontoen er opdateret.
-notice_account_invalid_creditentials: Ugyldig bruger og kodeord
+notice_account_invalid_creditentials: Forkert brugernavn eller kodeord
notice_account_password_updated: Kodeordet er opdateret.
notice_account_wrong_password: Forkert kodeord
-notice_account_register_done: Kontoen er oprettet. For at aktivere kontoen, ska du klikke på linket i den tilsendte email.
-notice_account_unknown_email: Ukendt bruger.
-notice_can_t_change_password: Denne konto benytter en ekstern sikkerheds godkendelse. Det er ikke muligt at skifte kodeord.
-notice_account_lost_email_sent: En email med instruktioner til at vælge et nyt kodeord er afsendt til dig.
+notice_account_register_done: Kontoen er oprettet. For at aktivere kontoen, skal du klikke på linket i den tilsendte e-mail.
+notice_account_unknown_email: Ukendt brugernavn.
+notice_can_t_change_password: Denne konto benytter en ekstern sikkerhedsgodkendelse. Det er ikke muligt at skifte kodeord.
+notice_account_lost_email_sent: En e-mail med instruktioner til at vælge et nyt kodeord er afsendt til dig.
notice_account_activated: Din konto er aktiveret. Du kan nu logge ind.
-notice_successful_create: Succesfuld oprettelsen.
-notice_successful_update: Succesfuld opdatering.
-notice_successful_delete: Succesfuld sletning.
+notice_successful_create: Oprettelse lykkedes.
+notice_successful_update: Opdatering lykkedes.
+notice_successful_delete: Sletning lykkedes.
notice_successful_connection: Succesfuld forbindelse.
-notice_file_not_found: Siden du forsøger at tilgå, eksisterer ikke eller er blevet fjernet.
+notice_file_not_found: Siden, du forsøger at tilgå, eksisterer ikke eller er blevet fjernet.
notice_locking_conflict: Data er opdateret af en anden bruger.
-notice_not_authorized: Du har ike adgang til denne side.
-notice_email_sent: En email er sendt til %s
-notice_email_error: En fejl opstod under afsendelse af email (%s)
-notice_feeds_access_key_reseted: Din RSS adgangs nøgle er nulstillet.
+notice_not_authorized: Du har ikke adgang til denne side.
+notice_email_sent: En e-mail er sendt til %s
+notice_email_error: En fejl opstod under afsendelse af e-mail (%s)
+notice_feeds_access_key_reseted: Din RSS-adgangsnøgle er nulstillet.
notice_failed_to_save_issues: "Det mislykkedes at gemme %d sage(r) på %d valgt: %s."
-notice_no_issue_selected: "Ingen sag er valgt! vælg venligst hvilke emner du vil rette."
-notice_account_pending: "Din konto er oprettet, og afventer administratorens godkendelse."
-notice_default_data_loaded: Default konfiguration er indlæst.
+notice_no_issue_selected: "Ingen sag er valgt! Vælg venligst, hvilke emner du vil rette."
+notice_account_pending: "Din konto er oprettet og afventer administratorens godkendelse."
+notice_default_data_loaded: Standardkonfiguration er indlæst.
+notice_unable_delete_version: Kan ikke slette version
-error_can_t_load_default_data: "Standard konfiguration kunne ikke indlæses: %s"
-error_scm_not_found: "Adgang og/eller revision blev ikke fundet i det valgte repository."
-error_scm_command_failed: "En fejl opstod under fobindelsen til det valgte repository: %s"
+error_can_t_load_default_data: "Standardkonfiguration kunne ikke indlæses: %s"
+error_scm_not_found: "Fil og/eller revision blev ikke fundet i det valgte filarkiv."
+error_scm_command_failed: "En fejl opstod under forbindelsen til det valgte filarkiv: %s"
+error_scm_annotate: "Filen findes ikke eller kan ikke annoteres."
+error_issue_not_found_in_project: 'Sagen blev ikke fundet eller tilhører ikke dette projekt'
-mail_subject_lost_password: Dit %s kodeord
+mail_subject_lost_password: Dit kodeord til %s
mail_body_lost_password: 'For at ændre dit kodeord, klik på dette link:'
-mail_subject_register: %s konto aktivering
+mail_subject_register: %s kontoaktivering
mail_body_register: 'For at aktivere din konto, klik på dette link:'
mail_body_account_information_external: Du kan bruge din "%s" konto til at logge ind.
-mail_body_account_information: Din konto information
-mail_subject_account_activation_request: %s konto aktivering
+mail_body_account_information: Din kontoinformation
+mail_subject_account_activation_request: %s kontoaktivering
mail_body_account_activation_request: 'En ny bruger (%s) er registreret. Godkend venligst kontoen:'
+mail_subject_reminder: "%d sag(er) har snart deadline"
+mail_body_reminder: "%d sag(er) der er tildelt dig har deadline i løbet af de kommende %d dage:"
gui_validation_error: 1 fejl
gui_validation_error_plural: %d fejl
field_name: Navn
field_description: Beskrivelse
-field_summary: Sammenfatning
+field_summary: Oversigt
field_is_required: Skal udfyldes
field_firstname: Fornavn
field_lastname: Efternavn
-field_mail: Email
+field_mail: E-mail
field_filename: Fil
field_filesize: Størrelse
field_downloads: Downloads
-field_author: Forfatter
+field_author: Opretter
field_created_on: Oprettet
field_updated_on: Opdateret
field_field_format: Format
@@ -112,7 +117,7 @@ field_is_for_all: For alle projekter
field_possible_values: Mulige værdier
field_regexp: Regulære udtryk
field_min_length: Minimum længde
-field_max_length: Maximal længde
+field_max_length: Maksimal længde
field_value: Værdi
field_category: Kategori
field_title: Titel
@@ -121,24 +126,24 @@ field_issue: Sag
field_status: Status
field_notes: Noter
field_is_closed: Sagen er lukket
-field_is_default: Standard værdi
+field_is_default: Standardværdi
field_tracker: Type
field_subject: Emne
field_due_date: Deadline
field_assigned_to: Tildelt til
field_priority: Prioritet
-field_fixed_version: Target version
+field_fixed_version: Planlagt version
field_user: Bruger
field_role: Rolle
field_homepage: Hjemmeside
field_is_public: Offentlig
field_parent: Underprojekt af
-field_is_in_chlog: Sager vist i ændringer
-field_is_in_roadmap: Sager vist i roadmap
-field_login: Login
-field_mail_notification: Email notifikationer
+field_is_in_chlog: Sager vist i ændringslog
+field_is_in_roadmap: Sager vist i plan
+field_login: Brugernavn
+field_mail_notification: E-mail-notifikationer
field_admin: Administrator
-field_last_login_on: Sidste forbindelse
+field_last_login_on: Sidst logget ind
field_language: Sprog
field_effective_date: Dato
field_password: Kodeord
@@ -149,71 +154,81 @@ field_type: Type
field_host: Vært
field_port: Port
field_account: Kode
-field_base_dn: Base DN
-field_attr_login: Login attribut
-field_attr_firstname: Fornavn attribut
-field_attr_lastname: Efternavn attribut
-field_attr_mail: Email attribut
-field_onthefly: løbende bruger oprettelse
+field_base_dn: Base-DN
+field_attr_login: Attribut for brugernavn
+field_attr_firstname: Attribut for fornavn
+field_attr_lastname: Attribut for efternavn
+field_attr_mail: Attribut for e-mail
+field_onthefly: Løbende brugeroprettelse
field_start_date: Start
-field_done_ratio: %% Færdig
-field_auth_source: Sikkerheds metode
-field_hide_mail: Skjul min email
+field_done_ratio: %% færdig
+field_auth_source: Godkendelsesmetode
+field_hide_mail: Skjul min e-mail
field_comments: Kommentar
field_url: URL
-field_start_page: Start side
+field_start_page: Startside
field_subproject: Underprojekt
field_hours: Timer
field_activity: Aktivitet
field_spent_on: Dato
-field_identifier: Identificering
+field_identifier: Identifikator
field_is_filter: Brugt som et filter
-field_issue_to_id: Beslægtede sag
+field_issue_to_id: Relateret sag
field_delay: Udsættelse
field_assignable: Sager kan tildeles denne rolle
field_redirect_existing_links: Videresend eksisterende links
-field_estimated_hours: Estimeret tid
+field_estimated_hours: Tidsestimat
field_column_names: Kolonner
-field_time_zone: Tids zone
+field_time_zone: Tidszone
field_searchable: Søgbar
-field_default_value: Standard værdi
+field_default_value: Standardværdi
+field_comments_sorting: Vis kommentarer
+field_parent_title: Forælderside
-setting_app_title: Applikations titel
-setting_app_subtitle: Applikations undertekst
-setting_welcome_text: Velkomst tekst
-setting_default_language: Standard sporg
-setting_login_required: Sikkerhed påkrævet
-setting_self_registration: Bruger oprettelse
-setting_attachment_max_size: Vedhæftede filers max størrelse
-setting_issues_export_limit: Sags eksporterings begrænsning
-setting_mail_from: Afsender email
-setting_bcc_recipients: Blind carbon copy modtager (bcc)
-setting_host_name: Værts navn
-setting_text_formatting: Tekst formattering
-setting_wiki_compression: Wiki historik komprimering
-setting_feeds_limit: Feed indholds begrænsning
-setting_autofetch_changesets: Automatisk hent commits
-setting_sys_api_enabled: Aktiver web service for automatisk repository administration
-setting_commit_ref_keywords: Reference nøgleord
-setting_commit_fix_keywords: Afslutnings nøgleord
+setting_app_title: Applikationens titel
+setting_app_subtitle: Applikationes undertitel
+setting_welcome_text: Velkomsttekst
+setting_default_language: Standardsprog
+setting_login_required: Indlogning påkrævet
+setting_self_registration: Brugeroprettelse
+setting_attachment_max_size: Maks. størrelse for vedhæftede filer
+setting_issues_export_limit: Maks. antal sager i eksport
+setting_mail_from: Afsender-e-mail
+setting_bcc_recipients: Blindkopimodtager (bcc)
+setting_host_name: Værtsnavn
+setting_text_formatting: Tekstformatering
+setting_wiki_compression: Komprimer wiki-historik
+setting_feeds_limit: Antal objekter i feeds
+setting_default_projects_public: Nye projekter er som standard offentlige
+setting_autofetch_changesets: Hent automatisk commits
+setting_sys_api_enabled: Aktiver webservice til versionsstyring
+setting_commit_ref_keywords: Nøgleord for sagsreferencer
+setting_commit_fix_keywords: Nøgleord for lukning af sager
setting_autologin: Autologin
-setting_date_format: Dato format
-setting_time_format: Tids format
-setting_cross_project_issue_relations: Tillad sags relationer på tværs af projekter
-setting_issue_list_default_columns: Standard kolonner på sags listen
-setting_repositories_encodings: Repository tegnsæt
-setting_emails_footer: Email fodnote
+setting_date_format: Datoformat
+setting_time_format: Tidsformat
+setting_cross_project_issue_relations: Tillad sagsrelationer på tværs af projekter
+setting_issue_list_default_columns: Standardkolonner på sagslisten
+setting_repositories_encodings: Filarkivtegnsæt
+setting_commit_logs_encoding: Tegnsæt for commitbeskeder
+setting_emails_footer: Sidefod i e-mail
setting_protocol: Protokol
-setting_per_page_options: Objekter pr. side indstillinger
-setting_user_format: Bruger visnings format
+setting_per_page_options: Valgmuligheder for antal objekter pr. side
+setting_user_format: Brugervisningsformat
+setting_activity_days_default: Antal dage der vises under projektaktivitet
+setting_display_subprojects_issues: Vis som standard sager for underprojekter på hovedprojektet
+setting_enabled_scm: Aktiveret versionsstyring
+setting_mail_handler_api_enabled: Aktiver redigering af sager via mail
+setting_mail_handler_api_key: API-nøgle
+setting_sequential_project_identifiers: Generer fortløbende identifikatorer
-project_module_issue_tracking: Sags søgning
-project_module_time_tracking: Tids styring
+project_module_issue_tracking: Sagssøgning
+project_module_time_tracking: Tidsregistrering
project_module_news: Nyheder
project_module_documents: Dokumenter
project_module_files: Filer
project_module_wiki: Wiki
-project_module_repository: Repository
+project_module_repository: Versionsstyring
project_module_boards: Opslagstavle
label_user: Bruger
@@ -225,16 +240,16 @@ label_project_plural: Projekter
label_project_all: Alle projekter
label_project_latest: Seneste projekter
label_issue: Sag
-label_issue_new: Opret sag
+label_issue_new: Ny sag
label_issue_plural: Sager
label_issue_view_all: Vis alle sager
label_issues_by: Sager fra %s
-label_issue_added: Sagen er oprettet
-label_issue_updated: Sagen er opdateret
+label_issue_added: Sag oprettet
+label_issue_updated: Sag opdateret
label_document: Dokument
label_document_new: Nyt dokument
label_document_plural: Dokumenter
-label_document_added: Dokument tilføjet
+label_document_added: Dokument oprettet
label_role: Rolle
label_role_plural: Roller
label_role_new: Ny rolle
@@ -246,20 +261,20 @@ label_tracker: Type
label_tracker_plural: Typer
label_tracker_new: Ny type
label_workflow: Arbejdsgang
-label_issue_status: Sags status
-label_issue_status_plural: Sags statuser
-label_issue_status_new: Ny status
-label_issue_category: Sags kategori
-label_issue_category_plural: Sags kategorier
+label_issue_status: Statuskode
+label_issue_status_plural: Statuskoder
+label_issue_status_new: Ny statuskode
+label_issue_category: Sagskategori
+label_issue_category_plural: Sagskategorier
label_issue_category_new: Ny kategori
label_custom_field: Brugerdefineret felt
-label_custom_field_plural: Brugerdefineret felt
+label_custom_field_plural: Brugerdefinerede felter
label_custom_field_new: Nyt brugerdefineret felt
label_enumerations: Værdier
label_enumeration_new: Ny værdi
label_information: Information
label_information_plural: Information
-label_please_login: Login
+label_please_login: Log venligst ind
label_register: Registrer
label_password_lost: Glemt kodeord
label_home: Forside
@@ -271,21 +286,23 @@ label_login: Log ind
label_logout: Log ud
label_help: Hjælp
label_reported_issues: Rapporterede sager
-label_assigned_to_me_issues: Sager tildelt til mig
-label_last_login: Sidste forbindelse
+label_assigned_to_me_issues: Sager tildelt mig
+label_last_login: Sidste indlogning
label_last_updates: Sidst opdateret
label_last_updates_plural: %d sidst opdateret
-label_registered_on: Registeret den
+label_registered_on: Oprettet den
label_activity: Aktivitet
+label_overall_activity: Al aktivitet
label_new: Ny
-label_logged_as: Registreret som
+label_logged_as: Logget ind som
label_environment: Miljø
-label_authentication: Sikkerhed
-label_auth_source: Sikkerheds metode
-label_auth_source_new: Ny sikkerheds metode
-label_auth_source_plural: Sikkerheds metoder
+label_authentication: Godkendelse
+label_auth_source: Godkendelsesmetode
+label_auth_source_new: Ny godkendelsemetode
+label_auth_source_plural: Godkendelsesmetoder
label_subproject_plural: Underprojekter
-label_min_max_length: Min - Max længde
+label_and_its_subprojects: Projektet %s og dets underprojekter
+label_min_max_length: Min.-maks.-længde
label_list: Liste
label_date: Dato
label_integer: Heltal
@@ -295,31 +312,31 @@ label_string: Tekst
label_text: Lang tekst
label_attribute: Attribut
label_attribute_plural: Attributter
-label_download: %d Download
-label_download_plural: %d Downloads
+label_download: %d download
+label_download_plural: %d downloads
label_no_data: Ingen data at vise
-label_change_status: Ændrings status
+label_change_status: Ændringsstatus
label_history: Historik
label_attachment: Fil
label_attachment_new: Ny fil
label_attachment_delete: Slet fil
label_attachment_plural: Filer
-label_file_added: Fil tilføjet
+label_file_added: Fil oprettet
label_report: Rapport
label_report_plural: Rapporter
label_news: Nyheder
-label_news_new: Tilføj nyheder
+label_news_new: Ny nyhed
label_news_plural: Nyheder
label_news_latest: Seneste nyheder
label_news_view_all: Vis alle nyheder
-label_news_added: Nyhed tilføjet
+label_news_added: Nyhed oprettet
label_change_log: Ændringer
label_settings: Indstillinger
label_overview: Oversigt
label_version: Version
label_version_new: Ny version
label_version_plural: Versioner
-label_confirmation: Bekræftigelser
+label_confirmation: Bekræftelser
label_export_to: Eksporter til
label_read: Læs...
label_public_projects: Offentlige projekter
@@ -330,15 +347,15 @@ label_closed_issues_plural: lukkede
label_total: Total
label_permissions: Rettigheder
label_current_status: Nuværende status
-label_new_statuses_allowed: Ny status tilladt
+label_new_statuses_allowed: Tilladte nye statuskoder
label_all: alle
label_none: intet
label_nobody: ingen
label_next: Næste
-label_previous: Forrig
+label_previous: Forrige
label_used_by: Brugt af
label_details: Detaljer
-label_add_note: Tilføj en note
+label_add_note: Ny note
label_per_page: Pr. side
label_calendar: Kalender
label_months_from: måneder frem
@@ -350,11 +367,11 @@ label_personalize_page: Tilret denne side
label_comment: Kommentar
label_comment_plural: Kommentarer
label_comment_add: Tilføj en kommentar
-label_comment_added: Kommentaren er tilføjet
+label_comment_added: Kommentar tilføjet
label_comment_delete: Slet kommentar
-label_query: Brugerdefineret forespørgsel
-label_query_plural: Brugerdefinerede forespørgsler
-label_query_new: Ny forespørgsel
+label_query: Brugerdefineret søgning
+label_query_plural: Brugerdefinerede søgning
+label_query_new: Ny søgning
label_filter_add: Tilføj filter
label_filter_plural: Filtre
label_equals: er
@@ -362,32 +379,34 @@ label_not_equals: er ikke
label_in_less_than: er mindre end
label_in_more_than: er større end
label_in: indeholdt i
-label_today: idag
+label_today: i dag
label_all_time: altid
-label_yesterday: igår
+label_yesterday: i går
label_this_week: denne uge
label_last_week: sidste uge
label_last_n_days: sidste %d dage
label_this_month: denne måned
label_last_month: sidste måned
label_this_year: dette år
-label_date_range: Dato interval
+label_date_range: Datointerval
label_less_than_ago: mindre end dage siden
label_more_than_ago: mere end dage siden
label_ago: days siden
label_contains: indeholder
-label_not_contains: ikke indeholder
+label_not_contains: indeholder ikke
label_day_plural: dage
-label_repository: Repository
-label_repository_plural: Repositories
+label_repository: Versionsstyring
+label_repository_plural: Versionsstyring
label_browse: Gennemse
label_modification: %d ændring
label_modification_plural: %d ændringer
label_revision: Revision
label_revision_plural: Revisioner
label_associated_revisions: Tilnyttede revisioner
-label_added: tilføjet
+label_added: oprettet
label_modified: ændret
+label_copied: kopieret
+label_renamed: omdøbt
label_deleted: slettet
label_latest_revision: Seneste revision
label_latest_revision_plural: Seneste revisioner
@@ -398,47 +417,48 @@ label_sort_highest: Flyt til toppen
label_sort_higher: Flyt op
label_sort_lower: Flyt ned
label_sort_lowest: Flyt til bunden
-label_roadmap: Roadmap
+label_roadmap: Plan
label_roadmap_due_in: Deadline
label_roadmap_overdue: %s forsinket
-label_roadmap_no_issues: Ingen sager til denne version
+label_roadmap_no_issues: Ingen sager i denne version
label_search: Søg
label_result_plural: Resultater
label_all_words: Alle ord
label_wiki: Wiki
-label_wiki_edit: Wiki ændring
-label_wiki_edit_plural: Wiki ændringer
-label_wiki_page: Wiki side
-label_wiki_page_plural: Wiki sider
+label_wiki_edit: Wikiændring
+label_wiki_edit_plural: Wikiændringer
+label_wiki_page: Wikiside
+label_wiki_page_plural: Wikisider
label_index_by_title: Indhold efter titel
label_index_by_date: Indhold efter dato
label_current_version: Nuværende version
label_preview: Forhåndsvisning
label_feed_plural: Feeds
-label_changes_details: Detaljer for alle ænringer
-label_issue_tracking: Sags søgning
-label_spent_time: Brugt tid
+label_changes_details: Detaljer for alle ændringer
+label_issue_tracking: Sagsstyring
+label_spent_time: Tidsforbrug
label_f_hour: %.2f time
label_f_hour_plural: %.2f timer
-label_time_tracking: Tids styring
+label_time_tracking: Tidsregistrering
label_change_plural: Ændringer
label_statistics: Statistik
label_commits_per_month: Commits pr. måned
label_commits_per_author: Commits pr. bruger
-label_view_diff: Vis forskellighed
+label_view_diff: Vis ændringer
label_diff_inline: inline
-label_diff_side_by_side: side ved side
+label_diff_side_by_side: side om side
label_options: Optioner
label_copy_workflow_from: Kopier arbejdsgang fra
-label_permissions_report: Godkendelses rapport
+label_permissions_report: Rettighedsoversigt
label_watched_issues: Overvågede sager
label_related_issues: Relaterede sager
-label_applied_status: Anvendte statuser
+label_applied_status: Tildelt status
label_loading: Indlæser...
label_relation_new: Ny relation
label_relation_delete: Slet relation
-label_relates_to: relaterer til
-label_duplicates: kopierer
+label_relates_to: er relateret til
+label_duplicates: dublerer
+label_duplicated_by: dubleret af
label_blocks: blokerer
label_blocked_by: blokeret af
label_precedes: kommer før
@@ -447,7 +467,7 @@ label_end_to_start: slut til start
label_end_to_end: slut til slut
label_start_to_start: start til start
label_start_to_end: start til slut
-label_stay_logged_in: Forblin indlogget
+label_stay_logged_in: Forbliv indlogget
label_disabled: deaktiveret
label_show_completed_versions: Vis færdige versioner
label_me: mig
@@ -456,11 +476,11 @@ label_board_new: Nyt forum
label_board_plural: Fora
label_topic_plural: Emner
label_message_plural: Beskeder
-label_message_last: Sidste besked
+label_message_last: Seneste besked
label_message_new: Ny besked
-label_message_posted: Besked tilføjet
+label_message_posted: Besked oprettet
label_reply_plural: Besvarer
-label_send_information: Send konto information til bruger
+label_send_information: Send kontoinformation til bruger
label_year: År
label_month: Måned
label_week: Uge
@@ -468,48 +488,57 @@ label_date_from: Fra
label_date_to: Til
label_language_based: Baseret på brugerens sprog
label_sort_by: Sorter efter %s
-label_send_test_email: Send en test email
-label_feeds_access_key_created_on: RSS adgangsnøgle genereret %s siden
+label_send_test_email: Send en testmail
+label_feeds_access_key_created_on: RSS-adgangsnøgle genereret for %s siden
label_module_plural: Moduler
-label_added_time_by: Tilføjet af %s for %s siden
+label_added_time_by: Oprettet af %s for %s siden
label_updated_time: Opdateret for %s siden
label_jump_to_a_project: Skift til projekt...
label_file_plural: Filer
label_changeset_plural: Ændringer
-label_default_columns: Standard kolonner
+label_default_columns: Standardkolonner
label_no_change_option: (Ingen ændringer)
-label_bulk_edit_selected_issues: Masse ret de valgte sager
+label_bulk_edit_selected_issues: Masseret de valgte sager
label_theme: Tema
label_default: standard
label_search_titles_only: Søg kun i titler
label_user_mail_option_all: "For alle hændelser på mine projekter"
-label_user_mail_option_selected: "For alle hændelser, kun på de valgte projekter..."
-label_user_mail_option_none: "Kun for ting jeg overvåger, eller jeg er involveret i"
-label_user_mail_no_self_notified: "Jeg ønsker ikke besked, om ændring foretaget af mig selv"
-label_registration_activation_by_email: konto aktivering på email
-label_registration_manual_activation: manuel konto aktivering
-label_registration_automatic_activation: automatisk konto aktivering
-label_display_per_page: 'Per side: %s'
+label_user_mail_option_selected: "For alle hændelser på udvalgte projekter..."
+label_user_mail_option_none: "Kun for ting jeg overvåger eller er involveret i"
+label_user_mail_no_self_notified: "Jeg ønsker ikke at blive notificeret om ændringer foretaget af mig selv"
+label_registration_activation_by_email: kontoaktivering på e-mail
+label_registration_manual_activation: manuel kontoaktivering
+label_registration_automatic_activation: automatisk kontoaktivering
+label_display_per_page: 'Pr. side: %s'
label_age: Alder
label_change_properties: Ændre indstillinger
-label_general: Generalt
+label_general: Generelt
label_more: Mere
-label_scm: SCM
+label_scm: Versionsstyring
label_plugins: Plugins
-label_ldap_authentication: LDAP godkendelse
+label_ldap_authentication: LDAP-godkendelse
label_downloads_abbr: D/L
+label_add_another_file: Opret endnu en fil
+label_optional_description: Valgfri beskrivelse
+label_preferences: Indstillinger
+label_chronological_order: I kronologisk rækkefølge
+label_reverse_chronological_order: I omvendt kronologisk rækkefølge
+label_planning: Planlægning
+label_incoming_emails: Indkommende e-mails
+label_generate_key: Generer en nøgle
+label_issue_watchers: Overvågere
-button_login: Login
+button_login: Log ind
button_submit: Send
button_save: Gem
-button_check_all: Vælg alt
-button_uncheck_all: Fravælg alt
+button_check_all: Vælg alle
+button_uncheck_all: Fravælg alle
button_delete: Slet
button_create: Opret
button_test: Test
button_edit: Ret
-button_add: Tilføj
-button_change: Ændre
+button_add: Opret
+button_change: Skift
button_apply: Anvend
button_clear: Nulstil
button_lock: Lås
@@ -522,8 +551,8 @@ button_back: Tilbage
button_cancel: Annuller
button_activate: Aktiver
button_sort: Sorter
-button_log_time: Log tid
-button_rollback: Tilbagefør til denne version
+button_log_time: Registrer tid
+button_rollback: Rul tilbage til denne version
button_watch: Overvåg
button_unwatch: Stop overvågning
button_reply: Besvar
@@ -536,46 +565,56 @@ button_copy: Kopier
button_annotate: Annotere
button_update: Opdater
button_configure: Konfigurer
+button_quote: Citer
status_active: aktiv
status_registered: registreret
status_locked: låst
-text_select_mail_notifications: Vælg handlinger for hvilke, der skal sendes en email besked.
+text_select_mail_notifications: Vælg handlinger for hvilke, der skal sendes en e-mail-notifikation.
text_regexp_info: f.eks. ^[A-ZÆØÅ0-9]+$
text_min_max_length_info: 0 betyder ingen begrænsninger
-text_project_destroy_confirmation: Er du sikker på di vil slette dette projekt og alle relaterede data ?
-text_workflow_edit: Vælg en rolle samt en type, for at redigere arbejdsgangen
-text_are_you_sure: Er du sikker ?
+text_project_destroy_confirmation: Er du sikker på, at du vil slette dette projekt og alle relaterede data ?
+text_subprojects_destroy_warning: 'Dets underprojekt(er): %s vil også blive slettet.'
+text_workflow_edit: Vælg en rolle samt en type for at redigere arbejdsgangen
+text_are_you_sure: Er du sikker?
text_journal_changed: ændret fra %s til %s
text_journal_set_to: sat til %s
text_journal_deleted: slettet
text_tip_task_begin_day: opgaven begynder denne dag
-text_tip_task_end_day: opaven slutter denne dag
+text_tip_task_end_day: opgaven slutter denne dag
text_tip_task_begin_end_day: opgaven begynder og slutter denne dag
-text_project_identifier_info: 'Små bogstaver (a-z), numre og bindestreg er tilladt.
Når den er gemt, kan indifikatoren ikke rettes.'
-text_caracters_maximum: max %d karakterer.
-text_caracters_minimum: Skal være mindst %d karakterer lang.
-text_length_between: Længde skal være mellem %d og %d karakterer.
+text_project_identifier_info: 'Små bogstaver (a-z), numre og bindestreg er tilladt.
Når den er gemt, kan identifikatoren ikke rettes.'
+text_caracters_maximum: maks. %d tegn.
+text_caracters_minimum: Skal være mindst %d tegn lang.
+text_length_between: Længde skal være mellem %d og %d tegn.
text_tracker_no_workflow: Ingen arbejdsgang defineret for denne type
-text_unallowed_characters: Ikke tilladte karakterer
-text_comma_separated: Adskillige værdier tilladt (komma separeret).
-text_issues_ref_in_commit_messages: Referer og løser sager i commit beskeder
+text_unallowed_characters: Ugyldige tegn
+text_comma_separated: Flere værdier tilladt (adskilt af komma).
+text_issues_ref_in_commit_messages: Referer og luk sager i commitbeskeder
text_issue_added: Sag %s er rapporteret af %s.
text_issue_updated: Sag %s er blevet opdateret af %s.
-text_wiki_destroy_confirmation: Er du sikker på at du vil slette debbe wiki, og alt indholdet ?
-text_issue_category_destroy_question: Nogle sgaer (%d) er tildelt denne kategori. Hvad ønsker du at gøre ?
-text_issue_category_destroy_assignments: Slet kategori tildelinger
+text_wiki_destroy_confirmation: Er du sikker på, at du vil slette denne wiki og alt dens indhold?
+text_issue_category_destroy_question: Nogle sager (%d) er tildelt denne kategori. Hvad ønsker du at gøre?
+text_issue_category_destroy_assignments: Slet kategoritildelinger
text_issue_category_reassign_to: Tildel sager til denne kategori
-text_user_mail_option: "For ikke valgte projekter, vil du kun modtage beskeder omhandlende ting, du er involveret i, eller overvåger (f.eks. sager du ahr indberettet eller ejer)."
-text_no_configuration_data: "Roller, typer, sags statuser og arbejdsgange er endnu ikek konfigureret.\nDet er anbefalet at indlæse standard konfigurationen. Du vil kunne ændre denne når den er indlæst."
-text_load_default_configuration: Indlæs standard konfiguration
+text_user_mail_option: "For ikke-valgte projekter vil du kun modtage notifikationer omhandlende ting, du er involveret i eller overvåger (f.eks. sager du har oprettet eller er tildelt)."
+text_no_configuration_data: "Roller, typer, statuskoder og arbejdsgange er endnu ikke konfigureret.\nDet er anbefalet at indlæse standardkonfigurationen. Du vil kunne ændre denne, når den er indlæst."
+text_load_default_configuration: Indlæs standardkonfiguration
text_status_changed_by_changeset: Anvendt i ændring %s.
-text_issues_destroy_confirmation: 'Er du sikker på du ønsker at slette den/de valgte sag(er) ?'
-text_select_project_modules: 'Vælg moduler er skal være aktiveret for dette projekt:'
-text_default_administrator_account_changed: Standard administrator konto ændret
-text_file_repository_writable: Filarkiv er skrivbar
+text_issues_destroy_confirmation: 'Er du sikker på, du ønsker at slette den/de valgte sag(er) ?'
+text_select_project_modules: 'Vælg moduler, der skal være aktiveret for dette projekt:'
+text_default_administrator_account_changed: Standardadministratorkonto ændret
+text_file_repository_writable: Filarkiv er skrivbart
text_rmagick_available: RMagick tilgængelig (valgfri)
+text_destroy_time_entries_question: %.02f timer er registreret på denne sag, som du er ved at slette. Hvad vil du gøre?
+text_destroy_time_entries: Slet registrerede timer
+text_assign_time_entries_to_project: Overfør registrerede timer til projektet
+text_reassign_time_entries: 'Tilbagefør registrerede timer til denne sag igen:'
+text_user_wrote: '%s skrev:'
+text_enumeration_destroy_question: '%d objekter er tildelt denne værdi.'
+text_enumeration_category_reassign_to: 'Tildel dem denne værdi:'
+text_email_delivery_not_configured: "E-mail-afsendelse er ikke konfigureret, så notifikationer er deaktiverede.\nKonfigurer din SMTP-server i config/email.yml og genstart applikationen for at aktivere disse."
default_role_manager: Leder
default_role_developper: Udvikler
@@ -589,56 +628,16 @@ default_issue_status_resolved: Løst
default_issue_status_feedback: Feedback
default_issue_status_closed: Lukket
default_issue_status_rejected: Afvist
-default_doc_category_user: Bruger dokumentation
+default_doc_category_user: Brugerdokumentation
default_doc_category_tech: Teknisk dokumentation
default_priority_low: Lav
default_priority_normal: Normal
default_priority_high: Høj
-default_priority_urgent: Akut
-default_priority_immediate: Omgående
+default_priority_urgent: Haster
+default_priority_immediate: Akut
default_activity_design: Design
default_activity_development: Udvikling
-enumeration_issue_priorities: Sags prioriteter
-enumeration_doc_categories: Dokument kategorier
-enumeration_activities: Aktiviteter (tids styring)
-
-label_add_another_file: Tilføj endnu en fil
-label_chronological_order: I kronologisk rækkefølge
-setting_activity_days_default: Antal dage der vises under projekt aktivitet
-text_destroy_time_entries_question: %.02f timer er reporteret på denne sag, som du er ved at slette. Hvad vil du gøre ?
-error_issue_not_found_in_project: 'Sagen blev ikke fundet eller tilhører ikke dette projekt'
-text_assign_time_entries_to_project: Tildel raporterede timer til projektet
-setting_display_subprojects_issues: Vis sager for underprojekter på hovedprojektet som default
-label_optional_description: Optionel beskrivelse
-text_destroy_time_entries: Slet raportede timer
-field_comments_sorting: Vis kommentar
-text_reassign_time_entries: 'Tildel raportede timer til denne sag igen'
-label_reverse_chronological_order: I omvendt kronologisk rækkefølge
-label_preferences: Preferences
-label_overall_activity: Overordnet aktivitet
-setting_default_projects_public: Nye projekter er offentlige som default
-error_scm_annotate: "The entry does not exist or can not be annotated."
-label_planning: Planlægning
-text_subprojects_destroy_warning: 'Its subproject(s): %s will be also deleted.'
-label_and_its_subprojects: %s and its subprojects
-mail_body_reminder: "%d issue(s) that are assigned to you are due in the next %d days:"
-mail_subject_reminder: "%d issue(s) due in the next days"
-text_user_wrote: '%s wrote:'
-label_duplicated_by: duplicated by
-setting_enabled_scm: Enabled SCM
-text_enumeration_category_reassign_to: 'Reassign them to this value:'
-text_enumeration_destroy_question: '%d objects are assigned to this value.'
-label_incoming_emails: Incoming emails
-label_generate_key: Generate a key
-setting_mail_handler_api_enabled: Enable WS for incoming emails
-setting_mail_handler_api_key: API key
-text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
-field_parent_title: Parent page
-label_issue_watchers: Watchers
-setting_commit_logs_encoding: Commit messages encoding
-button_quote: Quote
-setting_sequential_project_identifiers: Generate sequential project identifiers
-notice_unable_delete_version: Unable to delete version
-label_renamed: renamed
-label_copied: copied
+enumeration_issue_priorities: Sagsprioriteter
+enumeration_doc_categories: Dokumentkategorier
+enumeration_activities: Aktiviteter (tidsregistrering)
diff --git a/lang/hu.yml b/lang/hu.yml
index 2b1f3c3..ad150b5 100644
--- a/lang/hu.yml
+++ b/lang/hu.yml
@@ -639,5 +639,5 @@ setting_commit_logs_encoding: Commit üzenetek kódlapja
button_quote: Idézet
setting_sequential_project_identifiers: Szekvenciális projekt azonosítók generálása
notice_unable_delete_version: A verziót nem lehet törölni
-label_renamed: renamed
-label_copied: copied
+label_renamed: átnevezve
+label_copied: lemásolva
diff --git a/lang/lt.yml b/lang/lt.yml
index d9d1933..5110a6b 100644
--- a/lang/lt.yml
+++ b/lang/lt.yml
@@ -638,7 +638,7 @@ field_parent_title: Aukštesnio lygio puslapis
label_issue_watchers: Stebetojai
setting_commit_logs_encoding: Commit pranėšimų koduotė
setting_sequential_project_identifiers: Generate sequential project identifiers
-button_quote: Quote
-notice_unable_delete_version: Unable to delete version
-label_renamed: renamed
-label_copied: copied
+button_quote: Cituoti
+notice_unable_delete_version: Neimanoma panaikinti versiją
+label_renamed: pervardintas
+label_copied: nukopijuotas
diff --git a/lang/nl.yml b/lang/nl.yml
index 746f242..10d02cc 100644
--- a/lang/nl.yml
+++ b/lang/nl.yml
@@ -70,12 +70,12 @@ notice_successful_connection: Verbinding succesvol.
notice_file_not_found: De pagina die U probeerde te benaderen bestaat niet of is verwijderd.
notice_locking_conflict: De gegevens zijn gewijzigd door een andere gebruiker.
notice_not_authorized: Het is U niet toegestaan om deze pagina te raadplegen.
-notice_email_sent: An email was sent to %s
-notice_email_error: An error occurred while sending mail (%s)
-notice_feeds_access_key_reseted: Your RSS access key was reseted.
+notice_email_sent: Een e-mail werd verstuurd naar %s
+notice_email_error: Er is een fout opgetreden tijdens het versturen van (%s)
+notice_feeds_access_key_reseted: Je RSS toegangssleutel werd gereset.
error_scm_not_found: "Deze ingang of revisie bestaat niet in de repository."
-error_scm_command_failed: "An error occurred when trying to access the repository: %s"
+error_scm_command_failed: "Een fout trad op tijdens de poging om verbinding te maken met de repository: %s"
mail_subject_lost_password: Uw %s wachtwoord
mail_body_lost_password: 'Gebruik de volgende link om Uw wachtwoord te wijzigen:'
@@ -112,13 +112,13 @@ field_issue: Issue
field_status: Status
field_notes: Notities
field_is_closed: Issue gesloten
-field_is_default: Default
+field_is_default: Standaard
field_tracker: Tracker
field_subject: Onderwerp
field_due_date: Verwachte datum gereed
field_assigned_to: Toegewezen aan
field_priority: Prioriteit
-field_fixed_version: Target version
+field_fixed_version: Doel versie
field_user: Gebruiker
field_role: Rol
field_homepage: Homepage
@@ -128,7 +128,7 @@ field_is_in_chlog: Issues weergegeven in wijzigingslog
field_is_in_roadmap: Issues weergegeven in roadmap
field_login: Inloggen
field_mail_notification: Mail mededelingen
-field_admin: Administrateur
+field_admin: Beheerder
field_last_login_on: Laatste bezoek
field_language: Taal
field_effective_date: Datum
@@ -161,19 +161,19 @@ field_identifier: Identificatiecode
field_is_filter: Gebruikt als een filter
field_issue_to_id: Gerelateerd issue
field_delay: Vertraging
-field_assignable: Issues can be assigned to this role
-field_redirect_existing_links: Redirect existing links
-field_estimated_hours: Estimated time
-field_default_value: Default value
+field_assignable: Issues kunnen toegewezen worden aan deze rol
+field_redirect_existing_links: Verwijs bestaande links door
+field_estimated_hours: Geschatte tijd
+field_default_value: Standaard waarde
setting_app_title: Applicatie titel
setting_app_subtitle: Applicatie ondertitel
setting_welcome_text: Welkomsttekst
-setting_default_language: Default taal
+setting_default_language: Standaard taal
setting_login_required: Authent. nodig
setting_self_registration: Zelf-registratie toegestaan
setting_attachment_max_size: Attachment max. grootte
-setting_issues_export_limit: Limiet export issues
+setting_issues_export_limit: Limiet export issues
setting_mail_from: Afzender mail adres
setting_host_name: Host naam
setting_text_formatting: Tekst formaat
@@ -181,11 +181,11 @@ setting_wiki_compression: Wiki geschiedenis comprimeren
setting_feeds_limit: Feed inhoud limiet
setting_autofetch_changesets: Haal commits automatisch op
setting_sys_api_enabled: Gebruik WS voor repository beheer
-setting_commit_ref_keywords: Referencing keywords
-setting_commit_fix_keywords: Fixing keywords
+setting_commit_ref_keywords: Referencing trefwoorden
+setting_commit_fix_keywords: Fixing trefwoorden
setting_autologin: Autologin
-setting_date_format: Date format
-setting_cross_project_issue_relations: Allow cross-project issue relations
+setting_date_format: Datum formaat
+setting_cross_project_issue_relations: Sta cross-project issue relaties toe
label_user: Gebruiker
label_user_plural: Gebruikers
@@ -219,14 +219,14 @@ label_issue_status_new: Nieuwe status
label_issue_category: Issue categorie
label_issue_category_plural: Issue categorieën
label_issue_category_new: Nieuwe categorie
-label_custom_field: Custom veld
-label_custom_field_plural: Custom velden
-label_custom_field_new: Nieuw custom veld
+label_custom_field: Specifiek veld
+label_custom_field_plural: Specifieke velden
+label_custom_field_new: Nieuw specifiek veld
label_enumerations: Enumeraties
label_enumeration_new: Nieuwe waarde
label_information: Informatie
label_information_plural: Informatie
-label_please_login: Gaarne inloggen
+label_please_login: Inloggen a.u.b.
label_register: Registreer
label_password_lost: Wachtwoord verloren
label_home: Home
@@ -326,7 +326,7 @@ label_in_less_than: in minder dan
label_in_more_than: in meer dan
label_in: in
label_today: vandaag
-label_this_week: this week
+label_this_week: deze week
label_less_than_ago: minder dan dagen geleden
label_more_than_ago: meer dan dagen geleden
label_ago: dagen geleden
@@ -352,8 +352,8 @@ label_sort_higher: Verplaats naar boven
label_sort_lower: Verplaats naar beneden
label_sort_lowest: Verplaats naar eind
label_roadmap: Roadmap
-label_roadmap_due_in: Due in
-label_roadmap_overdue: %s late
+label_roadmap_due_in: Voldaan in
+label_roadmap_overdue: %s overtijd
label_roadmap_no_issues: Geen issues voor deze versie
label_search: Zoeken
label_result_plural: Resultaten
@@ -412,20 +412,20 @@ label_message_plural: Berichten
label_message_last: Laatste bericht
label_message_new: Nieuw bericht
label_reply_plural: Antwoorden
-label_send_information: Send account information to the user
-label_year: Year
-label_month: Month
+label_send_information: Stuur account informatie naar de gebruiker
+label_year: Jaar
+label_month: Maand
label_week: Week
-label_date_from: From
-label_date_to: To
-label_language_based: Language based
-label_sort_by: Sort by %s
-label_send_test_email: Send a test email
-label_feeds_access_key_created_on: RSS access key created %s ago
+label_date_from: Van
+label_date_to: Tot
+label_language_based: Taal gebaseerd
+label_sort_by: Sorteer op %s
+label_send_test_email: Stuur een test e-mail
+label_feeds_access_key_created_on: RSS toegangssleutel %s geleden gemaakt.
label_module_plural: Modules
-label_added_time_by: Added by %s %s ago
-label_updated_time: Updated %s ago
-label_jump_to_a_project: Jump to a project...
+label_added_time_by: Toegevoegd door %s %s geleden
+label_updated_time: Upgedated %s geleden
+label_jump_to_a_project: Spring naar een project...
button_login: Inloggen
button_submit: Toevoegen
@@ -440,8 +440,8 @@ button_add: Voeg toe
button_change: Wijzig
button_apply: Pas toe
button_clear: Leeg maken
-button_lock: Lock
-button_unlock: Unlock
+button_lock: Sluit
+button_unlock: Open
button_download: Download
button_list: Lijst
button_view: Bekijken
@@ -455,10 +455,10 @@ button_rollback: Rollback naar deze versie
button_watch: Monitor
button_unwatch: Niet meer monitoren
button_reply: Antwoord
-button_archive: Archive
-button_unarchive: Unarchive
+button_archive: Archiveer
+button_unarchive: Desarchiveer
button_reset: Reset
-button_rename: Rename
+button_rename: Hernoemen
status_active: Actief
status_registered: geregistreerd
@@ -467,7 +467,7 @@ status_locked: gelockt
text_select_mail_notifications: Selecteer acties waarvoor mededelingen via mail moeten worden verstuurd.
text_regexp_info: bv. ^[A-Z0-9]+$
text_min_max_length_info: 0 betekent geen restrictie
-text_project_destroy_confirmation: Weet U zeker dat U dit project en alle gerelateerde gegevens wilt verwijderen ?
+text_project_destroy_confirmation: Weet U zeker dat U dit project en alle gerelateerde gegevens wilt verwijderen ?
text_workflow_edit: Selecteer een rol en een tracker om de workflow te wijzigen
text_are_you_sure: Weet U het zeker ?
text_journal_changed: gewijzigd van %s naar %s
@@ -485,10 +485,10 @@ text_coma_separated: Meerdere waarden toegestaan (door komma's gescheiden).
text_issues_ref_in_commit_messages: Opzoeken en aanpassen van issues in commit berichten
text_issue_added: Issue %s is gerapporteerd (by %s).
text_issue_updated: Issue %s is gewijzigd (by %s).
-text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
-text_issue_category_destroy_question: Some issues (%d) are assigned to this category. What do you want to do ?
-text_issue_category_destroy_assignments: Remove category assignments
-text_issue_category_reassign_to: Reassing issues to this category
+text_wiki_destroy_confirmation: Bent u zeker dat u deze wiki en zijn inhoud wenst te verwijderen?
+text_issue_category_destroy_question: Sommige issues (%d) zijn aan deze categorie toegewezen. Wat wilt u hiermee doen ?
+text_issue_category_destroy_assignments: Verwijder categorie toewijzigingen
+text_issue_category_reassign_to: Issues opnieuw toewijzen aan deze categorie
default_role_manager: Manager
default_role_developper: Ontwikkelaar
@@ -515,109 +515,111 @@ default_activity_development: Development
enumeration_issue_priorities: Issue prioriteiten
enumeration_doc_categories: Document categorieën
enumeration_activities: Activiteiten (tijd tracking)
-text_comma_separated: Multiple values allowed (comma separated).
-label_file_plural: Files
+text_comma_separated: Meerdere waarden toegestaan (kommagescheiden).
+label_file_plural: Bestanden
label_changeset_plural: Changesets
-field_column_names: Columns
-label_default_columns: Default columns
-setting_issue_list_default_columns: Default columns displayed on the issue list
+field_column_names: Kolommen
+label_default_columns: Standaard kolommen.
+setting_issue_list_default_columns: Standaard kolommen getoond om de lijst met issues
setting_repositories_encodings: Repositories encodings
-notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
-label_bulk_edit_selected_issues: Bulk edit selected issues
-label_no_change_option: (No change)
-notice_failed_to_save_issues: "Failed to save %d issue(s) on %d selected: %s."
-label_theme: Theme
-label_default: Default
-label_search_titles_only: Search titles only
+notice_no_issue_selected: "Er is geen issue geselecteerd. Selecteer de issue die u wilt bewerken."
+label_bulk_edit_selected_issues: Bewerk geselecteerde issues in bulk
+label_no_change_option: (Geen wijziging)
+notice_failed_to_save_issues: "Gefaald om %d issue(s) (%d geselecteerd) te bewaren: %s."
+
+label_theme: Thema
+label_default: Standaard
+label_search_titles_only: Enkel titels doorzoeken
label_nobody: nobody
-button_change_password: Change password
+button_change_password: Wijzig wachtwoord
text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)."
-label_user_mail_option_selected: "For any event on the selected projects only..."
-label_user_mail_option_all: "For any event on all my projects"
-label_user_mail_option_none: "Only for things I watch or I'm involved in"
+text_user_mail_option: "Bij niet-geselecteerde projecten zult u enkel notificaties ontvangen voor issues die u monitort of waar je bij betrokken bent (auteur of toegewezen persoon)."
+label_user_mail_option_selected: "Enkel bij elke event op het geselecteerde project..."
+label_user_mail_option_all: "Bij elk event in al mijn projecten..."
+label_user_mail_option_none: "Alleen in de dingen die ik monitor of in betrokken ben"
setting_emails_footer: Emails footer
label_float: Float
-button_copy: Copy
-mail_body_account_information_external: You can use your "%s" account to log in.
-mail_body_account_information: Your account information
+button_copy: Kopieer
+mail_body_account_information_external: Je kan je account (%s) gebruiken om in te loggen.
+mail_body_account_information: Je account gegevens
setting_protocol: Protocol
-label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
-setting_time_format: Time format
-label_registration_activation_by_email: account activation by email
-mail_subject_account_activation_request: %s account activation request
-mail_body_account_activation_request: 'A new user (%s) has registered. His account his pending your approval:'
-label_registration_automatic_activation: automatic account activation
-label_registration_manual_activation: manual account activation
-notice_account_pending: "Your account was created and is now pending administrator approval."
-field_time_zone: Time zone
-text_caracters_minimum: Must be at least %d characters long.
-setting_bcc_recipients: Blind carbon copy recipients (bcc)
+label_user_mail_no_self_notified: "Ik wil niet verwittigd worden van wijzigingen die ik zelf maak."
+setting_time_format: Tijd formaat
+label_registration_activation_by_email: account activatie per email
+mail_subject_account_activation_request: %s account activatie verzoek
+mail_body_account_activation_request: 'Een nieuwe gebruiker (%s) is geregistreerd. Zijn account wacht op uw akkoord:'
+label_registration_automatic_activation: automatische account activatie
+label_registration_manual_activation: manuele account activatie
+notice_account_pending: "Je account is aangemaakt maar wacht nog op goedkeuring van de beheerder."
+field_time_zone: Tijd zone
+text_caracters_minimum: Moet minstens %d karakters lang zijn.
+setting_bcc_recipients: Blind carbon copy ontvangers (bcc)
button_annotate: Annotate
-label_issues_by: Issues by %s
-field_searchable: Searchable
-label_display_per_page: 'Per page: %s'
-setting_per_page_options: Objects per page options
-label_age: Age
-notice_default_data_loaded: Default configuration successfully loaded.
-text_load_default_configuration: Load the default configuration
-text_no_configuration_data: "Roles, trackers, issue statuses and workflow have not been configured yet.\nIt is highly recommended to load the default configuration. You will be able to modify it once loaded."
-error_can_t_load_default_data: "Default configuration could not be loaded: %s"
+label_issues_by: Issues door %s
+field_searchable: Doorzoekbaar
+label_display_per_page: 'Per pagina: %s'
+setting_per_page_options: Objects per pagina opties
+label_age: Leeftijd
+notice_default_data_loaded: Standaard configuratie succesvol geladen.
+text_load_default_configuration: Laad de standaardconfiguratie
+text_no_configuration_data: "Rollen, trackers, issue statuses en workflow zijn nog niet geconfigureerd.\nHet is ten zeerste aangeraden om de standaardconfiguratie in te laden. Je kan deze aanpassen nadat deze is ingeladen."
+error_can_t_load_default_data: "Standaard configuratie kon niet worden geladen: %s"
button_update: Update
-label_change_properties: Change properties
-label_general: General
+label_change_properties: Eigenschappen wijzigen
+label_general: Algemeen
label_repository_plural: Repositories
-label_associated_revisions: Associated revisions
-setting_user_format: Users display format
-text_status_changed_by_changeset: Applied in changeset %s.
-label_more: More
-text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
+label_associated_revisions: Geassocieerde revisies
+setting_user_format: Gebruikers weergave formaat
+text_status_changed_by_changeset: Toegepast in changeset %s.
+label_more: Meer
+text_issues_destroy_confirmation: 'Ben je zeker dat je deze issue(s) wenst te verwijderen?'
label_scm: SCM
-text_select_project_modules: 'Select modules to enable for this project:'
-label_issue_added: Issue added
-label_issue_updated: Issue updated
-label_document_added: Document added
-label_message_posted: Message added
-label_file_added: File added
-label_news_added: News added
+text_select_project_modules: 'Selecteer de modules die je wenst te gebruiken voor dit project:'
+label_issue_added: Issue toegevoegd
+label_issue_updated: Issue geupdated
+label_document_added: Document toegevoegd
+label_message_posted: Bericht toegevoegd
+label_file_added: Bericht toegevoegd
+label_news_added: Nieuws toegevoegd
project_module_boards: Boards
project_module_issue_tracking: Issue tracking
project_module_wiki: Wiki
-project_module_files: Files
-project_module_documents: Documents
+project_module_files: Bestanden
+project_module_documents: Documenten
project_module_repository: Repository
-project_module_news: News
-project_module_time_tracking: Time tracking
-text_file_repository_writable: File repository writable
-text_default_administrator_account_changed: Default administrator account changed
-text_rmagick_available: RMagick available (optional)
-button_configure: Configure
+project_module_news: Nieuws
+project_module_time_tracking: Tijd tracking
+text_file_repository_writable: Bestandsrepository beschrijfbaar
+text_default_administrator_account_changed: Standaard beheerderaccount gewijzigd
+text_rmagick_available: RMagick beschikbaar (optioneel)
+button_configure: Configureer
label_plugins: Plugins
-label_ldap_authentication: LDAP authentication
+label_ldap_authentication: LDAP authenticatie
label_downloads_abbr: D/L
-label_this_month: this month
-label_last_n_days: last %d days
+label_this_month: deze maand
+label_last_n_days: %d dagen geleden
label_all_time: all time
-label_this_year: this year
-label_date_range: Date range
-label_last_week: last week
-label_yesterday: yesterday
-label_last_month: last month
-label_add_another_file: Add another file
-label_optional_description: Optional description
-text_destroy_time_entries_question: %.02f hours were reported on the issues you are about to delete. What do you want to do ?
-error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
-text_assign_time_entries_to_project: Assign reported hours to the project
-text_destroy_time_entries: Delete reported hours
-text_reassign_time_entries: 'Reassign reported hours to this issue:'
-setting_activity_days_default: Days displayed on project activity
-label_chronological_order: In chronological order
-field_comments_sorting: Display comments
-label_reverse_chronological_order: In reverse chronological order
-label_preferences: Preferences
-setting_display_subprojects_issues: Display subprojects issues on main projects by default
-label_overall_activity: Overall activity
-setting_default_projects_public: New projects are public by default
-error_scm_annotate: "The entry does not exist or can not be annotated."
+label_this_year: dit jaar
+label_date_range: Datum bereik
+label_last_week: vorige week
+label_yesterday: gisteren
+label_last_month: laatste maand
+label_add_another_file: Ander bestand toevoegen
+label_optional_description: Optionele beschrijving
+text_destroy_time_entries_question: %.02f uren werden gerapporteerd op de issue(s) die je wou verwijderen. Wat wil je doen?
+error_issue_not_found_in_project: 'Deze issue is niet gevonden of behoort niet toe tot dit project.'
+text_assign_time_entries_to_project: Geraporteerde uren toevoegen aan dit project
+text_destroy_time_entries: Verwijder geraporteerde uren
+text_reassign_time_entries: 'Gerapporteerde uren opnieuw toewijzen:'
+setting_activity_days_default: Aantal dagen getoond bij het tabblad "Activiteit"
+label_chronological_order: In chronologische volgorde
+field_comments_sorting: Commentaar weergeven
+label_reverse_chronological_order: In omgekeerde chronologische volgorde
+label_preferences: Voorkeuren
+setting_display_subprojects_issues: Standaard issues van subproject tonen
+label_overall_activity: Activiteit
+setting_default_projects_public: Nieuwe projecten zijn standaard publiek
+error_scm_annotate: "Er kan geen commentaar toegevoegd worden."
label_planning: Planning
text_subprojects_destroy_warning: 'Its subproject(s): %s will be also deleted.'
label_and_its_subprojects: %s and its subprojects
@@ -630,14 +632,14 @@ text_enumeration_category_reassign_to: 'Reassign them to this value:'
text_enumeration_destroy_question: '%d objects are assigned to this value.'
label_incoming_emails: Incoming emails
label_generate_key: Generate a key
-setting_mail_handler_api_enabled: Enable WS for incoming emails
-setting_mail_handler_api_key: API key
-text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
-field_parent_title: Parent page
-label_issue_watchers: Watchers
-setting_commit_logs_encoding: Commit messages encoding
-button_quote: Quote
-setting_sequential_project_identifiers: Generate sequential project identifiers
-notice_unable_delete_version: Unable to delete version
-label_renamed: renamed
-label_copied: copied
+setting_mail_handler_api_enabled: Schakel WS in voor inkomende mail.
+setting_mail_handler_api_key: API sleutel
+text_email_delivery_not_configured: "Email bezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer je SMTP server in config/email.yml en herstant de applicatie om dit in te schakelen."
+field_parent_title: Bovenliggende pagina
+label_issue_watchers: Monitoren
+setting_commit_logs_encoding: Commit messages encodering
+button_quote: Citaat
+setting_sequential_project_identifiers: Genereer sequentiele project identiteiten
+notice_unable_delete_version: Onmogelijk om deze versie te verwijderen.
+label_renamed: hernoemt
+label_copied: gekopieerd
diff --git a/lang/ru.yml b/lang/ru.yml
index 9ef1871..0f705c0 100644
--- a/lang/ru.yml
+++ b/lang/ru.yml
@@ -285,6 +285,7 @@ label_commits_per_author: Изменений на пользователя
label_commits_per_month: Изменений в месяц
label_confirmation: Подтверждение
label_contains: содержит
+label_copied: скопировано
label_copy_workflow_from: Скопировать последовательность действий из
label_current_status: Текущий статус
label_current_version: Текущая версия
@@ -465,6 +466,7 @@ label_related_issues: Связанные задачи
label_relates_to: связана с
label_relation_delete: Удалить связь
label_relation_new: Новое отношение
+label_renamed: переименовано
label_reply_plural: Ответы
label_reported_issues: Созданные задачи
label_report_plural: Отчеты
@@ -670,5 +672,4 @@ text_user_mail_option: "Для невыбранных проектов, Вы б
text_user_wrote: '%s написал(а):'
text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все содержимое?
text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний
-label_renamed: renamed
-label_copied: copied
+
diff --git a/lang/zh-tw.yml b/lang/zh-tw.yml
index a7a7767..db4615a 100644
--- a/lang/zh-tw.yml
+++ b/lang/zh-tw.yml
@@ -405,6 +405,8 @@ label_revision_plural: 版次清單
label_associated_revisions: 相關版次
label_added: 已新增
label_modified: 已修改
+label_copied: 已複製
+label_renamed: 已重新命名
label_deleted: 已刪除
label_latest_revision: 最新版次
label_latest_revision_plural: 最近版次清單
@@ -639,5 +641,3 @@ default_activity_development: 開發
enumeration_issue_priorities: 項目優先權
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
-label_renamed: renamed
-label_copied: copied
diff --git a/lang/zh.yml b/lang/zh.yml
index ed84eeb..5c3cf06 100644
--- a/lang/zh.yml
+++ b/lang/zh.yml
@@ -405,6 +405,8 @@ label_revision_plural: 修订
label_associated_revisions: 相关修订版本
label_added: 已添加
label_modified: 已修改
+label_copied: 已复制
+label_renamed: 已重命名
label_deleted: 已删除
label_latest_revision: 最近的修订版本
label_latest_revision_plural: 最近的修订版本
@@ -639,5 +641,3 @@ default_activity_development: 开发
enumeration_issue_priorities: 问题优先级
enumeration_doc_categories: 文档类别
enumeration_activities: 活动(时间跟踪)
-label_renamed: renamed
-label_copied: copied
diff --git a/test/fixtures/watchers.yml b/test/fixtures/watchers.yml
index a8c4829..6c8cdfb 100644
--- a/test/fixtures/watchers.yml
+++ b/test/fixtures/watchers.yml
@@ -3,4 +3,8 @@ watchers_001:
watchable_type: Issue
watchable_id: 2
user_id: 3
+watchers_002:
+ watchable_type: Message
+ watchable_id: 1
+ user_id: 1
\ No newline at end of file
diff --git a/test/unit/message_test.rb b/test/unit/message_test.rb
index 82ed3fe..6e8e8fb 100644
--- a/test/unit/message_test.rb
+++ b/test/unit/message_test.rb
@@ -1,7 +1,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class MessageTest < Test::Unit::TestCase
- fixtures :projects, :boards, :messages
+ fixtures :projects, :boards, :messages, :users, :watchers
def setup
@board = Board.find(1)
@@ -20,6 +20,8 @@ class MessageTest < Test::Unit::TestCase
# messages count incremented
assert_equal messages_count+1, @board[:messages_count]
assert_equal message, @board.last_message
+ # author should be watching the message
+ assert message.watched_by?(@user)
end
def test_reply
@@ -28,7 +30,8 @@ class MessageTest < Test::Unit::TestCase
@message = Message.find(1)
replies_count = @message.replies_count
- reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => @user)
+ reply_author = User.find(2)
+ reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => reply_author)
assert reply.save
@board.reload
# same topics count
@@ -40,13 +43,18 @@ class MessageTest < Test::Unit::TestCase
# replies count incremented
assert_equal replies_count+1, @message[:replies_count]
assert_equal reply, @message.last_reply
+ # author should be watching the message
+ assert @message.watched_by?(reply_author)
end
def test_destroy_topic
message = Message.find(1)
board = message.board
topics_count, messages_count = board.topics_count, board.messages_count
- assert message.destroy
+
+ assert_difference('Watcher.count', -1) do
+ assert message.destroy
+ end
board.reload
# Replies deleted
@@ -54,6 +62,7 @@ class MessageTest < Test::Unit::TestCase
# Checks counters
assert_equal topics_count - 1, board.topics_count
assert_equal messages_count - 3, board.messages_count
+ # Watchers removed
end
def test_destroy_reply