changeset 119:8661b858af72

* Update to Redmine trunk rev 4705
author Chris Cannam
date Thu, 13 Jan 2011 14:12:06 +0000
parents 150ceac17a8d
children cd2282d2aa55 07fa8a8b56a8
files .hgignore .svn/all-wcprops .svn/entries .svn/text-base/.hgignore.svn-base app/.svn/all-wcprops app/.svn/entries app/controllers/.svn/all-wcprops app/controllers/.svn/entries app/controllers/.svn/text-base/activities_controller.rb.svn-base app/controllers/.svn/text-base/application_controller.rb.svn-base app/controllers/.svn/text-base/auto_completes_controller.rb.svn-base app/controllers/.svn/text-base/context_menus_controller.rb.svn-base app/controllers/.svn/text-base/issues_controller.rb.svn-base app/controllers/.svn/text-base/journals_controller.rb.svn-base app/controllers/.svn/text-base/my_controller.rb.svn-base app/controllers/.svn/text-base/news_controller.rb.svn-base app/controllers/.svn/text-base/projects_controller.rb.svn-base app/controllers/.svn/text-base/repositories_controller.rb.svn-base app/controllers/.svn/text-base/settings_controller.rb.svn-base app/controllers/.svn/text-base/timelog_controller.rb.svn-base app/controllers/.svn/text-base/users_controller.rb.svn-base app/controllers/.svn/text-base/wiki_controller.rb.svn-base app/controllers/activities_controller.rb app/controllers/application_controller.rb app/controllers/auto_completes_controller.rb app/controllers/context_menus_controller.rb app/controllers/issues_controller.rb app/controllers/journals_controller.rb app/controllers/my_controller.rb app/controllers/news_controller.rb app/controllers/projects_controller.rb app/controllers/repositories_controller.rb app/controllers/settings_controller.rb app/controllers/timelog_controller.rb app/controllers/users_controller.rb app/controllers/wiki_controller.rb app/helpers/.svn/all-wcprops app/helpers/.svn/entries app/helpers/.svn/text-base/application_helper.rb.svn-base app/helpers/.svn/text-base/attachments_helper.rb.svn-base app/helpers/.svn/text-base/custom_fields_helper.rb.svn-base app/helpers/.svn/text-base/issues_helper.rb.svn-base app/helpers/.svn/text-base/repositories_helper.rb.svn-base app/helpers/.svn/text-base/users_helper.rb.svn-base app/helpers/application_helper.rb app/helpers/attachments_helper.rb app/helpers/custom_fields_helper.rb app/helpers/issues_helper.rb app/helpers/repositories_helper.rb app/helpers/users_helper.rb app/models/.svn/all-wcprops app/models/.svn/entries app/models/.svn/text-base/board.rb.svn-base app/models/.svn/text-base/changeset.rb.svn-base app/models/.svn/text-base/custom_field.rb.svn-base app/models/.svn/text-base/group.rb.svn-base app/models/.svn/text-base/issue.rb.svn-base app/models/.svn/text-base/issue_relation.rb.svn-base app/models/.svn/text-base/issue_status.rb.svn-base app/models/.svn/text-base/mail_handler.rb.svn-base app/models/.svn/text-base/news.rb.svn-base app/models/.svn/text-base/project.rb.svn-base app/models/.svn/text-base/query.rb.svn-base app/models/.svn/text-base/repository.rb.svn-base app/models/.svn/text-base/role.rb.svn-base app/models/.svn/text-base/tracker.rb.svn-base app/models/.svn/text-base/user.rb.svn-base app/models/.svn/text-base/version.rb.svn-base app/models/.svn/text-base/wiki.rb.svn-base app/models/board.rb app/models/changeset.rb app/models/custom_field.rb app/models/group.rb app/models/issue.rb app/models/issue_relation.rb app/models/issue_status.rb app/models/mail_handler.rb app/models/news.rb app/models/project.rb app/models/query.rb app/models/repository.rb app/models/repository/.svn/all-wcprops app/models/repository/.svn/entries app/models/repository/.svn/text-base/git.rb.svn-base app/models/repository/.svn/text-base/mercurial.rb.svn-base app/models/repository/git.rb app/models/repository/mercurial.rb app/models/role.rb app/models/tracker.rb app/models/user.rb app/models/version.rb app/models/wiki.rb app/sweepers/.svn/entries app/views/.svn/all-wcprops app/views/.svn/entries app/views/account/.svn/entries app/views/activities/.svn/entries app/views/admin/.svn/entries app/views/attachments/.svn/entries app/views/auth_sources/.svn/entries app/views/auto_completes/.svn/entries app/views/boards/.svn/entries app/views/calendars/.svn/entries app/views/common/.svn/all-wcprops app/views/common/.svn/entries app/views/common/.svn/text-base/_diff.rhtml.svn-base app/views/common/_diff.rhtml app/views/context_menus/.svn/entries app/views/custom_fields/.svn/entries app/views/documents/.svn/entries app/views/enumerations/.svn/entries app/views/files/.svn/entries app/views/gantts/.svn/all-wcprops app/views/gantts/.svn/entries app/views/gantts/.svn/text-base/show.html.erb.svn-base app/views/gantts/show.html.erb app/views/groups/.svn/entries app/views/issue_categories/.svn/entries app/views/issue_moves/.svn/all-wcprops app/views/issue_moves/.svn/entries app/views/issue_moves/.svn/text-base/new.rhtml.svn-base app/views/issue_moves/new.rhtml app/views/issue_relations/.svn/all-wcprops app/views/issue_relations/.svn/entries app/views/issue_relations/.svn/text-base/_form.rhtml.svn-base app/views/issue_relations/_form.rhtml app/views/issue_statuses/.svn/entries app/views/issues/.svn/all-wcprops app/views/issues/.svn/entries app/views/issues/.svn/prop-base/index.api.rsb.svn-base app/views/issues/.svn/prop-base/index.xml.builder.svn-base app/views/issues/.svn/prop-base/show.api.rsb.svn-base app/views/issues/.svn/prop-base/show.xml.builder.svn-base app/views/issues/.svn/text-base/_changesets.rhtml.svn-base app/views/issues/.svn/text-base/bulk_edit.rhtml.svn-base app/views/issues/.svn/text-base/index.api.rsb.svn-base app/views/issues/.svn/text-base/index.xml.builder.svn-base app/views/issues/.svn/text-base/show.api.rsb.svn-base app/views/issues/.svn/text-base/show.rhtml.svn-base app/views/issues/.svn/text-base/show.xml.builder.svn-base app/views/issues/_changesets.rhtml app/views/issues/bulk_edit.rhtml app/views/issues/index.api.rsb app/views/issues/index.xml.builder app/views/issues/show.api.rsb app/views/issues/show.rhtml app/views/issues/show.xml.builder app/views/journals/.svn/entries app/views/layouts/.svn/all-wcprops app/views/layouts/.svn/entries app/views/layouts/.svn/text-base/base.rhtml.svn-base app/views/layouts/base.rhtml app/views/ldap_auth_sources/.svn/entries app/views/mailer/.svn/entries app/views/members/.svn/entries app/views/messages/.svn/entries app/views/my/.svn/entries app/views/my/blocks/.svn/entries app/views/news/.svn/all-wcprops app/views/news/.svn/entries app/views/news/.svn/prop-base/index.api.rsb.svn-base app/views/news/.svn/text-base/index.api.rsb.svn-base app/views/news/.svn/text-base/show.rhtml.svn-base app/views/news/index.api.rsb app/views/news/show.rhtml app/views/previews/.svn/entries app/views/projects/.svn/all-wcprops app/views/projects/.svn/entries app/views/projects/.svn/prop-base/index.api.rsb.svn-base app/views/projects/.svn/prop-base/index.xml.builder.svn-base app/views/projects/.svn/prop-base/show.api.rsb.svn-base app/views/projects/.svn/prop-base/show.xml.builder.svn-base app/views/projects/.svn/text-base/_form.rhtml.svn-base app/views/projects/.svn/text-base/index.api.rsb.svn-base app/views/projects/.svn/text-base/index.xml.builder.svn-base app/views/projects/.svn/text-base/new.html.erb.svn-base app/views/projects/.svn/text-base/show.api.rsb.svn-base app/views/projects/.svn/text-base/show.xml.builder.svn-base app/views/projects/_form.rhtml app/views/projects/index.api.rsb app/views/projects/index.xml.builder app/views/projects/new.html.erb app/views/projects/settings/.svn/all-wcprops app/views/projects/settings/.svn/entries app/views/projects/settings/.svn/text-base/_modules.rhtml.svn-base app/views/projects/settings/_modules.rhtml app/views/projects/show.api.rsb app/views/projects/show.xml.builder app/views/queries/.svn/entries app/views/reports/.svn/entries app/views/repositories/.svn/all-wcprops app/views/repositories/.svn/entries app/views/repositories/.svn/text-base/_dir_list_content.rhtml.svn-base app/views/repositories/.svn/text-base/_revisions.rhtml.svn-base app/views/repositories/.svn/text-base/annotate.rhtml.svn-base app/views/repositories/.svn/text-base/diff.rhtml.svn-base app/views/repositories/.svn/text-base/revision.rhtml.svn-base app/views/repositories/_dir_list_content.rhtml app/views/repositories/_revisions.rhtml app/views/repositories/annotate.rhtml app/views/repositories/diff.rhtml app/views/repositories/revision.rhtml app/views/roles/.svn/entries app/views/search/.svn/entries app/views/settings/.svn/all-wcprops app/views/settings/.svn/entries app/views/settings/.svn/text-base/_general.rhtml.svn-base app/views/settings/.svn/text-base/_issues.rhtml.svn-base app/views/settings/.svn/text-base/_repositories.rhtml.svn-base app/views/settings/_general.rhtml app/views/settings/_issues.rhtml app/views/settings/_repositories.rhtml app/views/time_entry_reports/.svn/entries app/views/timelog/.svn/all-wcprops app/views/timelog/.svn/entries app/views/timelog/.svn/prop-base/index.api.rsb.svn-base app/views/timelog/.svn/prop-base/show.api.rsb.svn-base app/views/timelog/.svn/text-base/index.api.rsb.svn-base app/views/timelog/.svn/text-base/show.api.rsb.svn-base app/views/timelog/index.api.rsb app/views/timelog/show.api.rsb app/views/trackers/.svn/entries app/views/users/.svn/all-wcprops app/views/users/.svn/entries app/views/users/.svn/prop-base/index.api.rsb.svn-base app/views/users/.svn/prop-base/show.api.rsb.svn-base app/views/users/.svn/text-base/_form.rhtml.svn-base app/views/users/.svn/text-base/_mail_notifications.html.erb.svn-base app/views/users/.svn/text-base/_memberships.rhtml.svn-base app/views/users/.svn/text-base/index.api.rsb.svn-base app/views/users/.svn/text-base/show.api.rsb.svn-base app/views/users/_form.rhtml app/views/users/_mail_notifications.html.erb app/views/users/_memberships.rhtml app/views/users/index.api.rsb app/views/users/show.api.rsb app/views/versions/.svn/entries app/views/watchers/.svn/entries app/views/welcome/.svn/entries app/views/wiki/.svn/all-wcprops app/views/wiki/.svn/entries app/views/wiki/.svn/text-base/diff.rhtml.svn-base app/views/wiki/.svn/text-base/history.rhtml.svn-base app/views/wiki/diff.rhtml app/views/wiki/history.rhtml app/views/wikis/.svn/entries app/views/workflows/.svn/all-wcprops app/views/workflows/.svn/entries app/views/workflows/.svn/text-base/index.rhtml.svn-base app/views/workflows/index.rhtml config/.svn/all-wcprops config/.svn/entries config/.svn/text-base/boot.rb.svn-base config/.svn/text-base/settings.yml.svn-base config/boot.rb config/environments/.svn/entries config/initializers/.svn/all-wcprops config/initializers/.svn/entries config/initializers/.svn/text-base/10-patches.rb.svn-base config/initializers/.svn/text-base/30-redmine.rb.svn-base config/initializers/10-patches.rb config/initializers/30-redmine.rb config/locales/.svn/all-wcprops config/locales/.svn/entries config/locales/.svn/text-base/bg.yml.svn-base config/locales/.svn/text-base/bs.yml.svn-base config/locales/.svn/text-base/ca.yml.svn-base config/locales/.svn/text-base/cs.yml.svn-base config/locales/.svn/text-base/da.yml.svn-base config/locales/.svn/text-base/de.yml.svn-base config/locales/.svn/text-base/el.yml.svn-base config/locales/.svn/text-base/en-GB.yml.svn-base config/locales/.svn/text-base/en.yml.svn-base config/locales/.svn/text-base/es.yml.svn-base config/locales/.svn/text-base/eu.yml.svn-base config/locales/.svn/text-base/fi.yml.svn-base config/locales/.svn/text-base/fr.yml.svn-base config/locales/.svn/text-base/gl.yml.svn-base config/locales/.svn/text-base/he.yml.svn-base config/locales/.svn/text-base/hr.yml.svn-base config/locales/.svn/text-base/hu.yml.svn-base config/locales/.svn/text-base/id.yml.svn-base config/locales/.svn/text-base/it.yml.svn-base config/locales/.svn/text-base/ja.yml.svn-base config/locales/.svn/text-base/ko.yml.svn-base config/locales/.svn/text-base/lt.yml.svn-base config/locales/.svn/text-base/lv.yml.svn-base config/locales/.svn/text-base/mk.yml.svn-base config/locales/.svn/text-base/mn.yml.svn-base config/locales/.svn/text-base/nl.yml.svn-base config/locales/.svn/text-base/no.yml.svn-base config/locales/.svn/text-base/pl.yml.svn-base config/locales/.svn/text-base/pt-BR.yml.svn-base config/locales/.svn/text-base/pt.yml.svn-base config/locales/.svn/text-base/ro.yml.svn-base config/locales/.svn/text-base/ru.yml.svn-base config/locales/.svn/text-base/sk.yml.svn-base config/locales/.svn/text-base/sl.yml.svn-base config/locales/.svn/text-base/sr-YU.yml.svn-base config/locales/.svn/text-base/sr.yml.svn-base config/locales/.svn/text-base/sv.yml.svn-base config/locales/.svn/text-base/th.yml.svn-base config/locales/.svn/text-base/tr.yml.svn-base config/locales/.svn/text-base/uk.yml.svn-base config/locales/.svn/text-base/vi.yml.svn-base config/locales/.svn/text-base/zh-TW.yml.svn-base config/locales/.svn/text-base/zh.yml.svn-base config/locales/bg.yml config/locales/bs.yml config/locales/ca.yml config/locales/cs.yml config/locales/da.yml config/locales/de.yml config/locales/el.yml config/locales/en-GB.yml config/locales/en.yml config/locales/es.yml config/locales/eu.yml config/locales/fi.yml config/locales/fr.yml config/locales/gl.yml config/locales/he.yml config/locales/hr.yml config/locales/hu.yml config/locales/id.yml config/locales/it.yml config/locales/ja.yml config/locales/ko.yml config/locales/lt.yml config/locales/lv.yml config/locales/mk.yml config/locales/mn.yml config/locales/nl.yml config/locales/no.yml config/locales/pl.yml config/locales/pt-BR.yml config/locales/pt.yml config/locales/ro.yml config/locales/ru.yml config/locales/sk.yml config/locales/sl.yml config/locales/sr-YU.yml config/locales/sr.yml config/locales/sv.yml config/locales/th.yml config/locales/tr.yml config/locales/uk.yml config/locales/vi.yml config/locales/zh-TW.yml config/locales/zh.yml config/settings.yml db/.svn/all-wcprops db/.svn/entries db/migrate/.svn/all-wcprops db/migrate/.svn/entries db/migrate/.svn/text-base/20100129193402_change_users_mail_notification_to_string.rb.svn-base db/migrate/.svn/text-base/20100129193813_update_mail_notification_values.rb.svn-base db/migrate/.svn/text-base/20101104182107_add_unique_index_on_members.rb.svn-base db/migrate/20100129193402_change_users_mail_notification_to_string.rb db/migrate/20100129193813_update_mail_notification_values.rb db/migrate/20101104182107_add_unique_index_on_members.rb doc/.svn/all-wcprops doc/.svn/entries doc/.svn/text-base/CHANGELOG.svn-base doc/.svn/text-base/INSTALL.svn-base doc/CHANGELOG doc/INSTALL extra/.svn/entries extra/mail_handler/.svn/entries extra/sample_plugin/.svn/entries extra/sample_plugin/app/.svn/entries extra/sample_plugin/app/controllers/.svn/entries extra/sample_plugin/app/models/.svn/entries extra/sample_plugin/app/views/.svn/entries extra/sample_plugin/app/views/example/.svn/entries extra/sample_plugin/app/views/my/.svn/entries extra/sample_plugin/app/views/my/blocks/.svn/entries extra/sample_plugin/app/views/settings/.svn/entries extra/sample_plugin/assets/.svn/entries extra/sample_plugin/assets/images/.svn/entries extra/sample_plugin/assets/stylesheets/.svn/entries extra/sample_plugin/config/.svn/entries extra/sample_plugin/config/locales/.svn/entries extra/sample_plugin/db/.svn/entries extra/sample_plugin/db/migrate/.svn/entries extra/svn/.svn/entries files/.svn/entries lib/.svn/all-wcprops lib/.svn/entries lib/.svn/text-base/redcloth3.rb.svn-base lib/.svn/text-base/redmine.rb.svn-base lib/SVG/.svn/entries lib/SVG/Graph/.svn/entries lib/generators/.svn/entries lib/generators/redmine_plugin/.svn/entries lib/generators/redmine_plugin/templates/.svn/entries lib/generators/redmine_plugin_controller/.svn/entries lib/generators/redmine_plugin_controller/templates/.svn/entries lib/generators/redmine_plugin_model/.svn/entries lib/generators/redmine_plugin_model/templates/.svn/entries lib/plugins/.svn/entries lib/redcloth3.rb lib/redmine.rb lib/redmine/.svn/all-wcprops lib/redmine/.svn/entries lib/redmine/.svn/prop-base/safe_attributes.rb.svn-base lib/redmine/.svn/text-base/i18n.rb.svn-base lib/redmine/.svn/text-base/safe_attributes.rb.svn-base lib/redmine/.svn/text-base/themes.rb.svn-base lib/redmine/.svn/text-base/version.rb.svn-base lib/redmine/activity/.svn/entries lib/redmine/core_ext/.svn/entries lib/redmine/core_ext/string/.svn/entries lib/redmine/default_data/.svn/entries lib/redmine/export/.svn/entries lib/redmine/helpers/.svn/all-wcprops lib/redmine/helpers/.svn/entries lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base lib/redmine/helpers/gantt.rb lib/redmine/i18n.rb lib/redmine/safe_attributes.rb lib/redmine/scm/.svn/all-wcprops lib/redmine/scm/.svn/entries lib/redmine/scm/adapters/.svn/all-wcprops lib/redmine/scm/adapters/.svn/entries lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base lib/redmine/scm/adapters/abstract_adapter.rb lib/redmine/scm/adapters/bazaar_adapter.rb lib/redmine/scm/adapters/cvs_adapter.rb lib/redmine/scm/adapters/darcs_adapter.rb lib/redmine/scm/adapters/git_adapter.rb lib/redmine/scm/adapters/mercurial/.svn/all-wcprops lib/redmine/scm/adapters/mercurial/.svn/entries lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-0.9.5.tmpl.svn-base lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-1.0.tmpl.svn-base lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl lib/redmine/scm/adapters/mercurial_adapter.rb lib/redmine/scm/adapters/subversion_adapter.rb lib/redmine/themes.rb lib/redmine/version.rb lib/redmine/views/.svn/all-wcprops lib/redmine/views/.svn/entries lib/redmine/views/.svn/prop-base/api_template_handler.rb.svn-base lib/redmine/views/.svn/prop-base/builders.rb.svn-base lib/redmine/views/.svn/text-base/api_template_handler.rb.svn-base lib/redmine/views/.svn/text-base/builders.rb.svn-base lib/redmine/views/api_template_handler.rb lib/redmine/views/builders.rb lib/redmine/views/builders/.svn/all-wcprops lib/redmine/views/builders/.svn/entries lib/redmine/views/builders/.svn/prop-base/json.rb.svn-base lib/redmine/views/builders/.svn/prop-base/structure.rb.svn-base lib/redmine/views/builders/.svn/prop-base/xml.rb.svn-base lib/redmine/views/builders/.svn/text-base/json.rb.svn-base lib/redmine/views/builders/.svn/text-base/structure.rb.svn-base lib/redmine/views/builders/.svn/text-base/xml.rb.svn-base lib/redmine/views/builders/json.rb lib/redmine/views/builders/structure.rb lib/redmine/views/builders/xml.rb lib/redmine/views/my_page/.svn/entries lib/redmine/wiki_formatting/.svn/entries lib/redmine/wiki_formatting/textile/.svn/entries lib/tasks/.svn/all-wcprops lib/tasks/.svn/entries lib/tasks/.svn/text-base/ci.rake.svn-base lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base lib/tasks/.svn/text-base/migrate_from_trac.rake.svn-base lib/tasks/.svn/text-base/testing.rake.svn-base lib/tasks/ci.rake lib/tasks/migrate_from_mantis.rake lib/tasks/migrate_from_trac.rake lib/tasks/testing.rake log/.svn/entries public/.svn/all-wcprops public/.svn/entries public/help/.svn/entries public/images/.svn/all-wcprops public/images/.svn/entries public/images/.svn/text-base/task_parent_end.png.svn-base public/images/files/.svn/entries public/images/jstoolbar/.svn/entries public/images/task_parent_end.png public/javascripts/.svn/all-wcprops public/javascripts/.svn/entries public/javascripts/.svn/text-base/application.js.svn-base public/javascripts/.svn/text-base/context_menu.js.svn-base public/javascripts/application.js public/javascripts/calendar/.svn/entries public/javascripts/calendar/lang/.svn/entries public/javascripts/context_menu.js public/javascripts/jstoolbar/.svn/entries public/javascripts/jstoolbar/lang/.svn/entries public/stylesheets/.svn/all-wcprops public/stylesheets/.svn/entries public/stylesheets/.svn/text-base/application.css.svn-base public/stylesheets/application.css public/themes/.svn/entries public/themes/alternate/.svn/entries public/themes/alternate/stylesheets/.svn/entries public/themes/classic/.svn/entries public/themes/classic/images/.svn/entries public/themes/classic/stylesheets/.svn/entries script/.svn/entries script/performance/.svn/entries script/process/.svn/entries test/.svn/all-wcprops test/.svn/entries test/.svn/text-base/test_helper.rb.svn-base test/exemplars/.svn/entries test/fixtures/.svn/all-wcprops test/fixtures/.svn/entries test/fixtures/.svn/text-base/attachments.yml.svn-base test/fixtures/.svn/text-base/changesets.yml.svn-base test/fixtures/.svn/text-base/custom_values.yml.svn-base test/fixtures/.svn/text-base/enabled_modules.yml.svn-base test/fixtures/.svn/text-base/issues.yml.svn-base test/fixtures/.svn/text-base/news.yml.svn-base test/fixtures/.svn/text-base/roles.yml.svn-base test/fixtures/.svn/text-base/wiki_contents.yml.svn-base test/fixtures/.svn/text-base/wiki_pages.yml.svn-base test/fixtures/attachments.yml test/fixtures/changesets.yml test/fixtures/custom_values.yml test/fixtures/diffs/.svn/entries test/fixtures/enabled_modules.yml test/fixtures/encoding/.svn/entries test/fixtures/files/.svn/all-wcprops test/fixtures/files/.svn/entries test/fixtures/files/.svn/prop-base/060719210727_changeset.diff.svn-base test/fixtures/files/.svn/text-base/060719210727_changeset.diff.svn-base test/fixtures/files/060719210727_changeset.diff test/fixtures/issues.yml test/fixtures/ldap/.svn/entries test/fixtures/mail_handler/.svn/all-wcprops test/fixtures/mail_handler/.svn/entries test/fixtures/mail_handler/.svn/text-base/ticket_reply_with_status.eml.svn-base test/fixtures/mail_handler/ticket_reply_with_status.eml test/fixtures/mailer/.svn/entries test/fixtures/news.yml test/fixtures/repositories/.svn/all-wcprops test/fixtures/repositories/.svn/entries test/fixtures/repositories/.svn/prop-base/mercurial_repository.hg.svn-base test/fixtures/repositories/.svn/prop-base/mercurial_repository.tar.gz.svn-base test/fixtures/repositories/.svn/text-base/mercurial_repository.hg.svn-base test/fixtures/repositories/.svn/text-base/mercurial_repository.tar.gz.svn-base test/fixtures/repositories/mercurial_repository.hg test/fixtures/repositories/mercurial_repository.tar.gz test/fixtures/roles.yml test/fixtures/wiki_contents.yml test/fixtures/wiki_pages.yml test/functional/.svn/all-wcprops test/functional/.svn/entries test/functional/.svn/text-base/account_controller_test.rb.svn-base test/functional/.svn/text-base/activities_controller_test.rb.svn-base test/functional/.svn/text-base/admin_controller_test.rb.svn-base test/functional/.svn/text-base/application_controller_test.rb.svn-base test/functional/.svn/text-base/attachments_controller_test.rb.svn-base test/functional/.svn/text-base/auth_sources_controller_test.rb.svn-base test/functional/.svn/text-base/auto_completes_controller_test.rb.svn-base test/functional/.svn/text-base/boards_controller_test.rb.svn-base test/functional/.svn/text-base/calendars_controller_test.rb.svn-base test/functional/.svn/text-base/comments_controller_test.rb.svn-base test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base test/functional/.svn/text-base/custom_fields_controller_test.rb.svn-base test/functional/.svn/text-base/documents_controller_test.rb.svn-base test/functional/.svn/text-base/enumerations_controller_test.rb.svn-base test/functional/.svn/text-base/files_controller_test.rb.svn-base test/functional/.svn/text-base/gantts_controller_test.rb.svn-base test/functional/.svn/text-base/groups_controller_test.rb.svn-base test/functional/.svn/text-base/issue_categories_controller_test.rb.svn-base test/functional/.svn/text-base/issue_moves_controller_test.rb.svn-base test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base test/functional/.svn/text-base/issue_statuses_controller_test.rb.svn-base test/functional/.svn/text-base/issues_controller_test.rb.svn-base test/functional/.svn/text-base/issues_controller_transaction_test.rb.svn-base test/functional/.svn/text-base/journals_controller_test.rb.svn-base test/functional/.svn/text-base/mail_handler_controller_test.rb.svn-base test/functional/.svn/text-base/members_controller_test.rb.svn-base test/functional/.svn/text-base/messages_controller_test.rb.svn-base test/functional/.svn/text-base/my_controller_test.rb.svn-base test/functional/.svn/text-base/news_controller_test.rb.svn-base test/functional/.svn/text-base/previews_controller_test.rb.svn-base test/functional/.svn/text-base/project_enumerations_controller_test.rb.svn-base test/functional/.svn/text-base/projects_controller_test.rb.svn-base test/functional/.svn/text-base/queries_controller_test.rb.svn-base test/functional/.svn/text-base/reports_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base test/functional/.svn/text-base/roles_controller_test.rb.svn-base test/functional/.svn/text-base/search_controller_test.rb.svn-base test/functional/.svn/text-base/settings_controller_test.rb.svn-base test/functional/.svn/text-base/sys_controller_test.rb.svn-base test/functional/.svn/text-base/time_entry_reports_controller_test.rb.svn-base test/functional/.svn/text-base/timelog_controller_test.rb.svn-base test/functional/.svn/text-base/trackers_controller_test.rb.svn-base test/functional/.svn/text-base/users_controller_test.rb.svn-base test/functional/.svn/text-base/versions_controller_test.rb.svn-base test/functional/.svn/text-base/watchers_controller_test.rb.svn-base test/functional/.svn/text-base/welcome_controller_test.rb.svn-base test/functional/.svn/text-base/wiki_controller_test.rb.svn-base test/functional/.svn/text-base/wikis_controller_test.rb.svn-base test/functional/.svn/text-base/workflows_controller_test.rb.svn-base test/functional/account_controller_test.rb test/functional/activities_controller_test.rb test/functional/admin_controller_test.rb test/functional/application_controller_test.rb test/functional/attachments_controller_test.rb test/functional/auth_sources_controller_test.rb test/functional/auto_completes_controller_test.rb test/functional/boards_controller_test.rb test/functional/calendars_controller_test.rb test/functional/comments_controller_test.rb test/functional/context_menus_controller_test.rb test/functional/custom_fields_controller_test.rb test/functional/documents_controller_test.rb test/functional/enumerations_controller_test.rb test/functional/files_controller_test.rb test/functional/gantts_controller_test.rb test/functional/groups_controller_test.rb test/functional/issue_categories_controller_test.rb test/functional/issue_moves_controller_test.rb test/functional/issue_relations_controller_test.rb test/functional/issue_statuses_controller_test.rb test/functional/issues_controller_test.rb test/functional/issues_controller_transaction_test.rb test/functional/journals_controller_test.rb test/functional/mail_handler_controller_test.rb test/functional/members_controller_test.rb test/functional/messages_controller_test.rb test/functional/my_controller_test.rb test/functional/news_controller_test.rb test/functional/previews_controller_test.rb test/functional/project_enumerations_controller_test.rb test/functional/projects_controller_test.rb test/functional/queries_controller_test.rb test/functional/reports_controller_test.rb test/functional/repositories_bazaar_controller_test.rb test/functional/repositories_controller_test.rb test/functional/repositories_cvs_controller_test.rb test/functional/repositories_darcs_controller_test.rb test/functional/repositories_git_controller_test.rb test/functional/repositories_mercurial_controller_test.rb test/functional/repositories_subversion_controller_test.rb test/functional/roles_controller_test.rb test/functional/search_controller_test.rb test/functional/settings_controller_test.rb test/functional/sys_controller_test.rb test/functional/time_entry_reports_controller_test.rb test/functional/timelog_controller_test.rb test/functional/trackers_controller_test.rb test/functional/users_controller_test.rb test/functional/versions_controller_test.rb test/functional/watchers_controller_test.rb test/functional/welcome_controller_test.rb test/functional/wiki_controller_test.rb test/functional/wikis_controller_test.rb test/functional/workflows_controller_test.rb test/integration/.svn/all-wcprops test/integration/.svn/entries test/integration/.svn/text-base/account_test.rb.svn-base test/integration/.svn/text-base/admin_test.rb.svn-base test/integration/.svn/text-base/application_test.rb.svn-base test/integration/.svn/text-base/issues_test.rb.svn-base test/integration/.svn/text-base/layout_test.rb.svn-base test/integration/.svn/text-base/projects_test.rb.svn-base test/integration/.svn/text-base/routing_test.rb.svn-base test/integration/account_test.rb test/integration/admin_test.rb test/integration/api_test/.svn/all-wcprops test/integration/api_test/.svn/entries test/integration/api_test/.svn/prop-base/news_test.rb.svn-base test/integration/api_test/.svn/prop-base/time_entries_test.rb.svn-base test/integration/api_test/.svn/prop-base/users_test.rb.svn-base test/integration/api_test/.svn/text-base/disabled_rest_api_test.rb.svn-base test/integration/api_test/.svn/text-base/http_basic_login_test.rb.svn-base test/integration/api_test/.svn/text-base/http_basic_login_with_api_token_test.rb.svn-base test/integration/api_test/.svn/text-base/issues_test.rb.svn-base test/integration/api_test/.svn/text-base/news_test.rb.svn-base test/integration/api_test/.svn/text-base/projects_test.rb.svn-base test/integration/api_test/.svn/text-base/time_entries_test.rb.svn-base test/integration/api_test/.svn/text-base/token_authentication_test.rb.svn-base test/integration/api_test/.svn/text-base/users_test.rb.svn-base test/integration/api_test/disabled_rest_api_test.rb test/integration/api_test/http_basic_login_test.rb test/integration/api_test/http_basic_login_with_api_token_test.rb test/integration/api_test/issues_test.rb test/integration/api_test/news_test.rb test/integration/api_test/projects_test.rb test/integration/api_test/time_entries_test.rb test/integration/api_test/token_authentication_test.rb test/integration/api_test/users_test.rb test/integration/application_test.rb test/integration/issues_test.rb test/integration/layout_test.rb test/integration/lib/.svn/all-wcprops test/integration/lib/.svn/entries test/integration/lib/redmine/.svn/all-wcprops test/integration/lib/redmine/.svn/entries test/integration/lib/redmine/.svn/prop-base/themes_test.rb.svn-base test/integration/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base test/integration/lib/redmine/.svn/text-base/themes_test.rb.svn-base test/integration/lib/redmine/menu_manager_test.rb test/integration/lib/redmine/themes_test.rb test/integration/projects_test.rb test/integration/routing_test.rb test/mocks/.svn/entries test/mocks/development/.svn/entries test/mocks/test/.svn/entries test/test_helper.rb test/unit/.svn/all-wcprops test/unit/.svn/entries test/unit/.svn/text-base/activity_test.rb.svn-base test/unit/.svn/text-base/attachment_test.rb.svn-base test/unit/.svn/text-base/auth_source_ldap_test.rb.svn-base test/unit/.svn/text-base/board_test.rb.svn-base test/unit/.svn/text-base/calendar_test.rb.svn-base test/unit/.svn/text-base/changeset_test.rb.svn-base test/unit/.svn/text-base/comment_test.rb.svn-base test/unit/.svn/text-base/custom_field_test.rb.svn-base test/unit/.svn/text-base/custom_value_test.rb.svn-base test/unit/.svn/text-base/default_data_test.rb.svn-base test/unit/.svn/text-base/document_category_test.rb.svn-base test/unit/.svn/text-base/document_test.rb.svn-base test/unit/.svn/text-base/enabled_module_test.rb.svn-base test/unit/.svn/text-base/enumeration_test.rb.svn-base test/unit/.svn/text-base/group_test.rb.svn-base test/unit/.svn/text-base/issue_category_test.rb.svn-base test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base test/unit/.svn/text-base/issue_priority_test.rb.svn-base test/unit/.svn/text-base/issue_relation_test.rb.svn-base test/unit/.svn/text-base/issue_status_test.rb.svn-base test/unit/.svn/text-base/issue_test.rb.svn-base test/unit/.svn/text-base/journal_observer_test.rb.svn-base test/unit/.svn/text-base/journal_test.rb.svn-base test/unit/.svn/text-base/mail_handler_test.rb.svn-base test/unit/.svn/text-base/mailer_test.rb.svn-base test/unit/.svn/text-base/member_test.rb.svn-base test/unit/.svn/text-base/message_test.rb.svn-base test/unit/.svn/text-base/news_test.rb.svn-base test/unit/.svn/text-base/principal_test.rb.svn-base test/unit/.svn/text-base/project_nested_set_test.rb.svn-base test/unit/.svn/text-base/project_test.rb.svn-base test/unit/.svn/text-base/query_test.rb.svn-base test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base test/unit/.svn/text-base/repository_cvs_test.rb.svn-base test/unit/.svn/text-base/repository_darcs_test.rb.svn-base test/unit/.svn/text-base/repository_filesystem_test.rb.svn-base test/unit/.svn/text-base/repository_git_test.rb.svn-base test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base test/unit/.svn/text-base/repository_subversion_test.rb.svn-base test/unit/.svn/text-base/repository_test.rb.svn-base test/unit/.svn/text-base/role_test.rb.svn-base test/unit/.svn/text-base/search_test.rb.svn-base test/unit/.svn/text-base/setting_test.rb.svn-base test/unit/.svn/text-base/testing_test.rb.svn-base test/unit/.svn/text-base/time_entry_activity_test.rb.svn-base test/unit/.svn/text-base/time_entry_test.rb.svn-base test/unit/.svn/text-base/token_test.rb.svn-base test/unit/.svn/text-base/tracker_test.rb.svn-base test/unit/.svn/text-base/user_preference_test.rb.svn-base test/unit/.svn/text-base/user_test.rb.svn-base test/unit/.svn/text-base/version_test.rb.svn-base test/unit/.svn/text-base/watcher_test.rb.svn-base test/unit/.svn/text-base/wiki_content_test.rb.svn-base test/unit/.svn/text-base/wiki_page_test.rb.svn-base test/unit/.svn/text-base/wiki_redirect_test.rb.svn-base test/unit/.svn/text-base/wiki_test.rb.svn-base test/unit/activity_test.rb test/unit/attachment_test.rb test/unit/auth_source_ldap_test.rb test/unit/board_test.rb test/unit/calendar_test.rb test/unit/changeset_test.rb test/unit/comment_test.rb test/unit/custom_field_test.rb test/unit/custom_value_test.rb test/unit/default_data_test.rb test/unit/document_category_test.rb test/unit/document_test.rb test/unit/enabled_module_test.rb test/unit/enumeration_test.rb test/unit/group_test.rb test/unit/helpers/.svn/all-wcprops test/unit/helpers/.svn/entries test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/custom_fields_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/issues_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/projects_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/search_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/sort_helper_test.rb.svn-base test/unit/helpers/.svn/text-base/timelog_helper_test.rb.svn-base test/unit/helpers/application_helper_test.rb test/unit/helpers/custom_fields_helper_test.rb test/unit/helpers/issues_helper_test.rb test/unit/helpers/projects_helper_test.rb test/unit/helpers/search_helper_test.rb test/unit/helpers/sort_helper_test.rb test/unit/helpers/timelog_helper_test.rb test/unit/issue_category_test.rb test/unit/issue_nested_set_test.rb test/unit/issue_priority_test.rb test/unit/issue_relation_test.rb test/unit/issue_status_test.rb test/unit/issue_test.rb test/unit/journal_observer_test.rb test/unit/journal_test.rb test/unit/lib/.svn/all-wcprops test/unit/lib/.svn/entries test/unit/lib/.svn/text-base/redmine_test.rb.svn-base test/unit/lib/redmine/.svn/all-wcprops test/unit/lib/redmine/.svn/entries test/unit/lib/redmine/.svn/prop-base/safe_attributes_test.rb.svn-base test/unit/lib/redmine/.svn/prop-base/themes_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/access_control_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/hook_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/mime_type_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/notifiable_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/plugin_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/safe_attributes_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/themes_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base test/unit/lib/redmine/.svn/text-base/wiki_formatting.rb.svn-base test/unit/lib/redmine/access_control_test.rb test/unit/lib/redmine/helpers/.svn/all-wcprops test/unit/lib/redmine/helpers/.svn/entries test/unit/lib/redmine/helpers/.svn/text-base/gantt_test.rb.svn-base test/unit/lib/redmine/helpers/gantt_test.rb test/unit/lib/redmine/hook_test.rb test/unit/lib/redmine/i18n_test.rb test/unit/lib/redmine/menu_manager/.svn/all-wcprops test/unit/lib/redmine/menu_manager/.svn/entries test/unit/lib/redmine/menu_manager/.svn/text-base/mapper_test.rb.svn-base test/unit/lib/redmine/menu_manager/.svn/text-base/menu_helper_test.rb.svn-base test/unit/lib/redmine/menu_manager/.svn/text-base/menu_item_test.rb.svn-base test/unit/lib/redmine/menu_manager/mapper_test.rb test/unit/lib/redmine/menu_manager/menu_helper_test.rb test/unit/lib/redmine/menu_manager/menu_item_test.rb test/unit/lib/redmine/menu_manager_test.rb test/unit/lib/redmine/mime_type_test.rb test/unit/lib/redmine/notifiable_test.rb test/unit/lib/redmine/plugin_test.rb test/unit/lib/redmine/safe_attributes_test.rb test/unit/lib/redmine/scm/.svn/all-wcprops test/unit/lib/redmine/scm/.svn/entries test/unit/lib/redmine/scm/adapters/.svn/all-wcprops test/unit/lib/redmine/scm/adapters/.svn/entries test/unit/lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter_test.rb.svn-base test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb test/unit/lib/redmine/scm/adapters/git_adapter_test.rb test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb test/unit/lib/redmine/themes_test.rb test/unit/lib/redmine/unified_diff_test.rb test/unit/lib/redmine/views/.svn/all-wcprops test/unit/lib/redmine/views/.svn/entries test/unit/lib/redmine/views/builders/.svn/all-wcprops test/unit/lib/redmine/views/builders/.svn/entries test/unit/lib/redmine/views/builders/.svn/prop-base/json_test.rb.svn-base test/unit/lib/redmine/views/builders/.svn/prop-base/xml_test.rb.svn-base test/unit/lib/redmine/views/builders/.svn/text-base/json_test.rb.svn-base test/unit/lib/redmine/views/builders/.svn/text-base/xml_test.rb.svn-base test/unit/lib/redmine/views/builders/json_test.rb test/unit/lib/redmine/views/builders/xml_test.rb test/unit/lib/redmine/wiki_formatting.rb test/unit/lib/redmine/wiki_formatting/.svn/all-wcprops test/unit/lib/redmine/wiki_formatting/.svn/entries test/unit/lib/redmine/wiki_formatting/.svn/text-base/macros_test.rb.svn-base test/unit/lib/redmine/wiki_formatting/.svn/text-base/textile_formatter_test.rb.svn-base test/unit/lib/redmine/wiki_formatting/macros_test.rb test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb test/unit/lib/redmine_test.rb test/unit/mail_handler_test.rb test/unit/mailer_test.rb test/unit/member_test.rb test/unit/message_test.rb test/unit/news_test.rb test/unit/principal_test.rb test/unit/project_nested_set_test.rb test/unit/project_test.rb test/unit/query_test.rb test/unit/repository_bazaar_test.rb test/unit/repository_cvs_test.rb test/unit/repository_darcs_test.rb test/unit/repository_filesystem_test.rb test/unit/repository_git_test.rb test/unit/repository_mercurial_test.rb test/unit/repository_subversion_test.rb test/unit/repository_test.rb test/unit/role_test.rb test/unit/search_test.rb test/unit/setting_test.rb test/unit/testing_test.rb test/unit/time_entry_activity_test.rb test/unit/time_entry_test.rb test/unit/token_test.rb test/unit/tracker_test.rb test/unit/user_preference_test.rb test/unit/user_test.rb test/unit/version_test.rb test/unit/watcher_test.rb test/unit/wiki_content_test.rb test/unit/wiki_page_test.rb test/unit/wiki_redirect_test.rb test/unit/wiki_test.rb tmp/.svn/entries tmp/cache/.svn/entries tmp/sessions/.svn/entries tmp/sockets/.svn/entries tmp/test/.svn/entries vendor/.svn/all-wcprops vendor/.svn/entries vendor/gems/.svn/entries vendor/gems/rubytree-0.5.2/.svn/entries vendor/gems/rubytree-0.5.2/lib/.svn/entries vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries vendor/gems/rubytree-0.5.2/test/.svn/entries vendor/plugins/.svn/all-wcprops vendor/plugins/.svn/entries vendor/plugins/acts_as_activity_provider/.svn/entries vendor/plugins/acts_as_activity_provider/lib/.svn/entries vendor/plugins/acts_as_attachable/.svn/entries vendor/plugins/acts_as_attachable/lib/.svn/entries vendor/plugins/acts_as_customizable/.svn/all-wcprops vendor/plugins/acts_as_customizable/.svn/entries vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops vendor/plugins/acts_as_customizable/lib/.svn/entries vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb vendor/plugins/acts_as_event/.svn/entries vendor/plugins/acts_as_event/lib/.svn/entries vendor/plugins/acts_as_list/.svn/entries vendor/plugins/acts_as_list/lib/.svn/entries vendor/plugins/acts_as_list/lib/active_record/.svn/entries vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries vendor/plugins/acts_as_list/test/.svn/entries vendor/plugins/acts_as_searchable/.svn/entries vendor/plugins/acts_as_searchable/lib/.svn/entries vendor/plugins/acts_as_tree/.svn/entries vendor/plugins/acts_as_tree/lib/.svn/entries vendor/plugins/acts_as_tree/lib/active_record/.svn/entries vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries vendor/plugins/acts_as_tree/test/.svn/entries vendor/plugins/acts_as_tree/test/fixtures/.svn/entries vendor/plugins/acts_as_versioned/.svn/entries vendor/plugins/acts_as_versioned/lib/.svn/entries vendor/plugins/acts_as_versioned/test/.svn/entries vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries vendor/plugins/acts_as_watchable/.svn/entries vendor/plugins/acts_as_watchable/lib/.svn/entries vendor/plugins/awesome_nested_set/.svn/entries vendor/plugins/awesome_nested_set/lib/.svn/entries vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries vendor/plugins/awesome_nested_set/rails/.svn/entries vendor/plugins/awesome_nested_set/test/.svn/entries vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries vendor/plugins/awesome_nested_set/test/db/.svn/entries vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries vendor/plugins/classic_pagination/.svn/entries vendor/plugins/classic_pagination/lib/.svn/entries vendor/plugins/classic_pagination/test/.svn/entries vendor/plugins/classic_pagination/test/fixtures/.svn/entries vendor/plugins/coderay-0.9.2/.svn/entries vendor/plugins/coderay-0.9.2/lib/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries vendor/plugins/engines/.svn/entries vendor/plugins/engines/generators/.svn/entries vendor/plugins/engines/generators/plugin_migration/.svn/entries vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries vendor/plugins/engines/lib/.svn/entries vendor/plugins/engines/lib/engines/.svn/entries vendor/plugins/engines/lib/engines/plugin/.svn/entries vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries vendor/plugins/engines/tasks/.svn/entries vendor/plugins/engines/test/.svn/entries vendor/plugins/engines/test/app/.svn/entries vendor/plugins/engines/test/app/controllers/.svn/entries vendor/plugins/engines/test/app/controllers/namespace/.svn/entries vendor/plugins/engines/test/app/helpers/.svn/entries vendor/plugins/engines/test/app/models/.svn/entries vendor/plugins/engines/test/app/things/.svn/entries vendor/plugins/engines/test/app/views/.svn/entries vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries vendor/plugins/engines/test/app/views/namespace/.svn/entries vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries vendor/plugins/engines/test/app/views/notify_mail/.svn/entries vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries vendor/plugins/engines/test/functional/.svn/entries vendor/plugins/engines/test/lib/.svn/entries vendor/plugins/engines/test/plugins/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries vendor/plugins/engines/test/plugins/test_assets/.svn/entries vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries vendor/plugins/engines/test/plugins/test_load_path/.svn/entries vendor/plugins/engines/test/plugins/test_migration/.svn/entries vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries vendor/plugins/engines/test/plugins/test_routing/.svn/entries vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries vendor/plugins/engines/test/plugins/test_testing/.svn/entries vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries vendor/plugins/engines/test/unit/.svn/entries vendor/plugins/engines/test/unit/test_testing/.svn/entries vendor/plugins/gravatar/.svn/entries vendor/plugins/gravatar/lib/.svn/entries vendor/plugins/gravatar/spec/.svn/entries vendor/plugins/open_id_authentication/.svn/entries vendor/plugins/open_id_authentication/generators/.svn/entries vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries vendor/plugins/open_id_authentication/lib/.svn/entries vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries vendor/plugins/open_id_authentication/tasks/.svn/entries vendor/plugins/open_id_authentication/test/.svn/entries vendor/plugins/prepend_engine_views/.svn/entries vendor/plugins/rfpdf/.svn/all-wcprops vendor/plugins/rfpdf/.svn/entries vendor/plugins/rfpdf/lib/.svn/all-wcprops vendor/plugins/rfpdf/lib/.svn/entries vendor/plugins/rfpdf/lib/rfpdf/.svn/all-wcprops vendor/plugins/rfpdf/lib/rfpdf/.svn/entries vendor/plugins/rfpdf/lib/rfpdf/.svn/text-base/fpdf.rb.svn-base vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb vendor/plugins/rfpdf/test/.svn/entries vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries
diffstat 1107 files changed, 35173 insertions(+), 26461 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,22 @@
+syntax: glob
+
+config/additional_environment.rb
+config/database.yml
+config/email.yml
+config/initializers/session_store.rb
+coverage
+db/*.db
+db/*.sqlite3
+db/schema.rb
+files/*
+log/*.log*
+log/mongrel_debug
+public/dispatch.*
+public/plugin_assets
+tmp/*
+tmp/cache/*
+tmp/sessions/*
+tmp/sockets/*
+tmp/test/*
+vendor/rails
+*.rbc
--- a/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 24
-/svn/!svn/ver/4411/trunk
+/svn/!svn/ver/4705/trunk
+END
+.hgignore
+K 25
+svn:wc:ra_dav:version-url
+V 34
+/svn/!svn/ver/4606/trunk/.hgignore
 END
 Rakefile
 K 25
--- a/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 has-props
 
 
@@ -32,6 +32,40 @@
 app
 dir
 
+.hgignore
+file
+
+
+
+
+2011-01-13T14:11:09.000000Z
+0f5961e6af62737d2a1f5e3ad47f8c89
+2011-01-01T21:07:43.412022Z
+4606
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+317
+
 log
 dir
 
@@ -69,6 +103,9 @@
 
 307
 
+extra
+dir
+
 README.rdoc
 file
 
@@ -103,9 +140,6 @@
 
 208
 
-extra
-dir
-
 db
 dir
 
@@ -121,12 +155,6 @@
 script
 dir
 
-doc
-dir
-
-config
-dir
-
 .gitignore
 file
 
@@ -161,6 +189,12 @@
 
 322
 
+config
+dir
+
+doc
+dir
+
 lib
 dir
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.svn/text-base/.hgignore.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,22 @@
+syntax: glob
+
+config/additional_environment.rb
+config/database.yml
+config/email.yml
+config/initializers/session_store.rb
+coverage
+db/*.db
+db/*.sqlite3
+db/schema.rb
+files/*
+log/*.log*
+log/mongrel_debug
+public/dispatch.*
+public/plugin_assets
+tmp/*
+tmp/cache/*
+tmp/sessions/*
+tmp/sockets/*
+tmp/test/*
+vendor/rails
+*.rbc
--- a/app/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 28
-/svn/!svn/ver/4411/trunk/app
+/svn/!svn/ver/4704/trunk/app
 END
--- a/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 
 
 
--- a/app/controllers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 40
-/svn/!svn/ver/4411/trunk/app/controllers
+/svn/!svn/ver/4703/trunk/app/controllers
 END
 issues_controller.rb
 K 25
 svn:wc:ra_dav:version-url
 V 61
-/svn/!svn/ver/4411/trunk/app/controllers/issues_controller.rb
+/svn/!svn/ver/4652/trunk/app/controllers/issues_controller.rb
 END
 queries_controller.rb
 K 25
@@ -37,13 +37,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/3945/trunk/app/controllers/auto_completes_controller.rb
+/svn/!svn/ver/4503/trunk/app/controllers/auto_completes_controller.rb
 END
 my_controller.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/4224/trunk/app/controllers/my_controller.rb
+/svn/!svn/ver/4497/trunk/app/controllers/my_controller.rb
 END
 comments_controller.rb
 K 25
@@ -67,13 +67,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4242/trunk/app/controllers/context_menus_controller.rb
+/svn/!svn/ver/4580/trunk/app/controllers/context_menus_controller.rb
 END
 journals_controller.rb
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/4034/trunk/app/controllers/journals_controller.rb
+/svn/!svn/ver/4535/trunk/app/controllers/journals_controller.rb
 END
 workflows_controller.rb
 K 25
@@ -103,13 +103,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/4220/trunk/app/controllers/settings_controller.rb
+/svn/!svn/ver/4432/trunk/app/controllers/settings_controller.rb
 END
 timelog_controller.rb
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/4410/trunk/app/controllers/timelog_controller.rb
+/svn/!svn/ver/4511/trunk/app/controllers/timelog_controller.rb
 END
 custom_fields_controller.rb
 K 25
@@ -121,7 +121,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 60
-/svn/!svn/ver/4382/trunk/app/controllers/users_controller.rb
+/svn/!svn/ver/4544/trunk/app/controllers/users_controller.rb
 END
 issue_moves_controller.rb
 K 25
@@ -139,7 +139,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/4286/trunk/app/controllers/application_controller.rb
+/svn/!svn/ver/4573/trunk/app/controllers/application_controller.rb
 END
 ldap_auth_sources_controller.rb
 K 25
@@ -199,7 +199,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4174/trunk/app/controllers/news_controller.rb
+/svn/!svn/ver/4505/trunk/app/controllers/news_controller.rb
 END
 trackers_controller.rb
 K 25
@@ -235,7 +235,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3680/trunk/app/controllers/repositories_controller.rb
+/svn/!svn/ver/4703/trunk/app/controllers/repositories_controller.rb
 END
 admin_controller.rb
 K 25
@@ -247,7 +247,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/4397/trunk/app/controllers/projects_controller.rb
+/svn/!svn/ver/4647/trunk/app/controllers/projects_controller.rb
 END
 account_controller.rb
 K 25
@@ -283,13 +283,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4303/trunk/app/controllers/wiki_controller.rb
+/svn/!svn/ver/4429/trunk/app/controllers/wiki_controller.rb
 END
 activities_controller.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4047/trunk/app/controllers/activities_controller.rb
+/svn/!svn/ver/4579/trunk/app/controllers/activities_controller.rb
 END
 enumerations_controller.rb
 K 25
--- a/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/controllers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-11-19T13:04:46.996826Z
-e6c77385e49176b593367b44e7b33f3e
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T14:09:10.000000Z
+2166617cc44ef66371dcac04c09755c2
+2011-01-08T00:19:51.192586Z
+4652
+tmaruyama
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-12834
+12149
 
 queries_controller.rb
 file
@@ -202,33 +202,33 @@
 
 
 
-2010-09-23T14:37:44.391741Z
-8cd8e21323a4500a05c26e4ebdde1812
-2010-08-17T15:03:58.074505Z
-3945
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-665
+2011-01-13T14:09:10.000000Z
+edbdb443ff7cc8f299f7772b3532eca1
+2010-12-12T16:06:43.892596Z
+4503
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+772
 
 my_controller.rb
 file
@@ -236,11 +236,11 @@
 
 
 
-2010-11-19T13:04:46.996826Z
-b465d7aeca2d6b4cc11159ae9bc7349e
-2010-09-28T22:13:11.637219Z
-4224
-edavis10
+2011-01-13T14:09:10.000000Z
+40ea055e0f9f9aa83680751fdab5a0a5
+2010-12-12T14:25:23.262992Z
+4497
+jplang
 has-props
 
 
@@ -262,7 +262,7 @@
 
 
 
-6021
+5768
 
 comments_controller.rb
 file
@@ -372,33 +372,33 @@
 
 
 
-2010-11-19T13:04:46.996826Z
-2db29b69c3f0130e470a0a11dfc1f28b
-2010-10-08T03:09:51.863032Z
-4242
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1821
+2011-01-13T14:09:10.000000Z
+596c3ab10f8cf4687f6d8b163e7a2243
+2010-12-29T19:55:52.079810Z
+4580
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1847
 
 journals_controller.rb
 file
@@ -406,11 +406,11 @@
 
 
 
-2010-09-23T14:37:44.395735Z
-deb481ad0f862b9305b79f292d59fb51
-2010-08-23T15:04:36.844654Z
-4034
-edavis10
+2011-01-13T14:09:10.000000Z
+bec68711fe4573cf428799354ea68f5d
+2010-12-18T17:11:41.680297Z
+4535
+jplang
 has-props
 
 
@@ -432,7 +432,7 @@
 
 
 
-3439
+3490
 
 workflows_controller.rb
 file
@@ -576,10 +576,10 @@
 
 
 
-2010-11-19T13:04:46.996826Z
-7984019db8d0beb1d7ff158390d4ad68
-2010-11-16T20:27:45.364396Z
-4410
+2011-01-13T14:09:10.000000Z
+3e6698f208a263105c7b4a59c60b26b3
+2010-12-14T18:29:24.891563Z
+4511
 jplang
 has-props
 
@@ -602,7 +602,7 @@
 
 
 
-8623
+10484
 
 custom_fields_controller.rb
 file
@@ -644,11 +644,11 @@
 
 
 
-2010-11-19T13:04:46.996826Z
-4328cabdf111342d147b245bc61bb75e
-2010-09-28T20:19:55.214366Z
-4220
-edavis10
+2011-01-13T14:09:10.000000Z
+98c4c9f33f038160a44752d229926c32
+2010-11-27T14:06:11.754120Z
+4432
+jplang
 has-props
 
 
@@ -670,7 +670,7 @@
 
 
 
-2239
+2271
 
 issue_moves_controller.rb
 file
@@ -712,10 +712,10 @@
 
 
 
-2010-11-19T13:04:47.000764Z
-3af0a81ba74621dc21d877a579b39d9c
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:10.000000Z
+645856b56e687a753f1fa3037f3c4922
+2010-12-20T17:45:09.037597Z
+4544
 jplang
 has-props
 
@@ -738,7 +738,7 @@
 
 
 
-7565
+8193
 
 files_controller.rb
 file
@@ -780,10 +780,10 @@
 
 
 
-2010-11-19T13:04:47.000764Z
-8f7d4c9d306ae9d59ea0e064466454d1
-2010-10-23T11:07:04.019894Z
-4286
+2011-01-13T14:09:10.000000Z
+218c497f1c4c6d7b41cdac214e595156
+2010-12-23T14:49:14.339855Z
+4573
 jplang
 has-props
 
@@ -806,7 +806,7 @@
 
 
 
-13669
+15545
 
 previews_controller.rb
 file
@@ -1120,11 +1120,11 @@
 
 
 
-2010-11-19T13:04:47.000764Z
-d9e36fcf69f18973b274648b7b70dccf
-2010-09-24T16:26:46.819682Z
-4174
-edavis10
+2011-01-13T14:09:10.000000Z
+cb358f888a6a92cc99bef83af92cd766
+2010-12-12T17:00:52.100205Z
+4505
+jplang
 has-props
 
 
@@ -1146,7 +1146,7 @@
 
 
 
-3221
+3369
 
 trackers_controller.rb
 file
@@ -1324,11 +1324,11 @@
 
 
 
-2010-09-23T14:37:44.399747Z
-a90fd2992bc17c6cee999369521194c4
-2010-04-17T12:51:46.860438Z
-3680
-jplang
+2011-01-13T14:09:10.000000Z
+91079cca88e5e1c0a5a220ebc1a3ddda
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -1350,7 +1350,7 @@
 
 
 
-10750
+11248
 
 admin_controller.rb
 file
@@ -1392,10 +1392,10 @@
 
 
 
-2010-11-19T13:04:47.000764Z
-b0f584d53a742f6c89b157030f9d6a8d
-2010-11-13T10:05:43.644565Z
-4397
+2011-01-13T14:09:10.000000Z
+c07d79c1bd100dd8972ea408c4fe549f
+2011-01-06T20:57:17.003359Z
+4647
 jplang
 has-props
 
@@ -1418,7 +1418,7 @@
 
 
 
-10011
+10103
 
 account_controller.rb
 file
@@ -1596,11 +1596,11 @@
 
 
 
-2010-11-19T13:04:47.004764Z
-0af823002ab9c7e8f59b3d12cf6267e9
-2010-10-28T21:25:38.778234Z
-4303
-edavis10
+2011-01-13T14:09:10.000000Z
+ccc57886f63cb0efb0149b601dd2ac43
+2010-11-27T10:34:44.408431Z
+4429
+jplang
 has-props
 
 
@@ -1622,7 +1622,7 @@
 
 
 
-10145
+10185
 
 activities_controller.rb
 file
@@ -1630,33 +1630,33 @@
 
 
 
-2010-09-24T12:48:26.275788Z
-88f55d118861ffaca0992fa5ec55d51f
-2010-08-27T14:05:54.014502Z
-4047
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1952
+2011-01-13T14:09:10.000000Z
+ad33818a03b408419be4e616e8c88b5c
+2010-12-29T19:37:42.740543Z
+4579
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2037
 
 enumerations_controller.rb
 file
--- a/app/controllers/.svn/text-base/activities_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/activities_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -23,7 +23,7 @@
 
     events = @activity.events(@date_from, @date_to)
     
-    if events.empty? || stale?(:etag => [events.first, User.current])
+    if events.empty? || stale?(:etag => [@activity.scope, @date_to, @date_from, @with_subprojects, @author, events.first, User.current, current_language])
       respond_to do |format|
         format.html { 
           @events_by_day = events.group_by(&:event_date)
--- a/app/controllers/.svn/text-base/application_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/application_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -22,7 +22,7 @@
   include Redmine::I18n
 
   layout 'base'
-  exempt_from_layout 'builder'
+  exempt_from_layout 'builder', 'rsb'
   
   # Remove broken cookie after upgrade from 0.8.x (#4292)
   # See https://rails.lighthouseapp.com/projects/8994/tickets/3360
@@ -71,10 +71,10 @@
     elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
       # RSS key authentication does not start a session
       User.find_by_rss_key(params[:key])
-    elsif Setting.rest_api_enabled? && ['xml', 'json'].include?(params[:format])
-      if params[:key].present? && accept_key_auth_actions.include?(params[:action])
+    elsif Setting.rest_api_enabled? && api_request?
+      if (key = api_key_from_request) && accept_key_auth_actions.include?(params[:action])
         # Use API key
-        User.find_by_api_key(params[:key])
+        User.find_by_api_key(key)
       else
         # HTTP Basic, either username/password or API key/random
         authenticate_with_http_basic do |username, password|
@@ -349,6 +349,30 @@
     per_page
   end
 
+  # Returns offset and limit used to retrieve objects
+  # for an API response based on offset, limit and page parameters
+  def api_offset_and_limit(options=params)
+    if options[:offset].present?
+      offset = options[:offset].to_i
+      if offset < 0
+        offset = 0
+      end
+    end
+    limit = options[:limit].to_i
+    if limit < 1
+      limit = 25
+    elsif limit > 100
+      limit = 100
+    end
+    if offset.nil? && options[:page].present?
+      offset = (options[:page].to_i - 1) * limit
+      offset = 0 if offset < 0
+    end
+    offset ||= 0
+    
+    [offset, limit]
+  end
+  
   # qvalues http header parser
   # code taken from webrick
   def parse_qvalues(value)
@@ -378,6 +402,15 @@
   def api_request?
     %w(xml json).include? params[:format]
   end
+  
+  # Returns the API key present in the request
+  def api_key_from_request
+    if params[:key].present?
+      params[:key]
+    elsif request.headers["X-Redmine-API-Key"].present?
+      request.headers["X-Redmine-API-Key"]
+    end
+  end
 
   # Renders a warning flash if obj has unsaved attachments
   def render_attachment_warning_if_needed(obj)
@@ -413,5 +446,37 @@
       { attribute => error }
     end.to_json
   end
+
+  # Renders API response on validation failure
+  def render_validation_errors(object)
+    options = { :status => :unprocessable_entity, :layout => false }
+    options.merge!(case params[:format]
+      when 'xml';  { :xml =>  object.errors }
+      when 'json'; { :json => {'errors' => object.errors} } # ActiveResource client compliance
+      else
+        raise "Unknown format #{params[:format]} in #render_validation_errors"
+      end
+    )
+    render options
+  end
   
+  # Overrides #default_template so that the api template
+  # is used automatically if it exists
+  def default_template(action_name = self.action_name)
+    if api_request?
+      begin
+        return self.view_paths.find_template(default_template_name(action_name), 'api')
+      rescue ::ActionView::MissingTemplate
+        # the api template was not found
+        # fallback to the default behaviour
+      end
+    end
+    super
+  end
+  
+  # Overrides #pick_layout so that #render with no arguments
+  # doesn't use the layout for api requests
+  def pick_layout(*args)
+    api_request? ? nil : super
+  end
 end
--- a/app/controllers/.svn/text-base/auto_completes_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/auto_completes_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -4,12 +4,14 @@
   def issues
     @issues = []
     q = params[:q].to_s
+    query = (params[:scope] == "all" && Setting.cross_project_issue_relations?) ? Issue : @project.issues
     if q.match(/^\d+$/)
-      @issues << @project.issues.visible.find_by_id(q.to_i)
+      @issues << query.visible.find_by_id(q.to_i)
     end
     unless q.blank?
-      @issues += @project.issues.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10)
+      @issues += query.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10)
     end
+    @issues.compact!
     render :layout => false
   end
 
--- a/app/controllers/.svn/text-base/context_menus_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/context_menus_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -2,7 +2,8 @@
   helper :watchers
   
   def issues
-    @issues = Issue.find_all_by_id(params[:ids], :include => :project)
+    @issues = Issue.visible.all(:conditions => {:id => params[:ids]}, :include => :project)
+    
     if (@issues.size == 1)
       @issue = @issues.first
       @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
--- a/app/controllers/.svn/text-base/issues_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/issues_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -44,6 +44,8 @@
   include AttachmentsHelper
   helper :queries
   include QueriesHelper
+  helper :repositories
+  include RepositoriesHelper
   helper :sort
   include SortHelper
   include IssuesHelper
@@ -65,27 +67,29 @@
     sort_update(@query.sortable_columns)
     
     if @query.valid?
-      limit = case params[:format]
+      case params[:format]
       when 'csv', 'pdf'
-        Setting.issues_export_limit.to_i
+        @limit = Setting.issues_export_limit.to_i
       when 'atom'
-        Setting.feeds_limit.to_i
+        @limit = Setting.feeds_limit.to_i
+      when 'xml', 'json'
+        @offset, @limit = api_offset_and_limit
       else
-        per_page_option
+        @limit = per_page_option
       end
       
       @issue_count = @query.issue_count
-      @issue_pages = Paginator.new self, @issue_count, limit, params['page']
+      @issue_pages = Paginator.new self, @issue_count, @limit, params['page']
+      @offset ||= @issue_pages.current.offset
       @issues = @query.issues(:include => [:assigned_to, :tracker, :priority, :category, :fixed_version],
                               :order => sort_clause, 
-                              :offset => @issue_pages.current.offset, 
-                              :limit => limit)
+                              :offset => @offset, 
+                              :limit => @limit)
       @issue_count_by_group = @query.issue_count_by_group
       
       respond_to do |format|
         format.html { render :template => 'issues/index.rhtml', :layout => !request.xhr? }
-        format.xml  { render :layout => false }
-        format.json { render :text => @issues.to_json, :layout => false }
+        format.api
         format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
         format.csv  { send_data(issues_to_csv(@issues, @project), :type => 'text/csv; header=present', :filename => 'export.csv') }
         format.pdf  { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'export.pdf') }
@@ -110,8 +114,7 @@
     @time_entry = TimeEntry.new
     respond_to do |format|
       format.html { render :template => 'issues/show.rhtml' }
-      format.xml  { render :layout => false }
-      format.json { render :text => @issue.to_json, :layout => false }
+      format.api
       format.atom { render :template => 'journals/index', :layout => false, :content_type => 'application/atom+xml' }
       format.pdf  { send_data(issue_to_pdf(@issue), :type => 'application/pdf', :filename => "#{@project.identifier}-#{@issue.id}.pdf") }
     end
@@ -138,15 +141,13 @@
           redirect_to(params[:continue] ?  { :action => 'new', :project_id => @project, :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } :
                       { :action => 'show', :id => @issue })
         }
-        format.xml  { render :action => 'show', :status => :created, :location => url_for(:controller => 'issues', :action => 'show', :id => @issue) }
-        format.json { render :text => @issue.to_json, :status => :created, :location => url_for(:controller => 'issues', :action => 'show'), :layout => false }
+        format.api  { render :action => 'show', :status => :created, :location => issue_url(@issue) }
       end
       return
     else
       respond_to do |format|
         format.html { render :action => 'new' }
-        format.xml  { render(:xml => @issue.errors, :status => :unprocessable_entity); return }
-        format.json { render :text => object_errors_to_json(@issue), :status => :unprocessable_entity, :layout => false }
+        format.api  { render_validation_errors(@issue) }
       end
     end
   end
@@ -171,8 +172,7 @@
 
       respond_to do |format|
         format.html { redirect_back_or_default({:action => 'show', :id => @issue}) }
-        format.xml  { head :ok }
-        format.json  { head :ok }
+        format.api  { head :ok }
       end
     else
       render_attachment_warning_if_needed(@issue)
@@ -181,8 +181,7 @@
 
       respond_to do |format|
         format.html { render :action => 'edit' }
-        format.xml  { render :xml => @issue.errors, :status => :unprocessable_entity }
-        format.json { render :text => object_errors_to_json(@issue), :status => :unprocessable_entity, :layout => false }
+        format.api  { render_validation_errors(@issue) }
       end
     end
   end
@@ -232,17 +231,14 @@
           TimeEntry.update_all("issue_id = #{reassign_to.id}", ['issue_id IN (?)', @issues])
         end
       else
-        unless params[:format] == 'xml' || params[:format] == 'json'
-          # display the destroy form if it's a user request
-          return
-        end
+        # display the destroy form if it's a user request
+        return unless api_request?
       end
     end
     @issues.each(&:destroy)
     respond_to do |format|
       format.html { redirect_back_or_default(:action => 'index', :project_id => @project) }
-      format.xml  { head :ok }
-      format.json  { head :ok }
+      format.api  { head :ok }
     end
   end
 
--- a/app/controllers/.svn/text-base/journals_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/journals_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -19,6 +19,7 @@
   before_filter :find_journal, :only => [:edit]
   before_filter :find_issue, :only => [:new]
   before_filter :find_optional_project, :only => [:index]
+  before_filter :authorize, :only => [:new, :edit]
   accept_key_auth :index
 
   helper :issues
--- a/app/controllers/.svn/text-base/my_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/my_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -19,6 +19,7 @@
   before_filter :require_login
 
   helper :issues
+  helper :users
   helper :custom_fields
 
   BLOCKS = { 'issuesassignedtome' => :label_assigned_to_me_issues,
@@ -53,21 +54,18 @@
     @user = User.current
     @pref = @user.pref
     if request.post?
-      @user.attributes = params[:user]
-      @user.mail_notification = params[:notification_option] || 'only_my_events'
+      @user.safe_attributes = params[:user]
       @user.pref.attributes = params[:pref]
       @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
       if @user.save
         @user.pref.save
-        @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+        @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
         set_language_if_valid @user.language
         flash[:notice] = l(:notice_account_updated)
         redirect_to :action => 'account'
         return
       end
     end
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification #? ? 'all' : (@user.notified_projects_ids.empty? ? 'none' : 'selected')    
   end
 
   # Manage user's password
--- a/app/controllers/.svn/text-base/news_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/news_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -26,15 +26,26 @@
   accept_key_auth :index
   
   def index
-    @news_pages, @newss = paginate :news,
-                                   :per_page => 10,
-                                   :conditions => Project.allowed_to_condition(User.current, :view_news, :project => @project),
-                                   :include => [:author, :project],
-                                   :order => "#{News.table_name}.created_on DESC"    
+    case params[:format]
+    when 'xml', 'json'
+      @offset, @limit = api_offset_and_limit
+    else
+      @limit =  10
+    end
+    
+    scope = @project ? @project.news.visible : News.visible
+    
+    @news_count = scope.count
+    @news_pages = Paginator.new self, @news_count, @limit, params['page']
+    @offset ||= @news_pages.current.offset
+    @newss = scope.all(:include => [:author, :project],
+                                       :order => "#{News.table_name}.created_on DESC",
+                                       :offset => @offset,
+                                       :limit => @limit)
+    
     respond_to do |format|
       format.html { render :layout => false if request.xhr? }
-      format.xml { render :xml => @newss.to_xml }
-      format.json { render :json => @newss.to_json }
+      format.api
       format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") }
     end
   end
--- a/app/controllers/.svn/text-base/projects_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/projects_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -24,7 +24,7 @@
   before_filter :authorize, :except => [ :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy]
   before_filter :authorize_global, :only => [:new, :create]
   before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ]
-  accept_key_auth :index
+  accept_key_auth :index, :show, :create, :update, :destroy
 
   after_filter :only => [:create, :edit, :update, :archive, :unarchive, :destroy] do |controller|
     if controller.request.post?
@@ -32,9 +32,6 @@
     end
   end
 
-  # TODO: convert to PUT only
-  verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
-
   helper :sort
   include SortHelper
   helper :custom_fields
@@ -52,8 +49,10 @@
       format.html { 
         @projects = Project.visible.find(:all, :order => 'lft') 
       }
-      format.xml  {
-        @projects = Project.visible.find(:all, :order => 'lft')
+      format.api  {
+        @offset, @limit = api_offset_and_limit
+        @project_count = Project.visible.count
+        @projects = Project.visible.all(:offset => @offset, :limit => @limit, :order => 'lft')
       }
       format.atom {
         projects = Project.visible.find(:all, :order => 'created_on DESC',
@@ -67,19 +66,15 @@
     @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
     @trackers = Tracker.all
     @project = Project.new(params[:project])
-
-    @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers?
-    @project.trackers = Tracker.all
-    @project.is_public = Setting.default_projects_public?
-    @project.enabled_module_names = Setting.default_projects_modules
   end
 
+  verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
   def create
     @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
     @trackers = Tracker.all
-    @project = Project.new(params[:project])
+    @project = Project.new
+    @project.safe_attributes = params[:project]
 
-    @project.enabled_module_names = params[:enabled_modules]
     if validate_parent_id && @project.save
       @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
       # Add current user as a project member if he is not admin
@@ -93,12 +88,12 @@
           flash[:notice] = l(:notice_successful_create)
           redirect_to :controller => 'projects', :action => 'settings', :id => @project
         }
-        format.xml  { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
+        format.api  { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
       end
     else
       respond_to do |format|
         format.html { render :action => 'new' }
-        format.xml  { render :xml => @project.errors, :status => :unprocessable_entity }
+        format.api  { render_validation_errors(@project) }
       end
     end
     
@@ -120,18 +115,19 @@
       end  
     else
       Mailer.with_deliveries(params[:notifications] == '1') do
-        @project = Project.new(params[:project])
+        @project = Project.new
+        @project.safe_attributes = params[:project]
         @project.enabled_module_names = params[:enabled_modules]
         if validate_parent_id && @project.copy(@source_project, :only => params[:only])
           @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
           flash[:notice] = l(:notice_successful_create)
-          redirect_to :controller => 'projects', :action => 'settings'
+          redirect_to :controller => 'projects', :action => 'settings', :id => @project
         elsif !@project.new_record?
           # Project was created
           # But some objects were not copied due to validation failures
           # (eg. issues from disabled trackers)
           # TODO: inform about that
-          redirect_to :controller => 'projects', :action => 'settings'
+          redirect_to :controller => 'projects', :action => 'settings', :id => @project
         end
       end
     end
@@ -169,7 +165,7 @@
     
     respond_to do |format|
       format.html
-      format.xml
+      format.api
     end
   end
 
@@ -185,8 +181,10 @@
   def edit
   end
 
+  # TODO: convert to PUT only
+  verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
   def update
-    @project.attributes = params[:project]
+    @project.safe_attributes = params[:project]
     if validate_parent_id && @project.save
       @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
       respond_to do |format|
@@ -194,7 +192,7 @@
           flash[:notice] = l(:notice_successful_update)
           redirect_to :action => 'settings', :id => @project
         }
-        format.xml  { head :ok }
+        format.api  { head :ok }
       end
     else
       respond_to do |format|
@@ -202,13 +200,14 @@
           settings
           render :action => 'settings'
         }
-        format.xml  { render :xml => @project.errors, :status => :unprocessable_entity }
+        format.api  { render_validation_errors(@project) }
       end
     end
   end
-  
+
+  verify :method => :post, :only => :modules, :render => {:nothing => true, :status => :method_not_allowed }
   def modules
-    @project.enabled_module_names = params[:enabled_modules]
+    @project.enabled_module_names = params[:enabled_module_names]
     flash[:notice] = l(:notice_successful_update)
     redirect_to :action => 'settings', :id => @project, :tab => 'modules'
   end
@@ -233,11 +232,11 @@
     if request.get?
       # display confirmation view
     else
-      if params[:format] == 'xml' || params[:confirm]
+      if api_request? || params[:confirm]
         @project_to_destroy.destroy
         respond_to do |format|
           format.html { redirect_to :controller => 'admin', :action => 'projects' }
-          format.xml  { head :ok }
+          format.api  { head :ok }
         end
       end
     end
--- a/app/controllers/.svn/text-base/repositories_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/repositories_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -139,6 +139,7 @@
   end
   
   def revision
+    raise ChangesetNotFound if @rev.nil? || @rev.empty?
     @changeset = @repository.find_changeset_by_name(@rev)
     raise ChangesetNotFound unless @changeset
 
@@ -174,9 +175,13 @@
         @diff = @repository.diff(@path, @rev, @rev_to)
         show_error_not_found unless @diff
       end
+
+      @changeset = @repository.find_changeset_by_name(@rev)
+      @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil
+      @diff_format_revisions = @repository.diff_format_revisions(@changeset, @changeset_to)
     end
   end
-  
+
   def stats  
   end
   
@@ -196,7 +201,10 @@
     end
   end
   
-private
+  private
+
+  REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i
+
   def find_repository
     @project = Project.find(params[:id])
     @repository = @project.repository
@@ -205,6 +213,12 @@
     @path ||= ''
     @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip
     @rev_to = params[:rev_to]
+    
+    unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE)
+      if @repository.branches.blank?
+        raise InvalidRevisionParam
+      end
+    end
   rescue ActiveRecord::RecordNotFound
     render_404
   rescue InvalidRevisionParam
--- a/app/controllers/.svn/text-base/settings_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/settings_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -44,6 +44,8 @@
 
     @guessed_host_and_path = request.host_with_port.dup
     @guessed_host_and_path << ('/'+ Redmine::Utils.relative_url_root.gsub(%r{^\/}, '')) unless Redmine::Utils.relative_url_root.blank?
+    
+    Redmine::Themes.rescan
   end
 
   def plugin
--- a/app/controllers/.svn/text-base/timelog_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/timelog_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007  Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -18,10 +18,11 @@
 class TimelogController < ApplicationController
   menu_item :issues
   before_filter :find_project, :only => [:new, :create]
-  before_filter :find_time_entry, :only => [:edit, :update, :destroy]
+  before_filter :find_time_entry, :only => [:show, :edit, :update, :destroy]
   before_filter :authorize, :except => [:index]
   before_filter :find_optional_project, :only => [:index]
-
+  accept_key_auth :index, :show, :create, :update, :destroy
+  
   helper :sort
   include SortHelper
   helper :issues
@@ -66,6 +67,16 @@
 
           render :layout => !request.xhr?
         }
+        format.api  {
+          @entry_count = TimeEntry.count(:include => [:project, :issue], :conditions => cond.conditions)
+          @entry_pages = Paginator.new self, @entry_count, per_page_option, params['page']
+          @entries = TimeEntry.find(:all, 
+                                    :include => [:project, :activity, :user, {:issue => :tracker}],
+                                    :conditions => cond.conditions,
+                                    :order => sort_clause,
+                                    :limit  =>  @entry_pages.items_per_page,
+                                    :offset =>  @entry_pages.current.offset)
+        }
         format.atom {
           entries = TimeEntry.find(:all,
                                    :include => [:project, :activity, :user, {:issue => :tracker}],
@@ -85,6 +96,14 @@
       end
     end
   end
+  
+  def show
+    respond_to do |format|
+      # TODO: Implement html response
+      format.html { render :nothing => true, :status => 406 }
+      format.api
+    end
+  end
 
   def new
     @time_entry ||= TimeEntry.new(:project => @project, :issue => @issue, :user => User.current, :spent_on => User.current.today)
@@ -102,10 +121,18 @@
     call_hook(:controller_timelog_edit_before_save, { :params => params, :time_entry => @time_entry })
     
     if @time_entry.save
-      flash[:notice] = l(:notice_successful_update)
-      redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+        }
+        format.api  { render :action => 'show', :status => :created, :location => time_entry_url(@time_entry) }
+      end
     else
-      render :action => 'edit'
+      respond_to do |format|
+        format.html { render :action => 'edit' }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end    
   end
   
@@ -122,21 +149,40 @@
     call_hook(:controller_timelog_edit_before_save, { :params => params, :time_entry => @time_entry })
     
     if @time_entry.save
-      flash[:notice] = l(:notice_successful_update)
-      redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+        }
+        format.api  { head :ok }
+      end
     else
-      render :action => 'edit'
+      respond_to do |format|
+        format.html { render :action => 'edit' }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end    
   end
 
   verify :method => :delete, :only => :destroy, :render => {:nothing => true, :status => :method_not_allowed }
   def destroy
     if @time_entry.destroy && @time_entry.destroyed?
-      flash[:notice] = l(:notice_successful_delete)
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_delete)
+          redirect_to :back
+        }
+        format.api  { head :ok }
+      end
     else
-      flash[:error] = l(:notice_unable_delete_time_entry)
+      respond_to do |format|
+        format.html {
+          flash[:error] = l(:notice_unable_delete_time_entry)
+          redirect_to :back
+        }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end
-    redirect_to :back
   rescue ::ActionController::RedirectBackError
     redirect_to :action => 'index', :project_id => @time_entry.project
   end
@@ -154,11 +200,11 @@
   end
 
   def find_project
-    if params[:issue_id]
-      @issue = Issue.find(params[:issue_id])
+    if (issue_id = (params[:issue_id] || params[:time_entry] && params[:time_entry][:issue_id])).present?
+      @issue = Issue.find(issue_id)
       @project = @issue.project
-    elsif params[:project_id]
-      @project = Project.find(params[:project_id])
+    elsif (project_id = (params[:project_id] || params[:time_entry] && params[:time_entry][:project_id])).present?
+      @project = Project.find(project_id)
     else
       render_404
       return false
--- a/app/controllers/.svn/text-base/users_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/users_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2009  Jean-Philippe Lang
+# Copyright (C) 2006-2010  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -19,6 +19,8 @@
   layout 'admin'
   
   before_filter :require_admin, :except => :show
+  before_filter :find_user, :only => [:show, :edit, :update, :edit_membership, :destroy_membership]
+  accept_key_auth :index, :show, :create, :update
 
   helper :sort
   include SortHelper
@@ -29,6 +31,13 @@
     sort_init 'login', 'asc'
     sort_update %w(login firstname lastname mail admin created_on last_login_on)
     
+    case params[:format]
+    when 'xml', 'json'
+      @offset, @limit = api_offset_and_limit
+    else
+      @limit = per_page_option
+    end
+    
     @status = params[:status] ? params[:status].to_i : 1
     c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status])
 
@@ -38,20 +47,21 @@
     end
     
     @user_count = User.count(:conditions => c.conditions)
-    @user_pages = Paginator.new self, @user_count,
-								per_page_option,
-								params['page']								
-    @users =  User.find :all,:order => sort_clause,
+    @user_pages = Paginator.new self, @user_count, @limit, params['page']
+    @offset ||= @user_pages.current.offset
+    @users =  User.find :all,
+                        :order => sort_clause,
                         :conditions => c.conditions,
-						:limit  =>  @user_pages.items_per_page,
-						:offset =>  @user_pages.current.offset
+                        :limit  =>  @limit,
+                        :offset =>  @offset
 
-    render :layout => !request.xhr?	
+		respond_to do |format|
+		  format.html { render :layout => !request.xhr? }
+      format.api
+		end	
   end
   
   def show
-    @user = User.find(params[:id])
-    
     # show projects based on current user visibility
     @memberships = @user.memberships.all(:conditions => Project.visible_by(User.current))
     
@@ -64,104 +74,110 @@
         return
       end
     end
-    render :layout => 'base'
-
-  rescue ActiveRecord::RecordNotFound
-    render_404
+    
+    respond_to do |format|
+      format.html { render :layout => 'base' }
+      format.api
+    end
   end
 
   def new
-    @notification_options = User::MAIL_NOTIFICATION_OPTIONS
-    @notification_option = Setting.default_notification_option
-
-    @user = User.new(:language => Setting.default_language)
+    @user = User.new(:language => Setting.default_language, :mail_notification => Setting.default_notification_option)
     @auth_sources = AuthSource.find(:all)
   end
   
   verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
   def create
-    @notification_options = User::MAIL_NOTIFICATION_OPTIONS
-    @notification_option = Setting.default_notification_option
-
-    @user = User.new(params[:user])
+    @user = User.new(:language => Setting.default_language, :mail_notification => Setting.default_notification_option)
+    @user.safe_attributes = params[:user]
     @user.admin = params[:user][:admin] || false
     @user.login = params[:user][:login]
-    @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id
+    @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation] unless @user.auth_source_id
 
     # TODO: Similar to My#account
-    @user.mail_notification = params[:notification_option] || 'only_my_events'
     @user.pref.attributes = params[:pref]
     @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
 
     if @user.save
       @user.pref.save
-      @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+      @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
 
-      Mailer.deliver_account_information(@user, params[:password]) if params[:send_information]
-      flash[:notice] = l(:notice_successful_create)
-      redirect_to(params[:continue] ? {:controller => 'users', :action => 'new'} : 
-                                      {:controller => 'users', :action => 'edit', :id => @user})
-      return
+      Mailer.deliver_account_information(@user, params[:user][:password]) if params[:send_information]
+      
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_create)
+          redirect_to(params[:continue] ? 
+            {:controller => 'users', :action => 'new'} : 
+            {:controller => 'users', :action => 'edit', :id => @user}
+          )
+        }
+        format.api  { render :action => 'show', :status => :created, :location => user_url(@user) }
+      end
     else
       @auth_sources = AuthSource.find(:all)
-      @notification_option = @user.mail_notification
+      # Clear password input
+      @user.password = @user.password_confirmation = nil
 
-      render :action => 'new'
+      respond_to do |format|
+        format.html { render :action => 'new' }
+        format.api  { render_validation_errors(@user) }
+      end
     end
   end
 
   def edit
-    @user = User.find(params[:id])
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification
-
     @auth_sources = AuthSource.find(:all)
     @membership ||= Member.new
   end
   
   verify :method => :put, :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
   def update
-    @user = User.find(params[:id])
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification
-
     @user.admin = params[:user][:admin] if params[:user][:admin]
     @user.login = params[:user][:login] if params[:user][:login]
-    if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
-      @user.password, @user.password_confirmation = params[:password], params[:password_confirmation]
+    if params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
+      @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation]
     end
-    @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids]
-    @user.attributes = params[:user]
+    @user.safe_attributes = params[:user]
     # Was the account actived ? (do it before User#save clears the change)
     was_activated = (@user.status_change == [User::STATUS_REGISTERED, User::STATUS_ACTIVE])
     # TODO: Similar to My#account
-    @user.mail_notification = params[:notification_option] || 'only_my_events'
     @user.pref.attributes = params[:pref]
     @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
 
     if @user.save
       @user.pref.save
-      @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+      @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
 
       if was_activated
         Mailer.deliver_account_activated(@user)
-      elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil?
-        Mailer.deliver_account_information(@user, params[:password])
+      elsif @user.active? && params[:send_information] && !params[:user][:password].blank? && @user.auth_source_id.nil?
+        Mailer.deliver_account_information(@user, params[:user][:password])
       end
-      flash[:notice] = l(:notice_successful_update)
-      redirect_to :back
+      
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_to :back
+        }
+        format.api  { head :ok }
+      end
     else
       @auth_sources = AuthSource.find(:all)
       @membership ||= Member.new
+      # Clear password input
+      @user.password = @user.password_confirmation = nil
 
-      render :action => :edit
+      respond_to do |format|
+        format.html { render :action => :edit }
+        format.api  { render_validation_errors(@user) }
+      end
     end
   rescue ::ActionController::RedirectBackError
     redirect_to :controller => 'users', :action => 'edit', :id => @user
   end
 
   def edit_membership
-    @user = User.find(params[:id])
     @membership = Member.edit_membership(params[:membership_id], params[:membership], @user)
     @membership.save if request.post?
     respond_to do |format|
@@ -184,7 +200,6 @@
   end
   
   def destroy_membership
-    @user = User.find(params[:id])
     @membership = Member.find(params[:membership_id])
     if request.post? && @membership.deletable?
       @membership.destroy
@@ -194,4 +209,17 @@
       format.js { render(:update) {|page| page.replace_html "tab-content-memberships", :partial => 'users/memberships'} }
     end
   end
+  
+  private
+  
+  def find_user
+    if params[:id] == 'current'
+      require_login || return
+      @user = User.current
+    else
+      @user = User.find(params[:id])
+    end
+  rescue ActiveRecord::RecordNotFound
+    render_404
+  end
 end
--- a/app/controllers/.svn/text-base/wiki_controller.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/.svn/text-base/wiki_controller.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -125,6 +125,8 @@
       render_attachment_warning_if_needed(@page)
       call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page})
       redirect_to :action => 'show', :project_id => @project, :id => @page.title
+    else
+      render :action => 'edit'
     end
 
   rescue ActiveRecord::StaleObjectError
--- a/app/controllers/activities_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/activities_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -23,7 +23,7 @@
 
     events = @activity.events(@date_from, @date_to)
     
-    if events.empty? || stale?(:etag => [events.first, User.current])
+    if events.empty? || stale?(:etag => [@activity.scope, @date_to, @date_from, @with_subprojects, @author, events.first, User.current, current_language])
       respond_to do |format|
         format.html { 
           @events_by_day = events.group_by(&:event_date)
--- a/app/controllers/application_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/application_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -22,7 +22,7 @@
   include Redmine::I18n
 
   layout 'base'
-  exempt_from_layout 'builder'
+  exempt_from_layout 'builder', 'rsb'
   
   # Remove broken cookie after upgrade from 0.8.x (#4292)
   # See https://rails.lighthouseapp.com/projects/8994/tickets/3360
@@ -71,10 +71,10 @@
     elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
       # RSS key authentication does not start a session
       User.find_by_rss_key(params[:key])
-    elsif Setting.rest_api_enabled? && ['xml', 'json'].include?(params[:format])
-      if params[:key].present? && accept_key_auth_actions.include?(params[:action])
+    elsif Setting.rest_api_enabled? && api_request?
+      if (key = api_key_from_request) && accept_key_auth_actions.include?(params[:action])
         # Use API key
-        User.find_by_api_key(params[:key])
+        User.find_by_api_key(key)
       else
         # HTTP Basic, either username/password or API key/random
         authenticate_with_http_basic do |username, password|
@@ -349,6 +349,30 @@
     per_page
   end
 
+  # Returns offset and limit used to retrieve objects
+  # for an API response based on offset, limit and page parameters
+  def api_offset_and_limit(options=params)
+    if options[:offset].present?
+      offset = options[:offset].to_i
+      if offset < 0
+        offset = 0
+      end
+    end
+    limit = options[:limit].to_i
+    if limit < 1
+      limit = 25
+    elsif limit > 100
+      limit = 100
+    end
+    if offset.nil? && options[:page].present?
+      offset = (options[:page].to_i - 1) * limit
+      offset = 0 if offset < 0
+    end
+    offset ||= 0
+    
+    [offset, limit]
+  end
+  
   # qvalues http header parser
   # code taken from webrick
   def parse_qvalues(value)
@@ -378,6 +402,15 @@
   def api_request?
     %w(xml json).include? params[:format]
   end
+  
+  # Returns the API key present in the request
+  def api_key_from_request
+    if params[:key].present?
+      params[:key]
+    elsif request.headers["X-Redmine-API-Key"].present?
+      request.headers["X-Redmine-API-Key"]
+    end
+  end
 
   # Renders a warning flash if obj has unsaved attachments
   def render_attachment_warning_if_needed(obj)
@@ -413,5 +446,37 @@
       { attribute => error }
     end.to_json
   end
+
+  # Renders API response on validation failure
+  def render_validation_errors(object)
+    options = { :status => :unprocessable_entity, :layout => false }
+    options.merge!(case params[:format]
+      when 'xml';  { :xml =>  object.errors }
+      when 'json'; { :json => {'errors' => object.errors} } # ActiveResource client compliance
+      else
+        raise "Unknown format #{params[:format]} in #render_validation_errors"
+      end
+    )
+    render options
+  end
   
+  # Overrides #default_template so that the api template
+  # is used automatically if it exists
+  def default_template(action_name = self.action_name)
+    if api_request?
+      begin
+        return self.view_paths.find_template(default_template_name(action_name), 'api')
+      rescue ::ActionView::MissingTemplate
+        # the api template was not found
+        # fallback to the default behaviour
+      end
+    end
+    super
+  end
+  
+  # Overrides #pick_layout so that #render with no arguments
+  # doesn't use the layout for api requests
+  def pick_layout(*args)
+    api_request? ? nil : super
+  end
 end
--- a/app/controllers/auto_completes_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/auto_completes_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -4,12 +4,14 @@
   def issues
     @issues = []
     q = params[:q].to_s
+    query = (params[:scope] == "all" && Setting.cross_project_issue_relations?) ? Issue : @project.issues
     if q.match(/^\d+$/)
-      @issues << @project.issues.visible.find_by_id(q.to_i)
+      @issues << query.visible.find_by_id(q.to_i)
     end
     unless q.blank?
-      @issues += @project.issues.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10)
+      @issues += query.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10)
     end
+    @issues.compact!
     render :layout => false
   end
 
--- a/app/controllers/context_menus_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/context_menus_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -2,7 +2,8 @@
   helper :watchers
   
   def issues
-    @issues = Issue.find_all_by_id(params[:ids], :include => :project)
+    @issues = Issue.visible.all(:conditions => {:id => params[:ids]}, :include => :project)
+    
     if (@issues.size == 1)
       @issue = @issues.first
       @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
--- a/app/controllers/issues_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/issues_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -44,6 +44,8 @@
   include AttachmentsHelper
   helper :queries
   include QueriesHelper
+  helper :repositories
+  include RepositoriesHelper
   helper :sort
   include SortHelper
   include IssuesHelper
@@ -65,27 +67,29 @@
     sort_update(@query.sortable_columns)
     
     if @query.valid?
-      limit = case params[:format]
+      case params[:format]
       when 'csv', 'pdf'
-        Setting.issues_export_limit.to_i
+        @limit = Setting.issues_export_limit.to_i
       when 'atom'
-        Setting.feeds_limit.to_i
+        @limit = Setting.feeds_limit.to_i
+      when 'xml', 'json'
+        @offset, @limit = api_offset_and_limit
       else
-        per_page_option
+        @limit = per_page_option
       end
       
       @issue_count = @query.issue_count
-      @issue_pages = Paginator.new self, @issue_count, limit, params['page']
+      @issue_pages = Paginator.new self, @issue_count, @limit, params['page']
+      @offset ||= @issue_pages.current.offset
       @issues = @query.issues(:include => [:assigned_to, :tracker, :priority, :category, :fixed_version],
                               :order => sort_clause, 
-                              :offset => @issue_pages.current.offset, 
-                              :limit => limit)
+                              :offset => @offset, 
+                              :limit => @limit)
       @issue_count_by_group = @query.issue_count_by_group
       
       respond_to do |format|
         format.html { render :template => 'issues/index.rhtml', :layout => !request.xhr? }
-        format.xml  { render :layout => false }
-        format.json { render :text => @issues.to_json, :layout => false }
+        format.api
         format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
         format.csv  { send_data(issues_to_csv(@issues, @project), :type => 'text/csv; header=present', :filename => 'export.csv') }
         format.pdf  { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'export.pdf') }
@@ -110,8 +114,7 @@
     @time_entry = TimeEntry.new
     respond_to do |format|
       format.html { render :template => 'issues/show.rhtml' }
-      format.xml  { render :layout => false }
-      format.json { render :text => @issue.to_json, :layout => false }
+      format.api
       format.atom { render :template => 'journals/index', :layout => false, :content_type => 'application/atom+xml' }
       format.pdf  { send_data(issue_to_pdf(@issue), :type => 'application/pdf', :filename => "#{@project.identifier}-#{@issue.id}.pdf") }
     end
@@ -138,15 +141,13 @@
           redirect_to(params[:continue] ?  { :action => 'new', :project_id => @project, :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } :
                       { :action => 'show', :id => @issue })
         }
-        format.xml  { render :action => 'show', :status => :created, :location => url_for(:controller => 'issues', :action => 'show', :id => @issue) }
-        format.json { render :text => @issue.to_json, :status => :created, :location => url_for(:controller => 'issues', :action => 'show'), :layout => false }
+        format.api  { render :action => 'show', :status => :created, :location => issue_url(@issue) }
       end
       return
     else
       respond_to do |format|
         format.html { render :action => 'new' }
-        format.xml  { render(:xml => @issue.errors, :status => :unprocessable_entity); return }
-        format.json { render :text => object_errors_to_json(@issue), :status => :unprocessable_entity, :layout => false }
+        format.api  { render_validation_errors(@issue) }
       end
     end
   end
@@ -171,8 +172,7 @@
 
       respond_to do |format|
         format.html { redirect_back_or_default({:action => 'show', :id => @issue}) }
-        format.xml  { head :ok }
-        format.json  { head :ok }
+        format.api  { head :ok }
       end
     else
       render_attachment_warning_if_needed(@issue)
@@ -181,8 +181,7 @@
 
       respond_to do |format|
         format.html { render :action => 'edit' }
-        format.xml  { render :xml => @issue.errors, :status => :unprocessable_entity }
-        format.json { render :text => object_errors_to_json(@issue), :status => :unprocessable_entity, :layout => false }
+        format.api  { render_validation_errors(@issue) }
       end
     end
   end
@@ -232,17 +231,14 @@
           TimeEntry.update_all("issue_id = #{reassign_to.id}", ['issue_id IN (?)', @issues])
         end
       else
-        unless params[:format] == 'xml' || params[:format] == 'json'
-          # display the destroy form if it's a user request
-          return
-        end
+        # display the destroy form if it's a user request
+        return unless api_request?
       end
     end
     @issues.each(&:destroy)
     respond_to do |format|
       format.html { redirect_back_or_default(:action => 'index', :project_id => @project) }
-      format.xml  { head :ok }
-      format.json  { head :ok }
+      format.api  { head :ok }
     end
   end
 
--- a/app/controllers/journals_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/journals_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -19,6 +19,7 @@
   before_filter :find_journal, :only => [:edit]
   before_filter :find_issue, :only => [:new]
   before_filter :find_optional_project, :only => [:index]
+  before_filter :authorize, :only => [:new, :edit]
   accept_key_auth :index
 
   helper :issues
--- a/app/controllers/my_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/my_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -19,6 +19,7 @@
   before_filter :require_login
 
   helper :issues
+  helper :users
   helper :custom_fields
 
   BLOCKS = { 'issuesassignedtome' => :label_assigned_to_me_issues,
@@ -53,21 +54,18 @@
     @user = User.current
     @pref = @user.pref
     if request.post?
-      @user.attributes = params[:user]
-      @user.mail_notification = params[:notification_option] || 'only_my_events'
+      @user.safe_attributes = params[:user]
       @user.pref.attributes = params[:pref]
       @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
       if @user.save
         @user.pref.save
-        @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+        @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
         set_language_if_valid @user.language
         flash[:notice] = l(:notice_account_updated)
         redirect_to :action => 'account'
         return
       end
     end
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification #? ? 'all' : (@user.notified_projects_ids.empty? ? 'none' : 'selected')    
   end
 
   # Manage user's password
--- a/app/controllers/news_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/news_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -26,15 +26,26 @@
   accept_key_auth :index
   
   def index
-    @news_pages, @newss = paginate :news,
-                                   :per_page => 10,
-                                   :conditions => Project.allowed_to_condition(User.current, :view_news, :project => @project),
-                                   :include => [:author, :project],
-                                   :order => "#{News.table_name}.created_on DESC"    
+    case params[:format]
+    when 'xml', 'json'
+      @offset, @limit = api_offset_and_limit
+    else
+      @limit =  10
+    end
+    
+    scope = @project ? @project.news.visible : News.visible
+    
+    @news_count = scope.count
+    @news_pages = Paginator.new self, @news_count, @limit, params['page']
+    @offset ||= @news_pages.current.offset
+    @newss = scope.all(:include => [:author, :project],
+                                       :order => "#{News.table_name}.created_on DESC",
+                                       :offset => @offset,
+                                       :limit => @limit)
+    
     respond_to do |format|
       format.html { render :layout => false if request.xhr? }
-      format.xml { render :xml => @newss.to_xml }
-      format.json { render :json => @newss.to_json }
+      format.api
       format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") }
     end
   end
--- a/app/controllers/projects_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/projects_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -24,7 +24,7 @@
   before_filter :authorize, :except => [ :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy]
   before_filter :authorize_global, :only => [:new, :create]
   before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ]
-  accept_key_auth :index
+  accept_key_auth :index, :show, :create, :update, :destroy
 
   after_filter :only => [:create, :edit, :update, :archive, :unarchive, :destroy] do |controller|
     if controller.request.post?
@@ -32,9 +32,6 @@
     end
   end
 
-  # TODO: convert to PUT only
-  verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
-
   helper :sort
   include SortHelper
   helper :custom_fields
@@ -52,8 +49,10 @@
       format.html { 
         @projects = Project.visible.find(:all, :order => 'lft') 
       }
-      format.xml  {
-        @projects = Project.visible.find(:all, :order => 'lft')
+      format.api  {
+        @offset, @limit = api_offset_and_limit
+        @project_count = Project.visible.count
+        @projects = Project.visible.all(:offset => @offset, :limit => @limit, :order => 'lft')
       }
       format.atom {
         projects = Project.visible.find(:all, :order => 'created_on DESC',
@@ -67,19 +66,15 @@
     @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
     @trackers = Tracker.all
     @project = Project.new(params[:project])
-
-    @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers?
-    @project.trackers = Tracker.all
-    @project.is_public = Setting.default_projects_public?
-    @project.enabled_module_names = Setting.default_projects_modules
   end
 
+  verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
   def create
     @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
     @trackers = Tracker.all
-    @project = Project.new(params[:project])
+    @project = Project.new
+    @project.safe_attributes = params[:project]
 
-    @project.enabled_module_names = params[:enabled_modules]
     if validate_parent_id && @project.save
       @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
       # Add current user as a project member if he is not admin
@@ -93,12 +88,12 @@
           flash[:notice] = l(:notice_successful_create)
           redirect_to :controller => 'projects', :action => 'settings', :id => @project
         }
-        format.xml  { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
+        format.api  { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
       end
     else
       respond_to do |format|
         format.html { render :action => 'new' }
-        format.xml  { render :xml => @project.errors, :status => :unprocessable_entity }
+        format.api  { render_validation_errors(@project) }
       end
     end
     
@@ -120,18 +115,19 @@
       end  
     else
       Mailer.with_deliveries(params[:notifications] == '1') do
-        @project = Project.new(params[:project])
+        @project = Project.new
+        @project.safe_attributes = params[:project]
         @project.enabled_module_names = params[:enabled_modules]
         if validate_parent_id && @project.copy(@source_project, :only => params[:only])
           @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
           flash[:notice] = l(:notice_successful_create)
-          redirect_to :controller => 'projects', :action => 'settings'
+          redirect_to :controller => 'projects', :action => 'settings', :id => @project
         elsif !@project.new_record?
           # Project was created
           # But some objects were not copied due to validation failures
           # (eg. issues from disabled trackers)
           # TODO: inform about that
-          redirect_to :controller => 'projects', :action => 'settings'
+          redirect_to :controller => 'projects', :action => 'settings', :id => @project
         end
       end
     end
@@ -169,7 +165,7 @@
     
     respond_to do |format|
       format.html
-      format.xml
+      format.api
     end
   end
 
@@ -185,8 +181,10 @@
   def edit
   end
 
+  # TODO: convert to PUT only
+  verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
   def update
-    @project.attributes = params[:project]
+    @project.safe_attributes = params[:project]
     if validate_parent_id && @project.save
       @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
       respond_to do |format|
@@ -194,7 +192,7 @@
           flash[:notice] = l(:notice_successful_update)
           redirect_to :action => 'settings', :id => @project
         }
-        format.xml  { head :ok }
+        format.api  { head :ok }
       end
     else
       respond_to do |format|
@@ -202,13 +200,14 @@
           settings
           render :action => 'settings'
         }
-        format.xml  { render :xml => @project.errors, :status => :unprocessable_entity }
+        format.api  { render_validation_errors(@project) }
       end
     end
   end
-  
+
+  verify :method => :post, :only => :modules, :render => {:nothing => true, :status => :method_not_allowed }
   def modules
-    @project.enabled_module_names = params[:enabled_modules]
+    @project.enabled_module_names = params[:enabled_module_names]
     flash[:notice] = l(:notice_successful_update)
     redirect_to :action => 'settings', :id => @project, :tab => 'modules'
   end
@@ -233,11 +232,11 @@
     if request.get?
       # display confirmation view
     else
-      if params[:format] == 'xml' || params[:confirm]
+      if api_request? || params[:confirm]
         @project_to_destroy.destroy
         respond_to do |format|
           format.html { redirect_to :controller => 'admin', :action => 'projects' }
-          format.xml  { head :ok }
+          format.api  { head :ok }
         end
       end
     end
--- a/app/controllers/repositories_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/repositories_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -139,6 +139,7 @@
   end
   
   def revision
+    raise ChangesetNotFound if @rev.nil? || @rev.empty?
     @changeset = @repository.find_changeset_by_name(@rev)
     raise ChangesetNotFound unless @changeset
 
@@ -174,9 +175,13 @@
         @diff = @repository.diff(@path, @rev, @rev_to)
         show_error_not_found unless @diff
       end
+
+      @changeset = @repository.find_changeset_by_name(@rev)
+      @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil
+      @diff_format_revisions = @repository.diff_format_revisions(@changeset, @changeset_to)
     end
   end
-  
+
   def stats  
   end
   
@@ -196,7 +201,10 @@
     end
   end
   
-private
+  private
+
+  REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i
+
   def find_repository
     @project = Project.find(params[:id])
     @repository = @project.repository
@@ -205,6 +213,12 @@
     @path ||= ''
     @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip
     @rev_to = params[:rev_to]
+    
+    unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE)
+      if @repository.branches.blank?
+        raise InvalidRevisionParam
+      end
+    end
   rescue ActiveRecord::RecordNotFound
     render_404
   rescue InvalidRevisionParam
--- a/app/controllers/settings_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/settings_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -44,6 +44,8 @@
 
     @guessed_host_and_path = request.host_with_port.dup
     @guessed_host_and_path << ('/'+ Redmine::Utils.relative_url_root.gsub(%r{^\/}, '')) unless Redmine::Utils.relative_url_root.blank?
+    
+    Redmine::Themes.rescan
   end
 
   def plugin
--- a/app/controllers/timelog_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/timelog_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007  Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -18,10 +18,11 @@
 class TimelogController < ApplicationController
   menu_item :issues
   before_filter :find_project, :only => [:new, :create]
-  before_filter :find_time_entry, :only => [:edit, :update, :destroy]
+  before_filter :find_time_entry, :only => [:show, :edit, :update, :destroy]
   before_filter :authorize, :except => [:index]
   before_filter :find_optional_project, :only => [:index]
-
+  accept_key_auth :index, :show, :create, :update, :destroy
+  
   helper :sort
   include SortHelper
   helper :issues
@@ -66,6 +67,16 @@
 
           render :layout => !request.xhr?
         }
+        format.api  {
+          @entry_count = TimeEntry.count(:include => [:project, :issue], :conditions => cond.conditions)
+          @entry_pages = Paginator.new self, @entry_count, per_page_option, params['page']
+          @entries = TimeEntry.find(:all, 
+                                    :include => [:project, :activity, :user, {:issue => :tracker}],
+                                    :conditions => cond.conditions,
+                                    :order => sort_clause,
+                                    :limit  =>  @entry_pages.items_per_page,
+                                    :offset =>  @entry_pages.current.offset)
+        }
         format.atom {
           entries = TimeEntry.find(:all,
                                    :include => [:project, :activity, :user, {:issue => :tracker}],
@@ -85,6 +96,14 @@
       end
     end
   end
+  
+  def show
+    respond_to do |format|
+      # TODO: Implement html response
+      format.html { render :nothing => true, :status => 406 }
+      format.api
+    end
+  end
 
   def new
     @time_entry ||= TimeEntry.new(:project => @project, :issue => @issue, :user => User.current, :spent_on => User.current.today)
@@ -102,10 +121,18 @@
     call_hook(:controller_timelog_edit_before_save, { :params => params, :time_entry => @time_entry })
     
     if @time_entry.save
-      flash[:notice] = l(:notice_successful_update)
-      redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+        }
+        format.api  { render :action => 'show', :status => :created, :location => time_entry_url(@time_entry) }
+      end
     else
-      render :action => 'edit'
+      respond_to do |format|
+        format.html { render :action => 'edit' }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end    
   end
   
@@ -122,21 +149,40 @@
     call_hook(:controller_timelog_edit_before_save, { :params => params, :time_entry => @time_entry })
     
     if @time_entry.save
-      flash[:notice] = l(:notice_successful_update)
-      redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_back_or_default :action => 'index', :project_id => @time_entry.project
+        }
+        format.api  { head :ok }
+      end
     else
-      render :action => 'edit'
+      respond_to do |format|
+        format.html { render :action => 'edit' }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end    
   end
 
   verify :method => :delete, :only => :destroy, :render => {:nothing => true, :status => :method_not_allowed }
   def destroy
     if @time_entry.destroy && @time_entry.destroyed?
-      flash[:notice] = l(:notice_successful_delete)
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_delete)
+          redirect_to :back
+        }
+        format.api  { head :ok }
+      end
     else
-      flash[:error] = l(:notice_unable_delete_time_entry)
+      respond_to do |format|
+        format.html {
+          flash[:error] = l(:notice_unable_delete_time_entry)
+          redirect_to :back
+        }
+        format.api  { render_validation_errors(@time_entry) }
+      end
     end
-    redirect_to :back
   rescue ::ActionController::RedirectBackError
     redirect_to :action => 'index', :project_id => @time_entry.project
   end
@@ -154,11 +200,11 @@
   end
 
   def find_project
-    if params[:issue_id]
-      @issue = Issue.find(params[:issue_id])
+    if (issue_id = (params[:issue_id] || params[:time_entry] && params[:time_entry][:issue_id])).present?
+      @issue = Issue.find(issue_id)
       @project = @issue.project
-    elsif params[:project_id]
-      @project = Project.find(params[:project_id])
+    elsif (project_id = (params[:project_id] || params[:time_entry] && params[:time_entry][:project_id])).present?
+      @project = Project.find(project_id)
     else
       render_404
       return false
--- a/app/controllers/users_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/users_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2009  Jean-Philippe Lang
+# Copyright (C) 2006-2010  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -19,6 +19,8 @@
   layout 'admin'
   
   before_filter :require_admin, :except => :show
+  before_filter :find_user, :only => [:show, :edit, :update, :edit_membership, :destroy_membership]
+  accept_key_auth :index, :show, :create, :update
 
   helper :sort
   include SortHelper
@@ -29,6 +31,13 @@
     sort_init 'login', 'asc'
     sort_update %w(login firstname lastname mail admin created_on last_login_on)
     
+    case params[:format]
+    when 'xml', 'json'
+      @offset, @limit = api_offset_and_limit
+    else
+      @limit = per_page_option
+    end
+    
     @status = params[:status] ? params[:status].to_i : 1
     c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status])
 
@@ -38,20 +47,21 @@
     end
     
     @user_count = User.count(:conditions => c.conditions)
-    @user_pages = Paginator.new self, @user_count,
-								per_page_option,
-								params['page']								
-    @users =  User.find :all,:order => sort_clause,
+    @user_pages = Paginator.new self, @user_count, @limit, params['page']
+    @offset ||= @user_pages.current.offset
+    @users =  User.find :all,
+                        :order => sort_clause,
                         :conditions => c.conditions,
-						:limit  =>  @user_pages.items_per_page,
-						:offset =>  @user_pages.current.offset
+                        :limit  =>  @limit,
+                        :offset =>  @offset
 
-    render :layout => !request.xhr?	
+		respond_to do |format|
+		  format.html { render :layout => !request.xhr? }
+      format.api
+		end	
   end
   
   def show
-    @user = User.find(params[:id])
-    
     # show projects based on current user visibility
     @memberships = @user.memberships.all(:conditions => Project.visible_by(User.current))
     
@@ -64,104 +74,110 @@
         return
       end
     end
-    render :layout => 'base'
-
-  rescue ActiveRecord::RecordNotFound
-    render_404
+    
+    respond_to do |format|
+      format.html { render :layout => 'base' }
+      format.api
+    end
   end
 
   def new
-    @notification_options = User::MAIL_NOTIFICATION_OPTIONS
-    @notification_option = Setting.default_notification_option
-
-    @user = User.new(:language => Setting.default_language)
+    @user = User.new(:language => Setting.default_language, :mail_notification => Setting.default_notification_option)
     @auth_sources = AuthSource.find(:all)
   end
   
   verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
   def create
-    @notification_options = User::MAIL_NOTIFICATION_OPTIONS
-    @notification_option = Setting.default_notification_option
-
-    @user = User.new(params[:user])
+    @user = User.new(:language => Setting.default_language, :mail_notification => Setting.default_notification_option)
+    @user.safe_attributes = params[:user]
     @user.admin = params[:user][:admin] || false
     @user.login = params[:user][:login]
-    @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id
+    @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation] unless @user.auth_source_id
 
     # TODO: Similar to My#account
-    @user.mail_notification = params[:notification_option] || 'only_my_events'
     @user.pref.attributes = params[:pref]
     @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
 
     if @user.save
       @user.pref.save
-      @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+      @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
 
-      Mailer.deliver_account_information(@user, params[:password]) if params[:send_information]
-      flash[:notice] = l(:notice_successful_create)
-      redirect_to(params[:continue] ? {:controller => 'users', :action => 'new'} : 
-                                      {:controller => 'users', :action => 'edit', :id => @user})
-      return
+      Mailer.deliver_account_information(@user, params[:user][:password]) if params[:send_information]
+      
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_create)
+          redirect_to(params[:continue] ? 
+            {:controller => 'users', :action => 'new'} : 
+            {:controller => 'users', :action => 'edit', :id => @user}
+          )
+        }
+        format.api  { render :action => 'show', :status => :created, :location => user_url(@user) }
+      end
     else
       @auth_sources = AuthSource.find(:all)
-      @notification_option = @user.mail_notification
+      # Clear password input
+      @user.password = @user.password_confirmation = nil
 
-      render :action => 'new'
+      respond_to do |format|
+        format.html { render :action => 'new' }
+        format.api  { render_validation_errors(@user) }
+      end
     end
   end
 
   def edit
-    @user = User.find(params[:id])
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification
-
     @auth_sources = AuthSource.find(:all)
     @membership ||= Member.new
   end
   
   verify :method => :put, :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
   def update
-    @user = User.find(params[:id])
-    @notification_options = @user.valid_notification_options
-    @notification_option = @user.mail_notification
-
     @user.admin = params[:user][:admin] if params[:user][:admin]
     @user.login = params[:user][:login] if params[:user][:login]
-    if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
-      @user.password, @user.password_confirmation = params[:password], params[:password_confirmation]
+    if params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
+      @user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation]
     end
-    @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids]
-    @user.attributes = params[:user]
+    @user.safe_attributes = params[:user]
     # Was the account actived ? (do it before User#save clears the change)
     was_activated = (@user.status_change == [User::STATUS_REGISTERED, User::STATUS_ACTIVE])
     # TODO: Similar to My#account
-    @user.mail_notification = params[:notification_option] || 'only_my_events'
     @user.pref.attributes = params[:pref]
     @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
 
     if @user.save
       @user.pref.save
-      @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
+      @user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
 
       if was_activated
         Mailer.deliver_account_activated(@user)
-      elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil?
-        Mailer.deliver_account_information(@user, params[:password])
+      elsif @user.active? && params[:send_information] && !params[:user][:password].blank? && @user.auth_source_id.nil?
+        Mailer.deliver_account_information(@user, params[:user][:password])
       end
-      flash[:notice] = l(:notice_successful_update)
-      redirect_to :back
+      
+      respond_to do |format|
+        format.html {
+          flash[:notice] = l(:notice_successful_update)
+          redirect_to :back
+        }
+        format.api  { head :ok }
+      end
     else
       @auth_sources = AuthSource.find(:all)
       @membership ||= Member.new
+      # Clear password input
+      @user.password = @user.password_confirmation = nil
 
-      render :action => :edit
+      respond_to do |format|
+        format.html { render :action => :edit }
+        format.api  { render_validation_errors(@user) }
+      end
     end
   rescue ::ActionController::RedirectBackError
     redirect_to :controller => 'users', :action => 'edit', :id => @user
   end
 
   def edit_membership
-    @user = User.find(params[:id])
     @membership = Member.edit_membership(params[:membership_id], params[:membership], @user)
     @membership.save if request.post?
     respond_to do |format|
@@ -184,7 +200,6 @@
   end
   
   def destroy_membership
-    @user = User.find(params[:id])
     @membership = Member.find(params[:membership_id])
     if request.post? && @membership.deletable?
       @membership.destroy
@@ -194,4 +209,17 @@
       format.js { render(:update) {|page| page.replace_html "tab-content-memberships", :partial => 'users/memberships'} }
     end
   end
+  
+  private
+  
+  def find_user
+    if params[:id] == 'current'
+      require_login || return
+      @user = User.current
+    else
+      @user = User.find(params[:id])
+    end
+  rescue ActiveRecord::RecordNotFound
+    render_404
+  end
 end
--- a/app/controllers/wiki_controller.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/controllers/wiki_controller.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -125,6 +125,8 @@
       render_attachment_warning_if_needed(@page)
       call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page})
       redirect_to :action => 'show', :project_id => @project, :id => @page.title
+    else
+      render :action => 'edit'
     end
 
   rescue ActiveRecord::StaleObjectError
--- a/app/helpers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 36
-/svn/!svn/ver/4391/trunk/app/helpers
+/svn/!svn/ver/4694/trunk/app/helpers
 END
 trackers_helper.rb
 K 25
@@ -37,7 +37,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3659/trunk/app/helpers/repositories_helper.rb
+/svn/!svn/ver/4613/trunk/app/helpers/repositories_helper.rb
 END
 admin_helper.rb
 K 25
@@ -91,7 +91,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/4281/trunk/app/helpers/issues_helper.rb
+/svn/!svn/ver/4465/trunk/app/helpers/issues_helper.rb
 END
 gantt_helper.rb
 K 25
@@ -157,7 +157,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 60
-/svn/!svn/ver/3675/trunk/app/helpers/custom_fields_helper.rb
+/svn/!svn/ver/4480/trunk/app/helpers/custom_fields_helper.rb
 END
 settings_helper.rb
 K 25
@@ -175,7 +175,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/4230/trunk/app/helpers/users_helper.rb
+/svn/!svn/ver/4497/trunk/app/helpers/users_helper.rb
 END
 issue_moves_helper.rb
 K 25
@@ -187,7 +187,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4391/trunk/app/helpers/application_helper.rb
+/svn/!svn/ver/4694/trunk/app/helpers/application_helper.rb
 END
 auth_sources_helper.rb
 K 25
@@ -229,7 +229,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/2116/trunk/app/helpers/attachments_helper.rb
+/svn/!svn/ver/4605/trunk/app/helpers/attachments_helper.rb
 END
 news_helper.rb
 K 25
--- a/app/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/helpers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-11T13:39:14.764400Z
-4391
-jplang
+2011-01-11T16:02:36.869666Z
+4694
+tmaruyama
 
 
 
@@ -202,11 +202,11 @@
 
 
 
-2010-09-24T11:56:52.900009Z
-d617582e4bc6a3eedbc4f37f8fa3d509
-2010-04-11T15:18:49.769279Z
-3659
-jplang
+2011-01-13T14:09:10.000000Z
+ec30c91fbf601169b281a5cd859df2ab
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -228,7 +228,7 @@
 
 
 
-7654
+7902
 
 admin_helper.rb
 file
@@ -508,10 +508,10 @@
 
 
 
-2010-11-19T13:04:46.900732Z
-b5569bf5b4ba507a522f4e371505ae0c
-2010-10-22T22:29:32.969473Z
-4281
+2011-01-13T14:09:10.000000Z
+5bc8f95d2852e1136e9034fe21aaa2fb
+2010-12-04T13:02:14.466576Z
+4465
 jplang
 has-props
 
@@ -534,7 +534,7 @@
 
 
 
-10075
+10511
 
 gantt_helper.rb
 file
@@ -882,11 +882,11 @@
 
 
 
-2010-09-23T14:37:44.423776Z
-97753365c8eb76a948d7417d5db31079
-2010-04-16T15:34:05.970144Z
-3675
-edavis10
+2011-01-13T14:09:10.000000Z
+19a8f1c143030c42136fe167f167db15
+2010-12-10T10:12:19.202442Z
+4480
+jplang
 has-props
 
 
@@ -908,7 +908,7 @@
 
 
 
-5322
+5702
 
 settings_helper.rb
 file
@@ -1018,11 +1018,11 @@
 
 
 
-2010-11-19T13:04:46.900732Z
-01b097606863e1e2938e7222d07fc2b7
-2010-09-30T18:22:46.611444Z
-4230
-edavis10
+2011-01-13T14:09:10.000000Z
+1bedb4287035a6f89074da0b37640c28
+2010-12-12T14:25:23.262992Z
+4497
+jplang
 has-props
 
 
@@ -1044,7 +1044,7 @@
 
 
 
-2644
+2767
 
 application_helper.rb
 file
@@ -1052,11 +1052,11 @@
 
 
 
-2010-11-19T13:04:46.900732Z
-a9ac6edf6104b93a669ba1b0705f4fc6
-2010-11-11T13:39:14.764400Z
-4391
-jplang
+2011-01-13T14:09:10.000000Z
+183212fd485ef2b4682dbe8023cd489b
+2011-01-11T16:02:36.869666Z
+4694
+tmaruyama
 has-props
 
 
@@ -1078,7 +1078,7 @@
 
 
 
-34105
+35143
 
 auth_sources_helper.rb
 file
@@ -1290,10 +1290,10 @@
 
 
 
-2010-09-23T14:37:44.423776Z
-6e15ada8c772d8daf8062cec2885ad9c
-2008-12-09T16:54:46.963649Z
-2116
+2011-01-13T14:09:10.000000Z
+58bc2391be7fedbf3e55ef07454cb04c
+2011-01-01T19:12:35.568700Z
+4605
 jplang
 has-props
 
@@ -1316,7 +1316,7 @@
 
 
 
-1367
+1743
 
 news_helper.rb
 file
--- a/app/helpers/.svn/text-base/application_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/application_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -104,8 +104,10 @@
   # * :text - Link text (default to the formatted revision)
   def link_to_revision(revision, project, options={})
     text = options.delete(:text) || format_revision(revision)
+    rev = revision.respond_to?(:identifier) ? revision.identifier : revision
 
-    link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => revision}, :title => l(:label_revision_id, revision))
+    link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => rev},
+            :title => l(:label_revision_id, format_revision(revision)))
   end
 
   # Generates a link to a project if active
@@ -449,12 +451,19 @@
     only_path = options.delete(:only_path) == false ? false : true
 
     text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) }
-      
-    parse_non_pre_blocks(text) do |text|
+    
+    @parsed_headings = []
+    text = parse_non_pre_blocks(text) do |text|
       [:parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_headings].each do |method_name|
         send method_name, text, project, obj, attr, only_path, options
       end
     end
+    
+    if @parsed_headings.any?
+      replace_toc(text, @parsed_headings)
+    end
+    
+    text
   end
   
   def parse_non_pre_blocks(text)
@@ -642,7 +651,7 @@
             end
           when 'commit'
             if project && (changeset = project.changesets.find(:first, :conditions => ["scmid LIKE ?", "#{name}%"]))
-              link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision},
+              link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier},
                                            :class => 'changeset',
                                            :title => truncate_single_line(changeset.comments, :length => 100)
             end
@@ -674,21 +683,26 @@
     end
   end
   
-  TOC_RE = /<p>\{\{([<>]?)toc\}\}<\/p>/i unless const_defined?(:TOC_RE)
   HEADING_RE = /<h(1|2|3|4)( [^>]+)?>(.+?)<\/h(1|2|3|4)>/i unless const_defined?(:HEADING_RE)
   
   # Headings and TOC
-  # Adds ids and links to headings and renders the TOC if needed unless options[:headings] is set to false
+  # Adds ids and links to headings unless options[:headings] is set to false
   def parse_headings(text, project, obj, attr, only_path, options)
-    headings = []
+    return if options[:headings] == false
+    
     text.gsub!(HEADING_RE) do
       level, attrs, content = $1.to_i, $2, $3
       item = strip_tags(content).strip
       anchor = item.gsub(%r{[^\w\s\-]}, '').gsub(%r{\s+(\-+\s*)?}, '-')
-      headings << [level, anchor, item]
+      @parsed_headings << [level, anchor, item]
       "<h#{level} #{attrs} id=\"#{anchor}\">#{content}<a href=\"##{anchor}\" class=\"wiki-anchor\">&para;</a></h#{level}>"
-    end unless options[:headings] == false
-    
+    end
+  end
+          
+  TOC_RE = /<p>\{\{([<>]?)toc\}\}<\/p>/i unless const_defined?(:TOC_RE)
+  
+  # Renders the TOC with given headings
+  def replace_toc(text, headings)
     text.gsub!(TOC_RE) do
       if headings.empty?
         ''
@@ -866,7 +880,29 @@
   def favicon
     "<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />"
   end
+  
+  # Returns true if arg is expected in the API response
+  def include_in_api_response?(arg)
+    unless @included_in_api_response
+      param = params[:include]
+      @included_in_api_response = param.is_a?(Array) ? param.collect(&:to_s) : param.to_s.split(',')
+      @included_in_api_response.collect!(&:strip)
+    end
+    @included_in_api_response.include?(arg.to_s)
+  end
 
+  # Returns options or nil if nometa param or X-Redmine-Nometa header
+  # was set in the request
+  def api_meta(options)
+    if params[:nometa].present? || request.headers['X-Redmine-Nometa']
+      # compatibility mode for activeresource clients that raise
+      # an error when unserializing an array with attributes
+      nil
+    else
+      options
+    end
+  end
+  
   private
 
   def wiki_helper
--- a/app/helpers/.svn/text-base/attachments_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/attachments_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,18 @@
   end
   
   def to_utf8(str)
-    str
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+    
+    begin
+      Iconv.conv('UTF-8//IGNORE', 'UTF-8', str + '  ')[0..-3]
+    rescue Iconv::InvalidEncoding
+      # "UTF-8//IGNORE" is not supported on some OS
+      str
+    end
   end
 end
--- a/app/helpers/.svn/text-base/custom_fields_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/custom_fields_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -104,4 +104,15 @@
   def custom_field_formats_for_select
     Redmine::CustomFieldFormat.as_select
   end
+  
+  # Renders the custom_values in api views
+  def render_api_custom_values(custom_values, api)
+    api.array :custom_fields do
+      custom_values.each do |custom_value|
+        api.custom_field :id => custom_value.custom_field_id, :name => custom_value.custom_field.name do
+          api.value custom_value.value
+        end
+      end
+    end unless custom_values.empty?
+  end
 end
--- a/app/helpers/.svn/text-base/issues_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/issues_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -189,6 +189,20 @@
     end
   end
   
+  # Renders issue children recursively
+  def render_api_issue_children(issue, api)
+    return if issue.leaf?
+    api.array :children do
+      issue.children.each do |child|
+        api.issue(:id => child.id) do
+          api.tracker(:id => child.tracker_id, :name => child.tracker.name) unless child.tracker.nil?
+          api.subject child.subject
+          render_api_issue_children(child, api)
+        end
+      end
+    end
+  end
+  
   def issues_to_csv(issues, project = nil)
     ic = Iconv.new(l(:general_csv_encoding), 'UTF-8')    
     decimal_separator = l(:general_csv_decimal_separator)
--- a/app/helpers/.svn/text-base/repositories_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/repositories_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -18,8 +18,12 @@
 require 'iconv'
 
 module RepositoriesHelper
-  def format_revision(txt)
-    txt.to_s[0,8]
+  def format_revision(revision)
+    if revision.respond_to? :format_identifier
+      revision.format_identifier
+    else
+      revision.to_s
+    end
   end
   
   def truncate_at_line_break(text, length = 255)
@@ -87,7 +91,7 @@
                              :action => 'show',
                              :id => @project,
                              :path => path_param,
-                             :rev => @changeset.revision)
+                             :rev => @changeset.identifier)
         output << "<li class='#{style}'>#{text}</li>"
         output << render_changes_tree(s)
       elsif c = tree[file][:c]
@@ -97,13 +101,13 @@
                              :action => 'entry',
                              :id => @project,
                              :path => path_param,
-                             :rev => @changeset.revision) unless c.action == 'D'
+                             :rev => @changeset.identifier) unless c.action == 'D'
         text << " - #{c.revision}" unless c.revision.blank?
         text << ' (' + link_to('diff', :controller => 'repositories',
                                        :action => 'diff',
                                        :id => @project,
                                        :path => path_param,
-                                       :rev => @changeset.revision) + ') ' if c.action == 'M'
+                                       :rev => @changeset.identifier) + ') ' if c.action == 'M'
         text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank?
         output << "<li class='#{style}'>#{text}</li>"
       end
@@ -113,7 +117,13 @@
   end
   
   def to_utf8(str)
-    return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+    
     @encodings ||= Setting.repositories_encodings.split(',').collect(&:strip)
     @encodings.each do |encoding|
       begin
--- a/app/helpers/.svn/text-base/users_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/.svn/text-base/users_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -33,6 +33,10 @@
     options
   end
   
+  def user_mail_notification_options(user)
+    user.valid_notification_options.collect {|o| [l(o.last), o.first]}
+  end
+  
   def change_status_link(user)
     url = {:controller => 'users', :action => 'update', :id => user, :page => params[:page], :status => params[:status], :tab => nil}
     
--- a/app/helpers/application_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/application_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -104,8 +104,10 @@
   # * :text - Link text (default to the formatted revision)
   def link_to_revision(revision, project, options={})
     text = options.delete(:text) || format_revision(revision)
+    rev = revision.respond_to?(:identifier) ? revision.identifier : revision
 
-    link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => revision}, :title => l(:label_revision_id, revision))
+    link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => rev},
+            :title => l(:label_revision_id, format_revision(revision)))
   end
 
   # Generates a link to a project if active
@@ -449,12 +451,19 @@
     only_path = options.delete(:only_path) == false ? false : true
 
     text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) }
-      
-    parse_non_pre_blocks(text) do |text|
+    
+    @parsed_headings = []
+    text = parse_non_pre_blocks(text) do |text|
       [:parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_headings].each do |method_name|
         send method_name, text, project, obj, attr, only_path, options
       end
     end
+    
+    if @parsed_headings.any?
+      replace_toc(text, @parsed_headings)
+    end
+    
+    text
   end
   
   def parse_non_pre_blocks(text)
@@ -642,7 +651,7 @@
             end
           when 'commit'
             if project && (changeset = project.changesets.find(:first, :conditions => ["scmid LIKE ?", "#{name}%"]))
-              link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision},
+              link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier},
                                            :class => 'changeset',
                                            :title => truncate_single_line(changeset.comments, :length => 100)
             end
@@ -674,21 +683,26 @@
     end
   end
   
-  TOC_RE = /<p>\{\{([<>]?)toc\}\}<\/p>/i unless const_defined?(:TOC_RE)
   HEADING_RE = /<h(1|2|3|4)( [^>]+)?>(.+?)<\/h(1|2|3|4)>/i unless const_defined?(:HEADING_RE)
   
   # Headings and TOC
-  # Adds ids and links to headings and renders the TOC if needed unless options[:headings] is set to false
+  # Adds ids and links to headings unless options[:headings] is set to false
   def parse_headings(text, project, obj, attr, only_path, options)
-    headings = []
+    return if options[:headings] == false
+    
     text.gsub!(HEADING_RE) do
       level, attrs, content = $1.to_i, $2, $3
       item = strip_tags(content).strip
       anchor = item.gsub(%r{[^\w\s\-]}, '').gsub(%r{\s+(\-+\s*)?}, '-')
-      headings << [level, anchor, item]
+      @parsed_headings << [level, anchor, item]
       "<h#{level} #{attrs} id=\"#{anchor}\">#{content}<a href=\"##{anchor}\" class=\"wiki-anchor\">&para;</a></h#{level}>"
-    end unless options[:headings] == false
-    
+    end
+  end
+          
+  TOC_RE = /<p>\{\{([<>]?)toc\}\}<\/p>/i unless const_defined?(:TOC_RE)
+  
+  # Renders the TOC with given headings
+  def replace_toc(text, headings)
     text.gsub!(TOC_RE) do
       if headings.empty?
         ''
@@ -866,7 +880,29 @@
   def favicon
     "<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />"
   end
+  
+  # Returns true if arg is expected in the API response
+  def include_in_api_response?(arg)
+    unless @included_in_api_response
+      param = params[:include]
+      @included_in_api_response = param.is_a?(Array) ? param.collect(&:to_s) : param.to_s.split(',')
+      @included_in_api_response.collect!(&:strip)
+    end
+    @included_in_api_response.include?(arg.to_s)
+  end
 
+  # Returns options or nil if nometa param or X-Redmine-Nometa header
+  # was set in the request
+  def api_meta(options)
+    if params[:nometa].present? || request.headers['X-Redmine-Nometa']
+      # compatibility mode for activeresource clients that raise
+      # an error when unserializing an array with attributes
+      nil
+    else
+      options
+    end
+  end
+  
   private
 
   def wiki_helper
--- a/app/helpers/attachments_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/attachments_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,18 @@
   end
   
   def to_utf8(str)
-    str
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+    
+    begin
+      Iconv.conv('UTF-8//IGNORE', 'UTF-8', str + '  ')[0..-3]
+    rescue Iconv::InvalidEncoding
+      # "UTF-8//IGNORE" is not supported on some OS
+      str
+    end
   end
 end
--- a/app/helpers/custom_fields_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/custom_fields_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -104,4 +104,15 @@
   def custom_field_formats_for_select
     Redmine::CustomFieldFormat.as_select
   end
+  
+  # Renders the custom_values in api views
+  def render_api_custom_values(custom_values, api)
+    api.array :custom_fields do
+      custom_values.each do |custom_value|
+        api.custom_field :id => custom_value.custom_field_id, :name => custom_value.custom_field.name do
+          api.value custom_value.value
+        end
+      end
+    end unless custom_values.empty?
+  end
 end
--- a/app/helpers/issues_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/issues_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -189,6 +189,20 @@
     end
   end
   
+  # Renders issue children recursively
+  def render_api_issue_children(issue, api)
+    return if issue.leaf?
+    api.array :children do
+      issue.children.each do |child|
+        api.issue(:id => child.id) do
+          api.tracker(:id => child.tracker_id, :name => child.tracker.name) unless child.tracker.nil?
+          api.subject child.subject
+          render_api_issue_children(child, api)
+        end
+      end
+    end
+  end
+  
   def issues_to_csv(issues, project = nil)
     ic = Iconv.new(l(:general_csv_encoding), 'UTF-8')    
     decimal_separator = l(:general_csv_decimal_separator)
--- a/app/helpers/repositories_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/repositories_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -18,8 +18,12 @@
 require 'iconv'
 
 module RepositoriesHelper
-  def format_revision(txt)
-    txt.to_s[0,8]
+  def format_revision(revision)
+    if revision.respond_to? :format_identifier
+      revision.format_identifier
+    else
+      revision.to_s
+    end
   end
   
   def truncate_at_line_break(text, length = 255)
@@ -87,7 +91,7 @@
                              :action => 'show',
                              :id => @project,
                              :path => path_param,
-                             :rev => @changeset.revision)
+                             :rev => @changeset.identifier)
         output << "<li class='#{style}'>#{text}</li>"
         output << render_changes_tree(s)
       elsif c = tree[file][:c]
@@ -97,13 +101,13 @@
                              :action => 'entry',
                              :id => @project,
                              :path => path_param,
-                             :rev => @changeset.revision) unless c.action == 'D'
+                             :rev => @changeset.identifier) unless c.action == 'D'
         text << " - #{c.revision}" unless c.revision.blank?
         text << ' (' + link_to('diff', :controller => 'repositories',
                                        :action => 'diff',
                                        :id => @project,
                                        :path => path_param,
-                                       :rev => @changeset.revision) + ') ' if c.action == 'M'
+                                       :rev => @changeset.identifier) + ') ' if c.action == 'M'
         text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank?
         output << "<li class='#{style}'>#{text}</li>"
       end
@@ -113,7 +117,13 @@
   end
   
   def to_utf8(str)
-    return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+    
     @encodings ||= Setting.repositories_encodings.split(',').collect(&:strip)
     @encodings.each do |encoding|
       begin
--- a/app/helpers/users_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/helpers/users_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -33,6 +33,10 @@
     options
   end
   
+  def user_mail_notification_options(user)
+    user.valid_notification_options.collect {|o| [l(o.last), o.first]}
+  end
+  
   def change_status_link(user)
     url = {:controller => 'users', :action => 'update', :id => user, :page => params[:page], :status => params[:status], :tab => nil}
     
--- a/app/models/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 35
-/svn/!svn/ver/4404/trunk/app/models
+/svn/!svn/ver/4704/trunk/app/models
 END
 document.rb
 K 25
@@ -13,13 +13,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/4404/trunk/app/models/mail_handler.rb
+/svn/!svn/ver/4682/trunk/app/models/mail_handler.rb
 END
 repository.rb
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/3472/trunk/app/models/repository.rb
+/svn/!svn/ver/4703/trunk/app/models/repository.rb
 END
 time_entry.rb
 K 25
@@ -81,12 +81,6 @@
 V 50
 /svn/!svn/ver/3240/trunk/app/models/enumeration.rb
 END
-issue.rb
-K 25
-svn:wc:ra_dav:version-url
-V 44
-/svn/!svn/ver/4394/trunk/app/models/issue.rb
-END
 time_entry_activity_custom_field.rb
 K 25
 svn:wc:ra_dav:version-url
@@ -99,6 +93,12 @@
 V 50
 /svn/!svn/ver/3250/trunk/app/models/member_role.rb
 END
+issue.rb
+K 25
+svn:wc:ra_dav:version-url
+V 44
+/svn/!svn/ver/4491/trunk/app/models/issue.rb
+END
 issue_priority.rb
 K 25
 svn:wc:ra_dav:version-url
@@ -151,7 +151,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4387/trunk/app/models/query.rb
+/svn/!svn/ver/4553/trunk/app/models/query.rb
 END
 member.rb
 K 25
@@ -199,7 +199,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/3672/trunk/app/models/custom_field.rb
+/svn/!svn/ver/4599/trunk/app/models/custom_field.rb
 END
 setting.rb
 K 25
@@ -211,7 +211,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/4234/trunk/app/models/user.rb
+/svn/!svn/ver/4599/trunk/app/models/user.rb
 END
 auth_source.rb
 K 25
@@ -241,7 +241,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/3729/trunk/app/models/issue_relation.rb
+/svn/!svn/ver/4467/trunk/app/models/issue_relation.rb
 END
 document_observer.rb
 K 25
@@ -253,7 +253,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4073/trunk/app/models/version.rb
+/svn/!svn/ver/4574/trunk/app/models/version.rb
 END
 issue_priority_custom_field.rb
 K 25
@@ -265,7 +265,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/3167/trunk/app/models/board.rb
+/svn/!svn/ver/4431/trunk/app/models/board.rb
 END
 attachment.rb
 K 25
@@ -283,7 +283,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/3881/trunk/app/models/issue_status.rb
+/svn/!svn/ver/4599/trunk/app/models/issue_status.rb
 END
 time_entry_activity.rb
 K 25
@@ -295,7 +295,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/3188/trunk/app/models/tracker.rb
+/svn/!svn/ver/4599/trunk/app/models/tracker.rb
 END
 journal_detail.rb
 K 25
@@ -307,7 +307,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/2869/trunk/app/models/group.rb
+/svn/!svn/ver/4437/trunk/app/models/group.rb
 END
 issue_observer.rb
 K 25
@@ -319,13 +319,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/3928/trunk/app/models/changeset.rb
+/svn/!svn/ver/4613/trunk/app/models/changeset.rb
 END
 role.rb
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/3363/trunk/app/models/role.rb
+/svn/!svn/ver/4599/trunk/app/models/role.rb
 END
 project_custom_field.rb
 K 25
@@ -337,7 +337,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/3632/trunk/app/models/wiki.rb
+/svn/!svn/ver/4680/trunk/app/models/wiki.rb
 END
 custom_value.rb
 K 25
@@ -349,7 +349,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4402/trunk/app/models/project.rb
+/svn/!svn/ver/4645/trunk/app/models/project.rb
 END
 document_category.rb
 K 25
@@ -361,7 +361,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/3358/trunk/app/models/news.rb
+/svn/!svn/ver/4505/trunk/app/models/news.rb
 END
 user_preference.rb
 K 25
--- a/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/models
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T13:48:01.671461Z
-4404
-jplang
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 
 
 
@@ -69,10 +69,10 @@
 
 
 
-2010-11-19T13:04:46.952746Z
-dd4785525bab24b6791967d66ffe6cb9
-2010-11-14T13:48:01.671461Z
-4404
+2011-01-13T14:09:10.000000Z
+122f4a542fc3b0425bacdf2365e83004
+2011-01-10T19:57:41.641529Z
+4682
 jplang
 has-props
 
@@ -95,7 +95,7 @@
 
 
 
-13455
+13721
 
 repository.rb
 file
@@ -103,11 +103,11 @@
 
 
 
-2010-09-24T11:56:52.924049Z
-6d9599543924edc24abb739bd3f7e718
-2010-02-21T14:42:45.276472Z
-3472
-jplang
+2011-01-13T14:09:10.000000Z
+537f29e1342ca25d24692d4daaeb556a
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -129,7 +129,7 @@
 
 
 
-6831
+7040
 
 time_entry.rb
 file
@@ -545,10 +545,10 @@
 
 
 
-2010-11-19T13:04:46.956816Z
-35d32fdd4b71df26207f71005d93580e
-2010-11-12T11:34:53.754717Z
-4394
+2011-01-13T14:09:10.000000Z
+20b0e57623f5e4f6c1856307a97652c1
+2010-12-12T13:11:53.259618Z
+4491
 jplang
 has-props
 
@@ -571,7 +571,7 @@
 
 
 
-32352
+32197
 
 issue_priority.rb
 file
@@ -851,10 +851,10 @@
 
 
 
-2010-11-19T13:04:46.956816Z
-ab1aeac4c9dd4c6ff846a281927b515a
-2010-11-07T15:38:51.908839Z
-4387
+2011-01-13T14:09:10.000000Z
+05f6de2ec101b91c331e3b69602f73de
+2010-12-21T21:46:54.984442Z
+4553
 jplang
 has-props
 
@@ -877,7 +877,7 @@
 
 
 
-26148
+26177
 
 member.rb
 file
@@ -1123,11 +1123,11 @@
 
 
 
-2010-09-23T14:37:44.467732Z
-48b90644181e44606c63f82c3655baa1
-2010-04-16T15:33:49.924704Z
-3672
-edavis10
+2011-01-13T14:09:10.000000Z
+a81e0b41100d375e6327075ab1f59242
+2010-12-31T15:30:50.544770Z
+4599
+jplang
 has-props
 
 
@@ -1149,7 +1149,7 @@
 
 
 
-4344
+4287
 
 setting.rb
 file
@@ -1191,11 +1191,11 @@
 
 
 
-2010-11-19T13:04:46.956816Z
-de9dd6a174b66d7a7f16a699f1f1698f
-2010-10-06T05:08:38.847540Z
-4234
-jbbarth
+2011-01-13T14:09:10.000000Z
+06b12cdcbd1d36b8f0a04de3cef91ef4
+2010-12-31T15:30:50.544770Z
+4599
+jplang
 has-props
 
 
@@ -1217,7 +1217,7 @@
 
 
 
-15699
+15994
 
 auth_source.rb
 file
@@ -1361,10 +1361,10 @@
 
 
 
-2010-09-23T14:37:44.475780Z
-c90f5daaa6fe06429b93f2010ba90fa0
-2010-05-01T14:07:36.553776Z
-3729
+2011-01-13T14:09:10.000000Z
+e79f69fb89a7015471e190050ba97847
+2010-12-04T18:10:02.635321Z
+4467
 jplang
 has-props
 
@@ -1387,7 +1387,7 @@
 
 
 
-4550
+4580
 
 document_observer.rb
 file
@@ -1429,11 +1429,11 @@
 
 
 
-2010-09-24T12:48:25.927735Z
-7f91847223c06c86cef6696956c67846
-2010-09-10T03:09:11.557425Z
-4073
-edavis10
+2011-01-13T14:09:10.000000Z
+9fdcb569734799b2fface5b9c6207856
+2010-12-23T14:58:52.304263Z
+4574
+jplang
 has-props
 
 
@@ -1455,7 +1455,7 @@
 
 
 
-7741
+7615
 
 issue_priority_custom_field.rb
 file
@@ -1497,10 +1497,10 @@
 
 
 
-2010-09-23T14:37:44.467732Z
-9927f674ea1f10f785af7adfd11e6f83
-2009-12-13T12:39:22.716082Z
-3167
+2011-01-13T14:09:10.000000Z
+aaa3cd558c500d4db3bb506878e12fc1
+2010-11-27T12:42:11.793330Z
+4431
 jplang
 has-props
 
@@ -1523,7 +1523,7 @@
 
 
 
-2140
+2137
 
 attachment.rb
 file
@@ -1599,10 +1599,10 @@
 
 
 
-2010-09-23T14:37:44.475780Z
-44dc499c4e4dfc3601165f07e6daa4b5
-2010-07-25T10:48:27.199057Z
-3881
+2011-01-13T14:09:10.000000Z
+b659d10bfe8c0debcf69013051422682
+2010-12-31T15:30:50.544770Z
+4599
 jplang
 has-props
 
@@ -1625,7 +1625,7 @@
 
 
 
-3447
+3392
 
 time_entry_activity.rb
 file
@@ -1667,10 +1667,10 @@
 
 
 
-2010-09-23T14:37:44.487730Z
-00670b3218d9d2d2a8435809f524827f
-2009-12-18T15:41:32.828284Z
-3188
+2011-01-13T14:09:10.000000Z
+e7d08a30fb7e14fd7486a7d7e04efccb
+2010-12-31T15:30:50.544770Z
+4599
 jplang
 has-props
 
@@ -1693,7 +1693,7 @@
 
 
 
-2205
+2150
 
 journal_detail.rb
 file
@@ -1735,10 +1735,10 @@
 
 
 
-2010-09-23T14:37:44.471831Z
-7fa34bcff98b6a84bbe125d949af18af
-2009-09-12T08:36:46.650954Z
-2869
+2011-01-13T14:09:10.000000Z
+a6be23c5316bf4e17cd5601624202b18
+2010-11-27T14:46:51.426568Z
+4437
 jplang
 has-props
 
@@ -1761,7 +1761,7 @@
 
 
 
-1884
+1918
 
 issue_observer.rb
 file
@@ -1803,11 +1803,11 @@
 
 
 
-2010-09-24T11:56:52.912062Z
-434403a24695ff195df946e1db456ca7
-2010-08-08T20:26:33.212059Z
-3928
-jbbarth
+2011-01-13T14:09:10.000000Z
+31b78fcec84fafc7077e80a8782e8889
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -1829,7 +1829,7 @@
 
 
 
-7481
+8976
 
 role.rb
 file
@@ -1837,11 +1837,11 @@
 
 
 
-2010-09-23T14:37:44.487730Z
-47730c63e98da3fdb40ab8551ee3d509
-2010-02-03T17:47:47.868223Z
-3363
-edavis10
+2011-01-13T14:09:10.000000Z
+15c62eb20c0904d6061c427984ea5ad6
+2010-12-31T15:30:50.544770Z
+4599
+jplang
 has-props
 
 
@@ -1863,7 +1863,7 @@
 
 
 
-5143
+5088
 
 project_custom_field.rb
 file
@@ -1905,10 +1905,10 @@
 
 
 
-2010-09-23T14:37:44.491776Z
-5012ec7e38525085a500671f68708ba5
-2010-04-11T12:56:18.077630Z
-3632
+2011-01-13T14:09:10.000000Z
+c1467b11ffdf01173add19cbdcbecccd
+2011-01-10T18:32:04.408692Z
+4680
 jplang
 has-props
 
@@ -1931,7 +1931,7 @@
 
 
 
-3031
+3109
 
 custom_value.rb
 file
@@ -1973,10 +1973,10 @@
 
 
 
-2010-11-19T13:04:46.960863Z
-87ee5ad7f6983a739700f40cff0d65ae
-2010-11-14T12:33:14.198318Z
-4402
+2011-01-13T14:09:10.000000Z
+85527d6304192255d188255b78b10fb5
+2011-01-06T20:36:31.826591Z
+4645
 jplang
 has-props
 
@@ -1999,7 +1999,7 @@
 
 
 
-30070
+31594
 
 document_category.rb
 file
@@ -2041,11 +2041,11 @@
 
 
 
-2010-09-23T14:37:44.475780Z
-b1b4aa93c05ff00a28d777ecdd77d66d
-2010-02-01T18:57:12.733490Z
-3358
-edavis10
+2011-01-13T14:09:10.000000Z
+ce0648ce457209d4a582b3076287bf01
+2010-12-12T17:00:52.100205Z
+4505
+jplang
 has-props
 
 
@@ -2067,7 +2067,7 @@
 
 
 
-1885
+2051
 
 user_preference.rb
 file
--- a/app/models/.svn/text-base/board.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/board.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -18,7 +18,7 @@
 class Board < ActiveRecord::Base
   belongs_to :project
   has_many :topics, :class_name => 'Message', :conditions => "#{Message.table_name}.parent_id IS NULL", :order => "#{Message.table_name}.created_on DESC"
-  has_many :messages, :dependent => :delete_all, :order => "#{Message.table_name}.created_on DESC"
+  has_many :messages, :dependent => :destroy, :order => "#{Message.table_name}.created_on DESC"
   belongs_to :last_message, :class_name => 'Message', :foreign_key => :last_message_id
   acts_as_list :scope => :project_id
   acts_as_watchable
--- a/app/models/.svn/text-base/changeset.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/changeset.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -23,10 +23,10 @@
   has_many :changes, :dependent => :delete_all
   has_and_belongs_to_many :issues
 
-  acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
+  acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
                 :description => :long_comments,
                 :datetime => :committed_on,
-                :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.revision}}
+                :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.identifier}}
                 
   acts_as_searchable :columns => 'comments',
                      :include => {:repository => :project},
@@ -47,6 +47,15 @@
   def revision=(r)
     write_attribute :revision, (r.nil? ? nil : r.to_s)
   end
+
+  # Returns the identifier of this changeset; depending on repository backends
+  def identifier
+    if repository.class.respond_to? :changeset_identifier
+      repository.class.changeset_identifier self
+    else
+      revision.to_s
+    end
+  end
   
   def comments=(comment)
     write_attribute(:comments, Changeset.normalize_comments(comment))
@@ -56,6 +65,15 @@
     self.commit_date = date
     super
   end
+
+  # Returns the readable identifier
+  def format_identifier
+    if repository.class.respond_to? :format_changeset_identifier
+      repository.class.format_changeset_identifier self
+    else
+      identifier
+    end
+  end
   
   def committer=(arg)
     write_attribute(:committer, self.class.to_utf8(arg.to_s))
@@ -77,52 +95,40 @@
     scan_comment_for_issue_ids
   end
   
+  TIMELOG_RE = /
+    (
+    (\d+([.,]\d+)?)h?
+    |
+    (\d+):(\d+)
+    |
+    ((\d+)(h|hours?))?((\d+)(m|min)?)?
+    )
+    /x
+  
   def scan_comment_for_issue_ids
     return if comments.blank?
     # keywords used to reference issues
     ref_keywords = Setting.commit_ref_keywords.downcase.split(",").collect(&:strip)
+    ref_keywords_any = ref_keywords.delete('*')
     # keywords used to fix issues
     fix_keywords = Setting.commit_fix_keywords.downcase.split(",").collect(&:strip)
     
     kw_regexp = (ref_keywords + fix_keywords).collect{|kw| Regexp.escape(kw)}.join("|")
-    return if kw_regexp.blank?
     
     referenced_issues = []
     
-    if ref_keywords.delete('*')
-      # find any issue ID in the comments
-      target_issue_ids = []
-      comments.scan(%r{([\s\(\[,-]|^)#(\d+)(?=[[:punct:]]|\s|<|$)}).each { |m| target_issue_ids << m[1] }
-      referenced_issues += find_referenced_issues_by_id(target_issue_ids)
-    end
-    
-    comments.scan(Regexp.new("(#{kw_regexp})[\s:]+(([\s,;&]*#?\\d+)+)", Regexp::IGNORECASE)).each do |match|
-      action = match[0]
-      target_issue_ids = match[1].scan(/\d+/)
-      target_issues = find_referenced_issues_by_id(target_issue_ids)
-      if fix_keywords.include?(action.downcase) && fix_status = IssueStatus.find_by_id(Setting.commit_fix_status_id)
-        # update status of issues
-        logger.debug "Issues fixed by changeset #{self.revision}: #{issue_ids.join(', ')}." if logger && logger.debug?
-        target_issues.each do |issue|
-          # the issue may have been updated by the closure of another one (eg. duplicate)
-          issue.reload
-          # don't change the status is the issue is closed
-          next if issue.status.is_closed?
-          csettext = "r#{self.revision}"
-          if self.scmid && (! (csettext =~ /^r[0-9]+$/))
-            csettext = "commit:\"#{self.scmid}\""
-          end
-          journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, csettext))
-          issue.status = fix_status
-          unless Setting.commit_fix_done_ratio.blank?
-            issue.done_ratio = Setting.commit_fix_done_ratio.to_i
-          end
-          Redmine::Hook.call_hook(:model_changeset_scan_commit_for_issue_ids_pre_issue_update,
-                                  { :changeset => self, :issue => issue })
-          issue.save
+    comments.scan(/([\s\(\[,-]|^)((#{kw_regexp})[\s:]+)?(#\d+(\s+@#{TIMELOG_RE})?([\s,;&]+#\d+(\s+@#{TIMELOG_RE})?)*)(?=[[:punct:]]|\s|<|$)/i) do |match|
+      action, refs = match[2], match[3]
+      next unless action.present? || ref_keywords_any
+      
+      refs.scan(/#(\d+)(\s+@#{TIMELOG_RE})?/).each do |m|
+        issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
+        if issue
+          referenced_issues << issue
+          fix_issue(issue) if fix_keywords.include?(action.to_s.downcase)
+          log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
         end
       end
-      referenced_issues += target_issues
     end
     
     referenced_issues.uniq!
@@ -136,6 +142,14 @@
   def long_comments
     @long_comments || split_comments.last
   end
+
+  def text_tag
+    if scmid?
+      "commit:#{scmid}"
+    else
+      "r#{revision}"
+    end
+  end
   
   # Returns the previous changeset
   def previous
@@ -163,13 +177,64 @@
   
   private
 
-  # Finds issues that can be referenced by the commit message
-  # i.e. issues that belong to the repository project, a subproject or a parent project
-  def find_referenced_issues_by_id(ids)
-    return [] if ids.compact.empty?
-    Issue.find_all_by_id(ids, :include => :project).select {|issue|
-      project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
-    }
+  # Finds an issue that can be referenced by the commit message
+  # i.e. an issue that belong to the repository project, a subproject or a parent project
+  def find_referenced_issue_by_id(id)
+    return nil if id.blank?
+    issue = Issue.find_by_id(id.to_i, :include => :project)
+    if issue
+      unless project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
+        issue = nil
+      end
+    end
+    issue
+  end
+  
+  def fix_issue(issue)
+    status = IssueStatus.find_by_id(Setting.commit_fix_status_id.to_i)
+    if status.nil?
+      logger.warn("No status macthes commit_fix_status_id setting (#{Setting.commit_fix_status_id})") if logger
+      return issue
+    end
+    
+    # the issue may have been updated by the closure of another one (eg. duplicate)
+    issue.reload
+    # don't change the status is the issue is closed
+    return if issue.status && issue.status.is_closed?
+    
+    journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, text_tag))
+    issue.status = status
+    unless Setting.commit_fix_done_ratio.blank?
+      issue.done_ratio = Setting.commit_fix_done_ratio.to_i
+    end
+    Redmine::Hook.call_hook(:model_changeset_scan_commit_for_issue_ids_pre_issue_update,
+                            { :changeset => self, :issue => issue })
+    unless issue.save
+      logger.warn("Issue ##{issue.id} could not be saved by changeset #{id}: #{issue.errors.full_messages}") if logger
+    end
+    issue
+  end
+  
+  def log_time(issue, hours)
+    time_entry = TimeEntry.new(
+      :user => user,
+      :hours => hours,
+      :issue => issue,
+      :spent_on => commit_date,
+      :comments => l(:text_time_logged_by_changeset, :value => text_tag, :locale => Setting.default_language)
+      )
+    time_entry.activity = log_time_activity unless log_time_activity.nil?
+    
+    unless time_entry.save
+      logger.warn("TimeEntry could not be created by changeset #{id}: #{time_entry.errors.full_messages}") if logger
+    end
+    time_entry
+  end
+  
+  def log_time_activity
+    if Setting.commit_logtime_activity_id.to_i > 0
+      TimeEntryActivity.find_by_id(Setting.commit_logtime_activity_id.to_i)
+    end
   end
   
   def split_comments
@@ -180,7 +245,13 @@
   end
 
   def self.to_utf8(str)
-    return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+
     encoding = Setting.commit_logs_encoding.to_s.strip
     unless encoding.blank? || encoding == 'UTF-8'
       begin
--- a/app/models/.svn/text-base/custom_field.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/custom_field.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -23,7 +23,6 @@
   validates_presence_of :name, :field_format
   validates_uniqueness_of :name, :scope => :type
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\.\'\-]*$/i
   validates_inclusion_of :field_format, :in => Redmine::CustomFieldFormat.available_formats
 
   def initialize(attributes = nil)
--- a/app/models/.svn/text-base/group.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/group.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -31,6 +31,7 @@
   
   def user_added(user)
     members.each do |member|
+      next if member.project.nil?
       user_member = Member.find_by_project_id_and_user_id(member.project_id, user.id) || Member.new(:project_id => member.project_id, :user_id => user.id)
       member.member_roles.each do |member_role|
         user_member.member_roles << MemberRole.new(:role => member_role.role, :inherited_from => member_role.id)
--- a/app/models/.svn/text-base/issue.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/issue.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class Issue < ActiveRecord::Base
+  include Redmine::SafeAttributes
+  
   belongs_to :project
   belongs_to :tracker
   belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id'
@@ -68,8 +70,7 @@
                                   :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
   named_scope :for_gantt, lambda {
     {
-      :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version],
-      :order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC"
+      :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version]
     }
   }
 
@@ -215,30 +216,29 @@
     write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h)
   end
   
-  SAFE_ATTRIBUTES = %w(
-    tracker_id
-    status_id
-    parent_issue_id
-    category_id
-    assigned_to_id
-    priority_id
-    fixed_version_id
-    subject
-    description
-    start_date
-    due_date
-    done_ratio
-    estimated_hours
-    custom_field_values
-    lock_version
-  ) unless const_defined?(:SAFE_ATTRIBUTES)
+  safe_attributes 'tracker_id',
+    'status_id',
+    'parent_issue_id',
+    'category_id',
+    'assigned_to_id',
+    'priority_id',
+    'fixed_version_id',
+    'subject',
+    'description',
+    'start_date',
+    'due_date',
+    'done_ratio',
+    'estimated_hours',
+    'custom_field_values',
+    'custom_fields',
+    'lock_version',
+    :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:edit_issues, issue.project) }
   
-  SAFE_ATTRIBUTES_ON_TRANSITION = %w(
-    status_id
-    assigned_to_id
-    fixed_version_id
-    done_ratio
-  ) unless const_defined?(:SAFE_ATTRIBUTES_ON_TRANSITION)
+  safe_attributes 'status_id',
+    'assigned_to_id',
+    'fixed_version_id',
+    'done_ratio',
+    :if => lambda {|issue, user| issue.new_statuses_allowed_to(user).any? }
 
   # Safely sets attributes
   # Should be called from controllers instead of #attributes=
@@ -249,13 +249,8 @@
     return unless attrs.is_a?(Hash)
     
     # User can change issue attributes only if he has :edit permission or if a workflow transition is allowed
-    if new_record? || user.allowed_to?(:edit_issues, project)
-      attrs = attrs.reject {|k,v| !SAFE_ATTRIBUTES.include?(k)}
-    elsif new_statuses_allowed_to(user).any?
-      attrs = attrs.reject {|k,v| !SAFE_ATTRIBUTES_ON_TRANSITION.include?(k)}
-    else
-      return
-    end
+    attrs = delete_unsafe_attributes(attrs, user)
+    return if attrs.empty? 
     
     # Tracker must be set before since new_statuses_allowed_to depends on it.
     if t = attrs.delete('tracker_id')
@@ -276,7 +271,7 @@
       if !user.allowed_to?(:manage_subtasks, project)
         attrs.delete('parent_issue_id')
       elsif !attrs['parent_issue_id'].blank?
-        attrs.delete('parent_issue_id') unless Issue.visible(user).exists?(attrs['parent_issue_id'])
+        attrs.delete('parent_issue_id') unless Issue.visible(user).exists?(attrs['parent_issue_id'].to_i)
       end
     end
     
--- a/app/models/.svn/text-base/issue_relation.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/issue_relation.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -84,14 +84,15 @@
   
   def set_issue_to_dates
     soonest_start = self.successor_soonest_start
-    if soonest_start
+    if soonest_start && issue_to
       issue_to.reschedule_after(soonest_start)
     end
   end
   
   def successor_soonest_start
-    return nil unless (TYPE_PRECEDES == self.relation_type) && (issue_from.start_date || issue_from.due_date)
-    (issue_from.due_date || issue_from.start_date) + 1 + delay
+    if (TYPE_PRECEDES == self.relation_type) && delay && issue_from && (issue_from.start_date || issue_from.due_date)
+      (issue_from.due_date || issue_from.start_date) + 1 + delay
+    end
   end
   
   def <=>(relation)
--- a/app/models/.svn/text-base/issue_status.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/issue_status.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -25,7 +25,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
   validates_inclusion_of :default_done_ratio, :in => 0..100, :allow_nil => true
 
   def after_save
--- a/app/models/.svn/text-base/mail_handler.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/mail_handler.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -148,6 +148,9 @@
       raise UnauthorizedAction unless user.allowed_to?(:add_issue_notes, issue.project) || user.allowed_to?(:edit_issues, issue.project)
     end
     
+    # ignore CLI-supplied defaults for new issues
+    @@handler_options[:issue].clear
+    
     journal = issue.init_journal(user, cleaned_up_text_body)
     issue.safe_attributes = issue_attributes_from_keywords(issue)
     issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
@@ -232,8 +235,8 @@
   def extract_keyword!(text, attr, format=nil)
     keys = [attr.to_s.humanize]
     if attr.is_a?(Symbol)
-      keys << l("field_#{attr}", :default => '', :locale =>  user.language) if user
-      keys << l("field_#{attr}", :default => '', :locale =>  Setting.default_language)
+      keys << l("field_#{attr}", :default => '', :locale =>  user.language) if user && user.language.present?
+      keys << l("field_#{attr}", :default => '', :locale =>  Setting.default_language) if Setting.default_language.present?
     end
     keys.reject! {|k| k.blank?}
     keys.collect! {|k| Regexp.escape(k)}
@@ -256,8 +259,8 @@
     assigned_to = (k = get_keyword(:assigned_to, :override => true)) && find_user_from_keyword(k)
     assigned_to = nil if assigned_to && !issue.assignable_users.include?(assigned_to)
     
-    {
-      'tracker_id' => ((k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id)) || issue.project.trackers.find(:first).try(:id),
+    attrs = {
+      'tracker_id' => (k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id),
       'status_id' =>  (k = get_keyword(:status)) && IssueStatus.find_by_name(k).try(:id),
       'priority_id' => (k = get_keyword(:priority)) && IssuePriority.find_by_name(k).try(:id),
       'category_id' => (k = get_keyword(:category)) && issue.project.issue_categories.find_by_name(k).try(:id),
@@ -268,6 +271,12 @@
       'estimated_hours' => get_keyword(:estimated_hours, :override => true),
       'done_ratio' => get_keyword(:done_ratio, :override => true, :format => '(\d|10)?0')
     }.delete_if {|k, v| v.blank? }
+    
+    if issue.new_record? && attrs['tracker_id'].nil?
+      attrs['tracker_id'] = issue.project.trackers.find(:first).try(:id)
+    end
+    
+    attrs
   end
   
   # Returns a Hash of issue custom field values extracted from keywords in the email body
--- a/app/models/.svn/text-base/news.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/news.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,11 @@
   acts_as_activity_provider :find_options => {:include => [:project, :author]},
                             :author_key => :author_id
   
+  named_scope :visible, lambda {|*args| { 
+    :include => :project,
+    :conditions => Project.allowed_to_condition(args.first || User.current, :view_news) 
+  }}
+  
   def visible?(user=User.current)
     !user.nil? && user.allowed_to?(:view_news, project)
   end
--- a/app/models/.svn/text-base/project.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/project.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class Project < ActiveRecord::Base
+  include Redmine::SafeAttributes
+  
   # Project statuses
   STATUS_ACTIVE     = 1
   STATUS_ARCHIVED   = 9
@@ -64,7 +66,7 @@
                 :url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o}},
                 :author => nil
 
-  attr_protected :status, :enabled_module_names
+  attr_protected :status
   
   validates_presence_of :name, :identifier
   validates_uniqueness_of :identifier
@@ -84,6 +86,24 @@
   named_scope :all_public, { :conditions => { :is_public => true } }
   named_scope :visible, lambda { { :conditions => Project.visible_by(User.current) } }
   
+  def initialize(attributes = nil)
+    super
+    
+    initialized = (attributes || {}).stringify_keys
+    if !initialized.key?('identifier') && Setting.sequential_project_identifiers? 
+      self.identifier = Project.next_identifier
+    end
+    if !initialized.key?('is_public')
+      self.is_public = Setting.default_projects_public?
+    end
+    if !initialized.key?('enabled_module_names')
+      self.enabled_module_names = Setting.default_projects_modules
+    end
+    if !initialized.key?('trackers') && !initialized.key?('tracker_ids')
+      self.trackers = Tracker.all
+    end
+  end
+  
   def identifier=(identifier)
     super unless identifier_frozen?
   end
@@ -431,24 +451,20 @@
 
   # The earliest start date of a project, based on it's issues and versions
   def start_date
-    if module_enabled?(:issue_tracking)
-      [
-       issues.minimum('start_date'),
-       shared_versions.collect(&:effective_date),
-       shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
-      ].flatten.compact.min
-    end
+    [
+     issues.minimum('start_date'),
+     shared_versions.collect(&:effective_date),
+     shared_versions.collect(&:start_date)
+    ].flatten.compact.min
   end
 
   # The latest due date of an issue or version
   def due_date
-    if module_enabled?(:issue_tracking)
-      [
-       issues.maximum('due_date'),
-       shared_versions.collect(&:effective_date),
-       shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
-      ].flatten.compact.max
-    end
+    [
+     issues.maximum('due_date'),
+     shared_versions.collect(&:effective_date),
+     shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
+    ].flatten.compact.max
   end
 
   def overdue?
@@ -492,7 +508,7 @@
   
   def enabled_module_names=(module_names)
     if module_names && module_names.is_a?(Array)
-      module_names = module_names.collect(&:to_s)
+      module_names = module_names.collect(&:to_s).reject(&:blank?)
       # remove disabled modules
       enabled_modules.each {|mod| mod.destroy unless module_names.include?(mod.name)}
       # add new modules
@@ -501,7 +517,25 @@
       enabled_modules.clear
     end
   end
+  
+  # Returns an array of the enabled modules names
+  def enabled_module_names
+    enabled_modules.collect(&:name)
+  end
+  
+  safe_attributes 'name',
+    'description',
+    'homepage',
+    'is_public',
+    'identifier',
+    'custom_field_values',
+    'custom_fields',
+    'tracker_ids',
+    'issue_custom_field_ids'
 
+  safe_attributes 'enabled_module_names',
+    :if => lambda {|project, user| project.new_record? || user.allowed_to?(:select_project_modules, project) }
+  
   # Returns an array of projects that are in this project's hierarchy
   #
   # Example: parents, children, siblings
@@ -669,12 +703,20 @@
       end
       
       self.issues << new_issue
-      issues_map[issue.id] = new_issue
+      if new_issue.new_record?
+        logger.info "Project#copy_issues: issue ##{issue.id} could not be copied: #{new_issue.errors.full_messages}" if logger && logger.info
+      else
+        issues_map[issue.id] = new_issue unless new_issue.new_record?
+      end
     end
 
     # Relations after in case issues related each other
     project.issues.each do |issue|
       new_issue = issues_map[issue.id]
+      unless new_issue
+        # Issue was not copied
+        next
+      end
       
       # Relations
       issue.relations_from.each do |source_relation|
@@ -701,7 +743,12 @@
 
   # Copies members from +project+
   def copy_members(project)
-    project.memberships.each do |member|
+    # Copy users first, then groups to handle members with inherited and given roles
+    members_to_copy = []
+    members_to_copy += project.memberships.select {|m| m.principal.is_a?(User)}
+    members_to_copy += project.memberships.select {|m| !m.principal.is_a?(User)}
+    
+    members_to_copy.each do |member|
       new_member = Member.new
       new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on")
       # only copy non inherited roles
--- a/app/models/.svn/text-base/query.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/query.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -187,10 +187,18 @@
     if project
       user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] }
     else
-      project_ids = Project.all(:conditions => Project.visible_by(User.current)).collect(&:id)
-      if project_ids.any?
-        # members of the user's projects
-        user_values += User.active.find(:all, :conditions => ["#{User.table_name}.id IN (SELECT DISTINCT user_id FROM members WHERE project_id IN (?))", project_ids]).sort.collect{|s| [s.name, s.id.to_s] }
+      all_projects = Project.visible.all
+      if all_projects.any?
+        # members of visible projects
+        user_values += User.active.find(:all, :conditions => ["#{User.table_name}.id IN (SELECT DISTINCT user_id FROM members WHERE project_id IN (?))", all_projects.collect(&:id)]).sort.collect{|s| [s.name, s.id.to_s] }
+          
+        # project filter
+        project_values = []
+        Project.project_tree(all_projects) do |p, level|
+          prefix = (level > 0 ? ('--' * level + ' ') : '')
+          project_values << ["#{prefix}#{p.name}", p.id.to_s]
+        end
+        @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values} unless project_values.empty?
       end
     end
     @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty?
@@ -225,12 +233,6 @@
         @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } }
       end
       add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true}))
-      # project filter
-      project_values = Project.all(:conditions => Project.visible_by(User.current), :order => 'lft').map do |p|
-        pre = (p.level > 0 ? ('--' * p.level + ' ') : '')
-        ["#{pre}#{p.name}",p.id.to_s]
-      end
-      @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values}
     end
     @available_filters
   end
@@ -376,15 +378,15 @@
   
   # Returns true if the query is a grouped query
   def grouped?
-    !group_by.blank?
+    !group_by_column.nil?
   end
   
   def group_by_column
-    groupable_columns.detect {|c| c.name.to_s == group_by}
+    groupable_columns.detect {|c| c.groupable && c.name.to_s == group_by}
   end
   
   def group_by_statement
-    group_by_column.groupable
+    group_by_column.try(:groupable)
   end
   
   def project_statement
--- a/app/models/.svn/text-base/repository.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/repository.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -86,7 +86,14 @@
   def diff(path, rev, rev_to)
     scm.diff(path, rev, rev_to)
   end
-  
+
+  def diff_format_revisions(cs, cs_to, sep=':')
+    text = ""
+    text << cs_to.format_identifier + sep if cs_to
+    text << cs.format_identifier if cs
+    text
+  end
+
   # Returns a path relative to the url of the repository
   def relative_path(path)
     path
@@ -94,6 +101,7 @@
   
   # Finds and returns a revision with a number or the beginning of a hash
   def find_changeset_by_name(name)
+    return nil if name.nil? || name.empty?
     changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_s] : ["revision LIKE ?", name + '%']))
   end
   
--- a/app/models/.svn/text-base/role.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/role.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
 
   def permissions
     read_attribute(:permissions) || []
--- a/app/models/.svn/text-base/tracker.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/tracker.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -31,7 +31,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
 
   def to_s; name end
   
--- a/app/models/.svn/text-base/user.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/user.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -18,7 +18,8 @@
 require "digest/sha1"
 
 class User < Principal
-
+  include Redmine::SafeAttributes
+  
   # Account statuses
   STATUS_ANONYMOUS  = 0
   STATUS_ACTIVE     = 1
@@ -34,13 +35,13 @@
   }
 
   MAIL_NOTIFICATION_OPTIONS = [
-                               [:all, :label_user_mail_option_all],
-                               [:selected, :label_user_mail_option_selected],
-                               [:none, :label_user_mail_option_none],
-                               [:only_my_events, :label_user_mail_option_only_my_events],
-                               [:only_assigned, :label_user_mail_option_only_assigned],
-                               [:only_owner, :label_user_mail_option_only_owner]
-                              ]
+    ['all', :label_user_mail_option_all],
+    ['selected', :label_user_mail_option_selected],
+    ['only_my_events', :label_user_mail_option_only_my_events],
+    ['only_assigned', :label_user_mail_option_only_assigned],
+    ['only_owner', :label_user_mail_option_only_owner],
+    ['none', :label_user_mail_option_none]
+  ]
 
   has_and_belongs_to_many :groups, :after_add => Proc.new {|user, group| group.user_added(user)},
                                    :after_remove => Proc.new {|user, group| group.user_removed(user)}
@@ -59,7 +60,7 @@
   attr_accessor :password, :password_confirmation
   attr_accessor :last_before_login_on
   # Prevents unauthorized assignments
-  attr_protected :login, :admin, :password, :password_confirmation, :hashed_password, :group_ids
+  attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
 	
   validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
   validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }, :case_sensitive => false
@@ -67,11 +68,11 @@
   # Login must contain lettres, numbers, underscores only
   validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
   validates_length_of :login, :maximum => 30
-  validates_format_of :firstname, :lastname, :with => /^[\w\s\'\-\.]*$/i
   validates_length_of :firstname, :lastname, :maximum => 30
   validates_format_of :mail, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :allow_nil => true
   validates_length_of :mail, :maximum => 60, :allow_nil => true
   validates_confirmation_of :password, :allow_nil => true
+  validates_inclusion_of :mail_notification, :in => MAIL_NOTIFICATION_OPTIONS.collect(&:first), :allow_blank => true
 
   def before_create
     self.mail_notification = Setting.default_notification_option if self.mail_notification.blank?
@@ -264,7 +265,7 @@
     # Note that @user.membership.size would fail since AR ignores
     # :include association option when doing a count
     if memberships.length < 1
-      MAIL_NOTIFICATION_OPTIONS.delete_if {|option| option.first == :selected}
+      MAIL_NOTIFICATION_OPTIONS.delete_if {|option| option.first == 'selected'}
     else
       MAIL_NOTIFICATION_OPTIONS
     end
@@ -390,32 +391,49 @@
   def allowed_to_globally?(action, options)
     allowed_to?(action, nil, options.reverse_merge(:global => true))
   end
+
+  safe_attributes 'login',
+    'firstname',
+    'lastname',
+    'mail',
+    'mail_notification',
+    'language',
+    'custom_field_values',
+    'custom_fields',
+    'identity_url'
+  
+  safe_attributes 'status',
+    'auth_source_id',
+    :if => lambda {|user, current_user| current_user.admin?}
+  
+  safe_attributes 'group_ids',
+    :if => lambda {|user, current_user| current_user.admin? && !user.new_record?}
   
   # Utility method to help check if a user should be notified about an
   # event.
   #
   # TODO: only supports Issue events currently
   def notify_about?(object)
-    case mail_notification.to_sym
-    when :all
+    case mail_notification
+    when 'all'
       true
-    when :selected
+    when 'selected'
       # Handled by the Project
-    when :none
+    when 'none'
       false
-    when :only_my_events
+    when 'only_my_events'
       if object.is_a?(Issue) && (object.author == self || object.assigned_to == self)
         true
       else
         false
       end
-    when :only_assigned
+    when 'only_assigned'
       if object.is_a?(Issue) && object.assigned_to == self
         true
       else
         false
       end
-    when :only_owner
+    when 'only_owner'
       if object.is_a?(Issue) && object.author == self
         true
       else
--- a/app/models/.svn/text-base/version.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/version.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,7 @@
   end
   
   def start_date
-    effective_date
+    @start_date ||= fixed_issues.minimum('start_date')
   end
   
   def due_date
@@ -77,8 +77,7 @@
   def behind_schedule?
     if completed_pourcent == 100
       return false
-    elsif due_date && fixed_issues.present? && fixed_issues.minimum('start_date') # TODO: should use #start_date but that method is wrong...
-      start_date = fixed_issues.minimum('start_date')
+    elsif due_date && start_date
       done_date = start_date + ((due_date - start_date+1)* completed_pourcent/100).floor
       return done_date <= Date.today
     else
--- a/app/models/.svn/text-base/wiki.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/.svn/text-base/wiki.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -46,10 +46,10 @@
   def find_page(title, options = {})
     title = start_page if title.blank?
     title = Wiki.titleize(title)
-    page = pages.find_by_title(title)
+    page = pages.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
     if !page && !(options[:with_redirect] == false)
       # search for a redirect
-      redirect = redirects.find_by_title(title)
+      redirect = redirects.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
       page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
     end
     page
--- a/app/models/board.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/board.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -18,7 +18,7 @@
 class Board < ActiveRecord::Base
   belongs_to :project
   has_many :topics, :class_name => 'Message', :conditions => "#{Message.table_name}.parent_id IS NULL", :order => "#{Message.table_name}.created_on DESC"
-  has_many :messages, :dependent => :delete_all, :order => "#{Message.table_name}.created_on DESC"
+  has_many :messages, :dependent => :destroy, :order => "#{Message.table_name}.created_on DESC"
   belongs_to :last_message, :class_name => 'Message', :foreign_key => :last_message_id
   acts_as_list :scope => :project_id
   acts_as_watchable
--- a/app/models/changeset.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/changeset.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -23,10 +23,10 @@
   has_many :changes, :dependent => :delete_all
   has_and_belongs_to_many :issues
 
-  acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
+  acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
                 :description => :long_comments,
                 :datetime => :committed_on,
-                :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.revision}}
+                :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.identifier}}
                 
   acts_as_searchable :columns => 'comments',
                      :include => {:repository => :project},
@@ -47,6 +47,15 @@
   def revision=(r)
     write_attribute :revision, (r.nil? ? nil : r.to_s)
   end
+
+  # Returns the identifier of this changeset; depending on repository backends
+  def identifier
+    if repository.class.respond_to? :changeset_identifier
+      repository.class.changeset_identifier self
+    else
+      revision.to_s
+    end
+  end
   
   def comments=(comment)
     write_attribute(:comments, Changeset.normalize_comments(comment))
@@ -56,6 +65,15 @@
     self.commit_date = date
     super
   end
+
+  # Returns the readable identifier
+  def format_identifier
+    if repository.class.respond_to? :format_changeset_identifier
+      repository.class.format_changeset_identifier self
+    else
+      identifier
+    end
+  end
   
   def committer=(arg)
     write_attribute(:committer, self.class.to_utf8(arg.to_s))
@@ -77,52 +95,40 @@
     scan_comment_for_issue_ids
   end
   
+  TIMELOG_RE = /
+    (
+    (\d+([.,]\d+)?)h?
+    |
+    (\d+):(\d+)
+    |
+    ((\d+)(h|hours?))?((\d+)(m|min)?)?
+    )
+    /x
+  
   def scan_comment_for_issue_ids
     return if comments.blank?
     # keywords used to reference issues
     ref_keywords = Setting.commit_ref_keywords.downcase.split(",").collect(&:strip)
+    ref_keywords_any = ref_keywords.delete('*')
     # keywords used to fix issues
     fix_keywords = Setting.commit_fix_keywords.downcase.split(",").collect(&:strip)
     
     kw_regexp = (ref_keywords + fix_keywords).collect{|kw| Regexp.escape(kw)}.join("|")
-    return if kw_regexp.blank?
     
     referenced_issues = []
     
-    if ref_keywords.delete('*')
-      # find any issue ID in the comments
-      target_issue_ids = []
-      comments.scan(%r{([\s\(\[,-]|^)#(\d+)(?=[[:punct:]]|\s|<|$)}).each { |m| target_issue_ids << m[1] }
-      referenced_issues += find_referenced_issues_by_id(target_issue_ids)
-    end
-    
-    comments.scan(Regexp.new("(#{kw_regexp})[\s:]+(([\s,;&]*#?\\d+)+)", Regexp::IGNORECASE)).each do |match|
-      action = match[0]
-      target_issue_ids = match[1].scan(/\d+/)
-      target_issues = find_referenced_issues_by_id(target_issue_ids)
-      if fix_keywords.include?(action.downcase) && fix_status = IssueStatus.find_by_id(Setting.commit_fix_status_id)
-        # update status of issues
-        logger.debug "Issues fixed by changeset #{self.revision}: #{issue_ids.join(', ')}." if logger && logger.debug?
-        target_issues.each do |issue|
-          # the issue may have been updated by the closure of another one (eg. duplicate)
-          issue.reload
-          # don't change the status is the issue is closed
-          next if issue.status.is_closed?
-          csettext = "r#{self.revision}"
-          if self.scmid && (! (csettext =~ /^r[0-9]+$/))
-            csettext = "commit:\"#{self.scmid}\""
-          end
-          journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, csettext))
-          issue.status = fix_status
-          unless Setting.commit_fix_done_ratio.blank?
-            issue.done_ratio = Setting.commit_fix_done_ratio.to_i
-          end
-          Redmine::Hook.call_hook(:model_changeset_scan_commit_for_issue_ids_pre_issue_update,
-                                  { :changeset => self, :issue => issue })
-          issue.save
+    comments.scan(/([\s\(\[,-]|^)((#{kw_regexp})[\s:]+)?(#\d+(\s+@#{TIMELOG_RE})?([\s,;&]+#\d+(\s+@#{TIMELOG_RE})?)*)(?=[[:punct:]]|\s|<|$)/i) do |match|
+      action, refs = match[2], match[3]
+      next unless action.present? || ref_keywords_any
+      
+      refs.scan(/#(\d+)(\s+@#{TIMELOG_RE})?/).each do |m|
+        issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
+        if issue
+          referenced_issues << issue
+          fix_issue(issue) if fix_keywords.include?(action.to_s.downcase)
+          log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
         end
       end
-      referenced_issues += target_issues
     end
     
     referenced_issues.uniq!
@@ -136,6 +142,14 @@
   def long_comments
     @long_comments || split_comments.last
   end
+
+  def text_tag
+    if scmid?
+      "commit:#{scmid}"
+    else
+      "r#{revision}"
+    end
+  end
   
   # Returns the previous changeset
   def previous
@@ -163,13 +177,64 @@
   
   private
 
-  # Finds issues that can be referenced by the commit message
-  # i.e. issues that belong to the repository project, a subproject or a parent project
-  def find_referenced_issues_by_id(ids)
-    return [] if ids.compact.empty?
-    Issue.find_all_by_id(ids, :include => :project).select {|issue|
-      project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
-    }
+  # Finds an issue that can be referenced by the commit message
+  # i.e. an issue that belong to the repository project, a subproject or a parent project
+  def find_referenced_issue_by_id(id)
+    return nil if id.blank?
+    issue = Issue.find_by_id(id.to_i, :include => :project)
+    if issue
+      unless project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
+        issue = nil
+      end
+    end
+    issue
+  end
+  
+  def fix_issue(issue)
+    status = IssueStatus.find_by_id(Setting.commit_fix_status_id.to_i)
+    if status.nil?
+      logger.warn("No status macthes commit_fix_status_id setting (#{Setting.commit_fix_status_id})") if logger
+      return issue
+    end
+    
+    # the issue may have been updated by the closure of another one (eg. duplicate)
+    issue.reload
+    # don't change the status is the issue is closed
+    return if issue.status && issue.status.is_closed?
+    
+    journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, text_tag))
+    issue.status = status
+    unless Setting.commit_fix_done_ratio.blank?
+      issue.done_ratio = Setting.commit_fix_done_ratio.to_i
+    end
+    Redmine::Hook.call_hook(:model_changeset_scan_commit_for_issue_ids_pre_issue_update,
+                            { :changeset => self, :issue => issue })
+    unless issue.save
+      logger.warn("Issue ##{issue.id} could not be saved by changeset #{id}: #{issue.errors.full_messages}") if logger
+    end
+    issue
+  end
+  
+  def log_time(issue, hours)
+    time_entry = TimeEntry.new(
+      :user => user,
+      :hours => hours,
+      :issue => issue,
+      :spent_on => commit_date,
+      :comments => l(:text_time_logged_by_changeset, :value => text_tag, :locale => Setting.default_language)
+      )
+    time_entry.activity = log_time_activity unless log_time_activity.nil?
+    
+    unless time_entry.save
+      logger.warn("TimeEntry could not be created by changeset #{id}: #{time_entry.errors.full_messages}") if logger
+    end
+    time_entry
+  end
+  
+  def log_time_activity
+    if Setting.commit_logtime_activity_id.to_i > 0
+      TimeEntryActivity.find_by_id(Setting.commit_logtime_activity_id.to_i)
+    end
   end
   
   def split_comments
@@ -180,7 +245,13 @@
   end
 
   def self.to_utf8(str)
-    return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    if str.respond_to?(:force_encoding)
+      str.force_encoding('UTF-8')
+      return str if str.valid_encoding?
+    else
+      return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
+    end
+
     encoding = Setting.commit_logs_encoding.to_s.strip
     unless encoding.blank? || encoding == 'UTF-8'
       begin
--- a/app/models/custom_field.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/custom_field.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -23,7 +23,6 @@
   validates_presence_of :name, :field_format
   validates_uniqueness_of :name, :scope => :type
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\.\'\-]*$/i
   validates_inclusion_of :field_format, :in => Redmine::CustomFieldFormat.available_formats
 
   def initialize(attributes = nil)
--- a/app/models/group.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/group.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -31,6 +31,7 @@
   
   def user_added(user)
     members.each do |member|
+      next if member.project.nil?
       user_member = Member.find_by_project_id_and_user_id(member.project_id, user.id) || Member.new(:project_id => member.project_id, :user_id => user.id)
       member.member_roles.each do |member_role|
         user_member.member_roles << MemberRole.new(:role => member_role.role, :inherited_from => member_role.id)
--- a/app/models/issue.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/issue.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class Issue < ActiveRecord::Base
+  include Redmine::SafeAttributes
+  
   belongs_to :project
   belongs_to :tracker
   belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id'
@@ -68,8 +70,7 @@
                                   :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
   named_scope :for_gantt, lambda {
     {
-      :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version],
-      :order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC"
+      :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version]
     }
   }
 
@@ -215,30 +216,29 @@
     write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h)
   end
   
-  SAFE_ATTRIBUTES = %w(
-    tracker_id
-    status_id
-    parent_issue_id
-    category_id
-    assigned_to_id
-    priority_id
-    fixed_version_id
-    subject
-    description
-    start_date
-    due_date
-    done_ratio
-    estimated_hours
-    custom_field_values
-    lock_version
-  ) unless const_defined?(:SAFE_ATTRIBUTES)
+  safe_attributes 'tracker_id',
+    'status_id',
+    'parent_issue_id',
+    'category_id',
+    'assigned_to_id',
+    'priority_id',
+    'fixed_version_id',
+    'subject',
+    'description',
+    'start_date',
+    'due_date',
+    'done_ratio',
+    'estimated_hours',
+    'custom_field_values',
+    'custom_fields',
+    'lock_version',
+    :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:edit_issues, issue.project) }
   
-  SAFE_ATTRIBUTES_ON_TRANSITION = %w(
-    status_id
-    assigned_to_id
-    fixed_version_id
-    done_ratio
-  ) unless const_defined?(:SAFE_ATTRIBUTES_ON_TRANSITION)
+  safe_attributes 'status_id',
+    'assigned_to_id',
+    'fixed_version_id',
+    'done_ratio',
+    :if => lambda {|issue, user| issue.new_statuses_allowed_to(user).any? }
 
   # Safely sets attributes
   # Should be called from controllers instead of #attributes=
@@ -249,13 +249,8 @@
     return unless attrs.is_a?(Hash)
     
     # User can change issue attributes only if he has :edit permission or if a workflow transition is allowed
-    if new_record? || user.allowed_to?(:edit_issues, project)
-      attrs = attrs.reject {|k,v| !SAFE_ATTRIBUTES.include?(k)}
-    elsif new_statuses_allowed_to(user).any?
-      attrs = attrs.reject {|k,v| !SAFE_ATTRIBUTES_ON_TRANSITION.include?(k)}
-    else
-      return
-    end
+    attrs = delete_unsafe_attributes(attrs, user)
+    return if attrs.empty? 
     
     # Tracker must be set before since new_statuses_allowed_to depends on it.
     if t = attrs.delete('tracker_id')
@@ -276,7 +271,7 @@
       if !user.allowed_to?(:manage_subtasks, project)
         attrs.delete('parent_issue_id')
       elsif !attrs['parent_issue_id'].blank?
-        attrs.delete('parent_issue_id') unless Issue.visible(user).exists?(attrs['parent_issue_id'])
+        attrs.delete('parent_issue_id') unless Issue.visible(user).exists?(attrs['parent_issue_id'].to_i)
       end
     end
     
--- a/app/models/issue_relation.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/issue_relation.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -84,14 +84,15 @@
   
   def set_issue_to_dates
     soonest_start = self.successor_soonest_start
-    if soonest_start
+    if soonest_start && issue_to
       issue_to.reschedule_after(soonest_start)
     end
   end
   
   def successor_soonest_start
-    return nil unless (TYPE_PRECEDES == self.relation_type) && (issue_from.start_date || issue_from.due_date)
-    (issue_from.due_date || issue_from.start_date) + 1 + delay
+    if (TYPE_PRECEDES == self.relation_type) && delay && issue_from && (issue_from.start_date || issue_from.due_date)
+      (issue_from.due_date || issue_from.start_date) + 1 + delay
+    end
   end
   
   def <=>(relation)
--- a/app/models/issue_status.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/issue_status.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -25,7 +25,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
   validates_inclusion_of :default_done_ratio, :in => 0..100, :allow_nil => true
 
   def after_save
--- a/app/models/mail_handler.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/mail_handler.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -148,6 +148,9 @@
       raise UnauthorizedAction unless user.allowed_to?(:add_issue_notes, issue.project) || user.allowed_to?(:edit_issues, issue.project)
     end
     
+    # ignore CLI-supplied defaults for new issues
+    @@handler_options[:issue].clear
+    
     journal = issue.init_journal(user, cleaned_up_text_body)
     issue.safe_attributes = issue_attributes_from_keywords(issue)
     issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
@@ -232,8 +235,8 @@
   def extract_keyword!(text, attr, format=nil)
     keys = [attr.to_s.humanize]
     if attr.is_a?(Symbol)
-      keys << l("field_#{attr}", :default => '', :locale =>  user.language) if user
-      keys << l("field_#{attr}", :default => '', :locale =>  Setting.default_language)
+      keys << l("field_#{attr}", :default => '', :locale =>  user.language) if user && user.language.present?
+      keys << l("field_#{attr}", :default => '', :locale =>  Setting.default_language) if Setting.default_language.present?
     end
     keys.reject! {|k| k.blank?}
     keys.collect! {|k| Regexp.escape(k)}
@@ -256,8 +259,8 @@
     assigned_to = (k = get_keyword(:assigned_to, :override => true)) && find_user_from_keyword(k)
     assigned_to = nil if assigned_to && !issue.assignable_users.include?(assigned_to)
     
-    {
-      'tracker_id' => ((k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id)) || issue.project.trackers.find(:first).try(:id),
+    attrs = {
+      'tracker_id' => (k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id),
       'status_id' =>  (k = get_keyword(:status)) && IssueStatus.find_by_name(k).try(:id),
       'priority_id' => (k = get_keyword(:priority)) && IssuePriority.find_by_name(k).try(:id),
       'category_id' => (k = get_keyword(:category)) && issue.project.issue_categories.find_by_name(k).try(:id),
@@ -268,6 +271,12 @@
       'estimated_hours' => get_keyword(:estimated_hours, :override => true),
       'done_ratio' => get_keyword(:done_ratio, :override => true, :format => '(\d|10)?0')
     }.delete_if {|k, v| v.blank? }
+    
+    if issue.new_record? && attrs['tracker_id'].nil?
+      attrs['tracker_id'] = issue.project.trackers.find(:first).try(:id)
+    end
+    
+    attrs
   end
   
   # Returns a Hash of issue custom field values extracted from keywords in the email body
--- a/app/models/news.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/news.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,11 @@
   acts_as_activity_provider :find_options => {:include => [:project, :author]},
                             :author_key => :author_id
   
+  named_scope :visible, lambda {|*args| { 
+    :include => :project,
+    :conditions => Project.allowed_to_condition(args.first || User.current, :view_news) 
+  }}
+  
   def visible?(user=User.current)
     !user.nil? && user.allowed_to?(:view_news, project)
   end
--- a/app/models/project.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/project.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class Project < ActiveRecord::Base
+  include Redmine::SafeAttributes
+  
   # Project statuses
   STATUS_ACTIVE     = 1
   STATUS_ARCHIVED   = 9
@@ -64,7 +66,7 @@
                 :url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o}},
                 :author => nil
 
-  attr_protected :status, :enabled_module_names
+  attr_protected :status
   
   validates_presence_of :name, :identifier
   validates_uniqueness_of :identifier
@@ -84,6 +86,24 @@
   named_scope :all_public, { :conditions => { :is_public => true } }
   named_scope :visible, lambda { { :conditions => Project.visible_by(User.current) } }
   
+  def initialize(attributes = nil)
+    super
+    
+    initialized = (attributes || {}).stringify_keys
+    if !initialized.key?('identifier') && Setting.sequential_project_identifiers? 
+      self.identifier = Project.next_identifier
+    end
+    if !initialized.key?('is_public')
+      self.is_public = Setting.default_projects_public?
+    end
+    if !initialized.key?('enabled_module_names')
+      self.enabled_module_names = Setting.default_projects_modules
+    end
+    if !initialized.key?('trackers') && !initialized.key?('tracker_ids')
+      self.trackers = Tracker.all
+    end
+  end
+  
   def identifier=(identifier)
     super unless identifier_frozen?
   end
@@ -431,24 +451,20 @@
 
   # The earliest start date of a project, based on it's issues and versions
   def start_date
-    if module_enabled?(:issue_tracking)
-      [
-       issues.minimum('start_date'),
-       shared_versions.collect(&:effective_date),
-       shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
-      ].flatten.compact.min
-    end
+    [
+     issues.minimum('start_date'),
+     shared_versions.collect(&:effective_date),
+     shared_versions.collect(&:start_date)
+    ].flatten.compact.min
   end
 
   # The latest due date of an issue or version
   def due_date
-    if module_enabled?(:issue_tracking)
-      [
-       issues.maximum('due_date'),
-       shared_versions.collect(&:effective_date),
-       shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
-      ].flatten.compact.max
-    end
+    [
+     issues.maximum('due_date'),
+     shared_versions.collect(&:effective_date),
+     shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
+    ].flatten.compact.max
   end
 
   def overdue?
@@ -492,7 +508,7 @@
   
   def enabled_module_names=(module_names)
     if module_names && module_names.is_a?(Array)
-      module_names = module_names.collect(&:to_s)
+      module_names = module_names.collect(&:to_s).reject(&:blank?)
       # remove disabled modules
       enabled_modules.each {|mod| mod.destroy unless module_names.include?(mod.name)}
       # add new modules
@@ -501,7 +517,25 @@
       enabled_modules.clear
     end
   end
+  
+  # Returns an array of the enabled modules names
+  def enabled_module_names
+    enabled_modules.collect(&:name)
+  end
+  
+  safe_attributes 'name',
+    'description',
+    'homepage',
+    'is_public',
+    'identifier',
+    'custom_field_values',
+    'custom_fields',
+    'tracker_ids',
+    'issue_custom_field_ids'
 
+  safe_attributes 'enabled_module_names',
+    :if => lambda {|project, user| project.new_record? || user.allowed_to?(:select_project_modules, project) }
+  
   # Returns an array of projects that are in this project's hierarchy
   #
   # Example: parents, children, siblings
@@ -669,12 +703,20 @@
       end
       
       self.issues << new_issue
-      issues_map[issue.id] = new_issue
+      if new_issue.new_record?
+        logger.info "Project#copy_issues: issue ##{issue.id} could not be copied: #{new_issue.errors.full_messages}" if logger && logger.info
+      else
+        issues_map[issue.id] = new_issue unless new_issue.new_record?
+      end
     end
 
     # Relations after in case issues related each other
     project.issues.each do |issue|
       new_issue = issues_map[issue.id]
+      unless new_issue
+        # Issue was not copied
+        next
+      end
       
       # Relations
       issue.relations_from.each do |source_relation|
@@ -701,7 +743,12 @@
 
   # Copies members from +project+
   def copy_members(project)
-    project.memberships.each do |member|
+    # Copy users first, then groups to handle members with inherited and given roles
+    members_to_copy = []
+    members_to_copy += project.memberships.select {|m| m.principal.is_a?(User)}
+    members_to_copy += project.memberships.select {|m| !m.principal.is_a?(User)}
+    
+    members_to_copy.each do |member|
       new_member = Member.new
       new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on")
       # only copy non inherited roles
--- a/app/models/query.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/query.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -187,10 +187,18 @@
     if project
       user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] }
     else
-      project_ids = Project.all(:conditions => Project.visible_by(User.current)).collect(&:id)
-      if project_ids.any?
-        # members of the user's projects
-        user_values += User.active.find(:all, :conditions => ["#{User.table_name}.id IN (SELECT DISTINCT user_id FROM members WHERE project_id IN (?))", project_ids]).sort.collect{|s| [s.name, s.id.to_s] }
+      all_projects = Project.visible.all
+      if all_projects.any?
+        # members of visible projects
+        user_values += User.active.find(:all, :conditions => ["#{User.table_name}.id IN (SELECT DISTINCT user_id FROM members WHERE project_id IN (?))", all_projects.collect(&:id)]).sort.collect{|s| [s.name, s.id.to_s] }
+          
+        # project filter
+        project_values = []
+        Project.project_tree(all_projects) do |p, level|
+          prefix = (level > 0 ? ('--' * level + ' ') : '')
+          project_values << ["#{prefix}#{p.name}", p.id.to_s]
+        end
+        @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values} unless project_values.empty?
       end
     end
     @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty?
@@ -225,12 +233,6 @@
         @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } }
       end
       add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true}))
-      # project filter
-      project_values = Project.all(:conditions => Project.visible_by(User.current), :order => 'lft').map do |p|
-        pre = (p.level > 0 ? ('--' * p.level + ' ') : '')
-        ["#{pre}#{p.name}",p.id.to_s]
-      end
-      @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values}
     end
     @available_filters
   end
@@ -376,15 +378,15 @@
   
   # Returns true if the query is a grouped query
   def grouped?
-    !group_by.blank?
+    !group_by_column.nil?
   end
   
   def group_by_column
-    groupable_columns.detect {|c| c.name.to_s == group_by}
+    groupable_columns.detect {|c| c.groupable && c.name.to_s == group_by}
   end
   
   def group_by_statement
-    group_by_column.groupable
+    group_by_column.try(:groupable)
   end
   
   def project_statement
--- a/app/models/repository.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -86,7 +86,14 @@
   def diff(path, rev, rev_to)
     scm.diff(path, rev, rev_to)
   end
-  
+
+  def diff_format_revisions(cs, cs_to, sep=':')
+    text = ""
+    text << cs_to.format_identifier + sep if cs_to
+    text << cs.format_identifier if cs
+    text
+  end
+
   # Returns a path relative to the url of the repository
   def relative_path(path)
     path
@@ -94,6 +101,7 @@
   
   # Finds and returns a revision with a number or the beginning of a hash
   def find_changeset_by_name(name)
+    return nil if name.nil? || name.empty?
     changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_s] : ["revision LIKE ?", name + '%']))
   end
   
--- a/app/models/repository/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/3394/trunk/app/models/repository
+/svn/!svn/ver/4704/trunk/app/models/repository
 END
 subversion.rb
 K 25
@@ -19,13 +19,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/3394/trunk/app/models/repository/git.rb
+/svn/!svn/ver/4613/trunk/app/models/repository/git.rb
 END
 mercurial.rb
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3360/trunk/app/models/repository/mercurial.rb
+/svn/!svn/ver/4704/trunk/app/models/repository/mercurial.rb
 END
 filesystem.rb
 K 25
--- a/app/models/repository/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/models/repository
 http://redmine.rubyforge.org/svn
 
 
 
-2010-02-07T15:17:21.677785Z
-3394
-jplang
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 
 
 
@@ -100,11 +100,11 @@
 
 
 
-2010-09-24T11:56:52.924049Z
-b3a159a082904eaf5e084eb0ea2a6988
-2010-02-07T15:17:21.677785Z
-3394
-jplang
+2011-01-13T14:09:10.000000Z
+a3363c594162378e93390bb64f908183
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -126,7 +126,7 @@
 
 
 
-2872
+3147
 
 mercurial.rb
 file
@@ -134,11 +134,11 @@
 
 
 
-2010-09-24T11:56:52.932091Z
-6ca7d031f8d4d508518892a607462b88
-2010-02-02T17:02:32.020293Z
-3360
-edavis10
+2011-01-13T14:09:10.000000Z
+4b0702e606f495c7db57461f3527181e
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 has-props
 
 
@@ -160,7 +160,7 @@
 
 
 
-3505
+5003
 
 filesystem.rb
 file
--- a/app/models/repository/.svn/text-base/git.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/.svn/text-base/git.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,16 @@
     'Git'
   end
 
+  # Returns the identifier for the given git changeset
+  def self.changeset_identifier(changeset)
+    changeset.scmid
+  end
+
+  # Returns the readable identifier for the given git changeset
+  def self.format_changeset_identifier(changeset)
+    changeset.revision[0, 8]
+  end
+
   def branches
     scm.branches
   end
--- a/app/models/repository/.svn/text-base/mercurial.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/.svn/text-base/mercurial.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -18,17 +18,34 @@
 require 'redmine/scm/adapters/mercurial_adapter'
 
 class Repository::Mercurial < Repository
+  # sort changesets by revision number
+  has_many :changesets, :order => "#{Changeset.table_name}.id DESC", :foreign_key => 'repository_id'
+
   attr_protected :root_url
   validates_presence_of :url
 
   def scm_adapter
     Redmine::Scm::Adapters::MercurialAdapter
   end
-  
+
   def self.scm_name
     'Mercurial'
   end
-  
+
+  # Returns the readable identifier for the given mercurial changeset
+  def self.format_changeset_identifier(changeset)
+    "#{changeset.revision}:#{changeset.scmid}"
+  end
+
+  # Returns the identifier for the given Mercurial changeset
+  def self.changeset_identifier(changeset)
+    changeset.scmid
+  end
+
+  def diff_format_revisions(cs, cs_to, sep=':')
+    super(cs, cs_to, ' ')
+  end
+
   def entries(path=nil, identifier=nil)
     entries=scm.entries(path, identifier)
     if entries
@@ -52,6 +69,30 @@
     entries
   end
 
+  # Finds and returns a revision with a number or the beginning of a hash
+  def find_changeset_by_name(name)
+    return nil if name.nil? || name.empty?
+    if /[^\d]/ =~ name or name.to_s.size > 8
+      e = changesets.find(:first, :conditions => ['scmid = ?', name.to_s])
+    else
+      e = changesets.find(:first, :conditions => ['revision = ?', name.to_s])
+    end
+    return e if e
+    changesets.find(:first, :conditions => ['scmid LIKE ?', "#{name}%"])  # last ditch
+  end
+
+  # Returns the latest changesets for +path+; sorted by revision number
+  def latest_changesets(path, rev, limit=10)
+    if path.blank?
+      changesets.find(:all, :include => :user, :limit => limit)
+    else
+      changes.find(:all, :include => {:changeset => :user},
+                         :conditions => ["path = ?", path.with_leading_slash],
+                         :order => "#{Changeset.table_name}.id DESC",
+                         :limit => limit).collect(&:changeset)
+    end
+  end
+
   def fetch_changesets
     scm_info = scm.info
     if scm_info
--- a/app/models/repository/git.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/git.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -29,6 +29,16 @@
     'Git'
   end
 
+  # Returns the identifier for the given git changeset
+  def self.changeset_identifier(changeset)
+    changeset.scmid
+  end
+
+  # Returns the readable identifier for the given git changeset
+  def self.format_changeset_identifier(changeset)
+    changeset.revision[0, 8]
+  end
+
   def branches
     scm.branches
   end
--- a/app/models/repository/mercurial.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/repository/mercurial.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -18,17 +18,34 @@
 require 'redmine/scm/adapters/mercurial_adapter'
 
 class Repository::Mercurial < Repository
+  # sort changesets by revision number
+  has_many :changesets, :order => "#{Changeset.table_name}.id DESC", :foreign_key => 'repository_id'
+
   attr_protected :root_url
   validates_presence_of :url
 
   def scm_adapter
     Redmine::Scm::Adapters::MercurialAdapter
   end
-  
+
   def self.scm_name
     'Mercurial'
   end
-  
+
+  # Returns the readable identifier for the given mercurial changeset
+  def self.format_changeset_identifier(changeset)
+    "#{changeset.revision}:#{changeset.scmid}"
+  end
+
+  # Returns the identifier for the given Mercurial changeset
+  def self.changeset_identifier(changeset)
+    changeset.scmid
+  end
+
+  def diff_format_revisions(cs, cs_to, sep=':')
+    super(cs, cs_to, ' ')
+  end
+
   def entries(path=nil, identifier=nil)
     entries=scm.entries(path, identifier)
     if entries
@@ -52,6 +69,30 @@
     entries
   end
 
+  # Finds and returns a revision with a number or the beginning of a hash
+  def find_changeset_by_name(name)
+    return nil if name.nil? || name.empty?
+    if /[^\d]/ =~ name or name.to_s.size > 8
+      e = changesets.find(:first, :conditions => ['scmid = ?', name.to_s])
+    else
+      e = changesets.find(:first, :conditions => ['revision = ?', name.to_s])
+    end
+    return e if e
+    changesets.find(:first, :conditions => ['scmid LIKE ?', "#{name}%"])  # last ditch
+  end
+
+  # Returns the latest changesets for +path+; sorted by revision number
+  def latest_changesets(path, rev, limit=10)
+    if path.blank?
+      changesets.find(:all, :include => :user, :limit => limit)
+    else
+      changes.find(:all, :include => {:changeset => :user},
+                         :conditions => ["path = ?", path.with_leading_slash],
+                         :order => "#{Changeset.table_name}.id DESC",
+                         :limit => limit).collect(&:changeset)
+    end
+  end
+
   def fetch_changesets
     scm_info = scm.info
     if scm_info
--- a/app/models/role.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/role.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
 
   def permissions
     read_attribute(:permissions) || []
--- a/app/models/tracker.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/tracker.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -31,7 +31,6 @@
   validates_presence_of :name
   validates_uniqueness_of :name
   validates_length_of :name, :maximum => 30
-  validates_format_of :name, :with => /^[\w\s\'\-]*$/i
 
   def to_s; name end
   
--- a/app/models/user.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/user.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -18,7 +18,8 @@
 require "digest/sha1"
 
 class User < Principal
-
+  include Redmine::SafeAttributes
+  
   # Account statuses
   STATUS_ANONYMOUS  = 0
   STATUS_ACTIVE     = 1
@@ -34,13 +35,13 @@
   }
 
   MAIL_NOTIFICATION_OPTIONS = [
-                               [:all, :label_user_mail_option_all],
-                               [:selected, :label_user_mail_option_selected],
-                               [:none, :label_user_mail_option_none],
-                               [:only_my_events, :label_user_mail_option_only_my_events],
-                               [:only_assigned, :label_user_mail_option_only_assigned],
-                               [:only_owner, :label_user_mail_option_only_owner]
-                              ]
+    ['all', :label_user_mail_option_all],
+    ['selected', :label_user_mail_option_selected],
+    ['only_my_events', :label_user_mail_option_only_my_events],
+    ['only_assigned', :label_user_mail_option_only_assigned],
+    ['only_owner', :label_user_mail_option_only_owner],
+    ['none', :label_user_mail_option_none]
+  ]
 
   has_and_belongs_to_many :groups, :after_add => Proc.new {|user, group| group.user_added(user)},
                                    :after_remove => Proc.new {|user, group| group.user_removed(user)}
@@ -59,7 +60,7 @@
   attr_accessor :password, :password_confirmation
   attr_accessor :last_before_login_on
   # Prevents unauthorized assignments
-  attr_protected :login, :admin, :password, :password_confirmation, :hashed_password, :group_ids
+  attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
 	
   validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
   validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }, :case_sensitive => false
@@ -67,11 +68,11 @@
   # Login must contain lettres, numbers, underscores only
   validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
   validates_length_of :login, :maximum => 30
-  validates_format_of :firstname, :lastname, :with => /^[\w\s\'\-\.]*$/i
   validates_length_of :firstname, :lastname, :maximum => 30
   validates_format_of :mail, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :allow_nil => true
   validates_length_of :mail, :maximum => 60, :allow_nil => true
   validates_confirmation_of :password, :allow_nil => true
+  validates_inclusion_of :mail_notification, :in => MAIL_NOTIFICATION_OPTIONS.collect(&:first), :allow_blank => true
 
   def before_create
     self.mail_notification = Setting.default_notification_option if self.mail_notification.blank?
@@ -264,7 +265,7 @@
     # Note that @user.membership.size would fail since AR ignores
     # :include association option when doing a count
     if memberships.length < 1
-      MAIL_NOTIFICATION_OPTIONS.delete_if {|option| option.first == :selected}
+      MAIL_NOTIFICATION_OPTIONS.delete_if {|option| option.first == 'selected'}
     else
       MAIL_NOTIFICATION_OPTIONS
     end
@@ -390,32 +391,49 @@
   def allowed_to_globally?(action, options)
     allowed_to?(action, nil, options.reverse_merge(:global => true))
   end
+
+  safe_attributes 'login',
+    'firstname',
+    'lastname',
+    'mail',
+    'mail_notification',
+    'language',
+    'custom_field_values',
+    'custom_fields',
+    'identity_url'
+  
+  safe_attributes 'status',
+    'auth_source_id',
+    :if => lambda {|user, current_user| current_user.admin?}
+  
+  safe_attributes 'group_ids',
+    :if => lambda {|user, current_user| current_user.admin? && !user.new_record?}
   
   # Utility method to help check if a user should be notified about an
   # event.
   #
   # TODO: only supports Issue events currently
   def notify_about?(object)
-    case mail_notification.to_sym
-    when :all
+    case mail_notification
+    when 'all'
       true
-    when :selected
+    when 'selected'
       # Handled by the Project
-    when :none
+    when 'none'
       false
-    when :only_my_events
+    when 'only_my_events'
       if object.is_a?(Issue) && (object.author == self || object.assigned_to == self)
         true
       else
         false
       end
-    when :only_assigned
+    when 'only_assigned'
       if object.is_a?(Issue) && object.assigned_to == self
         true
       else
         false
       end
-    when :only_owner
+    when 'only_owner'
       if object.is_a?(Issue) && object.author == self
         true
       else
--- a/app/models/version.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/version.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,7 @@
   end
   
   def start_date
-    effective_date
+    @start_date ||= fixed_issues.minimum('start_date')
   end
   
   def due_date
@@ -77,8 +77,7 @@
   def behind_schedule?
     if completed_pourcent == 100
       return false
-    elsif due_date && fixed_issues.present? && fixed_issues.minimum('start_date') # TODO: should use #start_date but that method is wrong...
-      start_date = fixed_issues.minimum('start_date')
+    elsif due_date && start_date
       done_date = start_date + ((due_date - start_date+1)* completed_pourcent/100).floor
       return done_date <= Date.today
     else
--- a/app/models/wiki.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/models/wiki.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -46,10 +46,10 @@
   def find_page(title, options = {})
     title = start_page if title.blank?
     title = Wiki.titleize(title)
-    page = pages.find_by_title(title)
+    page = pages.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
     if !page && !(options[:with_redirect] == false)
       # search for a redirect
-      redirect = redirects.find_by_title(title)
+      redirect = redirects.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
       page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
     end
     page
--- a/app/sweepers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/sweepers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/sweepers
 http://redmine.rubyforge.org/svn
 
--- a/app/views/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 34
-/svn/!svn/ver/4409/trunk/app/views
+/svn/!svn/ver/4698/trunk/app/views
 END
--- a/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-16T19:49:08.085592Z
-4409
-jplang
+2011-01-11T16:04:07.541291Z
+4698
+tmaruyama
 
 
 
--- a/app/views/account/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/account/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/account
 http://redmine.rubyforge.org/svn
 
--- a/app/views/activities/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/activities/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/activities
 http://redmine.rubyforge.org/svn
 
--- a/app/views/admin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/admin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/admin
 http://redmine.rubyforge.org/svn
 
--- a/app/views/attachments/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/attachments/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/attachments
 http://redmine.rubyforge.org/svn
 
--- a/app/views/auth_sources/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/auth_sources/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/auth_sources
 http://redmine.rubyforge.org/svn
 
--- a/app/views/auto_completes/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/auto_completes/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/auto_completes
 http://redmine.rubyforge.org/svn
 
--- a/app/views/boards/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/boards/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/boards
 http://redmine.rubyforge.org/svn
 
--- a/app/views/calendars/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/calendars/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/calendars
 http://redmine.rubyforge.org/svn
 
--- a/app/views/common/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/common/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 41
-/svn/!svn/ver/4286/trunk/app/views/common
+/svn/!svn/ver/4604/trunk/app/views/common
 END
 _file.rhtml
 K 25
@@ -31,7 +31,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/3585/trunk/app/views/common/_diff.rhtml
+/svn/!svn/ver/4604/trunk/app/views/common/_diff.rhtml
 END
 _calendar.rhtml
 K 25
--- a/app/views/common/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/common/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/common
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-23T11:07:04.019894Z
-4286
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 
 
@@ -168,10 +168,10 @@
 
 
 
-2010-09-23T14:37:44.523788Z
-a03541085a4ee595977cbf760d20bf19
-2010-03-14T13:22:50.317701Z
-3585
+2011-01-13T14:09:24.000000Z
+1938ad8ac1793e75074891018e795398
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 has-props
 
@@ -194,7 +194,7 @@
 
 
 
-2506
+2520
 
 _calendar.rhtml
 file
--- a/app/views/common/.svn/text-base/_diff.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/common/.svn/text-base/_diff.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -4,7 +4,7 @@
 <% if diff_type == 'sbs' -%>
 <table class="filecontent">
 <thead>
-<tr><th colspan="4" class="filename"><%= table_file.file_name %></th></tr>
+<tr><th colspan="4" class="filename"><%=to_utf8 table_file.file_name %></th></tr>
 </thead>
 <tbody>
 <% prev_line_left, prev_line_right = nil, nil -%>
@@ -31,7 +31,7 @@
 <% else -%>
 <table class="filecontent syntaxhl">
 <thead>
-<tr><th colspan="3" class="filename"><%= table_file.file_name %></th></tr>
+<tr><th colspan="3" class="filename"><%=to_utf8 table_file.file_name %></th></tr>
 </thead>
 <tbody>
 <% prev_line_left, prev_line_right = nil, nil -%>
--- a/app/views/common/_diff.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/common/_diff.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -4,7 +4,7 @@
 <% if diff_type == 'sbs' -%>
 <table class="filecontent">
 <thead>
-<tr><th colspan="4" class="filename"><%= table_file.file_name %></th></tr>
+<tr><th colspan="4" class="filename"><%=to_utf8 table_file.file_name %></th></tr>
 </thead>
 <tbody>
 <% prev_line_left, prev_line_right = nil, nil -%>
@@ -31,7 +31,7 @@
 <% else -%>
 <table class="filecontent syntaxhl">
 <thead>
-<tr><th colspan="3" class="filename"><%= table_file.file_name %></th></tr>
+<tr><th colspan="3" class="filename"><%=to_utf8 table_file.file_name %></th></tr>
 </thead>
 <tbody>
 <% prev_line_left, prev_line_right = nil, nil -%>
--- a/app/views/context_menus/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/context_menus/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/context_menus
 http://redmine.rubyforge.org/svn
 
--- a/app/views/custom_fields/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/custom_fields/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/custom_fields
 http://redmine.rubyforge.org/svn
 
--- a/app/views/documents/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/documents/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/documents
 http://redmine.rubyforge.org/svn
 
--- a/app/views/enumerations/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/enumerations/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/enumerations
 http://redmine.rubyforge.org/svn
 
--- a/app/views/files/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/files/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/files
 http://redmine.rubyforge.org/svn
 
--- a/app/views/gantts/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/gantts/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 41
-/svn/!svn/ver/4283/trunk/app/views/gantts
+/svn/!svn/ver/4528/trunk/app/views/gantts
 END
 show.html.erb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/4283/trunk/app/views/gantts/show.html.erb
+/svn/!svn/ver/4528/trunk/app/views/gantts/show.html.erb
 END
--- a/app/views/gantts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/gantts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/gantts
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-23T09:08:55.877887Z
-4283
+2010-12-17T15:25:07.681776Z
+4528
 jplang
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-11-19T13:04:49.480864Z
-e0ed1c5fd05cd8c8f3f930c443564ebc
-2010-10-23T09:08:55.877887Z
-4283
+2011-01-13T14:09:29.000000Z
+85e8095f9a3c80cf6a53b73c6b694323
+2010-12-17T15:25:07.681776Z
+4528
 jplang
 has-props
 
@@ -58,5 +58,5 @@
 
 
 
-6213
+6232
 
--- a/app/views/gantts/.svn/text-base/show.html.erb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/gantts/.svn/text-base/show.html.erb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -59,10 +59,19 @@
 
 # Width of the entire chart    
 g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom
-# Collect the number of issues on Versions
+
+@gantt.render(:top => headers_height + 8, :zoom => zoom, :g_width => g_width)
+
 g_height = [(20 * (@gantt.number_of_rows + 6))+150, 206].max
 t_height = g_height + headers_height
+
+
 %>
+
+<% if @gantt.truncated %>
+	<p class="warning"><%= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %></p>
+<% end %>
+
 <table width="100%" style="border:0; border-collapse: collapse;">
 <tr>
 <td style="width:<%= subject_width %>px; padding:0px;">
@@ -70,9 +79,10 @@
 <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width + 1 %>px;">
 <div style="right:-2px;width:<%= subject_width %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"></div>
 <div style="right:-2px;width:<%= subject_width %>px;height:<%= t_height %>px;border-left: 1px solid #c0c0c0;overflow:hidden;" class="gantt_hdr"></div>
-<% top = headers_height + 8 %>
 
-<%= @gantt.subjects(:headers_height => headers_height, :top => top, :g_width => g_width) %>
+<div class="gantt_subjects">
+<%= @gantt.subjects %>
+</div>
 
 </div>
 </td>
@@ -151,9 +161,7 @@
 	end
 end %>
 
-<% top = headers_height + 10 %>
-
-<%= @gantt.lines(:top => top, :zoom => zoom, :g_width => g_width ) %>
+<%= @gantt.lines %>
 
 <%
 #
--- a/app/views/gantts/show.html.erb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/gantts/show.html.erb	Thu Jan 13 14:12:06 2011 +0000
@@ -59,10 +59,19 @@
 
 # Width of the entire chart    
 g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom
-# Collect the number of issues on Versions
+
+@gantt.render(:top => headers_height + 8, :zoom => zoom, :g_width => g_width)
+
 g_height = [(20 * (@gantt.number_of_rows + 6))+150, 206].max
 t_height = g_height + headers_height
+
+
 %>
+
+<% if @gantt.truncated %>
+	<p class="warning"><%= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %></p>
+<% end %>
+
 <table width="100%" style="border:0; border-collapse: collapse;">
 <tr>
 <td style="width:<%= subject_width %>px; padding:0px;">
@@ -70,9 +79,10 @@
 <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width + 1 %>px;">
 <div style="right:-2px;width:<%= subject_width %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"></div>
 <div style="right:-2px;width:<%= subject_width %>px;height:<%= t_height %>px;border-left: 1px solid #c0c0c0;overflow:hidden;" class="gantt_hdr"></div>
-<% top = headers_height + 8 %>
 
-<%= @gantt.subjects(:headers_height => headers_height, :top => top, :g_width => g_width) %>
+<div class="gantt_subjects">
+<%= @gantt.subjects %>
+</div>
 
 </div>
 </td>
@@ -151,9 +161,7 @@
 	end
 end %>
 
-<% top = headers_height + 10 %>
-
-<%= @gantt.lines(:top => top, :zoom => zoom, :g_width => g_width ) %>
+<%= @gantt.lines %>
 
 <%
 #
--- a/app/views/groups/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/groups/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/groups
 http://redmine.rubyforge.org/svn
 
--- a/app/views/issue_categories/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_categories/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/issue_categories
 http://redmine.rubyforge.org/svn
 
--- a/app/views/issue_moves/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_moves/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4292/trunk/app/views/issue_moves
+/svn/!svn/ver/4583/trunk/app/views/issue_moves
 END
 new.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/4292/trunk/app/views/issue_moves/new.rhtml
+/svn/!svn/ver/4583/trunk/app/views/issue_moves/new.rhtml
 END
--- a/app/views/issue_moves/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_moves/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/issue_moves
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-25T18:44:46.868009Z
-4292
-edavis10
+2010-12-29T20:48:51.915261Z
+4583
+jplang
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-11-19T13:04:48.788846Z
-1ad6c5f00ec9a5a7509125da416b0b07
-2010-10-25T18:44:46.868009Z
-4292
-edavis10
+2011-01-13T14:09:16.000000Z
+9a221a421165c46becefe4e15dc6266c
+2010-12-29T20:48:51.915261Z
+4583
+jplang
 has-props
 
 
@@ -58,5 +58,5 @@
 
 
 
-2701
+2874
 
--- a/app/views/issue_moves/.svn/text-base/new.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_moves/.svn/text-base/new.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -10,6 +10,10 @@
 <%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join %>
 
 <div class="box tabular">
+<fieldset class="attributes">
+<legend><%= l(:label_change_properties) %></legend>
+
+<div class="splitcontentleft">
 <p><label for="new_project_id"><%=l(:field_project)%>:</label>
 <%= select_tag "new_project_id",
                project_tree_options_for_select(@allowed_projects, :selected => @target_project),
@@ -22,13 +26,6 @@
 <%= select_tag "new_tracker_id", "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@trackers, "id", "name") %></p>
 
 <p>
-  <label><%= l(:field_assigned_to) %></label>
-  <%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
-                                   content_tag('option', l(:label_nobody), :value => 'none') +
-                                   options_from_collection_for_select(@target_project.assignable_users, :id, :name)) %>
-</p>
-
-<p>
   <label><%= l(:field_status) %></label>
   <%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %>
 </p>
@@ -39,6 +36,15 @@
 </p>
 
 <p>
+  <label><%= l(:field_assigned_to) %></label>
+  <%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
+                                   content_tag('option', l(:label_nobody), :value => 'none') +
+                                   options_from_collection_for_select(@target_project.assignable_users, :id, :name)) %>
+</p>
+</div>
+
+<div class="splitcontentright">
+<p>
   <label><%= l(:field_start_date) %></label>
   <%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %>
 </p>
@@ -47,6 +53,9 @@
   <label><%= l(:field_due_date) %></label>
   <%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %>
 </p>
+</div>
+
+</fieldset>
 
 <fieldset><legend><%= l(:field_notes) %></legend>
 <%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %>
--- a/app/views/issue_moves/new.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_moves/new.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -10,6 +10,10 @@
 <%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join %>
 
 <div class="box tabular">
+<fieldset class="attributes">
+<legend><%= l(:label_change_properties) %></legend>
+
+<div class="splitcontentleft">
 <p><label for="new_project_id"><%=l(:field_project)%>:</label>
 <%= select_tag "new_project_id",
                project_tree_options_for_select(@allowed_projects, :selected => @target_project),
@@ -22,13 +26,6 @@
 <%= select_tag "new_tracker_id", "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@trackers, "id", "name") %></p>
 
 <p>
-  <label><%= l(:field_assigned_to) %></label>
-  <%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
-                                   content_tag('option', l(:label_nobody), :value => 'none') +
-                                   options_from_collection_for_select(@target_project.assignable_users, :id, :name)) %>
-</p>
-
-<p>
   <label><%= l(:field_status) %></label>
   <%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %>
 </p>
@@ -39,6 +36,15 @@
 </p>
 
 <p>
+  <label><%= l(:field_assigned_to) %></label>
+  <%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
+                                   content_tag('option', l(:label_nobody), :value => 'none') +
+                                   options_from_collection_for_select(@target_project.assignable_users, :id, :name)) %>
+</p>
+</div>
+
+<div class="splitcontentright">
+<p>
   <label><%= l(:field_start_date) %></label>
   <%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %>
 </p>
@@ -47,6 +53,9 @@
   <label><%= l(:field_due_date) %></label>
   <%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %>
 </p>
+</div>
+
+</fieldset>
 
 <fieldset><legend><%= l(:field_notes) %></legend>
 <%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %>
--- a/app/views/issue_relations/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_relations/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/747/trunk/app/views/issue_relations
+V 50
+/svn/!svn/ver/4502/trunk/app/views/issue_relations
 END
 _form.rhtml
 K 25
 svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/747/trunk/app/views/issue_relations/_form.rhtml
+V 62
+/svn/!svn/ver/4502/trunk/app/views/issue_relations/_form.rhtml
 END
--- a/app/views/issue_relations/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_relations/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/issue_relations
 http://redmine.rubyforge.org/svn
 
 
 
-2007-09-22T13:17:49.935719Z
-747
+2010-12-12T16:04:28.950669Z
+4502
 jplang
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-09-23T14:37:44.555783Z
-36d83be727a082a187650a3604005824
-2007-09-22T13:17:49.935719Z
-747
+2011-01-13T14:09:24.000000Z
+7024ae266ddb4d218d7c24c3b17fa790
+2010-12-12T16:04:28.950669Z
+4502
 jplang
 has-props
 
@@ -58,5 +58,5 @@
 
 
 
-538
+724
 
--- a/app/views/issue_relations/.svn/text-base/_form.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_relations/.svn/text-base/_form.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,9 @@
 <%= error_messages_for 'relation' %>
 
 <p><%= f.select :relation_type, collection_for_relation_type_select, {}, :onchange => "setPredecessorFieldsVisibility();" %>
-<%= l(:label_issue) %> #<%= f.text_field :issue_to_id, :size => 6 %>
+<%= l(:label_issue) %> #<%= f.text_field :issue_to_id, :size => 10 %>
+<div id="related_issue_candidates" class="autocomplete"></div>
+<%= javascript_tag "observeRelatedIssueField('#{auto_complete_issues_path(:id => @issue, :project_id => @project) }')" %>
 <span id="predecessor_fields" style="display:none;">
 <%= l(:field_delay) %>: <%= f.text_field :delay, :size => 3 %> <%= l(:label_day_plural) %>
 </span>
--- a/app/views/issue_relations/_form.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_relations/_form.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,9 @@
 <%= error_messages_for 'relation' %>
 
 <p><%= f.select :relation_type, collection_for_relation_type_select, {}, :onchange => "setPredecessorFieldsVisibility();" %>
-<%= l(:label_issue) %> #<%= f.text_field :issue_to_id, :size => 6 %>
+<%= l(:label_issue) %> #<%= f.text_field :issue_to_id, :size => 10 %>
+<div id="related_issue_candidates" class="autocomplete"></div>
+<%= javascript_tag "observeRelatedIssueField('#{auto_complete_issues_path(:id => @issue, :project_id => @project) }')" %>
 <span id="predecessor_fields" style="display:none;">
 <%= l(:field_delay) %>: <%= f.text_field :delay, :size => 3 %> <%= l(:label_day_plural) %>
 </span>
--- a/app/views/issue_statuses/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issue_statuses/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/issue_statuses
 http://redmine.rubyforge.org/svn
 
--- a/app/views/issues/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 41
-/svn/!svn/ver/4311/trunk/app/views/issues
+/svn/!svn/ver/4652/trunk/app/views/issues
 END
 _relations.rhtml
 K 25
@@ -25,7 +25,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/4242/trunk/app/views/issues/bulk_edit.rhtml
+/svn/!svn/ver/4533/trunk/app/views/issues/bulk_edit.rhtml
 END
 _form.rhtml
 K 25
@@ -39,12 +39,6 @@
 V 60
 /svn/!svn/ver/3151/trunk/app/views/issues/_form_update.rhtml
 END
-index.xml.builder
-K 25
-svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/3671/trunk/app/views/issues/index.xml.builder
-END
 index.rhtml
 K 25
 svn:wc:ra_dav:version-url
@@ -63,17 +57,17 @@
 V 53
 /svn/!svn/ver/4056/trunk/app/views/issues/_list.rhtml
 END
-show.xml.builder
+index.api.rsb
 K 25
 svn:wc:ra_dav:version-url
-V 58
-/svn/!svn/ver/3729/trunk/app/views/issues/show.xml.builder
+V 55
+/svn/!svn/ver/4489/trunk/app/views/issues/index.api.rsb
 END
 show.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/4264/trunk/app/views/issues/show.rhtml
+/svn/!svn/ver/4530/trunk/app/views/issues/show.rhtml
 END
 _form_custom_fields.rhtml
 K 25
@@ -91,7 +85,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3898/trunk/app/views/issues/_changesets.rhtml
+/svn/!svn/ver/4652/trunk/app/views/issues/_changesets.rhtml
 END
 _edit.rhtml
 K 25
@@ -111,6 +105,12 @@
 V 52
 /svn/!svn/ver/1129/trunk/app/views/issues/edit.rhtml
 END
+show.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4512/trunk/app/views/issues/show.api.rsb
+END
 destroy.rhtml
 K 25
 svn:wc:ra_dav:version-url
--- a/app/views/issues/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/issues
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-30T16:15:31.867344Z
-4311
-jbbarth
+2011-01-08T00:19:51.192586Z
+4652
+tmaruyama
 
 
 
@@ -168,11 +168,11 @@
 
 
 
-2010-11-19T13:04:50.824922Z
-b60c0aee0477249fc72d3206e30a8a07
-2010-10-08T03:09:51.863032Z
-4242
-jbbarth
+2011-01-13T14:09:38.000000Z
+f3bdc270087564333ffdacd38f1d363c
+2010-12-18T14:14:04.023240Z
+4533
+jplang
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-3438
+3443
 
 _form_update.rhtml
 file
@@ -230,40 +230,6 @@
 
 649
 
-index.xml.builder
-file
-
-
-
-
-2010-09-23T14:37:44.575742Z
-ed6c218138334e3950cb971252374472
-2010-04-13T17:51:06.988056Z
-3671
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1559
-
 index.rhtml
 file
 
@@ -366,16 +332,16 @@
 
 1772
 
-show.xml.builder
+index.api.rsb
 file
 
 
 
 
-2010-09-23T14:37:44.575742Z
-1a197244651b647927c95d8bcbb2b46d
-2010-05-01T14:07:36.553776Z
-3729
+2011-01-13T14:09:38.000000Z
+db6f5533a330ebdcd1dd5e4c47098024
+2010-12-11T13:13:49.013705Z
+4489
 jplang
 has-props
 
@@ -398,7 +364,7 @@
 
 
 
-2726
+1467
 
 show.rhtml
 file
@@ -406,10 +372,10 @@
 
 
 
-2010-11-19T13:04:50.824922Z
-1f2adc49d35b7299cebfc9aff8152908
-2010-10-19T19:26:07.436051Z
-4264
+2011-01-13T14:09:38.000000Z
+f147a1cbca0263a122d10bf674d6dcbf
+2010-12-18T13:40:50.641112Z
+4530
 jplang
 has-props
 
@@ -432,7 +398,7 @@
 
 
 
-5399
+5468
 
 _form_custom_fields.rhtml
 file
@@ -474,11 +440,11 @@
 
 
 
-2010-09-23T14:37:44.571741Z
-4c03735a361a24cc60a70975502bace7
-2010-07-29T15:48:53.812065Z
-3898
-winterheart
+2011-01-13T14:09:38.000000Z
+eca2b7cfea14ef6185c358e55f1b8b48
+2011-01-08T00:19:51.192586Z
+4652
+tmaruyama
 has-props
 
 
@@ -500,7 +466,7 @@
 
 
 
-509
+470
 
 _list_simple.rhtml
 file
@@ -638,6 +604,40 @@
 
 90
 
+show.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:38.000000Z
+47d5c2be3301716cd4351c51904801a3
+2010-12-14T19:03:17.057916Z
+4512
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2836
+
 destroy.rhtml
 file
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/.svn/prop-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/app/views/issues/.svn/prop-base/index.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/.svn/prop-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/app/views/issues/.svn/prop-base/show.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
--- a/app/views/issues/.svn/text-base/_changesets.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/.svn/text-base/_changesets.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 <% changesets.each do |changeset| %>
     <div class="changeset <%= cycle('odd', 'even') %>">
-    <p><%= link_to("#{l(:label_revision)} #{changeset.revision}",
-                :controller => 'repositories', :action => 'revision', :id => changeset.project, :rev => changeset.revision) %><br />
+    <p><%= link_to_revision(changeset, changeset.project,
+                            :text => "#{l(:label_revision)} #{changeset.format_identifier}") %><br />
         <span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
     <div class="changeset-changes">
         <%= textilizable(changeset, :comments) %>
--- a/app/views/issues/.svn/text-base/bulk_edit.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/.svn/text-base/bulk_edit.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,7 @@
 	<label><%= l(:field_fixed_version) %></label> 
 	<%= select_tag('issue[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
                                    content_tag('option', l(:label_none), :value => 'none') +
-                                   version_options_for_select(@project.shared_versions.open)) %>
+                                   version_options_for_select(@project.shared_versions.open.sort)) %>
 </p>
 <% end %>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/.svn/text-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,28 @@
+api.array :issues, api_meta(:total_count => @issue_count, :offset => @offset, :limit => @limit) do
+  @issues.each do |issue|
+    api.issue do
+      api.id issue.id
+      api.project(:id => issue.project_id, :name => issue.project.name) unless issue.project.nil?
+      api.tracker(:id => issue.tracker_id, :name => issue.tracker.name) unless issue.tracker.nil?
+      api.status(:id => issue.status_id, :name => issue.status.name) unless issue.status.nil?
+      api.priority(:id => issue.priority_id, :name => issue.priority.name) unless issue.priority.nil?
+      api.author(:id => issue.author_id, :name => issue.author.name) unless issue.author.nil?
+      api.assigned_to(:id => issue.assigned_to_id, :name => issue.assigned_to.name) unless issue.assigned_to.nil?
+      api.category(:id => issue.category_id, :name => issue.category.name) unless issue.category.nil?
+      api.fixed_version(:id => issue.fixed_version_id, :name => issue.fixed_version.name) unless issue.fixed_version.nil?
+      api.parent(:id => issue.parent_id) unless issue.parent.nil?
+      
+      api.subject 		issue.subject
+      api.description issue.description
+      api.start_date 	issue.start_date
+      api.due_date 		issue.due_date
+      api.done_ratio 	issue.done_ratio
+      api.estimated_hours issue.estimated_hours
+      
+      render_api_custom_values issue.custom_field_values, api
+      
+      api.created_on issue.created_on
+      api.updated_on issue.updated_on
+    end
+  end
+end
--- a/app/views/issues/.svn/text-base/index.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-xml.instruct!
-xml.issues :type => 'array' do
-  @issues.each do |issue|
-	  xml.issue do
-	    xml.id					issue.id
-			xml.project(:id => issue.project_id, :name => issue.project.name) unless issue.project.nil?
-			xml.tracker(:id => issue.tracker_id, :name => issue.tracker.name) unless issue.tracker.nil?
-			xml.status(:id => issue.status_id, :name => issue.status.name) unless issue.status.nil?
-			xml.priority(:id => issue.priority_id, :name => issue.priority.name) unless issue.priority.nil?
-		 	xml.author(:id => issue.author_id, :name => issue.author.name) unless issue.author.nil?
-		 	xml.assigned_to(:id => issue.assigned_to_id, :name => issue.assigned_to.name) unless issue.assigned_to.nil?
-		  xml.category(:id => issue.category_id, :name => issue.category.name) unless issue.category.nil?
-		  xml.fixed_version(:id => issue.fixed_version_id, :name => issue.fixed_version.name) unless issue.fixed_version.nil?
-      xml.parent(:id => issue.parent_id) unless issue.parent.nil?
-      
-      xml.subject 		issue.subject
-      xml.description issue.description
-      xml.start_date 	issue.start_date
-      xml.due_date 		issue.due_date
-      xml.done_ratio 	issue.done_ratio
-      xml.estimated_hours issue.estimated_hours
-      
-      xml.custom_fields do
-      	issue.custom_field_values.each do |custom_value|
-      		xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-      	end
-      end
-      
-      xml.created_on issue.created_on
-      xml.updated_on issue.updated_on
-    end
-  end
-end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/.svn/text-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,61 @@
+api.issue do
+  api.id @issue.id
+  api.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil?
+  api.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil?
+  api.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil?
+  api.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil?
+  api.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil?
+  api.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil?
+  api.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil?
+  api.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil?
+  api.parent(:id => @issue.parent_id) unless @issue.parent.nil?
+  
+  api.subject @issue.subject
+  api.description @issue.description
+  api.start_date @issue.start_date
+  api.due_date @issue.due_date
+  api.done_ratio @issue.done_ratio
+  api.estimated_hours @issue.estimated_hours
+  api.spent_hours(@issue.spent_hours) if User.current.allowed_to?(:view_time_entries, @project)
+  
+  render_api_custom_values @issue.custom_field_values, api
+  
+  api.created_on @issue.created_on
+  api.updated_on @issue.updated_on
+  
+  render_api_issue_children(@issue, api) if include_in_api_response?('children')
+  
+  api.array :relations do
+    @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
+      api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
+    end
+  end if include_in_api_response?('relations')
+  
+  api.array :changesets do
+    @issue.changesets.each do |changeset|
+      api.changeset :revision => changeset.revision do
+        api.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil?
+        api.comments changeset.comments
+        api.committed_on changeset.committed_on
+      end
+    end
+  end if include_in_api_response?('changesets') && User.current.allowed_to?(:view_changesets, @project)
+  
+  api.array :journals do
+    @issue.journals.each do |journal|
+      api.journal :id => journal.id do
+        api.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil?
+        api.notes journal.notes
+        api.created_on journal.created_on
+        api.array :details do
+          journal.details.each do |detail|
+            api.detail :property => detail.property, :name => detail.prop_key do
+              api.old_value detail.old_value
+              api.new_value detail.value
+            end
+          end
+        end
+      end
+    end
+  end if include_in_api_response?('journals')
+end
--- a/app/views/issues/.svn/text-base/show.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/.svn/text-base/show.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -47,14 +47,16 @@
 
 <% if @issue.description? || @issue.attachments.any? -%>
 <hr />
-<div class="contextual">
-<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:action => 'reply', :id => @issue} }, :class => 'icon icon-comment') if @issue.description? %>
-</div>
-                              
-<div class="wiki">
-<%= textilizable @issue, :description, :attachments => @issue.attachments %>
-</div>
-
+<% if @issue.description? %>
+	<div class="contextual">
+	<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:controller => 'journals', :action => 'new', :id => @issue} }, :class => 'icon icon-comment') %>
+	</div>
+	
+	<p><strong><%=l(:field_description)%></strong></p>
+	<div class="wiki">
+	<%= textilizable @issue, :description, :attachments => @issue.attachments %>
+	</div>
+<% end %>
 <%= link_to_attachments @issue %>
 <% end -%>
 
--- a/app/views/issues/.svn/text-base/show.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-xml.instruct!
-xml.issue do
-  xml.id					@issue.id
-	xml.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil?
-	xml.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil?
-	xml.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil?
-	xml.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil?
- 	xml.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil?
- 	xml.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil?
-  xml.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil?
-  xml.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil?
-  xml.parent(:id => @issue.parent_id) unless @issue.parent.nil?
-  
-  xml.subject 		@issue.subject
-  xml.description @issue.description
-  xml.start_date 	@issue.start_date
-  xml.due_date 		@issue.due_date
-  xml.done_ratio 	@issue.done_ratio
-  xml.estimated_hours @issue.estimated_hours
-  if User.current.allowed_to?(:view_time_entries, @project)
-  	xml.spent_hours		@issue.spent_hours
- 	end
-  
-  xml.custom_fields do
-  	@issue.custom_field_values.each do |custom_value|
-  		xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-  	end
-  end unless @issue.custom_field_values.empty?
-  
-  xml.created_on @issue.created_on
-  xml.updated_on @issue.updated_on
-  
-  xml.relations do
-  	@issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
-  		xml.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
-  	end
-  end
-  
-  xml.changesets do
-  	@issue.changesets.each do |changeset|
-  		xml.changeset :revision => changeset.revision do
-  			xml.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil?
-  			xml.comments changeset.comments
-  			xml.committed_on changeset.committed_on
-  		end
-  	end
-  end if User.current.allowed_to?(:view_changesets, @project) && @issue.changesets.any?
-  
-  xml.journals do
-  	@issue.journals.each do |journal|
-  		xml.journal :id => journal.id do
-			 	xml.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil?
-  			xml.notes journal.notes
-  			xml.details do
-  				journal.details.each do |detail|
-  					xml.detail :property => detail.property, :name => detail.prop_key, :old => detail.old_value, :new => detail.value
-  				end
-  			end
-  		end
-  	end
-  end unless @issue.journals.empty?
-end
--- a/app/views/issues/_changesets.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/_changesets.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 <% changesets.each do |changeset| %>
     <div class="changeset <%= cycle('odd', 'even') %>">
-    <p><%= link_to("#{l(:label_revision)} #{changeset.revision}",
-                :controller => 'repositories', :action => 'revision', :id => changeset.project, :rev => changeset.revision) %><br />
+    <p><%= link_to_revision(changeset, changeset.project,
+                            :text => "#{l(:label_revision)} #{changeset.format_identifier}") %><br />
         <span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
     <div class="changeset-changes">
         <%= textilizable(changeset, :comments) %>
--- a/app/views/issues/bulk_edit.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/bulk_edit.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -43,7 +43,7 @@
 	<label><%= l(:field_fixed_version) %></label> 
 	<%= select_tag('issue[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
                                    content_tag('option', l(:label_none), :value => 'none') +
-                                   version_options_for_select(@project.shared_versions.open)) %>
+                                   version_options_for_select(@project.shared_versions.open.sort)) %>
 </p>
 <% end %>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/index.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,28 @@
+api.array :issues, api_meta(:total_count => @issue_count, :offset => @offset, :limit => @limit) do
+  @issues.each do |issue|
+    api.issue do
+      api.id issue.id
+      api.project(:id => issue.project_id, :name => issue.project.name) unless issue.project.nil?
+      api.tracker(:id => issue.tracker_id, :name => issue.tracker.name) unless issue.tracker.nil?
+      api.status(:id => issue.status_id, :name => issue.status.name) unless issue.status.nil?
+      api.priority(:id => issue.priority_id, :name => issue.priority.name) unless issue.priority.nil?
+      api.author(:id => issue.author_id, :name => issue.author.name) unless issue.author.nil?
+      api.assigned_to(:id => issue.assigned_to_id, :name => issue.assigned_to.name) unless issue.assigned_to.nil?
+      api.category(:id => issue.category_id, :name => issue.category.name) unless issue.category.nil?
+      api.fixed_version(:id => issue.fixed_version_id, :name => issue.fixed_version.name) unless issue.fixed_version.nil?
+      api.parent(:id => issue.parent_id) unless issue.parent.nil?
+      
+      api.subject 		issue.subject
+      api.description issue.description
+      api.start_date 	issue.start_date
+      api.due_date 		issue.due_date
+      api.done_ratio 	issue.done_ratio
+      api.estimated_hours issue.estimated_hours
+      
+      render_api_custom_values issue.custom_field_values, api
+      
+      api.created_on issue.created_on
+      api.updated_on issue.updated_on
+    end
+  end
+end
--- a/app/views/issues/index.xml.builder	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-xml.instruct!
-xml.issues :type => 'array' do
-  @issues.each do |issue|
-	  xml.issue do
-	    xml.id					issue.id
-			xml.project(:id => issue.project_id, :name => issue.project.name) unless issue.project.nil?
-			xml.tracker(:id => issue.tracker_id, :name => issue.tracker.name) unless issue.tracker.nil?
-			xml.status(:id => issue.status_id, :name => issue.status.name) unless issue.status.nil?
-			xml.priority(:id => issue.priority_id, :name => issue.priority.name) unless issue.priority.nil?
-		 	xml.author(:id => issue.author_id, :name => issue.author.name) unless issue.author.nil?
-		 	xml.assigned_to(:id => issue.assigned_to_id, :name => issue.assigned_to.name) unless issue.assigned_to.nil?
-		  xml.category(:id => issue.category_id, :name => issue.category.name) unless issue.category.nil?
-		  xml.fixed_version(:id => issue.fixed_version_id, :name => issue.fixed_version.name) unless issue.fixed_version.nil?
-      xml.parent(:id => issue.parent_id) unless issue.parent.nil?
-      
-      xml.subject 		issue.subject
-      xml.description issue.description
-      xml.start_date 	issue.start_date
-      xml.due_date 		issue.due_date
-      xml.done_ratio 	issue.done_ratio
-      xml.estimated_hours issue.estimated_hours
-      
-      xml.custom_fields do
-      	issue.custom_field_values.each do |custom_value|
-      		xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-      	end
-      end
-      
-      xml.created_on issue.created_on
-      xml.updated_on issue.updated_on
-    end
-  end
-end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/issues/show.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,61 @@
+api.issue do
+  api.id @issue.id
+  api.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil?
+  api.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil?
+  api.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil?
+  api.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil?
+  api.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil?
+  api.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil?
+  api.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil?
+  api.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil?
+  api.parent(:id => @issue.parent_id) unless @issue.parent.nil?
+  
+  api.subject @issue.subject
+  api.description @issue.description
+  api.start_date @issue.start_date
+  api.due_date @issue.due_date
+  api.done_ratio @issue.done_ratio
+  api.estimated_hours @issue.estimated_hours
+  api.spent_hours(@issue.spent_hours) if User.current.allowed_to?(:view_time_entries, @project)
+  
+  render_api_custom_values @issue.custom_field_values, api
+  
+  api.created_on @issue.created_on
+  api.updated_on @issue.updated_on
+  
+  render_api_issue_children(@issue, api) if include_in_api_response?('children')
+  
+  api.array :relations do
+    @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
+      api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
+    end
+  end if include_in_api_response?('relations')
+  
+  api.array :changesets do
+    @issue.changesets.each do |changeset|
+      api.changeset :revision => changeset.revision do
+        api.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil?
+        api.comments changeset.comments
+        api.committed_on changeset.committed_on
+      end
+    end
+  end if include_in_api_response?('changesets') && User.current.allowed_to?(:view_changesets, @project)
+  
+  api.array :journals do
+    @issue.journals.each do |journal|
+      api.journal :id => journal.id do
+        api.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil?
+        api.notes journal.notes
+        api.created_on journal.created_on
+        api.array :details do
+          journal.details.each do |detail|
+            api.detail :property => detail.property, :name => detail.prop_key do
+              api.old_value detail.old_value
+              api.new_value detail.value
+            end
+          end
+        end
+      end
+    end
+  end if include_in_api_response?('journals')
+end
--- a/app/views/issues/show.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/issues/show.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -47,14 +47,16 @@
 
 <% if @issue.description? || @issue.attachments.any? -%>
 <hr />
-<div class="contextual">
-<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:action => 'reply', :id => @issue} }, :class => 'icon icon-comment') if @issue.description? %>
-</div>
-                              
-<div class="wiki">
-<%= textilizable @issue, :description, :attachments => @issue.attachments %>
-</div>
-
+<% if @issue.description? %>
+	<div class="contextual">
+	<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:controller => 'journals', :action => 'new', :id => @issue} }, :class => 'icon icon-comment') %>
+	</div>
+	
+	<p><strong><%=l(:field_description)%></strong></p>
+	<div class="wiki">
+	<%= textilizable @issue, :description, :attachments => @issue.attachments %>
+	</div>
+<% end %>
 <%= link_to_attachments @issue %>
 <% end -%>
 
--- a/app/views/issues/show.xml.builder	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-xml.instruct!
-xml.issue do
-  xml.id					@issue.id
-	xml.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil?
-	xml.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil?
-	xml.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil?
-	xml.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil?
- 	xml.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil?
- 	xml.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil?
-  xml.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil?
-  xml.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil?
-  xml.parent(:id => @issue.parent_id) unless @issue.parent.nil?
-  
-  xml.subject 		@issue.subject
-  xml.description @issue.description
-  xml.start_date 	@issue.start_date
-  xml.due_date 		@issue.due_date
-  xml.done_ratio 	@issue.done_ratio
-  xml.estimated_hours @issue.estimated_hours
-  if User.current.allowed_to?(:view_time_entries, @project)
-  	xml.spent_hours		@issue.spent_hours
- 	end
-  
-  xml.custom_fields do
-  	@issue.custom_field_values.each do |custom_value|
-  		xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-  	end
-  end unless @issue.custom_field_values.empty?
-  
-  xml.created_on @issue.created_on
-  xml.updated_on @issue.updated_on
-  
-  xml.relations do
-  	@issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
-  		xml.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
-  	end
-  end
-  
-  xml.changesets do
-  	@issue.changesets.each do |changeset|
-  		xml.changeset :revision => changeset.revision do
-  			xml.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil?
-  			xml.comments changeset.comments
-  			xml.committed_on changeset.committed_on
-  		end
-  	end
-  end if User.current.allowed_to?(:view_changesets, @project) && @issue.changesets.any?
-  
-  xml.journals do
-  	@issue.journals.each do |journal|
-  		xml.journal :id => journal.id do
-			 	xml.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil?
-  			xml.notes journal.notes
-  			xml.details do
-  				journal.details.each do |detail|
-  					xml.detail :property => detail.property, :name => detail.prop_key, :old => detail.old_value, :new => detail.value
-  				end
-  			end
-  		end
-  	end
-  end unless @issue.journals.empty?
-end
--- a/app/views/journals/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/journals/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/journals
 http://redmine.rubyforge.org/svn
 
--- a/app/views/layouts/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/layouts/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 42
-/svn/!svn/ver/4362/trunk/app/views/layouts
+/svn/!svn/ver/4618/trunk/app/views/layouts
 END
 base.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/4005/trunk/app/views/layouts/base.rhtml
+/svn/!svn/ver/4618/trunk/app/views/layouts/base.rhtml
 END
 mailer.text.plain.erb
 K 25
--- a/app/views/layouts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/layouts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/layouts
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-02T19:00:36.834304Z
-4362
-edavis10
+2011-01-02T12:16:06.700181Z
+4618
+jplang
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-24T11:56:52.936024Z
-2e429e8cf551d964a7e1a528ca56242d
-2010-08-19T16:57:44.231882Z
-4005
-winterheart
+2011-01-13T14:09:10.000000Z
+cd4a6bfaaaa0fed093ac8d467803aa0a
+2011-01-02T12:16:06.700181Z
+4618
+jplang
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-2902
+2925
 
 mailer.text.plain.erb
 file
--- a/app/views/layouts/.svn/text-base/base.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/layouts/.svn/text-base/base.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -9,6 +9,7 @@
 <%= stylesheet_link_tag 'application', :media => 'all' %>
 <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
 <%= javascript_include_tag :defaults %>
+<%= heads_for_theme %>
 <%= heads_for_wiki_formatter %>
 <!--[if IE]>
     <style type="text/css">
@@ -68,7 +69,7 @@
 	
 <div id="footer">
   <div class="bgl"><div class="bgr">
-    Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2010 Jean-Philippe Lang
+    Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2011 Jean-Philippe Lang
   </div></div>
 </div>
 </div>
--- a/app/views/layouts/base.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/layouts/base.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -9,6 +9,7 @@
 <%= stylesheet_link_tag 'application', :media => 'all' %>
 <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
 <%= javascript_include_tag :defaults %>
+<%= heads_for_theme %>
 <%= heads_for_wiki_formatter %>
 <!--[if IE]>
     <style type="text/css">
@@ -68,7 +69,7 @@
 	
 <div id="footer">
   <div class="bgl"><div class="bgr">
-    Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2010 Jean-Philippe Lang
+    Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2011 Jean-Philippe Lang
   </div></div>
 </div>
 </div>
--- a/app/views/ldap_auth_sources/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/ldap_auth_sources/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/ldap_auth_sources
 http://redmine.rubyforge.org/svn
 
--- a/app/views/mailer/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/mailer/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/mailer
 http://redmine.rubyforge.org/svn
 
@@ -672,6 +672,40 @@
 
 629
 
+news_added.text.plain.rhtml
+file
+
+
+
+
+2010-09-23T14:37:44.607738Z
+0cbce1fe1b288482af3095ce9bc555ed
+2007-11-04T10:43:39.403792Z
+877
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+87
+
 attachments_added.text.html.rhtml
 file
 
@@ -706,40 +740,6 @@
 
 144
 
-news_added.text.plain.rhtml
-file
-
-
-
-
-2010-09-23T14:37:44.607738Z
-0cbce1fe1b288482af3095ce9bc555ed
-2007-11-04T10:43:39.403792Z
-877
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-87
-
 news_added.text.html.rhtml
 file
 
@@ -808,6 +808,40 @@
 
 107
 
+document_added.text.html.rhtml
+file
+
+
+
+
+2010-09-23T14:37:44.603754Z
+06d5fbff057e28328f2be88419207f80
+2010-02-18T19:13:38.135448Z
+3452
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+163
+
 issue_add.text.plain.rhtml
 file
 
@@ -842,40 +876,6 @@
 
 224
 
-document_added.text.html.rhtml
-file
-
-
-
-
-2010-09-23T14:37:44.603754Z
-06d5fbff057e28328f2be88419207f80
-2010-02-18T19:13:38.135448Z
-3452
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-163
-
 account_information.text.plain.rhtml
 file
 
@@ -910,6 +910,40 @@
 
 295
 
+message_posted.text.plain.rhtml
+file
+
+
+
+
+2010-09-23T14:37:44.603754Z
+9b7ab36ebc57f0c02756d2b076e67b19
+2007-11-26T18:47:49.588558Z
+932
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+68
+
 account_information.text.html.rhtml
 file
 
@@ -944,17 +978,17 @@
 
 368
 
-message_posted.text.plain.rhtml
+wiki_content_updated.text.plain.rhtml
 file
 
 
 
 
-2010-09-23T14:37:44.603754Z
-9b7ab36ebc57f0c02756d2b076e67b19
-2007-11-26T18:47:49.588558Z
-932
-jplang
+2010-11-19T13:04:49.420968Z
+0cb005c22ad144fdbe29238b0080f28b
+2010-10-27T16:27:06.240747Z
+4296
+edavis10
 has-props
 
 
@@ -976,7 +1010,7 @@
 
 
 
-68
+288
 
 lost_password.text.plain.rhtml
 file
@@ -1012,40 +1046,6 @@
 
 97
 
-wiki_content_updated.text.plain.rhtml
-file
-
-
-
-
-2010-11-19T13:04:49.420968Z
-0cb005c22ad144fdbe29238b0080f28b
-2010-10-27T16:27:06.240747Z
-4296
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-288
-
 lost_password.text.html.rhtml
 file
 
--- a/app/views/members/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/members/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/members
 http://redmine.rubyforge.org/svn
 
--- a/app/views/messages/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/messages/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/messages
 http://redmine.rubyforge.org/svn
 
--- a/app/views/my/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/my/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/my
 http://redmine.rubyforge.org/svn
 
--- a/app/views/my/blocks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/my/blocks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/my/blocks
 http://redmine.rubyforge.org/svn
 
--- a/app/views/news/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/news/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/4267/trunk/app/views/news
+/svn/!svn/ver/4505/trunk/app/views/news
 END
 _news.rhtml
 K 25
@@ -9,11 +9,17 @@
 V 51
 /svn/!svn/ver/4214/trunk/app/views/news/_news.rhtml
 END
+index.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4505/trunk/app/views/news/index.api.rsb
+END
 show.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4214/trunk/app/views/news/show.rhtml
+/svn/!svn/ver/4412/trunk/app/views/news/show.rhtml
 END
 _form.rhtml
 K 25
--- a/app/views/news/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/news/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/news
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-22T14:42:38.351679Z
-4267
+2010-12-12T17:00:52.100205Z
+4505
 jplang
 
 
@@ -60,17 +60,51 @@
 
 384
 
+index.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:24.000000Z
+194919e4bc598629f690752af5340b5b
+2010-12-12T17:00:52.100205Z
+4505
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+506
+
 show.rhtml
 file
 
 
 
 
-2010-11-19T13:04:49.428894Z
-c21730c749ee8533fadff9abbea6ffd8
-2010-09-27T16:51:12.033537Z
-4214
-edavis10
+2011-01-13T14:09:24.000000Z
+969b4f69a93036097550cd14be8023bc
+2010-11-20T09:38:54.291843Z
+4412
+jplang
 has-props
 
 
@@ -92,7 +126,7 @@
 
 
 
-2897
+2920
 
 _form.rhtml
 file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/news/.svn/prop-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/news/.svn/text-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,14 @@
+api.array :news, api_meta(:total_count => @news_count, :offset => @offset, :limit => @limit) do
+  @newss.each do |news|
+    api.news do
+      api.id news.id
+      api.project(:id => news.project_id, :name => news.project.name) unless news.project.nil?
+      api.author(:id => news.author_id, :name => news.author.name) unless news.author.nil?
+      
+      api.title 		news.title
+      api.summary		news.summary
+      api.description 	news.description
+      api.created_on news.created_on
+    end
+  end
+end
--- a/app/views/news/.svn/text-base/show.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/news/.svn/text-base/show.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,10 +1,14 @@
 <div class="contextual">
-<%= link_to_if_authorized l(:button_edit), 
-                          edit_news_path(@news),
-                          :class => 'icon icon-edit',
-                          :accesskey => accesskey(:edit),
-                          :onclick => 'Element.show("edit-news"); return false;' %>
-<%= link_to_if_authorized l(:button_delete), news_path(@news), :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %>
+<%= link_to(l(:button_edit), 
+      edit_news_path(@news),
+      :class => 'icon icon-edit',
+      :accesskey => accesskey(:edit),
+      :onclick => 'Element.show("edit-news"); return false;') if User.current.allowed_to?(:manage_news, @project) %>
+<%= link_to(l(:button_delete), 
+      news_path(@news),
+      :confirm => l(:text_are_you_sure),
+      :method => :delete,
+      :class => 'icon icon-del') if User.current.allowed_to?(:manage_news, @project) %>
 </div>
 
 <h2><%= avatar(@news.author, :size => "24") %><%=h @news.title %></h2>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/news/index.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,14 @@
+api.array :news, api_meta(:total_count => @news_count, :offset => @offset, :limit => @limit) do
+  @newss.each do |news|
+    api.news do
+      api.id news.id
+      api.project(:id => news.project_id, :name => news.project.name) unless news.project.nil?
+      api.author(:id => news.author_id, :name => news.author.name) unless news.author.nil?
+      
+      api.title 		news.title
+      api.summary		news.summary
+      api.description 	news.description
+      api.created_on news.created_on
+    end
+  end
+end
--- a/app/views/news/show.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/news/show.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,10 +1,14 @@
 <div class="contextual">
-<%= link_to_if_authorized l(:button_edit), 
-                          edit_news_path(@news),
-                          :class => 'icon icon-edit',
-                          :accesskey => accesskey(:edit),
-                          :onclick => 'Element.show("edit-news"); return false;' %>
-<%= link_to_if_authorized l(:button_delete), news_path(@news), :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %>
+<%= link_to(l(:button_edit), 
+      edit_news_path(@news),
+      :class => 'icon icon-edit',
+      :accesskey => accesskey(:edit),
+      :onclick => 'Element.show("edit-news"); return false;') if User.current.allowed_to?(:manage_news, @project) %>
+<%= link_to(l(:button_delete), 
+      news_path(@news),
+      :confirm => l(:text_are_you_sure),
+      :method => :delete,
+      :class => 'icon icon-del') if User.current.allowed_to?(:manage_news, @project) %>
 </div>
 
 <h2><%= avatar(@news.author, :size => "24") %><%=h @news.title %></h2>
--- a/app/views/previews/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/previews/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/previews
 http://redmine.rubyforge.org/svn
 
--- a/app/views/projects/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/4402/trunk/app/views/projects
+/svn/!svn/ver/4648/trunk/app/views/projects
 END
 copy.rhtml
 K 25
@@ -13,13 +13,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/4069/trunk/app/views/projects/new.html.erb
+/svn/!svn/ver/4648/trunk/app/views/projects/new.html.erb
 END
-show.xml.builder
+index.api.rsb
 K 25
 svn:wc:ra_dav:version-url
-V 60
-/svn/!svn/ver/4382/trunk/app/views/projects/show.xml.builder
+V 57
+/svn/!svn/ver/4572/trunk/app/views/projects/index.api.rsb
 END
 settings.rhtml
 K 25
@@ -37,7 +37,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/4402/trunk/app/views/projects/_form.rhtml
+/svn/!svn/ver/4648/trunk/app/views/projects/_form.rhtml
 END
 _edit.rhtml
 K 25
@@ -51,12 +51,6 @@
 V 62
 /svn/!svn/ver/2990/trunk/app/views/projects/list_members.rhtml
 END
-index.xml.builder
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/4382/trunk/app/views/projects/index.xml.builder
-END
 _members_box.html.erb
 K 25
 svn:wc:ra_dav:version-url
@@ -69,6 +63,12 @@
 V 55
 /svn/!svn/ver/4069/trunk/app/views/projects/index.rhtml
 END
+show.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/4486/trunk/app/views/projects/show.api.rsb
+END
 destroy.rhtml
 K 25
 svn:wc:ra_dav:version-url
--- a/app/views/projects/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/projects
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T12:33:14.198318Z
-4402
+2011-01-06T21:02:19.982329Z
+4648
 jplang
 
 
@@ -69,44 +69,10 @@
 
 
 
-2010-09-24T12:48:28.956343Z
-6d0e913f69c037dd846dd198fec2dbe8
-2010-09-07T15:00:27.481481Z
-4069
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-627
-
-show.xml.builder
-file
-
-
-
-
-2010-11-19T13:04:49.468916Z
-2c71cdd8d404107942ca25fbd76f7099
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:29.000000Z
+89a2baf21090ed983ffe265fa0929b29
+2011-01-06T21:02:19.982329Z
+4648
 jplang
 has-props
 
@@ -129,7 +95,41 @@
 
 
 
-687
+289
+
+index.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:29.000000Z
+4eef8200b378cb9b074da5abac7c5dfa
+2010-12-23T13:34:44.668484Z
+4572
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+589
 
 settings.rhtml
 file
@@ -205,10 +205,10 @@
 
 
 
-2010-11-19T13:04:49.468916Z
-a7153b3d30bc50efcce516bb73b04f3b
-2010-11-14T12:33:14.198318Z
-4402
+2011-01-13T14:09:29.000000Z
+b0519f745853f4f4e673c2e30389dc40
+2011-01-06T21:02:19.982329Z
+4648
 jplang
 has-props
 
@@ -231,7 +231,7 @@
 
 
 
-1944
+2630
 
 _edit.rhtml
 file
@@ -301,40 +301,6 @@
 
 391
 
-index.xml.builder
-file
-
-
-
-
-2010-11-19T13:04:49.472856Z
-0a17e1dac1d3e2ac43c08f0039802b8c
-2010-11-07T14:15:01.891476Z
-4382
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-729
-
 _members_box.html.erb
 file
 
@@ -403,6 +369,40 @@
 
 1155
 
+show.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:29.000000Z
+c49d7ceec0060eb7437c7e3f2b7629ed
+2010-12-11T10:19:11.273304Z
+4486
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+525
+
 destroy.rhtml
 file
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/.svn/prop-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/app/views/projects/.svn/prop-base/index.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/.svn/prop-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/app/views/projects/.svn/prop-base/show.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
--- a/app/views/projects/.svn/text-base/_form.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/.svn/text-base/_form.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -23,8 +23,22 @@
 <%= call_hook(:view_projects_form, :project => @project, :form => f) %>
 </div>
 
+<% if @project.new_record? %>
+<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
+<% Redmine::AccessControl.available_project_modules.each do |m| %>
+    <label class="floating">
+    <%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
+    <%= l_or_humanize(m, :prefix => "project_module_") %>
+    </label>
+<% end %>
+<%= hidden_field_tag 'project[enabled_module_names][]', '' %>
+<%= javascript_tag 'observeProjectModules()' %>
+</fieldset>
+<% end %>
+
+<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
 <% unless @trackers.empty? %>
-<fieldset class="box"><legend><%=l(:label_tracker_plural)%></legend>
+<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
 <% @trackers.each do |tracker| %>
     <label class="floating">
     <%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %>
@@ -36,7 +50,7 @@
 <% end %>
 
 <% unless @issue_custom_fields.empty? %>
-<fieldset class="box"><legend><%=l(:label_custom_field_plural)%></legend>
+<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
 <% @issue_custom_fields.each do |custom_field| %>
     <label class="floating">
 	<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
@@ -46,4 +60,5 @@
 <%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
 </fieldset>
 <% end %>
+<% end %>
 <!--[eoform:project]-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/.svn/text-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,16 @@
+api.array :projects, api_meta(:total_count => @project_count, :offset => @offset, :limit => @limit) do
+  @projects.each do |project|
+    api.project do
+      api.id          project.id
+      api.name        project.name
+      api.identifier  project.identifier
+      api.description project.description
+      api.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
+      
+      render_api_custom_values project.visible_custom_field_values, api
+      
+      api.created_on  project.created_on
+      api.updated_on  project.updated_on
+    end
+  end
+end
--- a/app/views/projects/.svn/text-base/index.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-xml.instruct!
-xml.projects :type => 'array' do
-  @projects.each do |project|
-    xml.project do
-      xml.id          project.id
-      xml.name        project.name
-      xml.identifier  project.identifier
-      xml.description project.description
-      xml.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
-      xml.custom_fields do
-        project.visible_custom_field_values.each do |custom_value|
-          xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-        end
-      end unless project.custom_field_values.empty?
-      xml.created_on  project.created_on
-      xml.updated_on  project.updated_on
-    end
-  end
-end
--- a/app/views/projects/.svn/text-base/new.html.erb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/.svn/text-base/new.html.erb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -2,16 +2,6 @@
 
 <% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %>
 <%= render :partial => 'form', :locals => { :f => f } %>
-
-<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
-<% Redmine::AccessControl.available_project_modules.each do |m| %>
-    <label class="floating">
-    <%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) %>
-    <%= l_or_humanize(m, :prefix => "project_module_") %>
-    </label>
-<% end %>
-</fieldset>
-
 <%= submit_tag l(:button_save) %>
 <%= javascript_tag "Form.Element.focus('project_name');" %>
 <% end %>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/.svn/text-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,18 @@
+api.project do
+  api.id          @project.id
+  api.name        @project.name
+  api.identifier  @project.identifier
+  api.description @project.description
+  api.homepage    @project.homepage
+  
+  render_api_custom_values @project.visible_custom_field_values, api
+  
+  api.created_on @project.created_on
+  api.updated_on @project.updated_on
+  
+  api.array :trackers do
+    @project.trackers.each do |tracker|
+      api.tracker(:id => tracker.id, :name => tracker.name)
+    end
+  end if include_in_api_response?('trackers')
+end
--- a/app/views/projects/.svn/text-base/show.xml.builder.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-xml.instruct!
-xml.project do
-  xml.id          @project.id
-  xml.name        @project.name
-  xml.identifier  @project.identifier
-  xml.description @project.description
-  xml.homepage    @project.homepage
-  
-  xml.custom_fields do
-    @project.visible_custom_field_values.each do |custom_value|
-      xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-    end
-  end unless @project.custom_field_values.empty?
-  
-  xml.created_on @project.created_on
-  xml.updated_on @project.updated_on
-  
-  xml.trackers do
-    @project.trackers.each do |tracker|
-      xml.tracker(:id => tracker.id, :name => tracker.name)
-    end
-  end
-end
--- a/app/views/projects/_form.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/_form.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -23,8 +23,22 @@
 <%= call_hook(:view_projects_form, :project => @project, :form => f) %>
 </div>
 
+<% if @project.new_record? %>
+<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
+<% Redmine::AccessControl.available_project_modules.each do |m| %>
+    <label class="floating">
+    <%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
+    <%= l_or_humanize(m, :prefix => "project_module_") %>
+    </label>
+<% end %>
+<%= hidden_field_tag 'project[enabled_module_names][]', '' %>
+<%= javascript_tag 'observeProjectModules()' %>
+</fieldset>
+<% end %>
+
+<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
 <% unless @trackers.empty? %>
-<fieldset class="box"><legend><%=l(:label_tracker_plural)%></legend>
+<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
 <% @trackers.each do |tracker| %>
     <label class="floating">
     <%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %>
@@ -36,7 +50,7 @@
 <% end %>
 
 <% unless @issue_custom_fields.empty? %>
-<fieldset class="box"><legend><%=l(:label_custom_field_plural)%></legend>
+<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
 <% @issue_custom_fields.each do |custom_field| %>
     <label class="floating">
 	<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
@@ -46,4 +60,5 @@
 <%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
 </fieldset>
 <% end %>
+<% end %>
 <!--[eoform:project]-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/index.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,16 @@
+api.array :projects, api_meta(:total_count => @project_count, :offset => @offset, :limit => @limit) do
+  @projects.each do |project|
+    api.project do
+      api.id          project.id
+      api.name        project.name
+      api.identifier  project.identifier
+      api.description project.description
+      api.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
+      
+      render_api_custom_values project.visible_custom_field_values, api
+      
+      api.created_on  project.created_on
+      api.updated_on  project.updated_on
+    end
+  end
+end
--- a/app/views/projects/index.xml.builder	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-xml.instruct!
-xml.projects :type => 'array' do
-  @projects.each do |project|
-    xml.project do
-      xml.id          project.id
-      xml.name        project.name
-      xml.identifier  project.identifier
-      xml.description project.description
-      xml.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
-      xml.custom_fields do
-        project.visible_custom_field_values.each do |custom_value|
-          xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-        end
-      end unless project.custom_field_values.empty?
-      xml.created_on  project.created_on
-      xml.updated_on  project.updated_on
-    end
-  end
-end
--- a/app/views/projects/new.html.erb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/new.html.erb	Thu Jan 13 14:12:06 2011 +0000
@@ -2,16 +2,6 @@
 
 <% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %>
 <%= render :partial => 'form', :locals => { :f => f } %>
-
-<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
-<% Redmine::AccessControl.available_project_modules.each do |m| %>
-    <label class="floating">
-    <%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) %>
-    <%= l_or_humanize(m, :prefix => "project_module_") %>
-    </label>
-<% end %>
-</fieldset>
-
 <%= submit_tag l(:button_save) %>
 <%= javascript_tag "Form.Element.focus('project_name');" %>
 <% end %>
--- a/app/views/projects/settings/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/settings/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/4371/trunk/app/views/projects/settings
+/svn/!svn/ver/4647/trunk/app/views/projects/settings
 END
 _issue_categories.rhtml
 K 25
@@ -31,7 +31,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3336/trunk/app/views/projects/settings/_modules.rhtml
+/svn/!svn/ver/4647/trunk/app/views/projects/settings/_modules.rhtml
 END
 _versions.rhtml
 K 25
--- a/app/views/projects/settings/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/settings/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/projects/settings
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T12:04:24.600306Z
-4371
+2011-01-06T20:57:17.003359Z
+4647
 jplang
 
 
@@ -168,11 +168,11 @@
 
 
 
-2010-09-23T14:37:44.651752Z
-2a5ae51933e3fabbecd609e3cfbf1d7d
-2010-01-21T18:21:56.082191Z
-3336
-edavis10
+2011-01-13T14:09:24.000000Z
+6dc73d6291a5471699054e6fbd33da8e
+2011-01-06T20:57:17.003359Z
+4647
+jplang
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-594
+599
 
 _versions.rhtml
 file
--- a/app/views/projects/settings/.svn/text-base/_modules.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/settings/.svn/text-base/_modules.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -7,7 +7,7 @@
 <legend><%= l(:text_select_project_modules) %></legend>
 
 <% Redmine::AccessControl.available_project_modules.each do |m| %>
-<p><label><%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) -%>
+<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m) -%>
  <%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
 <% end %>
 </fieldset>
--- a/app/views/projects/settings/_modules.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/projects/settings/_modules.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -7,7 +7,7 @@
 <legend><%= l(:text_select_project_modules) %></legend>
 
 <% Redmine::AccessControl.available_project_modules.each do |m| %>
-<p><label><%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) -%>
+<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m) -%>
  <%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
 <% end %>
 </fieldset>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/projects/show.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,18 @@
+api.project do
+  api.id          @project.id
+  api.name        @project.name
+  api.identifier  @project.identifier
+  api.description @project.description
+  api.homepage    @project.homepage
+  
+  render_api_custom_values @project.visible_custom_field_values, api
+  
+  api.created_on @project.created_on
+  api.updated_on @project.updated_on
+  
+  api.array :trackers do
+    @project.trackers.each do |tracker|
+      api.tracker(:id => tracker.id, :name => tracker.name)
+    end
+  end if include_in_api_response?('trackers')
+end
--- a/app/views/projects/show.xml.builder	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-xml.instruct!
-xml.project do
-  xml.id          @project.id
-  xml.name        @project.name
-  xml.identifier  @project.identifier
-  xml.description @project.description
-  xml.homepage    @project.homepage
-  
-  xml.custom_fields do
-    @project.visible_custom_field_values.each do |custom_value|
-      xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
-    end
-  end unless @project.custom_field_values.empty?
-  
-  xml.created_on @project.created_on
-  xml.updated_on @project.updated_on
-  
-  xml.trackers do
-    @project.trackers.each do |tracker|
-      xml.tracker(:id => tracker.id, :name => tracker.name)
-    end
-  end
-end
--- a/app/views/queries/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/queries/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/queries
 http://redmine.rubyforge.org/svn
 
--- a/app/views/reports/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/reports/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/reports
 http://redmine.rubyforge.org/svn
 
--- a/app/views/repositories/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/4100/trunk/app/views/repositories
+/svn/!svn/ver/4698/trunk/app/views/repositories
 END
 stats.rhtml
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/3216/trunk/app/views/repositories/revision.rhtml
+/svn/!svn/ver/4613/trunk/app/views/repositories/revision.rhtml
 END
 _navigation.rhtml
 K 25
@@ -31,13 +31,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/3309/trunk/app/views/repositories/_dir_list_content.rhtml
+/svn/!svn/ver/4613/trunk/app/views/repositories/_dir_list_content.rhtml
 END
 diff.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4100/trunk/app/views/repositories/diff.rhtml
+/svn/!svn/ver/4698/trunk/app/views/repositories/diff.rhtml
 END
 changes.rhtml
 K 25
@@ -55,7 +55,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/3585/trunk/app/views/repositories/annotate.rhtml
+/svn/!svn/ver/4613/trunk/app/views/repositories/annotate.rhtml
 END
 show.rhtml
 K 25
@@ -67,7 +67,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/3216/trunk/app/views/repositories/_revisions.rhtml
+/svn/!svn/ver/4613/trunk/app/views/repositories/_revisions.rhtml
 END
 revisions.rhtml
 K 25
--- a/app/views/repositories/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/repositories
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-18T16:50:08.696338Z
-4100
-jbbarth
+2011-01-11T16:04:07.541291Z
+4698
+tmaruyama
 
 
 
@@ -66,11 +66,11 @@
 
 
 
-2010-09-24T11:56:52.963971Z
-bd525284ca2c21084be84d21823b552a
-2009-12-22T23:23:54.920563Z
-3216
-edavis10
+2011-01-13T14:09:24.000000Z
+8599ffd3e73ccf24e2c81c6e0a20c906
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -92,7 +92,7 @@
 
 
 
-1953
+1931
 
 stats.rhtml
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-09-24T11:56:52.940032Z
-6aa753bae9bc68aad5b77b2114b10a32
-2010-01-13T17:27:37.119848Z
-3309
-edavis10
+2011-01-13T14:09:24.000000Z
+e22fd8ddf680ee0773ea1da9b5ed9518
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-1724
+1715
 
 _dir_list.rhtml
 file
@@ -270,11 +270,11 @@
 
 
 
-2010-09-24T12:48:28.351870Z
-c13f0d8b3dc374fad7b308711950dc4d
-2010-09-18T16:50:08.696338Z
-4100
-jbbarth
+2011-01-13T14:09:24.000000Z
+76c0335206cfde112a6416937072848b
+2011-01-11T16:04:07.541291Z
+4698
+tmaruyama
 has-props
 
 
@@ -296,7 +296,7 @@
 
 
 
-991
+944
 
 annotate.rhtml
 file
@@ -304,11 +304,11 @@
 
 
 
-2010-09-24T11:56:52.959974Z
-0c8eb649e97f4f9335fb916ac76146f3
-2010-03-14T13:22:50.317701Z
-3585
-jplang
+2011-01-13T14:09:24.000000Z
+d3aaac2a6c4b7c77b844324970afff64
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -330,7 +330,7 @@
 
 
 
-1420
+1333
 
 _revisions.rhtml
 file
@@ -338,11 +338,11 @@
 
 
 
-2010-09-24T11:56:52.952009Z
-e7a6bdebdc02cae051102093180af71e
-2009-12-22T23:23:54.920563Z
-3216
-edavis10
+2011-01-13T14:09:24.000000Z
+61a2e63b2e36b7d622d95745cc864583
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -364,7 +364,7 @@
 
 
 
-1346
+1341
 
 show.rhtml
 file
--- a/app/views/repositories/.svn/text-base/_dir_list_content.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/text-base/_dir_list_content.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 </td>
 <td class="size"><%= (entry.size ? number_to_human_size(entry.size) : "?") unless entry.is_dir? %></td>
 <% changeset = @project.repository.changesets.find_by_revision(entry.lastrev.identifier) if entry.lastrev && entry.lastrev.identifier %>
-<td class="revision"><%= link_to_revision(changeset.revision, @project) if changeset %></td>
+<td class="revision"><%= link_to_revision(changeset, @project) if changeset %></td>
 <td class="age"><%= distance_of_time_in_words(entry.lastrev.time, Time.now) if entry.lastrev && entry.lastrev.time %></td>
 <td class="author"><%= changeset.nil? ? h(entry.lastrev.author.to_s.split('<').first) : changeset.author if entry.lastrev %></td>
 <td class="comments"><%=h truncate(changeset.comments, :length => 50) unless changeset.nil? %></td>
--- a/app/views/repositories/.svn/text-base/_revisions.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/text-base/_revisions.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -13,9 +13,9 @@
 <% line_num = 1 %>
 <% revisions.each do |changeset| %>
 <tr class="changeset <%= cycle 'odd', 'even' %>">
-<td class="id"><%= link_to_revision(changeset.revision, project) %></td>
-<td class="checkbox"><%= radio_button_tag('rev', changeset.revision, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
-<td class="checkbox"><%= radio_button_tag('rev_to', changeset.revision, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
+<td class="id"><%= link_to_revision(changeset, project) %></td>
+<td class="checkbox"><%= radio_button_tag('rev', changeset.identifier, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
+<td class="checkbox"><%= radio_button_tag('rev_to', changeset.identifier, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
 <td class="committed_on"><%= format_time(changeset.committed_on) %></td>
 <td class="author"><%=h changeset.author %></td>
 <td class="comments"><%= textilizable(truncate_at_line_break(changeset.comments)) %></td>
--- a/app/views/repositories/.svn/text-base/annotate.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/text-base/annotate.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -19,7 +19,7 @@
     <tr class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %>">
       <th class="line-num" id="L<%= line_num %>"><a href="#L<%= line_num %>"><%= line_num %></a></th>
       <td class="revision">
-      <%= (revision.identifier ? link_to(format_revision(revision.identifier), :action => 'revision', :id => @project, :rev => revision.identifier) : format_revision(revision.revision)) if revision %></td>
+      <%= (revision.identifier ? link_to_revision(revision, @project) : format_revision(revision)) if revision %></td>
       <td class="author"><%= h(revision.author.to_s.split('<').first) if revision %></td>
       <td class="line-code"><pre><%= line %></pre></td>
     </tr>
--- a/app/views/repositories/.svn/text-base/diff.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/text-base/diff.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-<h2><%= l(:label_revision) %> <%= format_revision(@rev_to) + ':' if @rev_to %><%= format_revision(@rev) %> <%=h @path %></h2>
+<h2><%= l(:label_revision) %> <%= @diff_format_revisions %> <%=h @path %></h2>
 
 <!-- Choose view type -->
 <% form_tag({:path => to_path_param(@path)}, :method => 'get') do %>
--- a/app/views/repositories/.svn/text-base/revision.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/.svn/text-base/revision.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,25 +1,25 @@
 <div class="contextual">
   &#171;
   <% unless @changeset.previous.nil? -%>
-    <%= link_to_revision(@changeset.previous.revision, @project, :text => l(:label_previous)) %>
+    <%= link_to_revision(@changeset.previous, @project, :text => l(:label_previous)) %>
   <% else -%>
     <%= l(:label_previous) %>
   <% end -%>
 |
   <% unless @changeset.next.nil? -%>
-    <%= link_to_revision(@changeset.next.revision, @project, :text => l(:label_next)) %>
+    <%= link_to_revision(@changeset.next, @project, :text => l(:label_next)) %>
   <% else -%>
     <%= l(:label_next) %>
   <% end -%>
   &#187;&nbsp;
 
   <% form_tag({:controller => 'repositories', :action => 'revision', :id => @project, :rev => nil}, :method => :get) do %>
-    <%= text_field_tag 'rev', @rev[0,8], :size => 8 %>
+    <%= text_field_tag 'rev', @rev, :size => 8 %>
     <%= submit_tag 'OK', :name => nil %>
   <% end %>
 </div>
 
-<h2><%= l(:label_revision) %> <%= format_revision(@changeset.revision) %></h2>
+<h2><%= l(:label_revision) %> <%= format_revision(@changeset) %></h2>
 
 <p><% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
 <span class="author"><%= authoring(@changeset.committed_on, @changeset.author) %></span></p>
@@ -45,7 +45,7 @@
 <li class="change change-D"><%= l(:label_deleted) %></li>
 </ul>
 
-<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.revision) if @changeset.changes.any? %></p>
+<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.identifier) if @changeset.changes.any? %></p>
 
 <div class="changeset-changes">
 <%= render_changeset_changes %>
@@ -56,4 +56,4 @@
 <%= stylesheet_link_tag "scm" %>
 <% end %>
 
-<% html_title("#{l(:label_revision)} #{@changeset.revision}") -%>
+<% html_title("#{l(:label_revision)} #{format_revision(@changeset)}") -%>
--- a/app/views/repositories/_dir_list_content.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/_dir_list_content.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 </td>
 <td class="size"><%= (entry.size ? number_to_human_size(entry.size) : "?") unless entry.is_dir? %></td>
 <% changeset = @project.repository.changesets.find_by_revision(entry.lastrev.identifier) if entry.lastrev && entry.lastrev.identifier %>
-<td class="revision"><%= link_to_revision(changeset.revision, @project) if changeset %></td>
+<td class="revision"><%= link_to_revision(changeset, @project) if changeset %></td>
 <td class="age"><%= distance_of_time_in_words(entry.lastrev.time, Time.now) if entry.lastrev && entry.lastrev.time %></td>
 <td class="author"><%= changeset.nil? ? h(entry.lastrev.author.to_s.split('<').first) : changeset.author if entry.lastrev %></td>
 <td class="comments"><%=h truncate(changeset.comments, :length => 50) unless changeset.nil? %></td>
--- a/app/views/repositories/_revisions.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/_revisions.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -13,9 +13,9 @@
 <% line_num = 1 %>
 <% revisions.each do |changeset| %>
 <tr class="changeset <%= cycle 'odd', 'even' %>">
-<td class="id"><%= link_to_revision(changeset.revision, project) %></td>
-<td class="checkbox"><%= radio_button_tag('rev', changeset.revision, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
-<td class="checkbox"><%= radio_button_tag('rev_to', changeset.revision, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
+<td class="id"><%= link_to_revision(changeset, project) %></td>
+<td class="checkbox"><%= radio_button_tag('rev', changeset.identifier, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
+<td class="checkbox"><%= radio_button_tag('rev_to', changeset.identifier, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
 <td class="committed_on"><%= format_time(changeset.committed_on) %></td>
 <td class="author"><%=h changeset.author %></td>
 <td class="comments"><%= textilizable(truncate_at_line_break(changeset.comments)) %></td>
--- a/app/views/repositories/annotate.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/annotate.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -19,7 +19,7 @@
     <tr class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %>">
       <th class="line-num" id="L<%= line_num %>"><a href="#L<%= line_num %>"><%= line_num %></a></th>
       <td class="revision">
-      <%= (revision.identifier ? link_to(format_revision(revision.identifier), :action => 'revision', :id => @project, :rev => revision.identifier) : format_revision(revision.revision)) if revision %></td>
+      <%= (revision.identifier ? link_to_revision(revision, @project) : format_revision(revision)) if revision %></td>
       <td class="author"><%= h(revision.author.to_s.split('<').first) if revision %></td>
       <td class="line-code"><pre><%= line %></pre></td>
     </tr>
--- a/app/views/repositories/diff.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/diff.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-<h2><%= l(:label_revision) %> <%= format_revision(@rev_to) + ':' if @rev_to %><%= format_revision(@rev) %> <%=h @path %></h2>
+<h2><%= l(:label_revision) %> <%= @diff_format_revisions %> <%=h @path %></h2>
 
 <!-- Choose view type -->
 <% form_tag({:path => to_path_param(@path)}, :method => 'get') do %>
--- a/app/views/repositories/revision.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/repositories/revision.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,25 +1,25 @@
 <div class="contextual">
   &#171;
   <% unless @changeset.previous.nil? -%>
-    <%= link_to_revision(@changeset.previous.revision, @project, :text => l(:label_previous)) %>
+    <%= link_to_revision(@changeset.previous, @project, :text => l(:label_previous)) %>
   <% else -%>
     <%= l(:label_previous) %>
   <% end -%>
 |
   <% unless @changeset.next.nil? -%>
-    <%= link_to_revision(@changeset.next.revision, @project, :text => l(:label_next)) %>
+    <%= link_to_revision(@changeset.next, @project, :text => l(:label_next)) %>
   <% else -%>
     <%= l(:label_next) %>
   <% end -%>
   &#187;&nbsp;
 
   <% form_tag({:controller => 'repositories', :action => 'revision', :id => @project, :rev => nil}, :method => :get) do %>
-    <%= text_field_tag 'rev', @rev[0,8], :size => 8 %>
+    <%= text_field_tag 'rev', @rev, :size => 8 %>
     <%= submit_tag 'OK', :name => nil %>
   <% end %>
 </div>
 
-<h2><%= l(:label_revision) %> <%= format_revision(@changeset.revision) %></h2>
+<h2><%= l(:label_revision) %> <%= format_revision(@changeset) %></h2>
 
 <p><% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
 <span class="author"><%= authoring(@changeset.committed_on, @changeset.author) %></span></p>
@@ -45,7 +45,7 @@
 <li class="change change-D"><%= l(:label_deleted) %></li>
 </ul>
 
-<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.revision) if @changeset.changes.any? %></p>
+<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.identifier) if @changeset.changes.any? %></p>
 
 <div class="changeset-changes">
 <%= render_changeset_changes %>
@@ -56,4 +56,4 @@
 <%= stylesheet_link_tag "scm" %>
 <% end %>
 
-<% html_title("#{l(:label_revision)} #{@changeset.revision}") -%>
+<% html_title("#{l(:label_revision)} #{format_revision(@changeset)}") -%>
--- a/app/views/roles/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/roles/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/roles
 http://redmine.rubyforge.org/svn
 
--- a/app/views/search/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/search/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/search
 http://redmine.rubyforge.org/svn
 
--- a/app/views/settings/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,19 +1,19 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/4362/trunk/app/views/settings
+/svn/!svn/ver/4513/trunk/app/views/settings
 END
 _issues.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/3198/trunk/app/views/settings/_issues.rhtml
+/svn/!svn/ver/4513/trunk/app/views/settings/_issues.rhtml
 END
 _general.rhtml
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/3372/trunk/app/views/settings/_general.rhtml
+/svn/!svn/ver/4426/trunk/app/views/settings/_general.rhtml
 END
 _authentication.rhtml
 K 25
@@ -49,7 +49,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/3440/trunk/app/views/settings/_repositories.rhtml
+/svn/!svn/ver/4470/trunk/app/views/settings/_repositories.rhtml
 END
 _notifications.rhtml
 K 25
--- a/app/views/settings/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/settings
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-02T19:00:36.834304Z
-4362
-edavis10
+2010-12-15T21:18:06.237327Z
+4513
+jplang
 
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-09-23T14:37:44.683778Z
-cafaf758de88dd8df50aeb849e398b77
-2009-12-19T20:07:09.039389Z
-3198
+2011-01-13T14:09:10.000000Z
+dad877e4db2f583979314edcb017bb1b
+2010-12-15T21:18:06.237327Z
+4513
 jplang
 has-props
 
@@ -58,7 +58,7 @@
 
 
 
-722
+787
 
 _general.rhtml
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-09-23T14:37:44.683778Z
-c0378ca172ae32638c076f39dd11e980
-2010-02-06T10:40:21.867545Z
-3372
-jplang
+2011-01-13T14:09:10.000000Z
+7307d5f65399ab2f28eac1162a330678
+2010-11-25T20:27:44.648840Z
+4426
+winterheart
 has-props
 
 
@@ -92,7 +92,7 @@
 
 
 
-1354
+1446
 
 _authentication.rhtml
 file
@@ -270,11 +270,11 @@
 
 
 
-2010-09-23T14:37:44.687777Z
-25dd64f95ba856913a30a41296c7de0a
-2010-02-16T22:41:59.625572Z
-3440
-edavis10
+2011-01-13T14:09:10.000000Z
+da15c28695cd56ff6539df1d45159797
+2010-12-05T11:45:09.061840Z
+4470
+jplang
 has-props
 
 
@@ -296,7 +296,7 @@
 
 
 
-1837
+2303
 
 _notifications.rhtml
 file
--- a/app/views/settings/.svn/text-base/_general.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/.svn/text-base/_general.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -6,7 +6,7 @@
 <p><%= setting_text_area :welcome_text, :cols => 60, :rows => 5, :class => 'wiki-edit' %></p>
 <%= wikitoolbar_for 'settings_welcome_text' %>
 
-<p><%= setting_text_field :attachment_max_size, :size => 6 %> KB</p>
+<p><%= setting_text_field :attachment_max_size, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
 
 <p><%= setting_text_field :per_page_options, :size => 20 %><br />
 <em><%= l(:text_comma_separated) %></em></p>
@@ -26,7 +26,7 @@
 
 <p><%= setting_text_field :feeds_limit, :size => 6 %></p>
 
-<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> KB</p>
+<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
 
 <p><%= setting_text_field :diff_max_lines_displayed, :size => 6 %></p>
 
--- a/app/views/settings/.svn/text-base/_issues.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/.svn/text-base/_issues.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -8,6 +8,8 @@
 <p><%= setting_select :issue_done_ratio, Issue::DONE_RATIO_OPTIONS.collect {|i| [l("setting_issue_done_ratio_#{i}"), i]} %></p>
 
 <p><%= setting_text_field :issues_export_limit, :size => 6 %></p>
+
+<p><%= setting_text_field :gantt_items_limit, :size => 6 %></p>
 </div>
 
 <fieldset class="box settings"><legend><%= l(:setting_issue_list_default_columns) %></legend>
--- a/app/views/settings/.svn/text-base/_repositories.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/.svn/text-base/_repositories.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -31,6 +31,13 @@
 &nbsp;<%= l(:label_applied_status) %>: <%= setting_select :commit_fix_status_id, [["", 0]] + IssueStatus.find(:all).collect{|status| [status.name, status.id.to_s]}, :label => false %>
 &nbsp;<%= l(:field_done_ratio) %>: <%= setting_select :commit_fix_done_ratio, (0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] }, :blank => :label_no_change_option, :label => false %>
 <br /><em><%= l(:text_comma_separated) %></em></p>
+
+<p><%= setting_check_box :commit_logtime_enabled,
+         :onclick => "if (this.checked) { Form.Element.enable('settings_commit_logtime_activity_id'); } else { Form.Element.disable('settings_commit_logtime_activity_id'); }"%></p>
+
+<p><%= setting_select :commit_logtime_activity_id, 
+         [[l(:label_default), 0]] + TimeEntryActivity.shared.all.collect{|activity| [activity.name, activity.id.to_s]},
+         :disabled => !Setting.commit_logtime_enabled?%></p>
 </fieldset>
 
 <%= submit_tag l(:button_save) %>
--- a/app/views/settings/_general.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/_general.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -6,7 +6,7 @@
 <p><%= setting_text_area :welcome_text, :cols => 60, :rows => 5, :class => 'wiki-edit' %></p>
 <%= wikitoolbar_for 'settings_welcome_text' %>
 
-<p><%= setting_text_field :attachment_max_size, :size => 6 %> KB</p>
+<p><%= setting_text_field :attachment_max_size, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
 
 <p><%= setting_text_field :per_page_options, :size => 20 %><br />
 <em><%= l(:text_comma_separated) %></em></p>
@@ -26,7 +26,7 @@
 
 <p><%= setting_text_field :feeds_limit, :size => 6 %></p>
 
-<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> KB</p>
+<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
 
 <p><%= setting_text_field :diff_max_lines_displayed, :size => 6 %></p>
 
--- a/app/views/settings/_issues.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/_issues.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -8,6 +8,8 @@
 <p><%= setting_select :issue_done_ratio, Issue::DONE_RATIO_OPTIONS.collect {|i| [l("setting_issue_done_ratio_#{i}"), i]} %></p>
 
 <p><%= setting_text_field :issues_export_limit, :size => 6 %></p>
+
+<p><%= setting_text_field :gantt_items_limit, :size => 6 %></p>
 </div>
 
 <fieldset class="box settings"><legend><%= l(:setting_issue_list_default_columns) %></legend>
--- a/app/views/settings/_repositories.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/settings/_repositories.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -31,6 +31,13 @@
 &nbsp;<%= l(:label_applied_status) %>: <%= setting_select :commit_fix_status_id, [["", 0]] + IssueStatus.find(:all).collect{|status| [status.name, status.id.to_s]}, :label => false %>
 &nbsp;<%= l(:field_done_ratio) %>: <%= setting_select :commit_fix_done_ratio, (0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] }, :blank => :label_no_change_option, :label => false %>
 <br /><em><%= l(:text_comma_separated) %></em></p>
+
+<p><%= setting_check_box :commit_logtime_enabled,
+         :onclick => "if (this.checked) { Form.Element.enable('settings_commit_logtime_activity_id'); } else { Form.Element.disable('settings_commit_logtime_activity_id'); }"%></p>
+
+<p><%= setting_select :commit_logtime_activity_id, 
+         [[l(:label_default), 0]] + TimeEntryActivity.shared.all.collect{|activity| [activity.name, activity.id.to_s]},
+         :disabled => !Setting.commit_logtime_enabled?%></p>
 </fieldset>
 
 <%= submit_tag l(:button_save) %>
--- a/app/views/time_entry_reports/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/time_entry_reports/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/time_entry_reports
 http://redmine.rubyforge.org/svn
 
--- a/app/views/timelog/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/timelog/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 42
-/svn/!svn/ver/4250/trunk/app/views/timelog
+/svn/!svn/ver/4466/trunk/app/views/timelog
 END
 _list.rhtml
 K 25
@@ -15,6 +15,12 @@
 V 57
 /svn/!svn/ver/4239/trunk/app/views/timelog/index.html.erb
 END
+index.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/4466/trunk/app/views/timelog/index.api.rsb
+END
 edit.rhtml
 K 25
 svn:wc:ra_dav:version-url
@@ -27,3 +33,9 @@
 V 60
 /svn/!svn/ver/4235/trunk/app/views/timelog/_date_range.rhtml
 END
+show.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/4466/trunk/app/views/timelog/show.api.rsb
+END
--- a/app/views/timelog/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/timelog/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/timelog
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-12T15:55:21.984670Z
-4250
-edavis10
+2010-12-04T17:43:39.823144Z
+4466
+jplang
 
 
 
@@ -94,6 +94,40 @@
 
 1421
 
+index.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:16.000000Z
+9faa66f4b89685010b3683f26c387512
+2010-12-04T17:43:39.823144Z
+4466
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+727
+
 edit.rhtml
 file
 
@@ -162,3 +196,37 @@
 
 1736
 
+show.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:16.000000Z
+5838cace900e781466a5826ba75b9f44
+2010-12-04T17:43:39.823144Z
+4466
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+627
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/.svn/prop-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/.svn/prop-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/.svn/text-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,16 @@
+api.array :time_entries do
+  @entries.each do |time_entry|
+    api.time_entry do
+      api.id time_entry.id
+      api.project(:id => time_entry.project_id, :name => time_entry.project.name) unless time_entry.project.nil?
+      api.issue(:id => time_entry.issue_id) unless time_entry.issue.nil?
+      api.user(:id => time_entry.user_id, :name => time_entry.user.name) unless time_entry.user.nil?
+      api.activity(:id => time_entry.activity_id, :name => time_entry.activity.name) unless time_entry.activity.nil?
+      api.hours time_entry.hours
+      api.comments time_entry.comments
+      api.spent_on time_entry.spent_on
+      api.created_on time_entry.created_on
+      api.updated_on time_entry.updated_on
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/.svn/text-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,12 @@
+api.time_entry do
+  api.id @time_entry.id
+  api.project(:id => @time_entry.project_id, :name => @time_entry.project.name) unless @time_entry.project.nil?
+  api.issue(:id => @time_entry.issue_id) unless @time_entry.issue.nil?
+  api.user(:id => @time_entry.user_id, :name => @time_entry.user.name) unless @time_entry.user.nil?
+  api.activity(:id => @time_entry.activity_id, :name => @time_entry.activity.name) unless @time_entry.activity.nil?
+  api.hours @time_entry.hours
+  api.comments @time_entry.comments
+  api.spent_on @time_entry.spent_on
+  api.created_on @time_entry.created_on
+  api.updated_on @time_entry.updated_on
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/index.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,16 @@
+api.array :time_entries do
+  @entries.each do |time_entry|
+    api.time_entry do
+      api.id time_entry.id
+      api.project(:id => time_entry.project_id, :name => time_entry.project.name) unless time_entry.project.nil?
+      api.issue(:id => time_entry.issue_id) unless time_entry.issue.nil?
+      api.user(:id => time_entry.user_id, :name => time_entry.user.name) unless time_entry.user.nil?
+      api.activity(:id => time_entry.activity_id, :name => time_entry.activity.name) unless time_entry.activity.nil?
+      api.hours time_entry.hours
+      api.comments time_entry.comments
+      api.spent_on time_entry.spent_on
+      api.created_on time_entry.created_on
+      api.updated_on time_entry.updated_on
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/timelog/show.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,12 @@
+api.time_entry do
+  api.id @time_entry.id
+  api.project(:id => @time_entry.project_id, :name => @time_entry.project.name) unless @time_entry.project.nil?
+  api.issue(:id => @time_entry.issue_id) unless @time_entry.issue.nil?
+  api.user(:id => @time_entry.user_id, :name => @time_entry.user.name) unless @time_entry.user.nil?
+  api.activity(:id => @time_entry.activity_id, :name => @time_entry.activity.name) unless @time_entry.activity.nil?
+  api.hours @time_entry.hours
+  api.comments @time_entry.comments
+  api.spent_on @time_entry.spent_on
+  api.created_on @time_entry.created_on
+  api.updated_on @time_entry.updated_on
+end
--- a/app/views/trackers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/trackers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/trackers
 http://redmine.rubyforge.org/svn
 
--- a/app/views/users/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 40
-/svn/!svn/ver/4382/trunk/app/views/users
+/svn/!svn/ver/4508/trunk/app/views/users
 END
 _general.rhtml
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3924/trunk/app/views/users/_memberships.rhtml
+/svn/!svn/ver/4508/trunk/app/views/users/_memberships.rhtml
 END
 _groups.rhtml
 K 25
@@ -31,7 +31,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/4223/trunk/app/views/users/_mail_notifications.html.erb
+/svn/!svn/ver/4497/trunk/app/views/users/_mail_notifications.html.erb
+END
+index.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4489/trunk/app/views/users/index.api.rsb
 END
 show.rhtml
 K 25
@@ -43,7 +49,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/4223/trunk/app/views/users/_form.rhtml
+/svn/!svn/ver/4493/trunk/app/views/users/_form.rhtml
 END
 edit.rhtml
 K 25
@@ -63,3 +69,9 @@
 V 52
 /svn/!svn/ver/4231/trunk/app/views/users/index.rhtml
 END
+show.api.rsb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4486/trunk/app/views/users/show.api.rsb
+END
--- a/app/views/users/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/users
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T14:15:01.891476Z
-4382
-jplang
+2010-12-12T21:21:57.860671Z
+4508
+jbbarth
 
 
 
@@ -66,10 +66,10 @@
 
 
 
-2010-09-23T14:37:44.699769Z
-f5982959a0afd1bb9e499afe303de33d
-2010-08-08T07:07:20.961363Z
-3924
+2011-01-13T14:09:24.000000Z
+82d8afa73a30d32a1df6dbf0a6ec9ccc
+2010-12-12T21:21:57.860671Z
+4508
 jbbarth
 has-props
 
@@ -92,7 +92,7 @@
 
 
 
-2948
+2950
 
 _groups.rhtml
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-11-19T13:04:49.388892Z
-9617ce493c6f68e4a861de49a13fc0b1
-2010-09-28T22:13:06.534232Z
-4223
-edavis10
+2011-01-13T14:09:24.000000Z
+e6086313266e733c482de5431e85f7a1
+2010-12-12T14:25:23.262992Z
+4497
+jplang
 
 
 
@@ -194,7 +194,41 @@
 
 
 
-872
+836
+
+index.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:24.000000Z
+2232eeac9e0dea5001f5c7dbd9156a79
+2010-12-11T13:13:49.013705Z
+4489
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+468
 
 show.rhtml
 file
@@ -236,11 +270,11 @@
 
 
 
-2010-11-19T13:04:49.388892Z
-ac91549a6b11efcad3478c0c17248508
-2010-09-28T22:13:06.534232Z
-4223
-edavis10
+2011-01-13T14:09:24.000000Z
+35c46993d584ac75dd129b95ac411a10
+2010-12-12T13:39:55.171678Z
+4493
+jplang
 has-props
 
 
@@ -262,7 +296,7 @@
 
 
 
-1820
+1644
 
 edit.rhtml
 file
@@ -366,3 +400,37 @@
 
 2152
 
+show.api.rsb
+file
+
+
+
+
+2011-01-13T14:09:24.000000Z
+5af24df58230f005be3a6814c6f53e33
+2010-12-11T10:19:11.273304Z
+4486
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+811
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/.svn/prop-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/.svn/prop-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/app/views/users/.svn/text-base/_form.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/.svn/text-base/_form.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -25,11 +25,9 @@
 <p><%= f.select :auth_source_id, ([[l(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }), {}, :onchange => "if (this.value=='') {Element.show('password_fields');} else {Element.hide('password_fields');}" %></p>
 <% end %>
 <div id="password_fields" style="<%= 'display:none;' if @user.auth_source %>">
-<p><label for="password"><%=l(:field_password)%><span class="required"> *</span></label>
-<%= password_field_tag 'password', nil, :size => 25  %><br />
+<p><%= f.password_field :password, :required => true, :size => 25  %><br />
 <em><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p>
-<p><label for="password_confirmation"><%=l(:field_password_confirmation)%><span class="required"> *</span></label>
-<%= password_field_tag 'password_confirmation', nil, :size => 25  %></p>
+<p><%= f.password_field :password_confirmation, :required => true, :size => 25  %></p>
 </div>
 </div>
 
--- a/app/views/users/.svn/text-base/_mail_notifications.html.erb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/.svn/text-base/_mail_notifications.html.erb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,8 +1,8 @@
 <p>
-<%= select_tag 'notification_option', options_for_select(@notification_options.collect {|o| [l(o.last), o.first]}, @notification_option.to_sym),
-                                      :onchange => 'if ($("notification_option").value == "selected") {Element.show("notified-projects")} else {Element.hide("notified-projects")}' %>
+<%= select_tag 'user[mail_notification]', options_for_select(user_mail_notification_options(@user), @user.mail_notification),
+                                      :onchange => 'if (this.value == "selected") {Element.show("notified-projects")} else {Element.hide("notified-projects")}' %>
 </p>
-<% content_tag 'div', :id => 'notified-projects', :style => (@notification_option == 'selected' ? '' : 'display:none;') do %>
+<% content_tag 'div', :id => 'notified-projects', :style => (@user.mail_notification == 'selected' ? '' : 'display:none;') do %>
 <p><% @user.projects.each do |project| %>
     <label><%= check_box_tag 'notified_project_ids[]', project.id, @user.notified_projects_ids.include?(project.id) %> <%=h project.name %></label><br />
 <% end %></p>
--- a/app/views/users/.svn/text-base/_memberships.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/.svn/text-base/_memberships.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -38,8 +38,8 @@
   </td>
       <%= call_hook(:view_users_memberships_table_row, :user => @user, :membership => membership, :roles => roles, :projects => projects )%>
 	</tr>
+  <% end; reset_cycle %>
 	</tbody>
-<% end; reset_cycle %>
 </table>
 <% else %>
 <p class="nodata"><%= l(:label_no_data) %></p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/.svn/text-base/index.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,15 @@
+api.array :users, api_meta(:total_count => @user_count, :offset => @offset, :limit => @limit) do
+  @users.each do |user|
+    api.user do
+      api.id         user.id
+      api.login      user.login
+      api.firstname  user.firstname
+      api.lastname   user.lastname
+      api.mail       user.mail
+      api.created_on user.created_on
+      api.last_login_on user.last_login_on
+
+      render_api_custom_values user.visible_custom_field_values, api
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/.svn/text-base/show.api.rsb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,24 @@
+api.user do
+  api.id         @user.id
+  api.login      @user.login if User.current.admin?
+  api.firstname  @user.firstname
+  api.lastname   @user.lastname
+  api.mail       @user.mail if User.current.admin? || !@user.pref.hide_mail
+  api.created_on @user.created_on
+  api.last_login_on @user.last_login_on
+  
+  render_api_custom_values @user.visible_custom_field_values, api
+  
+  api.array :memberships do
+    @memberships.each do |membership|
+      api.membership do
+        api.project :id => membership.project.id, :name => membership.project.name
+        api.array :roles do
+          membership.roles.each do |role|
+            api.role :id => role.id, :name => role.name
+          end
+        end
+      end if membership.project
+    end
+  end if include_in_api_response?('memberships') && @memberships
+end
--- a/app/views/users/_form.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/_form.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -25,11 +25,9 @@
 <p><%= f.select :auth_source_id, ([[l(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }), {}, :onchange => "if (this.value=='') {Element.show('password_fields');} else {Element.hide('password_fields');}" %></p>
 <% end %>
 <div id="password_fields" style="<%= 'display:none;' if @user.auth_source %>">
-<p><label for="password"><%=l(:field_password)%><span class="required"> *</span></label>
-<%= password_field_tag 'password', nil, :size => 25  %><br />
+<p><%= f.password_field :password, :required => true, :size => 25  %><br />
 <em><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p>
-<p><label for="password_confirmation"><%=l(:field_password_confirmation)%><span class="required"> *</span></label>
-<%= password_field_tag 'password_confirmation', nil, :size => 25  %></p>
+<p><%= f.password_field :password_confirmation, :required => true, :size => 25  %></p>
 </div>
 </div>
 
--- a/app/views/users/_mail_notifications.html.erb	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/_mail_notifications.html.erb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,8 +1,8 @@
 <p>
-<%= select_tag 'notification_option', options_for_select(@notification_options.collect {|o| [l(o.last), o.first]}, @notification_option.to_sym),
-                                      :onchange => 'if ($("notification_option").value == "selected") {Element.show("notified-projects")} else {Element.hide("notified-projects")}' %>
+<%= select_tag 'user[mail_notification]', options_for_select(user_mail_notification_options(@user), @user.mail_notification),
+                                      :onchange => 'if (this.value == "selected") {Element.show("notified-projects")} else {Element.hide("notified-projects")}' %>
 </p>
-<% content_tag 'div', :id => 'notified-projects', :style => (@notification_option == 'selected' ? '' : 'display:none;') do %>
+<% content_tag 'div', :id => 'notified-projects', :style => (@user.mail_notification == 'selected' ? '' : 'display:none;') do %>
 <p><% @user.projects.each do |project| %>
     <label><%= check_box_tag 'notified_project_ids[]', project.id, @user.notified_projects_ids.include?(project.id) %> <%=h project.name %></label><br />
 <% end %></p>
--- a/app/views/users/_memberships.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/users/_memberships.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -38,8 +38,8 @@
   </td>
       <%= call_hook(:view_users_memberships_table_row, :user => @user, :membership => membership, :roles => roles, :projects => projects )%>
 	</tr>
+  <% end; reset_cycle %>
 	</tbody>
-<% end; reset_cycle %>
 </table>
 <% else %>
 <p class="nodata"><%= l(:label_no_data) %></p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/index.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,15 @@
+api.array :users, api_meta(:total_count => @user_count, :offset => @offset, :limit => @limit) do
+  @users.each do |user|
+    api.user do
+      api.id         user.id
+      api.login      user.login
+      api.firstname  user.firstname
+      api.lastname   user.lastname
+      api.mail       user.mail
+      api.created_on user.created_on
+      api.last_login_on user.last_login_on
+
+      render_api_custom_values user.visible_custom_field_values, api
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/users/show.api.rsb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,24 @@
+api.user do
+  api.id         @user.id
+  api.login      @user.login if User.current.admin?
+  api.firstname  @user.firstname
+  api.lastname   @user.lastname
+  api.mail       @user.mail if User.current.admin? || !@user.pref.hide_mail
+  api.created_on @user.created_on
+  api.last_login_on @user.last_login_on
+  
+  render_api_custom_values @user.visible_custom_field_values, api
+  
+  api.array :memberships do
+    @memberships.each do |membership|
+      api.membership do
+        api.project :id => membership.project.id, :name => membership.project.name
+        api.array :roles do
+          membership.roles.each do |role|
+            api.role :id => role.id, :name => role.name
+          end
+        end
+      end if membership.project
+    end
+  end if include_in_api_response?('memberships') && @memberships
+end
--- a/app/views/versions/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/versions/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/versions
 http://redmine.rubyforge.org/svn
 
--- a/app/views/watchers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/watchers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/watchers
 http://redmine.rubyforge.org/svn
 
--- a/app/views/welcome/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/welcome/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/welcome
 http://redmine.rubyforge.org/svn
 
--- a/app/views/wiki/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/4375/trunk/app/views/wiki
+/svn/!svn/ver/4651/trunk/app/views/wiki
 END
 export_multiple.rhtml
 K 25
@@ -31,7 +31,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/4303/trunk/app/views/wiki/history.rhtml
+/svn/!svn/ver/4651/trunk/app/views/wiki/history.rhtml
 END
 edit.rhtml
 K 25
@@ -55,7 +55,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4296/trunk/app/views/wiki/diff.rhtml
+/svn/!svn/ver/4551/trunk/app/views/wiki/diff.rhtml
 END
 _content.rhtml
 K 25
--- a/app/views/wiki/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/wiki
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T14:30:32.528294Z
-4375
+2011-01-06T21:24:32.739169Z
+4651
 jplang
 
 
@@ -168,11 +168,11 @@
 
 
 
-2010-11-19T13:04:50.812967Z
-d489789686b9d26149c0583f775ba238
-2010-10-28T21:25:38.778234Z
-4303
-edavis10
+2011-01-13T14:09:29.000000Z
+a4820ed36a470c301cd1f3c5d1d32993
+2011-01-06T21:24:32.739169Z
+4651
+jplang
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-1582
+1656
 
 edit.rhtml
 file
@@ -304,11 +304,11 @@
 
 
 
-2010-11-19T13:04:50.812967Z
-0379bb47f37911b04eb8391f397ac4ec
-2010-10-27T16:27:06.240747Z
-4296
-edavis10
+2011-01-13T14:09:29.000000Z
+da40592a7819a8786e7e436b2ecff8b1
+2010-12-20T22:33:44.015948Z
+4551
+jplang
 has-props
 
 
@@ -330,7 +330,7 @@
 
 
 
-819
+879
 
 _content.rhtml
 file
--- a/app/views/wiki/.svn/text-base/diff.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/.svn/text-base/diff.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -5,10 +5,10 @@
 <h2><%= @page.pretty_title %></h2>
 
 <p>
-<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :version => @diff.content_from.version %>
+<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_from.version %>
 <em>(<%= @diff.content_from.author ? @diff.content_from.author.name : "anonyme" %>, <%= format_time(@diff.content_from.updated_on) %>)</em>
 &#8594;
-<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :version => @diff.content_to.version %>/<%= @page.content.version %>
+<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_to.version %>/<%= @page.content.version %>
 <em>(<%= @diff.content_to.author ? @diff.content_to.author.name : "anonyme" %>, <%= format_time(@diff.content_to.updated_on) %>)</em>
 </p>
 
--- a/app/views/wiki/.svn/text-base/history.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/.svn/text-base/history.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -4,7 +4,7 @@
 
 <% form_tag({:action => "diff"}, :method => :get) do %>
   <%= hidden_field_tag('project_id', h(@project.to_param)) %>
-<table class="list">
+<table class="list wiki-page-versions">
 <thead><tr>
     <th>#</th>
     <th></th>
@@ -18,14 +18,14 @@
 <% show_diff = @versions.size > 1 %>
 <% line_num = 1 %>
 <% @versions.each do |ver| %>
-<tr class="<%= cycle("odd", "even") %>">
+<tr class="wiki-page-version <%= cycle("odd", "even") %>">
     <td class="id"><%= link_to ver.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => ver.version %></td>
     <td class="checkbox"><%= radio_button_tag('version', ver.version, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < @versions.size) %></td>
     <td class="checkbox"><%= radio_button_tag('version_from', ver.version, (line_num==2), :id => "cbto-#{line_num}") if show_diff && (line_num > 1) %></td>
-    <td align="center"><%= format_time(ver.updated_on) %></td>
-    <td><%= link_to_user ver.author %></td>
-    <td><%=h ver.comments %></td>
-    <td align="center"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
+    <td class="updated_on"><%= format_time(ver.updated_on) %></td>
+    <td class="author"><%= link_to_user ver.author %></td>
+    <td class="comments"><%=h ver.comments %></td>
+    <td class="buttons"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
 </tr>
 <% line_num += 1 %>
 <% end %>
--- a/app/views/wiki/diff.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/diff.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -5,10 +5,10 @@
 <h2><%= @page.pretty_title %></h2>
 
 <p>
-<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :version => @diff.content_from.version %>
+<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_from.version %>
 <em>(<%= @diff.content_from.author ? @diff.content_from.author.name : "anonyme" %>, <%= format_time(@diff.content_from.updated_on) %>)</em>
 &#8594;
-<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :version => @diff.content_to.version %>/<%= @page.content.version %>
+<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_to.version %>/<%= @page.content.version %>
 <em>(<%= @diff.content_to.author ? @diff.content_to.author.name : "anonyme" %>, <%= format_time(@diff.content_to.updated_on) %>)</em>
 </p>
 
--- a/app/views/wiki/history.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wiki/history.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -4,7 +4,7 @@
 
 <% form_tag({:action => "diff"}, :method => :get) do %>
   <%= hidden_field_tag('project_id', h(@project.to_param)) %>
-<table class="list">
+<table class="list wiki-page-versions">
 <thead><tr>
     <th>#</th>
     <th></th>
@@ -18,14 +18,14 @@
 <% show_diff = @versions.size > 1 %>
 <% line_num = 1 %>
 <% @versions.each do |ver| %>
-<tr class="<%= cycle("odd", "even") %>">
+<tr class="wiki-page-version <%= cycle("odd", "even") %>">
     <td class="id"><%= link_to ver.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => ver.version %></td>
     <td class="checkbox"><%= radio_button_tag('version', ver.version, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < @versions.size) %></td>
     <td class="checkbox"><%= radio_button_tag('version_from', ver.version, (line_num==2), :id => "cbto-#{line_num}") if show_diff && (line_num > 1) %></td>
-    <td align="center"><%= format_time(ver.updated_on) %></td>
-    <td><%= link_to_user ver.author %></td>
-    <td><%=h ver.comments %></td>
-    <td align="center"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
+    <td class="updated_on"><%= format_time(ver.updated_on) %></td>
+    <td class="author"><%= link_to_user ver.author %></td>
+    <td class="comments"><%=h ver.comments %></td>
+    <td class="buttons"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
 </tr>
 <% line_num += 1 %>
 <% end %>
--- a/app/views/wikis/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/wikis/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/wikis
 http://redmine.rubyforge.org/svn
 
--- a/app/views/workflows/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/workflows/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/3694/trunk/app/views/workflows
+/svn/!svn/ver/4428/trunk/app/views/workflows
 END
 copy.rhtml
 K 25
@@ -25,5 +25,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/3154/trunk/app/views/workflows/index.rhtml
+/svn/!svn/ver/4428/trunk/app/views/workflows/index.rhtml
 END
--- a/app/views/workflows/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/workflows/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/app/views/workflows
 http://redmine.rubyforge.org/svn
 
 
 
-2010-04-27T17:54:27.767853Z
-3694
+2010-11-27T09:54:16.602477Z
+4428
 jplang
 
 
@@ -134,10 +134,10 @@
 
 
 
-2010-09-23T14:37:44.727733Z
-6c10e101a2f8ac7a61b6355d3ec7e959
-2009-12-12T10:06:07.860865Z
-3154
+2011-01-13T14:09:10.000000Z
+40709e258d1a829cf73046d8e1b5d7f3
+2010-11-27T09:54:16.602477Z
+4428
 jplang
 has-props
 
@@ -160,5 +160,5 @@
 
 
 
-819
+851
 
--- a/app/views/workflows/.svn/text-base/index.rhtml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/workflows/.svn/text-base/index.rhtml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -5,6 +5,7 @@
 <% if @workflow_counts.empty? %>
 <p class="nodata"><%= l(:label_no_data) %></p>
 <% else %>
+<div class="autoscroll">
 <table class="list">
 <thead>
     <tr>
@@ -30,4 +31,5 @@
 <% end -%>
 </tbody>
 </table>
+</div>
 <% end %>
--- a/app/views/workflows/index.rhtml	Fri Nov 19 14:05:24 2010 +0000
+++ b/app/views/workflows/index.rhtml	Thu Jan 13 14:12:06 2011 +0000
@@ -5,6 +5,7 @@
 <% if @workflow_counts.empty? %>
 <p class="nodata"><%= l(:label_no_data) %></p>
 <% else %>
+<div class="autoscroll">
 <table class="list">
 <thead>
     <tr>
@@ -30,4 +31,5 @@
 <% end -%>
 </tbody>
 </table>
+</div>
 <% end %>
--- a/config/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 31
-/svn/!svn/ver/4405/trunk/config
+/svn/!svn/ver/4701/trunk/config
 END
 settings.yml
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4362/trunk/config/settings.yml
+/svn/!svn/ver/4513/trunk/config/settings.yml
 END
 email.yml.example
 K 25
@@ -25,7 +25,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/2887/trunk/config/boot.rb
+/svn/!svn/ver/4516/trunk/config/boot.rb
 END
 environment.rb
 K 25
--- a/config/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/config
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T15:14:19.280754Z
-4405
+2011-01-11T20:35:50.950842Z
+4701
 jplang
 has-props
 
@@ -32,11 +32,11 @@
 
 
 
-2010-11-19T13:04:51.216928Z
-974e583c59b4497382d2aa08f2b2ff01
-2010-11-02T19:00:36.834304Z
-4362
-edavis10
+2011-01-13T14:09:38.000000Z
+0f6fe2db3317d8b40af42a6d534da87e
+2010-12-15T21:18:06.237327Z
+4513
+jplang
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-4106
+4246
 
 email.yml.example
 file
@@ -137,11 +137,11 @@
 
 
 
-2010-09-23T14:37:44.731779Z
-cfce6ac16974777a93c14be034b2fdec
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:38.000000Z
+2969e2a7b5ab1b2a014b5f0c94bac872
+2010-12-17T08:34:29.830642Z
+4516
+jplang
 has-props
 
 
@@ -163,7 +163,7 @@
 
 
 
-2795
+3203
 
 initializers
 dir
--- a/config/.svn/text-base/boot.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/.svn/text-base/boot.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -106,5 +106,17 @@
   end
 end
 
+# TODO: Workaround for #7013 to be removed for 1.2.0
+# Loads i18n 0.4.2 before Rails loads any more recent gem
+# 0.5.0 is not compatible with the old interpolation syntax
+# Plugins will have to migrate to the new syntax for 1.2.0
+require 'rubygems'
+begin
+  gem 'i18n', '0.4.2'
+rescue Gem::LoadError => load_error
+  $stderr.puts %(Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`)
+  exit 1
+end
+
 # All that for this:
 Rails.boot!
--- a/config/.svn/text-base/settings.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/.svn/text-base/settings.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -66,6 +66,9 @@
 feeds_limit:
   format: int
   default: 15
+gantt_items_limit:
+  format: int
+  default: 500
 # Maximum size of files that can be displayed
 # inline through the file viewer (in KB)
 file_max_size_displayed:
@@ -98,6 +101,11 @@
   default: 0
 commit_fix_done_ratio:
   default: 100
+commit_logtime_enabled:
+  default: 0
+commit_logtime_activity_id:
+  format: int
+  default: 0
 # autologin duration in days
 # 0 means autologin is disabled 
 autologin:
--- a/config/boot.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/boot.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -106,5 +106,17 @@
   end
 end
 
+# TODO: Workaround for #7013 to be removed for 1.2.0
+# Loads i18n 0.4.2 before Rails loads any more recent gem
+# 0.5.0 is not compatible with the old interpolation syntax
+# Plugins will have to migrate to the new syntax for 1.2.0
+require 'rubygems'
+begin
+  gem 'i18n', '0.4.2'
+rescue Gem::LoadError => load_error
+  $stderr.puts %(Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`)
+  exit 1
+end
+
 # All that for this:
 Rails.boot!
--- a/config/environments/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/environments/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/config/environments
 http://redmine.rubyforge.org/svn
 
--- a/config/initializers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4389/trunk/config/initializers
+/svn/!svn/ver/4679/trunk/config/initializers
 END
 inflections.rb
 K 25
@@ -13,13 +13,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/2493/trunk/config/initializers/30-redmine.rb
+/svn/!svn/ver/4679/trunk/config/initializers/30-redmine.rb
 END
 10-patches.rb
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4389/trunk/config/initializers/10-patches.rb
+/svn/!svn/ver/4516/trunk/config/initializers/10-patches.rb
 END
 backtrace_silencers.rb
 K 25
--- a/config/initializers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/config/initializers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-09T19:44:37.907646Z
-4389
+2011-01-10T18:25:12.105765Z
+4679
 jplang
 has-props
 
@@ -66,10 +66,10 @@
 
 
 
-2010-09-23T14:37:44.743734Z
-ceff5e8f4ea4a2540c9303dcdf936aed
-2009-02-21T11:04:50.579477Z
-2493
+2011-01-13T14:09:38.000000Z
+45627c8ad9bafcee93e6ce01b92b57d1
+2011-01-10T18:25:12.105765Z
+4679
 jplang
 has-props
 
@@ -92,7 +92,7 @@
 
 
 
-46
+168
 
 10-patches.rb
 file
@@ -100,10 +100,10 @@
 
 
 
-2010-11-19T13:04:51.204890Z
-82c05bf7e87e057a6a3dd5d74a56ee7c
-2010-11-09T19:44:37.907646Z
-4389
+2011-01-13T14:09:38.000000Z
+e83154f604f9f3b0307e1b435f9cc95c
+2010-12-17T08:34:29.830642Z
+4516
 jplang
 has-props
 
@@ -126,7 +126,7 @@
 
 
 
-3061
+3149
 
 backtrace_silencers.rb
 file
--- a/config/initializers/.svn/text-base/10-patches.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/.svn/text-base/10-patches.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -86,9 +86,19 @@
     module Base
       def warn_syntax_deprecation!(*args)
         return if @skip_syntax_deprecation
-        warn "The {{key}} interpolation syntax in I18n messages is deprecated. Please use %{key} instead.\nDowngrade your i18n gem to 0.3.7 (everything above must be deinstalled) to remove this warning, see http://www.redmine.org/issues/5608 for more information."
+        warn "The {{key}} interpolation syntax in I18n messages is deprecated and will be removed in Redmine 1.2. Please use %{key} instead, see http://www.redmine.org/issues/7013 for more information."
         @skip_syntax_deprecation = true
       end
     end
   end
 end
+
+module ActionController
+  module MimeResponds
+    class Responder
+      def api(&block)
+        any(:xml, :json, &block)
+      end
+    end
+  end
+end
--- a/config/initializers/.svn/text-base/30-redmine.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/.svn/text-base/30-redmine.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,3 +1,5 @@
 I18n.default_locale = 'en'
+# Adds fallback to default locale for untranslated strings
+I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
 
 require 'redmine'
--- a/config/initializers/10-patches.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/10-patches.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -86,9 +86,19 @@
     module Base
       def warn_syntax_deprecation!(*args)
         return if @skip_syntax_deprecation
-        warn "The {{key}} interpolation syntax in I18n messages is deprecated. Please use %{key} instead.\nDowngrade your i18n gem to 0.3.7 (everything above must be deinstalled) to remove this warning, see http://www.redmine.org/issues/5608 for more information."
+        warn "The {{key}} interpolation syntax in I18n messages is deprecated and will be removed in Redmine 1.2. Please use %{key} instead, see http://www.redmine.org/issues/7013 for more information."
         @skip_syntax_deprecation = true
       end
     end
   end
 end
+
+module ActionController
+  module MimeResponds
+    class Responder
+      def api(&block)
+        any(:xml, :json, &block)
+      end
+    end
+  end
+end
--- a/config/initializers/30-redmine.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/initializers/30-redmine.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,3 +1,5 @@
 I18n.default_locale = 'en'
+# Adds fallback to default locale for untranslated strings
+I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
 
 require 'redmine'
--- a/config/locales/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,263 +1,263 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/4384/trunk/config/locales
+/svn/!svn/ver/4701/trunk/config/locales
 END
 lt.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/lt.yml
+/svn/!svn/ver/4554/trunk/config/locales/lt.yml
 END
 sr-YU.yml
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4384/trunk/config/locales/sr-YU.yml
+/svn/!svn/ver/4554/trunk/config/locales/sr-YU.yml
 END
 ro.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/ro.yml
+/svn/!svn/ver/4554/trunk/config/locales/ro.yml
 END
 lv.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/lv.yml
+/svn/!svn/ver/4554/trunk/config/locales/lv.yml
 END
 zh.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/zh.yml
+/svn/!svn/ver/4554/trunk/config/locales/zh.yml
 END
 pt.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/pt.yml
+/svn/!svn/ver/4554/trunk/config/locales/pt.yml
 END
 ca.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/ca.yml
+/svn/!svn/ver/4554/trunk/config/locales/ca.yml
 END
 pt-BR.yml
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4384/trunk/config/locales/pt-BR.yml
+/svn/!svn/ver/4554/trunk/config/locales/pt-BR.yml
 END
 tr.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/tr.yml
+/svn/!svn/ver/4554/trunk/config/locales/tr.yml
 END
 ru.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/ru.yml
+/svn/!svn/ver/4554/trunk/config/locales/ru.yml
 END
 en-GB.yml
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4384/trunk/config/locales/en-GB.yml
+/svn/!svn/ver/4519/trunk/config/locales/en-GB.yml
 END
 id.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/id.yml
+/svn/!svn/ver/4554/trunk/config/locales/id.yml
 END
 el.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/el.yml
+/svn/!svn/ver/4554/trunk/config/locales/el.yml
 END
 en.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4382/trunk/config/locales/en.yml
+/svn/!svn/ver/4519/trunk/config/locales/en.yml
 END
 gl.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/gl.yml
+/svn/!svn/ver/4554/trunk/config/locales/gl.yml
 END
 cs.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/cs.yml
+/svn/!svn/ver/4554/trunk/config/locales/cs.yml
+END
+es.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4554/trunk/config/locales/es.yml
 END
 mk.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/mk.yml
+/svn/!svn/ver/4554/trunk/config/locales/mk.yml
 END
-es.yml
+zh-TW.yml
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/4593/trunk/config/locales/zh-TW.yml
+END
+eu.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/es.yml
+/svn/!svn/ver/4554/trunk/config/locales/eu.yml
 END
 ko.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/ko.yml
-END
-eu.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4384/trunk/config/locales/eu.yml
-END
-zh-TW.yml
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/4384/trunk/config/locales/zh-TW.yml
+/svn/!svn/ver/4554/trunk/config/locales/ko.yml
 END
 mn.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/mn.yml
+/svn/!svn/ver/4554/trunk/config/locales/mn.yml
 END
 it.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/it.yml
+/svn/!svn/ver/4657/trunk/config/locales/it.yml
 END
 sk.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/sk.yml
+/svn/!svn/ver/4554/trunk/config/locales/sk.yml
 END
 sl.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/sl.yml
+/svn/!svn/ver/4554/trunk/config/locales/sl.yml
 END
 uk.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/uk.yml
+/svn/!svn/ver/4554/trunk/config/locales/uk.yml
+END
+sr.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4554/trunk/config/locales/sr.yml
 END
 da.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/da.yml
+/svn/!svn/ver/4554/trunk/config/locales/da.yml
 END
-sr.yml
+sv.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/sr.yml
+/svn/!svn/ver/4518/trunk/config/locales/sv.yml
+END
+de.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4592/trunk/config/locales/de.yml
 END
 bg.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/bg.yml
-END
-de.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4384/trunk/config/locales/de.yml
-END
-sv.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4384/trunk/config/locales/sv.yml
+/svn/!svn/ver/4656/trunk/config/locales/bg.yml
 END
 ja.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/ja.yml
+/svn/!svn/ver/4594/trunk/config/locales/ja.yml
 END
 he.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/he.yml
+/svn/!svn/ver/4554/trunk/config/locales/he.yml
 END
 fi.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/fi.yml
+/svn/!svn/ver/4554/trunk/config/locales/fi.yml
 END
 bs.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/bs.yml
+/svn/!svn/ver/4554/trunk/config/locales/bs.yml
 END
 fr.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4382/trunk/config/locales/fr.yml
+/svn/!svn/ver/4556/trunk/config/locales/fr.yml
 END
 nl.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/nl.yml
+/svn/!svn/ver/4701/trunk/config/locales/nl.yml
 END
 hr.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/hr.yml
+/svn/!svn/ver/4554/trunk/config/locales/hr.yml
 END
 pl.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/pl.yml
+/svn/!svn/ver/4595/trunk/config/locales/pl.yml
 END
 th.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/th.yml
+/svn/!svn/ver/4554/trunk/config/locales/th.yml
 END
 no.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/no.yml
+/svn/!svn/ver/4554/trunk/config/locales/no.yml
 END
 hu.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/hu.yml
+/svn/!svn/ver/4554/trunk/config/locales/hu.yml
 END
 vi.yml
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4384/trunk/config/locales/vi.yml
+/svn/!svn/ver/4554/trunk/config/locales/vi.yml
 END
--- a/config/locales/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/config/locales
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-11T20:35:50.950842Z
+4701
 jplang
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-11-19T13:04:51.152964Z
-3c3e846c8a61fc0306fcac52e8a6db63
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+04a33a87317c990f209c9e0b23a94dfb
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -58,7 +58,7 @@
 
 
 
-43469
+43738
 
 sr-YU.yml
 file
@@ -66,10 +66,10 @@
 
 
 
-2010-11-19T13:04:51.152964Z
-4270faebfc0875178412531d9945e450
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+c066a5e1a32e5c7141a461819119ca09
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 
 
@@ -92,7 +92,7 @@
 
 
 
-40597
+42004
 
 ro.yml
 file
@@ -100,10 +100,10 @@
 
 
 
-2010-11-19T13:04:51.152964Z
-a34852b28eb42df6bf3d98b6e4cfe8dc
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+4127de9dda4a292a21188ddb864bdb22
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -126,7 +126,7 @@
 
 
 
-39642
+40126
 
 lv.yml
 file
@@ -134,10 +134,10 @@
 
 
 
-2010-11-19T13:04:51.152964Z
-77f6e9e4ebc4ece3ff5a79b62ee8a48b
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+0b93573ed1b6c4d16c566facc9c51ea3
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 
 
@@ -160,7 +160,7 @@
 
 
 
-40602
+42010
 
 zh.yml
 file
@@ -168,10 +168,10 @@
 
 
 
-2010-11-19T13:04:51.156936Z
-daf438594b071cc80e58e6704bbb8409
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+dabc9f1dd8c6fe2a6af4e19d03e9ed65
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -194,7 +194,7 @@
 
 
 
-37725
+38012
 
 pt.yml
 file
@@ -202,10 +202,10 @@
 
 
 
-2010-11-19T13:04:51.156936Z
-c9804b3b18de0884db4bb8d3305d0d59
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+4c86c4b56c721fac90f5939dd7f5a4ad
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -228,7 +228,7 @@
 
 
 
-41198
+41486
 
 ca.yml
 file
@@ -236,10 +236,10 @@
 
 
 
-2010-11-19T13:04:51.156936Z
-eec5aa8638e2792dd612c8938750d81e
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+ee91e7c266c44fdcaee547bf143ba5fe
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -262,7 +262,7 @@
 
 
 
-41462
+41935
 
 pt-BR.yml
 file
@@ -270,10 +270,10 @@
 
 
 
-2010-11-19T13:04:51.160924Z
-7fd270dbed421920ffba7910fec83c98
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+390265b3732a994f563d7137967e2278
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -296,7 +296,7 @@
 
 
 
-41080
+41370
 
 tr.yml
 file
@@ -304,10 +304,10 @@
 
 
 
-2010-11-19T13:04:51.160924Z
-6d497cb5cf2b3dc069bced1f7ab3e917
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+f36ff0ac378a574be6bb66ea4340bdfa
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -330,7 +330,7 @@
 
 
 
-39711
+40004
 
 ru.yml
 file
@@ -338,10 +338,10 @@
 
 
 
-2010-11-19T13:04:51.160924Z
-bf6486d652d78029c05e10c1bb49a93d
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+b19c21ea18bf2e9d14353dde9f48301b
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -364,7 +364,7 @@
 
 
 
-61533
+61833
 
 en-GB.yml
 file
@@ -372,10 +372,10 @@
 
 
 
-2010-11-19T13:04:51.160924Z
-b3c07f1bb7aa053e2314562eeff18c71
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+1c06a4a68ae568c890ae0c1b76477f22
+2010-12-17T09:14:54.583423Z
+4519
 jplang
 
 
@@ -398,7 +398,7 @@
 
 
 
-37977
+39390
 
 id.yml
 file
@@ -406,10 +406,10 @@
 
 
 
-2010-11-19T13:04:51.164928Z
-b21510420c8cfb4c3ca3d90982f50c86
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+cee65e2ec68fbd913b617131805cb378
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -432,7 +432,7 @@
 
 
 
-39277
+39746
 
 el.yml
 file
@@ -440,10 +440,10 @@
 
 
 
-2010-11-19T13:04:51.164928Z
-ec14094c510964ef65cab6198c26153e
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+762ca0186f8e7567f3038b8ea6f5bb5c
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -466,7 +466,7 @@
 
 
 
-54374
+54854
 
 en.yml
 file
@@ -474,10 +474,10 @@
 
 
 
-2010-11-19T13:04:51.164928Z
-dc0460b9c8f49b986b833f6a0e42d39a
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:38.000000Z
+9bf57c4bbbe21feffb9b80b1dd359dc0
+2010-12-17T09:14:54.583423Z
+4519
 jplang
 has-props
 
@@ -500,7 +500,7 @@
 
 
 
-38014
+38492
 
 gl.yml
 file
@@ -508,10 +508,10 @@
 
 
 
-2010-11-19T13:04:51.168928Z
-1fe7f6095d46fe8f8bc5b49d72e2443c
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+b3d6b890444008ad69a9b22d6ebbd8ae
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -534,7 +534,7 @@
 
 
 
-40309
+40604
 
 cs.yml
 file
@@ -542,10 +542,10 @@
 
 
 
-2010-11-19T13:04:51.168928Z
-13a9181b35a59a4f65ebcfcbbf3cdfd2
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+b5d7dae55451b82b6050007739026770
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -568,7 +568,41 @@
 
 
 
-40854
+41330
+
+es.yml
+file
+
+
+
+
+2011-01-13T14:09:38.000000Z
+2a2cc7f9b081a6c28f36452f0df75c3c
+2010-12-22T20:40:56.075532Z
+4554
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+43379
 
 mk.yml
 file
@@ -576,10 +610,10 @@
 
 
 
-2010-11-19T13:04:51.168928Z
-bf188cf4f7e8b821c0272a8f39e9e2de
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+8a4d25a273edbf55ec8118387a78e386
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 
 
@@ -602,18 +636,18 @@
 
 
 
-47710
+49123
 
-es.yml
+ko.yml
 file
 
 
 
 
-2010-11-19T13:04:51.168928Z
-b2c1421e14275dd03308e69e24869a89
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+3e5ad3b8bb49d5d19bbcd4c06d3f6a91
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -636,7 +670,41 @@
 
 
 
-43011
+44210
+
+eu.yml
+file
+
+
+
+
+2011-01-13T14:09:38.000000Z
+0272605dbb554b76e81e7d80f1ce376e
+2010-12-22T20:40:56.075532Z
+4554
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+42073
 
 zh-TW.yml
 file
@@ -644,10 +712,10 @@
 
 
 
-2010-11-19T13:04:51.168928Z
-a400517e4ac5ec29285455a34430d5c7
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+a40f011945cb425a77762a94d6fa4387
+2010-12-30T15:43:02.374736Z
+4593
 jplang
 has-props
 
@@ -670,75 +738,7 @@
 
 
 
-42011
-
-eu.yml
-file
-
-
-
-
-2010-11-19T13:04:51.172928Z
-8b0c7dfb3b2e99ffee4e65b1015d6091
-2010-11-07T14:18:13.240686Z
-4384
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-40663
-
-ko.yml
-file
-
-
-
-
-2010-11-19T13:04:51.172928Z
-436d7edeba50962c6fdb9faf6bdf3dce
-2010-11-07T14:18:13.240686Z
-4384
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-43751
+42317
 
 mn.yml
 file
@@ -746,10 +746,10 @@
 
 
 
-2010-11-19T13:04:51.172928Z
-d4363b3560295e0a69987fedb561d447
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+29ec44faa431f0307ebd9701359928ae
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 
 
@@ -772,7 +772,7 @@
 
 
 
-52377
+53787
 
 it.yml
 file
@@ -780,10 +780,10 @@
 
 
 
-2010-11-19T13:04:51.172928Z
-2a5286abf1ef2ef909cbcb254e229ebd
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+a0ea06ad26b6d7dfe722fa0560a8894d
+2011-01-08T10:03:34.099825Z
+4657
 jplang
 has-props
 
@@ -806,7 +806,7 @@
 
 
 
-40686
+41145
 
 sk.yml
 file
@@ -814,10 +814,10 @@
 
 
 
-2010-11-19T13:04:51.172928Z
-36ffd38b0ec52602e1671d36e0f6e9c5
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+0730abc697f821268506266b6c751713
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -840,7 +840,7 @@
 
 
 
-40919
+41396
 
 sl.yml
 file
@@ -848,10 +848,10 @@
 
 
 
-2010-11-19T13:04:51.176929Z
-fe0bcf8cf9643fa50fe3d21828434cf4
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+b089982aac098938ed2da68ca38cff41
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -874,7 +874,7 @@
 
 
 
-39097
+39572
 
 uk.yml
 file
@@ -882,10 +882,10 @@
 
 
 
-2010-11-19T13:04:51.176929Z
-db46f6a810e0dc67f1bac92a71b0948d
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+aeb872b59227da163151d3e953557196
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -908,7 +908,41 @@
 
 
 
-46669
+47150
+
+da.yml
+file
+
+
+
+
+2011-01-13T14:09:38.000000Z
+ca814f3069c69727b7a7c8e701386321
+2010-12-22T20:40:56.075532Z
+4554
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+39692
 
 sr.yml
 file
@@ -916,10 +950,10 @@
 
 
 
-2010-11-19T13:04:51.176929Z
-248adf243f4bb59ac110d11530753c7b
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+313da32a9af9ee91d2fa5d51d27bdc70
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -942,18 +976,18 @@
 
 
 
-53786
+54264
 
-da.yml
+bg.yml
 file
 
 
 
 
-2010-11-19T13:04:51.180928Z
-79fdefd9c5c9db00ee25aa63e771e626
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+3a0f9832952705d7f032bfe03f53b98a
+2011-01-08T10:01:09.575922Z
+4656
 jplang
 has-props
 
@@ -976,7 +1010,41 @@
 
 
 
-39199
+54054
+
+de.yml
+file
+
+
+
+
+2011-01-13T14:09:38.000000Z
+09443567159c66c54aaa5b19b3ab6e6a
+2010-12-30T15:38:41.284110Z
+4592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+42283
 
 sv.yml
 file
@@ -984,10 +1052,10 @@
 
 
 
-2010-11-19T13:04:51.180928Z
-41611818eaab75a3265b787b7b4cf575
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+3cd749fe11dfb32ca3a7f95ee9f27cb4
+2010-12-17T08:50:13.997413Z
+4518
 jplang
 has-props
 
@@ -1010,75 +1078,7 @@
 
 
 
-41581
-
-de.yml
-file
-
-
-
-
-2010-11-19T13:04:51.180928Z
-953288c28f8e952ddcc2db0bea13fe9a
-2010-11-07T14:18:13.240686Z
-4384
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-41776
-
-bg.yml
-file
-
-
-
-
-2010-11-19T13:04:51.180928Z
-47e98f0f9ee99de7fd6cf56ba3412107
-2010-11-07T14:18:13.240686Z
-4384
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-52771
+41841
 
 ja.yml
 file
@@ -1086,10 +1086,10 @@
 
 
 
-2010-11-19T13:04:51.184942Z
-180b2fd40dbb9ca6136d07d3886856ed
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+a5ff4810afb580a1bb2735638fde6bdf
+2010-12-30T15:44:02.412420Z
+4594
 jplang
 has-props
 
@@ -1112,7 +1112,7 @@
 
 
 
-45539
+45900
 
 he.yml
 file
@@ -1120,10 +1120,10 @@
 
 
 
-2010-11-19T13:04:51.184942Z
-c973a0f6b6038c4d94f59cb67a6362ef
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+ece84cb2ec7974a6de73e50e301822c8
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1146,7 +1146,7 @@
 
 
 
-44657
+45142
 
 fi.yml
 file
@@ -1154,10 +1154,10 @@
 
 
 
-2010-11-19T13:04:51.188959Z
-d34af39e6c4e4a51dc0e5294b2fa6ebf
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+ec72709b8e1f3730f778ecf48f8a477f
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1180,7 +1180,7 @@
 
 
 
-40365
+40650
 
 bs.yml
 file
@@ -1188,10 +1188,10 @@
 
 
 
-2010-11-19T13:04:51.188959Z
-3b1917239f864b8251f47ed4179bbeb9
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+868e34aff97e83b737f1583b26949127
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1214,7 +1214,7 @@
 
 
 
-40112
+40587
 
 fr.yml
 file
@@ -1222,10 +1222,10 @@
 
 
 
-2010-11-19T13:04:51.188959Z
-e5250df57dd3200252731533f635f3ff
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:38.000000Z
+0b230c169e20c69499ae374979741cf8
+2010-12-22T20:52:48.278304Z
+4556
 jplang
 has-props
 
@@ -1248,7 +1248,7 @@
 
 
 
-42247
+42604
 
 nl.yml
 file
@@ -1256,10 +1256,10 @@
 
 
 
-2010-11-19T13:04:51.192925Z
-5fc86161f1f72c9a027cb9083e79a18e
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+795dcdb14c3b4755c54be2b52b7b0df3
+2011-01-11T20:35:50.950842Z
+4701
 jplang
 has-props
 
@@ -1282,7 +1282,7 @@
 
 
 
-39665
+40142
 
 hr.yml
 file
@@ -1290,10 +1290,10 @@
 
 
 
-2010-11-19T13:04:51.192925Z
-ea3dd89af05481d2c32934831258791d
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+43b90dedeffa52a46acb911eaad02d3f
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1316,7 +1316,7 @@
 
 
 
-39778
+40250
 
 pl.yml
 file
@@ -1324,10 +1324,10 @@
 
 
 
-2010-11-19T13:04:51.192925Z
-262779f7ff6c420704d894caed2efb10
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+f44541d5733c0a3b474b64151f751080
+2010-12-30T15:49:08.314847Z
+4595
 jplang
 has-props
 
@@ -1350,7 +1350,7 @@
 
 
 
-42269
+42545
 
 th.yml
 file
@@ -1358,10 +1358,10 @@
 
 
 
-2010-11-19T13:04:51.196941Z
-e56c0107ce9b73575b17bacafb4a5a4e
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+52810a3efa019c1099e06641996a89b5
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1384,7 +1384,7 @@
 
 
 
-52528
+53010
 
 no.yml
 file
@@ -1392,10 +1392,10 @@
 
 
 
-2010-11-19T13:04:51.196941Z
-b2ada0f5e3c0bd1dd09da8a258928d94
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+7b92f62c72c56981439726858c94d19e
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1418,7 +1418,7 @@
 
 
 
-38166
+38453
 
 hu.yml
 file
@@ -1426,10 +1426,10 @@
 
 
 
-2010-11-19T13:04:51.196941Z
-5c4f617d0f309ca0dbd6429553dd0ced
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+992bb63025a60c01ea886ef5278e6f17
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1452,7 +1452,7 @@
 
 
 
-42678
+42977
 
 vi.yml
 file
@@ -1460,10 +1460,10 @@
 
 
 
-2010-11-19T13:04:51.196941Z
-85061e0562f86bb4aceeacab6dd6bb24
-2010-11-07T14:18:13.240686Z
-4384
+2011-01-13T14:09:38.000000Z
+8ec5b444728e6a8f70e5de5b5d43784a
+2010-12-22T20:40:56.075532Z
+4554
 jplang
 has-props
 
@@ -1486,5 +1486,5 @@
 
 
 
-43252
+43545
 
--- a/config/locales/.svn/text-base/bg.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/bg.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "по-малко от 1 Ñекунда"
-        other: "по-малко от {{count}} Ñекунди"
+        other: "по-малко от %{count} Ñекунди"
       x_seconds:
         one:   "1 Ñекунда"
-        other: "{{count}} Ñекунди"
+        other: "%{count} Ñекунди"
       less_than_x_minutes:
         one:   "по-малко от 1 минута"
-        other: "по-малко от {{count}} минути"
+        other: "по-малко от %{count} минути"
       x_minutes:
         one:   "1 минута"
-        other: "{{count}} минути"
+        other: "%{count} минути"
       about_x_hours:
         one:   "около 1 чаÑ"
-        other: "около {{count}} чаÑа"
+        other: "около %{count} чаÑа"
       x_days:
         one:   "1 ден"
-        other: "{{count}} дена"
+        other: "%{count} дена"
       about_x_months:
         one:   "около 1 меÑец"
-        other: "около {{count}} меÑеца"
+        other: "около %{count} меÑеца"
       x_months:
         one:   "1 меÑец"
-        other: "{{count}} меÑеца"
+        other: "%{count} меÑеца"
       about_x_years:
         one:   "около 1 година"
-        other: "около {{count}} години"
+        other: "около %{count} години"
       over_x_years:
         one:   "над 1 година"
-        other: "над {{count}} години"
+        other: "над %{count} години"
       almost_x_years:
         one:   "почти 1 година"
-        other: "почти {{count}} години"
+        other: "почти %{count} години"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "не ÑъщеÑтвува в ÑпиÑъка"
         exclusion: "е запазено"
@@ -106,11 +110,11 @@
         taken: "вече ÑъщеÑтвува"
         not_a_number: "не е чиÑло"
         not_a_date: "е невалидна дата"
-        greater_than: "трÑбва да бъде по-голÑм[a/о] от {{count}}"
-        greater_than_or_equal_to: "трÑбва да бъде по-голÑм[a/о] от или равен[a/o] на {{count}}"
-        equal_to: "трÑбва да бъде равен[a/o] на {{count}}"
-        less_than: "трÑбва да бъде по-малък[a/o] от {{count}}"
-        less_than_or_equal_to: "трÑбва да бъде по-малък[a/o] от или равен[a/o] на {{count}}"
+        greater_than: "трÑбва да бъде по-голÑм[a/о] от %{count}"
+        greater_than_or_equal_to: "трÑбва да бъде по-голÑм[a/о] от или равен[a/o] на %{count}"
+        equal_to: "трÑбва да бъде равен[a/o] на %{count}"
+        less_than: "трÑбва да бъде по-малък[a/o] от %{count}"
+        less_than_or_equal_to: "трÑбва да бъде по-малък[a/o] от или равен[a/o] на %{count}"
         odd: "трÑбва да бъде нечетен[a/o]"
         even: "трÑбва да бъде четен[a/o]"
         greater_than_start_date: "трÑбва да е Ñлед началната дата"
@@ -123,7 +127,7 @@
   general_text_Yes: 'Да'
   general_text_no: 'не'
   general_text_yes: 'да'
-  general_lang_name: 'Bulgarian'
+  general_lang_name: 'Bulgarian (БългарÑки)'
   general_csv_separator: ','
   general_csv_decimal_separator: '.'
   general_csv_encoding: UTF-8
@@ -146,20 +150,20 @@
   notice_file_not_found: ÐеÑъщеÑтвуваща или премеÑтена Ñтраница.
   notice_locking_conflict: Друг потребител Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñ‚ÐµÐ·Ð¸ данни в момента.
   notice_not_authorized: ÐÑмате право на доÑтъп до тази Ñтраница.
-  notice_email_sent: "Изпратен e-mail на {{value}}"
-  notice_email_error: "Грешка при изпращане на e-mail ({{value}})"
+  notice_email_sent: "Изпратен e-mail на %{value}"
+  notice_email_error: "Грешка при изпращане на e-mail (%{value})"
   notice_feeds_access_key_reseted: Ð’Ð°ÑˆÐ¸Ñ ÐºÐ»ÑŽÑ‡ за RSS доÑтъп беше променен.
   
   error_scm_not_found: ÐеÑъщеÑтвуващ обект в хранилището.
-  error_scm_command_failed: "Грешка при опит за ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ: {{value}}"
+  error_scm_command_failed: "Грешка при опит за ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ: %{value}"
   
-  mail_subject_lost_password: "Вашата парола ({{value}})"
+  mail_subject_lost_password: "Вашата парола (%{value})"
   mail_body_lost_password: 'За да Ñмените паролата Ñи, използвайте ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº:'
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° профил ({{value}})"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° профил (%{value})"
   mail_body_register: 'За да активирате профила Ñи използвайте ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº:'
   
   gui_validation_error: 1 грешка
-  gui_validation_error_plural: "{{count}} грешки"
+  gui_validation_error_plural: "%{count} грешки"
   
   field_name: Име
   field_description: ОпиÑание
@@ -270,7 +274,7 @@
   label_x_projects:
     zero:  0 проекти
     one:   1 проект
-    other: "{{count}} проекта"
+    other: "%{count} проекта"
   label_project_all: Ð’Ñички проекти
   label_project_latest: ПоÑледни проекти
   label_issue: Задача
@@ -321,7 +325,7 @@
   label_registered_on: РегиÑтрациÑ
   label_activity: ДейноÑÑ‚
   label_new: Ðов
-  label_logged_as: ВлÑзъл като
+  label_logged_as: Здравейте,
   label_environment: Среда
   label_authentication: ОторизациÑ
   label_auth_source: Ðачин на оторозациÑ
@@ -337,8 +341,8 @@
   label_text: Дълъг текÑÑ‚
   label_attribute: Ðтрибут
   label_attribute_plural: Ðтрибути
-  label_download: "{{count}} изтеглÑне"
-  label_download_plural: "{{count}} изтеглÑниÑ"
+  label_download: "%{count} изтеглÑне"
+  label_download_plural: "%{count} изтеглÑниÑ"
   label_no_data: ÐÑма изходни данни
   label_change_status: ПромÑна на ÑÑŠÑтоÑнието
   label_history: ИÑториÑ
@@ -367,17 +371,17 @@
   label_closed_issues: затворена
   label_closed_issues_plural: затворени
   label_x_open_issues_abbr_on_total:
-    zero:  0 отворени / {{total}}
-    one:   1 отворена / {{total}}
-    other: "{{count}} отворени / {{total}}"
+    zero:  0 отворени / %{total}
+    one:   1 отворена / %{total}
+    other: "%{count} отворени / %{total}"
   label_x_open_issues_abbr:
     zero:  0 отворени
     one:   1 отворена
-    other: "{{count}} отворени"
+    other: "%{count} отворени"
   label_x_closed_issues_abbr:
     zero:  0 затворени
     one:   1 затворена
-    other: "{{count}} затворени"
+    other: "%{count} затворени"
   label_total: Общо
   label_permissions: Права
   label_current_status: Текущо ÑÑŠÑтоÑние
@@ -394,7 +398,7 @@
   label_months_from: меÑеца от
   label_gantt: Мрежов график
   label_internal: Вътрешен
-  label_last_changes: "поÑледни {{count}} промени"
+  label_last_changes: "поÑледни %{count} промени"
   label_change_view_all: Виж вÑички промени
   label_personalize_page: ПерÑонализиране
   label_comment: Коментар
@@ -402,7 +406,7 @@
   label_x_comments:
     zero: 0 коментари
     one: 1 коментар
-    other: "{{count}} коментари"
+    other: "%{count} коментари"
   label_comment_add: ДобавÑне на коментар
   label_comment_added: Добавен коментар
   label_comment_delete: Изтриване на коментари
@@ -426,8 +430,8 @@
   label_day_plural: дни
   label_repository: Хранилище
   label_browse: Разглеждане
-  label_modification: "{{count}} промÑна"
-  label_modification_plural: "{{count}} промени"
+  label_modification: "%{count} промÑна"
+  label_modification_plural: "%{count} промени"
   label_revision: РевизиÑ
   label_revision_plural: Ревизии
   label_added: добавено
@@ -442,8 +446,8 @@
   label_sort_lower: ПремеÑти по-долу
   label_sort_lowest: ПремеÑти най-долу
   label_roadmap: Пътна карта
-  label_roadmap_due_in: "Излиза Ñлед {{value}}"
-  label_roadmap_overdue: "{{value}} закъÑнение"
+  label_roadmap_due_in: "Излиза Ñлед %{value}"
+  label_roadmap_overdue: "%{value} закъÑнение"
   label_roadmap_no_issues: ÐÑма задачи за тази верÑиÑ
   label_search: ТърÑене
   label_result_plural: Pезултати
@@ -461,8 +465,8 @@
   label_changes_details: Подробни промени
   label_issue_tracking: Тракинг
   label_spent_time: Отделено време
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑа"
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑа"
   label_time_tracking: ОтделÑне на време
   label_change_plural: Промени
   label_statistics: СтатиÑтики
@@ -509,12 +513,12 @@
   label_date_from: От
   label_date_to: До
   label_language_based: Ð’ завиÑимоÑÑ‚ от езика
-  label_sort_by: "Сортиране по {{value}}"
+  label_sort_by: "Сортиране по %{value}"
   label_send_test_email: Изпращане на теÑтов e-mail
-  label_feeds_access_key_created_on: "{{value}} от Ñъздаването на RSS ключа"
+  label_feeds_access_key_created_on: "%{value} от Ñъздаването на RSS ключа"
   label_module_plural: Модули
-  label_added_time_by: "Публикувана от {{author}} преди {{age}}"
-  label_updated_time: "Обновена преди {{value}}"
+  label_added_time_by: "Публикувана от %{author} преди %{age}"
+  label_updated_time: "Обновена преди %{value}"
   label_jump_to_a_project: Проект...
   
   button_login: Вход
@@ -564,16 +568,16 @@
   text_tip_task_end_day: задача завършваща този ден
   text_tip_task_begin_end_day: задача започваща и завършваща този ден
   text_project_identifier_info: 'Позволени Ñа малки букви (a-z), цифри и тирета.<br />Ðевъзможна промÑна Ñлед запиÑ.'
-  text_caracters_maximum: "До {{count}} Ñимвола."
-  text_length_between: "От {{min}} до {{max}} Ñимвола."
+  text_caracters_maximum: "До %{count} Ñимвола."
+  text_length_between: "От %{min} до %{max} Ñимвола."
   text_tracker_no_workflow: ÐÑма дефиниран работен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° този тракер
   text_unallowed_characters: Ðепозволени Ñимволи
   text_comma_separated: Позволено е изброÑване (Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ» запетаÑ).
   text_issues_ref_in_commit_messages: ОтбелÑзване и приключване на задачи от ревизии
-  text_issue_added: "Публикувана е нова задача Ñ Ð½Ð¾Ð¼ÐµÑ€ {{id}} (от {{author}})."
-  text_issue_updated: "Задача {{id}} е обновена (от {{author}})."
+  text_issue_added: "Публикувана е нова задача Ñ Ð½Ð¾Ð¼ÐµÑ€ %{id} (от %{author})."
+  text_issue_updated: "Задача %{id} е обновена (от %{author})."
   text_wiki_destroy_confirmation: Сигурни ли Ñте, че иÑкате да изтриете това Wiki и цÑлото му Ñъдържание?
-  text_issue_category_destroy_question: "Има задачи ({{count}}) обвързани Ñ Ñ‚Ð°Ð·Ð¸ категориÑ. Какво ще изберете?"
+  text_issue_category_destroy_question: "Има задачи (%{count}) обвързани Ñ Ñ‚Ð°Ð·Ð¸ категориÑ. Какво ще изберете?"
   text_issue_category_destroy_assignments: Премахване на връзките Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñта
   text_issue_category_reassign_to: Преобвързване Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ
   
@@ -611,7 +615,7 @@
   notice_no_issue_selected: "ÐÑма избрани задачи."
   label_bulk_edit_selected_issues: Редактиране на задачи
   label_no_change_option: (Без промÑна)
-  notice_failed_to_save_issues: "ÐеуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° {{count}} задачи от {{total}} избрани: {{ids}}."
+  notice_failed_to_save_issues: "ÐеуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° %{count} задачи от %{total} избрани: %{ids}."
   label_theme: Тема
   label_default: По подразбиране
   label_search_titles_only: Само в заглавиÑта
@@ -624,37 +628,37 @@
   setting_emails_footer: ПодтекÑÑ‚ за e-mail
   label_float: Дробно
   button_copy: Копиране
-  mail_body_account_information_external: "Можете да използвате Ð²Ð°ÑˆÐ¸Ñ {{value}} профил за вход."
+  mail_body_account_information_external: "Можете да използвате Ð²Ð°ÑˆÐ¸Ñ %{value} профил за вход."
   mail_body_account_information: ИнформациÑта за профила ви
   setting_protocol: Протокол
   label_user_mail_no_self_notified: "Ðе иÑкам извеÑÑ‚Ð¸Ñ Ð·Ð° извършени от мен промени"
   setting_time_format: Формат на чаÑа
   label_registration_activation_by_email: активиране на профила по email
-  mail_subject_account_activation_request: "ЗаÑвка за активиране на профил в {{value}}"
-  mail_body_account_activation_request: "Има новорегиÑтриран потребител ({{value}}), очакващ вашето одобрение:"
+  mail_subject_account_activation_request: "ЗаÑвка за активиране на профил в %{value}"
+  mail_body_account_activation_request: "Има новорегиÑтриран потребител (%{value}), очакващ вашето одобрение:"
   label_registration_automatic_activation: автоматично активиране
   label_registration_manual_activation: ръчно активиране
   notice_account_pending: "Профилът Ви е Ñъздаден и очаква одобрение от админиÑтратор."
   field_time_zone: ЧаÑова зона
-  text_caracters_minimum: "Минимум {{count}} Ñимвола."
+  text_caracters_minimum: "Минимум %{count} Ñимвола."
   setting_bcc_recipients: Получатели на Ñкрито копие (bcc)
   button_annotate: ÐнотациÑ
-  label_issues_by: "Задачи по {{value}}"
+  label_issues_by: "Задачи по %{value}"
   field_searchable: С възможноÑÑ‚ за търÑене
-  label_display_per_page: "Ðа Ñтраница по: {{value}}"
+  label_display_per_page: "Ðа Ñтраница по: %{value}"
   setting_per_page_options: Опции за Ñтраниране
   label_age: ВъзраÑÑ‚
   notice_default_data_loaded: Примерната информациÑта е уÑпешно заредена.
   text_load_default_configuration: Зареждане на примерна информациÑ
   text_no_configuration_data: "Ð’Ñе още не Ñа конфигурирани Роли, тракери, ÑÑŠÑтоÑÐ½Ð¸Ñ Ð½Ð° задачи и работен процеÑ.\nСтрого Ñе препоръчва зареждането на примерната информациÑ. Веднъж заредена ще имате възможноÑÑ‚ да Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ñ‚Ðµ."
-  error_can_t_load_default_data: "Грешка при зареждане на примерната информациÑ: {{value}}"
+  error_can_t_load_default_data: "Грешка при зареждане на примерната информациÑ: %{value}"
   button_update: ОбновÑване
   label_change_properties: ПромÑна на наÑтройки
   label_general: ОÑновни
   label_repository_plural: Хранилища
   label_associated_revisions: ÐÑоциирани ревизии
   setting_user_format: ПотребителÑки формат
-  text_status_changed_by_changeset: "Приложено Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}."
+  text_status_changed_by_changeset: "Приложено Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}."
   label_more: Още
   text_issues_destroy_confirmation: 'Сигурни ли Ñте, че иÑкате да изтриете избраните задачи?'
   label_scm: SCM (СиÑтема за контрол на кода)
@@ -681,7 +685,7 @@
   label_ldap_authentication: LDAP оторизациÑ
   label_downloads_abbr: D/L
   label_this_month: Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¼ÐµÑец
-  label_last_n_days: "поÑледните {{count}} дни"
+  label_last_n_days: "поÑледните %{count} дни"
   label_all_time: вÑички
   label_this_year: текущата година
   label_date_range: Период
@@ -690,7 +694,7 @@
   label_last_month: поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼ÐµÑец
   label_add_another_file: ДобавÑне на друг файл
   label_optional_description: Ðезадължително опиÑание
-  text_destroy_time_entries_question: "{{hours}} чаÑа Ñа отделени на задачите, които иÑкате да изтриете. Какво избирате?"
+  text_destroy_time_entries_question: "%{hours} чаÑа Ñа отделени на задачите, които иÑкате да изтриете. Какво избирате?"
   error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
   text_assign_time_entries_to_project: ПрехвърлÑне на отделеното време към проект
   text_destroy_time_entries: Изтриване на отделеното време
@@ -705,15 +709,15 @@
   setting_default_projects_public: Ðовите проекти Ñа публични по подразбиране
   error_scm_annotate: "Обектът не ÑъщеÑтвува или не може да бъде анотиран."
   label_planning: Планиране
-  text_subprojects_destroy_warning: "Ðеговите подпроекти: {{value}} Ñъщо ще бъдат изтрити."
-  label_and_its_subprojects: "{{value}} и неговите подпроекти"
-  mail_body_reminder: "{{count}} задачи, назначени на Ð²Ð°Ñ Ñа Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок в Ñледващите {{days}} дни:"
-  mail_subject_reminder: "{{count}} задачи Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок Ñ Ñледващите {{days}} дни"
-  text_user_wrote: "{{value}} напиÑа:"
+  text_subprojects_destroy_warning: "Ðеговите подпроекти: %{value} Ñъщо ще бъдат изтрити."
+  label_and_its_subprojects: "%{value} и неговите подпроекти"
+  mail_body_reminder: "%{count} задачи, назначени на Ð²Ð°Ñ Ñа Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок в Ñледващите %{days} дни:"
+  mail_subject_reminder: "%{count} задачи Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок Ñ Ñледващите %{days} дни"
+  text_user_wrote: "%{value} напиÑа:"
   label_duplicated_by: дублирана от
   setting_enabled_scm: Разрешена SCM
   text_enumeration_category_reassign_to: 'ПреÑвържете ги към тази ÑтойноÑÑ‚:'
-  text_enumeration_destroy_question: "{{count}} обекта Ñа Ñвързани Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚."
+  text_enumeration_destroy_question: "%{count} обекта Ñа Ñвързани Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚."
   label_incoming_emails: ВходÑщи e-mail-и
   label_generate_key: Генериране на ключ
   setting_mail_handler_api_enabled: Разрешаване на WS за входÑщи e-mail-и
@@ -725,8 +729,8 @@
   button_quote: Цитат
   setting_sequential_project_identifiers: Генериране на поÑледователни проектни идентификатори
   notice_unable_delete_version: ÐевъзможноÑÑ‚ за изтриване на верÑиÑ
-  label_renamed: преименуван
-  label_copied: копиран
+  label_renamed: преименувано
+  label_copied: копирано
   setting_plain_text_mail: Ñамо чиÑÑ‚ текÑÑ‚ (без HTML)
   permission_view_files: Разглеждане на файлове
   permission_edit_issues: Редактиране на задачи
@@ -779,12 +783,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Редактиране на ÑобÑтвени ÑъобщениÑ
   permission_delete_own_messages: Изтриване на ÑобÑтвени ÑъобщениÑ
-  label_user_activity: "ÐктивноÑÑ‚ на {{value}}"
-  label_updated_time_by: "Обновена от {{author}} преди {{age}}"
+  label_user_activity: "ÐктивноÑÑ‚ на %{value}"
+  label_updated_time_by: "Обновена от %{author} преди %{age}"
   text_diff_truncated: '... Този diff не е пълен, понеже е Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€, който може да бъде показан.'
   setting_diff_max_lines_displayed: МакÑимален брой показани diff редове
   text_plugin_assets_writable: Папката на приÑтавките е разрешена за запиÑ
-  warning_attachments_not_saved: "{{count}} файла не бÑха запиÑани."
+  warning_attachments_not_saved: "%{count} файла не бÑха запиÑани."
   button_create_and_continue: Създаване и продължаване
   text_custom_field_possible_values_info: 'Една ÑтойноÑÑ‚ на ред'
   label_display: Display
@@ -799,21 +803,21 @@
   label_descending: ÐамалÑващ
   label_sort: Сортиране
   label_ascending: ÐараÑтващ
-  label_date_from_to: От {{start}} до {{end}}
+  label_date_from_to: От %{start} до %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Тази Ñтраница има {{descendants}} Ñтраници деца и descendant(s). Какво желаете да правите?
+  text_wiki_page_destroy_question: Тази Ñтраница има %{descendants} Ñтраници деца и descendant(s). Какво желаете да правите?
   text_wiki_page_reassign_children: Преназначаване на Ñтраниците деца на тази родителÑка Ñтраница
   text_wiki_page_nullify_children: Запазване на тези Ñтраници като коренни Ñтраници
   text_wiki_page_destroy_children: Изтриване на Ñтраниците деца и вÑички техни descendants
   setting_password_min_length: Минимална дължина на парола
   field_group_by: Групиране на резултатите по
-  mail_subject_wiki_content_updated: "Wiki Ñтраницата '{{id}}' не беше обновена"
+  mail_subject_wiki_content_updated: "Wiki Ñтраницата '%{id}' не беше обновена"
   label_wiki_content_added: Wiki Ñтраница беше добавена
-  mail_subject_wiki_content_added: "Wiki Ñтраницата '{{id}}' беше добавена"
-  mail_body_wiki_content_added: Wiki Ñтраницата '{{id}}' беше добавена от {{author}}.
+  mail_subject_wiki_content_added: "Wiki Ñтраницата '%{id}' беше добавена"
+  mail_body_wiki_content_added: Wiki Ñтраницата '%{id}' беше добавена от %{author}.
   label_wiki_content_updated: Wiki Ñтраница беше обновена
-  mail_body_wiki_content_updated: Wiki Ñтраницата '{{id}}' беше обновена от {{author}}.
+  mail_body_wiki_content_updated: Wiki Ñтраницата '%{id}' беше обновена от %{author}.
   permission_add_project: Създаване на проект
   setting_new_project_user_role_id: РолÑ, давана на потребител, Ñъздаващ проекти, който не е админиÑтратор
   label_view_all_revisions: Разглеждане на вÑички ревизии
@@ -821,14 +825,14 @@
   label_branch: работен вариант
   error_no_tracker_in_project: ÐÑма аÑоциирани тракери Ñ Ñ‚Ð¾Ð·Ð¸ проект. Проверете наÑтройките на проекта.
   error_no_default_issue_status: ÐÑма уÑтановено подразбиращо Ñе ÑÑŠÑтоÑние за задачите. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ вашата ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ (Вижте "ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ -> СъÑтоÑÐ½Ð¸Ñ Ð½Ð° задачи").
-  text_journal_changed: "{{label}} променен от {{old}} на {{new}}"
-  text_journal_set_to: "{{label}} уÑтановен на {{value}}"
-  text_journal_deleted: "{{label}} изтрит ({{old}})"
+  text_journal_changed: "%{label} променен от %{old} на %{new}"
+  text_journal_set_to: "%{label} уÑтановен на %{value}"
+  text_journal_deleted: "%{label} изтрит (%{old})"
   label_group_plural: Групи
   label_group: Група
   label_group_new: Ðова група
   label_time_entry_plural: Използвано време
-  text_journal_added: "Добавено {{label}} {{value}}"
+  text_journal_added: "Добавено %{label} %{value}"
   field_active: Ðктивен
   enumeration_system_activity: СиÑтемна активноÑÑ‚
   permission_delete_issue_watchers: Изтриване на наблюдатели
@@ -850,11 +854,11 @@
   button_duplicate: Дублиране
   button_copy_and_follow: Копиране и продължаване
   label_copy_source: Източник
-  setting_issue_done_ratio: ИзчиÑление на процента на готово задачи Ñ
-  setting_issue_done_ratio_issue_status: Използване на ÑÑŠÑтоÑниетона задачите
+  setting_issue_done_ratio: ИзчиÑление на процента на готови задачи Ñ
+  setting_issue_done_ratio_issue_status: Използване на ÑÑŠÑтоÑнието на задачите
   error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
   error_workflow_copy_target: ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ тракер(и) и Ñ€Ð¾Ð»Ñ (роли).
-  setting_issue_done_ratio_issue_field: Използване на поле 'задача'
+  setting_issue_done_ratio_issue_field: Използване на поле '% ПрогреÑ'
   label_copy_same_as_target: Също като целта
   label_copy_target: Цел
   notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
@@ -863,9 +867,9 @@
   setting_start_of_week: Първи ден на Ñедмицата
   permission_view_issues: Разглеждане на задачите
   label_display_used_statuses_only: Показване Ñамо на ÑÑŠÑтоÑниÑта, използвани от този тракер
-  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}
+  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}
   label_api_access_key: API ключ за доÑтъп
-  label_api_access_key_created_on: API ключ за доÑтъп е Ñъздаден преди {{value}}
+  label_api_access_key_created_on: API ключ за доÑтъп е Ñъздаден преди %{value}
   label_feeds_access_key: RSS access ключ
   notice_api_access_key_reseted: ВашиÑÑ‚ API ключ за доÑтъп беше изчиÑтен.
   setting_rest_api_enabled: Разрешаване на REST web ÑървиÑ
@@ -892,34 +896,39 @@
   label_subtask_plural: Подзадачи
   label_project_copy_notifications: Изпращане на Send e-mail извеÑÑ‚Ð¸Ñ Ð¿Ð¾ време на копирането на проекта
   error_can_not_delete_custom_field: ÐевъзможноÑÑ‚ за изтриване на потребителÑко поле
-  error_unable_to_connect: ÐевъзможноÑÑ‚ за Ñвързване Ñ ({{value}})
+  error_unable_to_connect: ÐевъзможноÑÑ‚ за Ñвързване Ñ (%{value})
   error_can_not_remove_role: Тази Ñ€Ð¾Ð»Ñ Ñе използва и не може да бъде изтрита.
   error_can_not_delete_tracker: Този тракер Ñъдържа задачи и не може да бъде изтрит.
   field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "ÐевъзможноÑÑ‚ за Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° член(ове): {{errors}}."
+  label_my_page_block: Блокове в личната Ñтраница
+  notice_failed_to_save_members: "ÐевъзможноÑÑ‚ за Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° член(ове): %{errors}."
   text_zoom_out: ÐамалÑване
   text_zoom_in: Увеличаване
   notice_unable_delete_time_entry: ÐевъзможноÑÑ‚ за изтриване на Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° time log.
   label_overall_spent_time: Общо употребено време
   field_time_entries: Log time
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  text_tip_issue_end_day: issue ending this day
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  field_member_of_group: Assignee's group
-  project_module_gantt: Gantt
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  text_tip_issue_begin_end_day: issue beginning and ending this day
-  setting_default_notification_option: Default notification option
-  project_module_calendar: Calendar
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  text_tip_issue_begin_day: issue beginning this day
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  notice_not_authorized_archived_project: Проектът, който Ñе опитвате да видите е архивиран.
+  text_tip_issue_end_day: задача, завършваща този ден
+  field_text: ТекÑтово поле
+  label_user_mail_option_only_owner: Само за неща, на които аз Ñъм ÑобÑтвеник
+  field_member_of_group: Член на група
+  project_module_gantt: Мрежов график
+  text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
+  text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
+  setting_default_notification_option: Подразбиращ Ñе начин за извеÑÑ‚Ñване
+  project_module_calendar: Календар
+  label_user_mail_option_only_my_events: Само за неща, в които Ñъм включен/а
+  text_tip_issue_begin_day: задача, започваща този ден
+  label_user_mail_option_only_assigned: Само за неща, назначени на мен
+  button_edit_associated_wikipage: "Редактиране на аÑоциираната Wiki Ñтраница: %{page_title}"
   field_assigned_to_role: Assignee's role
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
+  field_start_date: Ðачална дата
+  label_principal_search: "ТърÑене на потребител или група:"
+  label_user_search: "ТърÑене на потребител:"
+  field_visible: Видим
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: ДейноÑÑ‚ при отчитане на работното време
+  text_time_logged_by_changeset: Приложено в Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}.
+  setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
+  notice_gantt_chart_truncated: МрежовиÑÑ‚ график е Ñъкратен, понеже броÑÑ‚ на обектите, които могат да бъдат показани е твърде голÑм (%{max})
+  setting_gantt_items_limit: МакÑимален брой обекти, които да Ñе показват в мрежов график
--- a/config/locales/.svn/text-base/bs.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/bs.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "pola minute"
       less_than_x_seconds:
         one:   "manje od 1 sekunde"
-        other: "manje od {{count}} sekudni"
+        other: "manje od %{count} sekudni"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekundi"
+        other: "%{count} sekundi"
       less_than_x_minutes:
         one:   "manje od 1 minute"
-        other: "manje od {{count}} minuta"
+        other: "manje od %{count} minuta"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minuta"
+        other: "%{count} minuta"
       about_x_hours:
         one:   "oko 1 sahat"
-        other: "oko {{count}} sahata"
+        other: "oko %{count} sahata"
       x_days:
         one:   "1 dan"
-        other: "{{count}} dana"
+        other: "%{count} dana"
       about_x_months:
         one:   "oko 1 mjesec"
-        other: "oko {{count}} mjeseci"
+        other: "oko %{count} mjeseci"
       x_months:
         one:   "1 mjesec"
-        other: "{{count}} mjeseci"
+        other: "%{count} mjeseci"
       about_x_years:
         one:   "oko 1 godine"
-        other: "oko {{count}} godina"
+        other: "oko %{count} godina"
       over_x_years:
         one:   "preko 1 godine"
-        other: "preko {{count}} godina"
+        other: "preko %{count} godina"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
 
   number:
@@ -106,6 +106,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nije ukljuÄeno u listu"
         exclusion: "je rezervisano"
@@ -120,11 +124,11 @@
         taken: "već je zauzeto"
         not_a_number: "nije broj"
         not_a_date: "nije ispravan datum"
-        greater_than: "mora bit veći od {{count}}"
-        greater_than_or_equal_to: "mora bit veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora bit manji ili jednak {{count}}"
+        greater_than: "mora bit veći od %{count}"
+        greater_than_or_equal_to: "mora bit veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora bit manji ili jednak %{count}"
         odd: "mora biti neparan"
         even: "mora biti paran"
         greater_than_start_date: "mora biti veći nego poÄetni datum"
@@ -156,9 +160,9 @@
   notice_account_wrong_password: Pogrešna lozinka
   notice_can_t_change_password: Ovaj nalog koristi eksterni izvor prijavljivanja. Ne mogu da promjenim šifru.
   notice_default_data_loaded: Podrazumjevana konfiguracija uspjeÄno uÄitana.
-  notice_email_error: Došlo je do greške pri slanju emaila ({{value}})
-  notice_email_sent: "Email je poslan {{value}}"
-  notice_failed_to_save_issues: "Neuspješno snimanje {{count}} aktivnosti na {{total}} izabrano: {{ids}}."
+  notice_email_error: Došlo je do greške pri slanju emaila (%{value})
+  notice_email_sent: "Email je poslan %{value}"
+  notice_failed_to_save_issues: "Neuspješno snimanje %{count} aktivnosti na %{total} izabrano: %{ids}."
   notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
   notice_file_not_found: Stranica kojoj pokušavate da pristupite ne postoji ili je uklonjena.
   notice_locking_conflict: "Konflikt: podaci su izmjenjeni od strane drugog korisnika."
@@ -169,28 +173,28 @@
   notice_successful_delete: Brisanje izvršeno.
   notice_successful_update: Promjene uspješno izvršene.
 
-  error_can_t_load_default_data: "Podrazumjevane postavke se ne mogu uÄitati {{value}}"
-  error_scm_command_failed: "Desila se greška pri pristupu repozitoriju: {{value}}"
+  error_can_t_load_default_data: "Podrazumjevane postavke se ne mogu uÄitati %{value}"
+  error_scm_command_failed: "Desila se greška pri pristupu repozitoriju: %{value}"
   error_scm_not_found: "Unos i/ili revizija ne postoji u repozitoriju."
 
   error_scm_annotate: "Ova stavka ne postoji ili nije oznaÄena."
   error_issue_not_found_in_project: 'Aktivnost nije nađena ili ne pripada ovom projektu'
   
-  warning_attachments_not_saved: "{{count}} fajl(ovi) ne mogu biti snimljen(i)."
+  warning_attachments_not_saved: "%{count} fajl(ovi) ne mogu biti snimljen(i)."
   
-  mail_subject_lost_password: "Vaša {{value}} lozinka"
+  mail_subject_lost_password: "Vaša %{value} lozinka"
   mail_body_lost_password: 'Za promjenu lozinke, kliknite na sljedeći link:'
-  mail_subject_register: "Aktivirajte {{value}} vaÅ¡ korisniÄki raÄun"
+  mail_subject_register: "Aktivirajte %{value} vaÅ¡ korisniÄki raÄun"
   mail_body_register: 'Za aktivaciju vaÅ¡eg korisniÄkog raÄuna, kliknite na sljedeći link:'
-  mail_body_account_information_external: "Možete koristiti  vaÅ¡ {{value}} korisniÄki raÄun za prijavu na sistem."
+  mail_body_account_information_external: "Možete koristiti  vaÅ¡ %{value} korisniÄki raÄun za prijavu na sistem."
   mail_body_account_information: Informacija o vaÅ¡em korisniÄkom raÄunu
-  mail_subject_account_activation_request: "{{value}} zahtjev za aktivaciju korisniÄkog raÄuna"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) se registrovao. KorisniÄki raÄun Äeka vaÅ¡e odobrenje za aktivaciju:"
-  mail_subject_reminder: "{{count}} aktivnost(i) u kašnjenju u narednim {{days}} danima"
-  mail_body_reminder: "{{count}} aktivnost(i) koje su dodjeljenje vama u narednim {{days}} danima:"
+  mail_subject_account_activation_request: "%{value} zahtjev za aktivaciju korisniÄkog raÄuna"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) se registrovao. KorisniÄki raÄun Äeka vaÅ¡e odobrenje za aktivaciju:"
+  mail_subject_reminder: "%{count} aktivnost(i) u kašnjenju u narednim %{days} danima"
+  mail_body_reminder: "%{count} aktivnost(i) koje su dodjeljenje vama u narednim %{days} danima:"
   
   gui_validation_error: 1 greška
-  gui_validation_error_plural: "{{count}} grešaka"
+  gui_validation_error_plural: "%{count} grešaka"
   
   field_name: Ime
   field_description: Opis
@@ -252,6 +256,7 @@
   field_attr_lastname: Atribut za prezime
   field_attr_mail: Atribut za email
   field_onthefly: 'Kreiranje korisnika "On-the-fly"'
+  field_start_date: PoÄetak
   field_done_ratio: % Realizovano
   field_auth_source: Mod za authentifikaciju
   field_hide_mail: Sakrij moju email adresu
@@ -391,14 +396,14 @@
   label_x_projects:
     zero:  0 projekata
     one:   1 projekat
-    other: "{{count}} projekata"
+    other: "%{count} projekata"
   label_project_all: Svi projekti
   label_project_latest: Posljednji projekti
   label_issue: Aktivnost
   label_issue_new: Nova aktivnost
   label_issue_plural: Aktivnosti
   label_issue_view_all: Vidi sve aktivnosti
-  label_issues_by: "Aktivnosti po {{value}}"
+  label_issues_by: "Aktivnosti po %{value}"
   label_issue_added: Aktivnost je dodana
   label_issue_updated: Aktivnost je izmjenjena
   label_document: Dokument
@@ -448,7 +453,7 @@
   label_activity_plural: Promjene
   label_activity: Operacija
   label_overall_activity: Pregled svih promjena
-  label_user_activity: "Promjene izvršene od: {{value}}"
+  label_user_activity: "Promjene izvršene od: %{value}"
   label_new: Novi
   label_logged_as: Prijavljen kao
   label_environment: Sistemsko okruženje
@@ -457,7 +462,7 @@
   label_auth_source_new: Novi mod authentifikacije
   label_auth_source_plural: Modovi authentifikacije
   label_subproject_plural: Podprojekti
-  label_and_its_subprojects: "{{value}} i njegovi podprojekti"
+  label_and_its_subprojects: "%{value} i njegovi podprojekti"
   label_min_max_length: Min - Maks dužina
   label_list: Lista
   label_date: Datum
@@ -468,8 +473,8 @@
   label_text: Dugi tekst
   label_attribute: Atribut
   label_attribute_plural: Atributi
-  label_download: "{{count}} download"
-  label_download_plural: "{{count}} download-i"
+  label_download: "%{count} download"
+  label_download_plural: "%{count} download-i"
   label_no_data: Nema podataka za prikaz
   label_change_status: Promjeni status
   label_history: Istorija
@@ -500,17 +505,17 @@
   label_closed_issues: zatvoren
   label_closed_issues_plural: zatvoreni
   label_x_open_issues_abbr_on_total:
-    zero:  0 otvoreno / {{total}}
-    one:   1 otvorena / {{total}}
-    other: "{{count}} otvorene / {{total}}"
+    zero:  0 otvoreno / %{total}
+    one:   1 otvorena / %{total}
+    other: "%{count} otvorene / %{total}"
   label_x_open_issues_abbr:
     zero:  0 otvoreno
     one:   1 otvorena
-    other: "{{count}} otvorene"
+    other: "%{count} otvorene"
   label_x_closed_issues_abbr:
     zero:  0 zatvoreno
     one:   1 zatvorena
-    other: "{{count}} zatvorene"
+    other: "%{count} zatvorene"
   label_total: Ukupno
   label_permissions: Dozvole
   label_current_status: Tekući status
@@ -528,7 +533,7 @@
   label_months_from: mjeseci od
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "posljednjih {{count}} promjena"
+  label_last_changes: "posljednjih %{count} promjena"
   label_change_view_all: Vidi sve promjene
   label_personalize_page: Personaliziraj ovu stranicu
   label_comment: Komentar
@@ -536,7 +541,7 @@
   label_x_comments:
     zero: bez komentara
     one: 1 komentar
-    other: "{{count}} komentari"
+    other: "%{count} komentari"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar je dodan
   label_comment_delete: Izbriši komentar
@@ -555,7 +560,7 @@
   label_yesterday: juÄe
   label_this_week: ova hefta
   label_last_week: zadnja hefta
-  label_last_n_days: "posljednjih {{count}} dana"
+  label_last_n_days: "posljednjih %{count} dana"
   label_this_month: ovaj mjesec
   label_last_month: posljednji mjesec
   label_this_year: ova godina
@@ -569,8 +574,8 @@
   label_repository: Repozitorij
   label_repository_plural: Repozitoriji
   label_browse: Listaj
-  label_modification: "{{count}} promjena"
-  label_modification_plural: "{{count}} promjene"
+  label_modification: "%{count} promjena"
+  label_modification_plural: "%{count} promjene"
   label_revision: Revizija
   label_revision_plural: Revizije
   label_associated_revisions: Doddjeljene revizije
@@ -588,8 +593,8 @@
   label_sort_lower: Pomjeri dole
   label_sort_lowest: Pomjeri na dno
   label_roadmap: Plan realizacije
-  label_roadmap_due_in: "Obavezan do {{value}}"
-  label_roadmap_overdue: "{{value}} kasni"
+  label_roadmap_due_in: "Obavezan do %{value}"
+  label_roadmap_overdue: "%{value} kasni"
   label_roadmap_no_issues: Nema aktivnosti za ovu verziju
   label_search: Traži
   label_result_plural: Rezultati
@@ -607,8 +612,8 @@
   label_changes_details: Detalji svih promjena
   label_issue_tracking: Evidencija aktivnosti
   label_spent_time: Utrošak vremena
-  label_f_hour: "{{value}} sahat"
-  label_f_hour_plural: "{{value}} sahata"
+  label_f_hour: "%{value} sahat"
+  label_f_hour_plural: "%{value} sahata"
   label_time_tracking: Evidencija vremena
   label_change_plural: Promjene
   label_statistics: Statistika
@@ -657,13 +662,13 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Bazirano na korisnikovom jeziku
-  label_sort_by: "Sortiraj po {{value}}"
+  label_sort_by: "Sortiraj po %{value}"
   label_send_test_email: Pošalji testni email
-  label_feeds_access_key_created_on: "RSS pristupni kljuÄ kreiran prije {{value}} dana"
+  label_feeds_access_key_created_on: "RSS pristupni kljuÄ kreiran prije %{value} dana"
   label_module_plural: Moduli
-  label_added_time_by: "Dodano od {{author}} prije {{age}}"
-  label_updated_time_by: "Izmjenjeno od {{author}} prije {{age}}"
-  label_updated_time: "Izmjenjeno prije {{value}}"
+  label_added_time_by: "Dodano od %{author} prije %{age}"
+  label_updated_time_by: "Izmjenjeno od %{author} prije %{age}"
+  label_updated_time: "Izmjenjeno prije %{value}"
   label_jump_to_a_project: SkoÄi na projekat...
   label_file_plural: Fajlovi
   label_changeset_plural: Setovi promjena
@@ -679,7 +684,7 @@
   label_registration_activation_by_email: aktivacija korisniÄkog raÄuna email-om
   label_registration_manual_activation: ruÄna aktivacija korisniÄkog raÄuna
   label_registration_automatic_activation: automatska kreacija korisniÄkog raÄuna
-  label_display_per_page: "Po stranici: {{value}}"
+  label_display_per_page: "Po stranici: %{value}"
   label_age: Starost
   label_change_properties: Promjena osobina
   label_general: Generalno
@@ -745,42 +750,42 @@
   text_regexp_info: npr. ^[A-Z0-9]+$
   text_min_max_length_info: 0 znaÄi bez restrikcije
   text_project_destroy_confirmation: Sigurno želite izbrisati ovaj projekat i njegove podatke ?
-  text_subprojects_destroy_warning: "Podprojekt(i): {{value}} će takođe biti izbrisani."
+  text_subprojects_destroy_warning: "Podprojekt(i): %{value} će takođe biti izbrisani."
   text_workflow_edit: Odaberite ulogu i podruÄje aktivnosti za ispravku toka promjena na aktivnosti
   text_are_you_sure: Da li ste sigurni ?
   text_tip_issue_begin_day: zadatak poÄinje danas
   text_tip_issue_end_day: zadatak završava danas
   text_tip_issue_begin_end_day: zadatak zapoÄinje i zavrÅ¡ava danas
   text_project_identifier_info: 'Samo mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Nakon snimanja, identifikator se ne može mijenjati.'
-  text_caracters_maximum: "maksimum {{count}} karaktera."
-  text_caracters_minimum: "Dužina mora biti najmanje {{count}} znakova."
-  text_length_between: "Broj znakova između {{min}} i {{max}}."
+  text_caracters_maximum: "maksimum %{count} karaktera."
+  text_caracters_minimum: "Dužina mora biti najmanje %{count} znakova."
+  text_length_between: "Broj znakova između %{min} i %{max}."
   text_tracker_no_workflow: Tok statusa nije definisan za ovo podruÄje aktivnosti
   text_unallowed_characters: Nedozvoljeni znakovi
   text_comma_separated: Višestruke vrijednosti dozvoljene (odvojiti zarezom).
   text_issues_ref_in_commit_messages: 'Referenciranje i zatvaranje aktivnosti putem "commit" poruka'
-  text_issue_added: "Aktivnost {{id}} je prijavljena od {{author}}."
-  text_issue_updated: "Aktivnost {{id}} je izmjenjena od {{author}}."
+  text_issue_added: "Aktivnost %{id} je prijavljena od %{author}."
+  text_issue_updated: "Aktivnost %{id} je izmjenjena od %{author}."
   text_wiki_destroy_confirmation: Sigurno želite izbrisati ovaj wiki i Äitav njegov sadržaj ?
-  text_issue_category_destroy_question: "Neke aktivnosti ({{count}}) pripadaju ovoj kategoriji. Sigurno to želite uraditi ?"
+  text_issue_category_destroy_question: "Neke aktivnosti (%{count}) pripadaju ovoj kategoriji. Sigurno to želite uraditi ?"
   text_issue_category_destroy_assignments: Ukloni kategoriju
   text_issue_category_reassign_to: Ponovo dodijeli ovu kategoriju
   text_user_mail_option: "Za projekte koje niste odabrali, primićete samo notifikacije o stavkama koje pratite ili ste u njih ukljuÄeni (npr. vi ste autor ili su vama dodjeljenje)."
   text_no_configuration_data: "Uloge, podruÄja aktivnosti, statusi aktivnosti i tok promjena statusa nisu konfigurisane.\nKrajnje je preporuÄeno da uÄitate tekuÄ‘e postavke. Kasnije ćete ih moći mjenjati po svojim potrebama."
   text_load_default_configuration: UÄitaj tekuću konfiguraciju
-  text_status_changed_by_changeset: "Primjenjeno u setu promjena {{value}}."
+  text_status_changed_by_changeset: "Primjenjeno u setu promjena %{value}."
   text_issues_destroy_confirmation: 'Sigurno želite izbrisati odabranu/e aktivnost/i ?'
   text_select_project_modules: 'Odaberi module koje želite u ovom projektu:'
   text_default_administrator_account_changed: Tekući administratorski raÄun je promjenjen
   text_file_repository_writable: U direktorij sa fajlovima koji su prilozi se može pisati
   text_plugin_assets_writable: U direktorij plugin-ova se može pisati
   text_rmagick_available: RMagick je dostupan (opciono)
-  text_destroy_time_entries_question: "{{hours}} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to uÄiniti ?"
+  text_destroy_time_entries_question: "%{hours} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to uÄiniti ?"
   text_destroy_time_entries: Izbriši prijavljeno vrijeme
   text_assign_time_entries_to_project: Dodaj prijavljenoo vrijeme projektu
   text_reassign_time_entries: 'Preraspodjeli prijavljeno vrijeme na ovu aktivnost:'
-  text_user_wrote: "{{value}} je napisao/la:"
-  text_enumeration_destroy_question: "Za {{count}} objekata je dodjeljenja ova vrijednost."
+  text_user_wrote: "%{value} je napisao/la:"
+  text_enumeration_destroy_question: "Za %{count} objekata je dodjeljenja ova vrijednost."
   text_enumeration_category_reassign_to: 'Ponovo im dodjeli ovu vrijednost:'
   text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/email.yml i restartuj aplikaciju nakon toga."
   text_repository_usernames_mapping: "Odaberi ili ispravi redmine korisnika mapiranog za svako korisniÄko ima naÄ‘eno u logu repozitorija.\nKorisnici sa istim imenom u redmineu i u repozitoruju se automatski mapiraju."
@@ -817,23 +822,23 @@
   button_annotate: Zabilježi
   button_activate: Aktiviraj
   label_sort: Sortiranje
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_ascending: Rastuće
   label_descending: Opadajuće
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -841,14 +846,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -883,9 +888,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -912,12 +917,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -925,7 +930,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -936,8 +941,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/ca.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/ca.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -36,37 +36,37 @@
       half_a_minute: "mig minut"
       less_than_x_seconds:
         one:   "menys d'un segon"
-        other: "menys de {{count}} segons"
+        other: "menys de %{count} segons"
       x_seconds:
         one:   "1 segons"
-        other: "{{count}} segons"
+        other: "%{count} segons"
       less_than_x_minutes:
         one:   "menys d'un minut"
-        other: "menys de {{count}} minuts"
+        other: "menys de %{count} minuts"
       x_minutes:
         one:   "1 minut"
-        other: "{{count}} minuts"
+        other: "%{count} minuts"
       about_x_hours:
         one:   "aproximadament 1 hora"
-        other: "aproximadament {{count}} hores"
+        other: "aproximadament %{count} hores"
       x_days:
         one:   "1 dia"
-        other: "{{count}} dies"
+        other: "%{count} dies"
       about_x_months:
         one:   "aproximadament 1 mes"
-        other: "aproximadament {{count}} mesos"
+        other: "aproximadament %{count} mesos"
       x_months:
         one:   "1 mes"
-        other: "{{count}} mesos"
+        other: "%{count} mesos"
       about_x_years:
         one:   "aproximadament 1 any"
-        other: "aproximadament {{count}} anys"
+        other: "aproximadament %{count} anys"
       over_x_years:
         one:   "més d'un any"
-        other: "més de {{count}} anys"
+        other: "més de %{count} anys"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     # Default format for numbers
@@ -98,6 +98,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "no està inclòs a la llista"
         exclusion: "està reservat"
@@ -112,11 +116,11 @@
         taken: "ja s'està utilitzant"
         not_a_number: "no és un número"
         not_a_date: "no és una data vàlida"
-        greater_than: "ha de ser més gran que {{count}}"
-        greater_than_or_equal_to: "ha de ser més gran o igual a {{count}}"
-        equal_to: "ha de ser igual a {{count}}"
-        less_than: "ha de ser menys que {{count}}"
-        less_than_or_equal_to: "ha de ser menys o igual a {{count}}"
+        greater_than: "ha de ser més gran que %{count}"
+        greater_than_or_equal_to: "ha de ser més gran o igual a %{count}"
+        equal_to: "ha de ser igual a %{count}"
+        less_than: "ha de ser menys que %{count}"
+        less_than_or_equal_to: "ha de ser menys o igual a %{count}"
         odd: "ha de ser senar"
         even: "ha de ser parell"
         greater_than_start_date: "ha de ser superior que la data inicial"
@@ -153,12 +157,12 @@
   notice_file_not_found: "La pàgina a la que intenteu accedir no existeix o s'ha suprimit."
   notice_locking_conflict: Un altre usuari ha actualitzat les dades.
   notice_not_authorized: No teniu permís per a accedir a aquesta pàgina.
-  notice_email_sent: "S'ha enviat un correu electrònic a {{value}}"
-  notice_email_error: "S'ha produït un error en enviar el correu ({{value}})"
+  notice_email_sent: "S'ha enviat un correu electrònic a %{value}"
+  notice_email_error: "S'ha produït un error en enviar el correu (%{value})"
   notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS."
   notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API."
-  notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de {{count}} seleccionats: {{ids}}."
-  notice_failed_to_save_members: "No s'han pogut desar els membres: {{errors}}."
+  notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de %{count} seleccionats: %{ids}."
+  notice_failed_to_save_members: "No s'han pogut desar els membres: %{errors}."
   notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar."
   notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador."
   notice_default_data_loaded: "S'ha carregat correctament la configuració predeterminada."
@@ -166,9 +170,9 @@
   notice_unable_delete_time_entry: "No s'ha pogut suprimir l'entrada del registre de temps."
   notice_issue_done_ratios_updated: "S'ha actualitzat el tant per cent dels assumptes."
   
-  error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: {{value}} "
+  error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: %{value} "
   error_scm_not_found: "No s'ha trobat l'entrada o la revisió en el dipòsit."
-  error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: {{value}}"
+  error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: %{value}"
   error_scm_annotate: "L'entrada no existeix o no s'ha pogut anotar."
   error_issue_not_found_in_project: "No s'ha trobat l'assumpte o no pertany a aquest projecte"
   error_no_tracker_in_project: "Aquest projecte no té seguidor associat. Comproveu els paràmetres del projecte."
@@ -182,26 +186,26 @@
   error_workflow_copy_source: "Seleccioneu un seguidor o rol font"
   error_workflow_copy_target: "Seleccioneu seguidors i rols objectiu"
   error_unable_delete_issue_status: "No s'ha pogut suprimir l'estat de l'assumpte"
-  error_unable_to_connect: "No s'ha pogut connectar ({{value}})"
-  warning_attachments_not_saved: "No s'han pogut desar {{count}} fitxers."
+  error_unable_to_connect: "No s'ha pogut connectar (%{value})"
+  warning_attachments_not_saved: "No s'han pogut desar %{count} fitxers."
   
-  mail_subject_lost_password: "Contrasenya de {{value}}"
+  mail_subject_lost_password: "Contrasenya de %{value}"
   mail_body_lost_password: "Per a canviar la contrasenya, feu clic en l'enllaç següent:"
-  mail_subject_register: "Activació del compte de {{value}}"
+  mail_subject_register: "Activació del compte de %{value}"
   mail_body_register: "Per a activar el compte, feu clic en l'enllaç següent:"
-  mail_body_account_information_external: "Podeu utilitzar el compte «{{value}}» per a entrar."
+  mail_body_account_information_external: "Podeu utilitzar el compte «%{value}» per a entrar."
   mail_body_account_information: Informació del compte
-  mail_subject_account_activation_request: "Sol·licitud d'activació del compte de {{value}}"
-  mail_body_account_activation_request: "S'ha registrat un usuari nou ({{value}}). El seu compte està pendent d'aprovació:"
-  mail_subject_reminder: "{{count}} assumptes venceran els següents {{days}} dies"
-  mail_body_reminder: "{{count}} assumptes que teniu assignades venceran els següents {{days}} dies:"
-  mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «{{id}}»"
-  mail_body_wiki_content_added: "En {{author}} ha afegit la pàgina wiki «{{id}}»."
-  mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «{{id}}»"
-  mail_body_wiki_content_updated: "En {{author}} ha actualitzat la pàgina wiki «{{id}}»."
+  mail_subject_account_activation_request: "Sol·licitud d'activació del compte de %{value}"
+  mail_body_account_activation_request: "S'ha registrat un usuari nou (%{value}). El seu compte està pendent d'aprovació:"
+  mail_subject_reminder: "%{count} assumptes venceran els següents %{days} dies"
+  mail_body_reminder: "%{count} assumptes que teniu assignades venceran els següents %{days} dies:"
+  mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «%{id}»"
+  mail_body_wiki_content_added: "En %{author} ha afegit la pàgina wiki «%{id}»."
+  mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «%{id}»"
+  mail_body_wiki_content_updated: "En %{author} ha actualitzat la pàgina wiki «%{id}»."
   
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
+  gui_validation_error_plural: "%{count} errors"
   
   field_name: Nom
   field_description: Descripció
@@ -264,6 +268,7 @@
   field_attr_lastname: Atribut del cognom
   field_attr_mail: Atribut del correu electrònic
   field_onthefly: "Creació de l'usuari «al vol»"
+  field_start_date: Inici
   field_done_ratio: % realitzat
   field_auth_source: "Mode d'autenticació"
   field_hide_mail: "Oculta l'adreça de correu electrònic"
@@ -427,14 +432,14 @@
   label_x_projects:
     zero:  cap projecte
     one:   1 projecte
-    other: "{{count}} projectes"
+    other: "%{count} projectes"
   label_project_all: Tots els projectes
   label_project_latest: Els últims projectes
   label_issue: Assumpte
   label_issue_new: Assumpte nou
   label_issue_plural: Assumptes
   label_issue_view_all: Visualitza tots els assumptes
-  label_issues_by: "Assumptes per {{value}}"
+  label_issues_by: "Assumptes per %{value}"
   label_issue_added: Assumpte afegit
   label_issue_updated: Assumpte actualitzat
   label_document: Document
@@ -484,7 +489,7 @@
   label_registered_on: Informat el
   label_activity: Activitat
   label_overall_activity: Activitat global
-  label_user_activity: "Activitat de {{value}}"
+  label_user_activity: "Activitat de %{value}"
   label_new: Nou
   label_logged_as: Heu entrat com a
   label_environment: Entorn
@@ -494,7 +499,7 @@
   label_auth_source_plural: "Modes d'autenticació"
   label_subproject_plural: Subprojectes
   label_subproject_new: "Subprojecte nou"
-  label_and_its_subprojects: "{{value}} i els seus subprojectes"
+  label_and_its_subprojects: "%{value} i els seus subprojectes"
   label_min_max_length: Longitud mín - max
   label_list: Llist
   label_date: Data
@@ -505,8 +510,8 @@
   label_text: Text llarg
   label_attribute: Atribut
   label_attribute_plural: Atributs
-  label_download: "{{count}} baixada"
-  label_download_plural: "{{count}} baixades"
+  label_download: "%{count} baixada"
+  label_download_plural: "%{count} baixades"
   label_no_data: Sense dades a mostrar
   label_change_status: "Canvia l'estat"
   label_history: Historial
@@ -538,17 +543,17 @@
   label_closed_issues: tancat
   label_closed_issues_plural: tancats
   label_x_open_issues_abbr_on_total:
-    zero:  0 oberts / {{total}}
-    one:   1 obert / {{total}}
-    other: "{{count}} oberts / {{total}}"
+    zero:  0 oberts / %{total}
+    one:   1 obert / %{total}
+    other: "%{count} oberts / %{total}"
   label_x_open_issues_abbr:
     zero:  0 oberts
     one:   1 obert
-    other: "{{count}} oberts"
+    other: "%{count} oberts"
   label_x_closed_issues_abbr:
     zero:  0 tancats
     one:   1 tancat
-    other: "{{count}} tancats"
+    other: "%{count} tancats"
   label_total: Total
   label_permissions: Permisos
   label_current_status: Estat actual
@@ -566,7 +571,7 @@
   label_months_from: mesos des de
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "últims {{count}} canvis"
+  label_last_changes: "últims %{count} canvis"
   label_change_view_all: Visualitza tots els canvis
   label_personalize_page: Personalitza aquesta pàgina
   label_comment: Comentari
@@ -574,7 +579,7 @@
   label_x_comments:
     zero: sense comentaris
     one: 1 comentari
-    other: "{{count}} comentaris"
+    other: "%{count} comentaris"
   label_comment_add: Afegeix un comentari
   label_comment_added: Comentari afegit
   label_comment_delete: Suprimeix comentaris
@@ -595,7 +600,7 @@
   label_yesterday: ahir
   label_this_week: aquesta setmana
   label_last_week: "l'última setmana"
-  label_last_n_days: "els últims {{count}} dies"
+  label_last_n_days: "els últims %{count} dies"
   label_this_month: aquest més
   label_last_month: "l'últim més"
   label_this_year: aquest any
@@ -609,13 +614,13 @@
   label_repository: Dipòsit
   label_repository_plural: Dipòsits
   label_browse: Navega
-  label_modification: "{{count}} canvi"
-  label_modification_plural: "{{count}} canvis"
+  label_modification: "%{count} canvi"
+  label_modification_plural: "%{count} canvis"
   label_branch: Branca
   label_tag: Etiqueta
   label_revision: Revisió
   label_revision_plural: Revisions
-  label_revision_id: "Revisió {{value}}"
+  label_revision_id: "Revisió %{value}"
   label_associated_revisions: Revisions associades
   label_added: afegit
   label_modified: modificat
@@ -632,8 +637,8 @@
   label_sort_lower: Mou cap avall
   label_sort_lowest: Mou a la part inferior
   label_roadmap: Planificació
-  label_roadmap_due_in: "Venç en {{value}}"
-  label_roadmap_overdue: "{{value}} tard"
+  label_roadmap_due_in: "Venç en %{value}"
+  label_roadmap_overdue: "%{value} tard"
   label_roadmap_no_issues: No hi ha assumptes per a aquesta versió
   label_search: Cerca
   label_result_plural: Resultats
@@ -652,8 +657,8 @@
   label_issue_tracking: "Seguiment d'assumptes"
   label_spent_time: Temps invertit
   label_overall_spent_time: "Temps total invertit"
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} hores"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} hores"
   label_time_tracking: Temps de seguiment
   label_change_plural: Canvis
   label_statistics: Estadístiques
@@ -704,15 +709,15 @@
   label_date_from: Des de
   label_date_to: A
   label_language_based: "Basat en l'idioma de l'usuari"
-  label_sort_by: "Ordena per {{value}}"
+  label_sort_by: "Ordena per %{value}"
   label_send_test_email: Envia un correu electrònic de prova
   label_feeds_access_key: "Clau d'accés del RSS"
   label_missing_feeds_access_key: "Falta una clau d'accés del RSS"
-  label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa {{value}}"
+  label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa %{value}"
   label_module_plural: Mòduls
-  label_added_time_by: "Afegit per {{author}} fa {{age}}"
-  label_updated_time_by: "Actualitzat per {{author}} fa {{age}}"
-  label_updated_time: "Actualitzat fa {{value}}"
+  label_added_time_by: "Afegit per %{author} fa %{age}"
+  label_updated_time_by: "Actualitzat per %{author} fa %{age}"
+  label_updated_time: "Actualitzat fa %{value}"
   label_jump_to_a_project: Salta al projecte...
   label_file_plural: Fitxers
   label_changeset_plural: Conjunt de canvis
@@ -728,7 +733,7 @@
   label_registration_activation_by_email: activació del compte per correu electrònic
   label_registration_manual_activation: activació del compte manual
   label_registration_automatic_activation: activació del compte automàtica
-  label_display_per_page: "Per pàgina: {{value}}"
+  label_display_per_page: "Per pàgina: %{value}"
   label_age: Edat
   label_change_properties: Canvia les propietats
   label_general: General
@@ -751,7 +756,7 @@
   label_sort: Ordena
   label_ascending: Ascendent
   label_descending: Descendent
-  label_date_from_to: Des de {{start}} a {{end}}
+  label_date_from_to: Des de %{start} a %{end}
   label_wiki_content_added: "S'ha afegit la pàgina wiki"
   label_wiki_content_updated: "S'ha actualitzat la pàgina wiki"
   label_group: Grup
@@ -770,7 +775,7 @@
   label_display_used_statuses_only: "Mostra només els estats que utilitza aquest seguidor"
   label_api_access_key: "Clau d'accés a l'API"
   label_missing_api_access_key: "Falta una clau d'accés de l'API"
-  label_api_access_key_created_on: "Clau d'accés de l'API creada fa {{value}}"
+  label_api_access_key_created_on: "Clau d'accés de l'API creada fa %{value}"
   label_profile: Perfil
   label_subtask_plural: Subtasques
   label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte"
@@ -833,53 +838,53 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 significa sense restricció
   text_project_destroy_confirmation: Segur que voleu suprimir aquest projecte i les dades relacionades?
-  text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: {{value}}."
+  text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: %{value}."
   text_workflow_edit: Seleccioneu un rol i un seguidor per a editar el flux de treball
   text_are_you_sure: Segur?
-  text_journal_changed: "{{label}} ha canviat de {{old}} a {{new}}"
-  text_journal_set_to: "{{label}} s'ha establert a {{value}}"
-  text_journal_deleted: "{{label}} s'ha suprimit ({{old}})"
-  text_journal_added: "S'ha afegit {{label}} {{value}}"
+  text_journal_changed: "%{label} ha canviat de %{old} a %{new}"
+  text_journal_set_to: "%{label} s'ha establert a %{value}"
+  text_journal_deleted: "%{label} s'ha suprimit (%{old})"
+  text_journal_added: "S'ha afegit %{label} %{value}"
   text_tip_issue_begin_day: "tasca que s'inicia aquest dia"
   text_tip_issue_end_day: tasca que finalitza aquest dia
   text_tip_issue_begin_end_day: "tasca que s'inicia i finalitza aquest dia"
   text_project_identifier_info: "Es permeten lletres en minúscules (a-z), números i guions.<br />Un cop desat, l'identificador no es pot modificar."
-  text_caracters_maximum: "{{count}} caràcters com a màxim."
-  text_caracters_minimum: "Com a mínim ha de tenir {{count}} caràcters."
-  text_length_between: "Longitud entre {{min}} i {{max}} caràcters."
+  text_caracters_maximum: "%{count} caràcters com a màxim."
+  text_caracters_minimum: "Com a mínim ha de tenir %{count} caràcters."
+  text_length_between: "Longitud entre %{min} i %{max} caràcters."
   text_tracker_no_workflow: "No s'ha definit cap flux de treball per a aquest seguidor"
   text_unallowed_characters: Caràcters no permesos
   text_comma_separated: Es permeten valors múltiples (separats per una coma).
   text_line_separated: "Es permeten diversos valors (una línia per cada valor)."
   text_issues_ref_in_commit_messages: Referència i soluciona els assumptes en els missatges publicats
-  text_issue_added: "L'assumpte {{id}} ha sigut informat per {{author}}."
-  text_issue_updated: "L'assumpte {{id}} ha sigut actualitzat per {{author}}."
+  text_issue_added: "L'assumpte %{id} ha sigut informat per %{author}."
+  text_issue_updated: "L'assumpte %{id} ha sigut actualitzat per %{author}."
   text_wiki_destroy_confirmation: Segur que voleu suprimir aquest wiki i tots els seus continguts?
-  text_issue_category_destroy_question: "Alguns assumptes ({{count}}) estan assignats a aquesta categoria. Què voleu fer?"
+  text_issue_category_destroy_question: "Alguns assumptes (%{count}) estan assignats a aquesta categoria. Què voleu fer?"
   text_issue_category_destroy_assignments: Suprimeix les assignacions de la categoria
   text_issue_category_reassign_to: Torna a assignar els assumptes a aquesta categoria
   text_user_mail_option: "Per als projectes no seleccionats, només rebreu notificacions sobre les coses que vigileu o que hi esteu implicat (ex. assumptes que en sou l'autor o hi esteu assignat)."
   text_no_configuration_data: "Encara no s'han configurat els rols, seguidors, estats de l'assumpte i flux de treball.\nÉs altament recomanable que carregueu la configuració predeterminada. Podreu modificar-la un cop carregada."
   text_load_default_configuration: Carrega la configuració predeterminada
-  text_status_changed_by_changeset: "Aplicat en el conjunt de canvis {{value}}."
+  text_status_changed_by_changeset: "Aplicat en el conjunt de canvis %{value}."
   text_issues_destroy_confirmation: "Segur que voleu suprimir els assumptes seleccionats?"
   text_select_project_modules: "Seleccioneu els mòduls a habilitar per a aquest projecte:"
   text_default_administrator_account_changed: "S'ha canviat el compte d'administrador predeterminat"
   text_file_repository_writable: Es pot escriure en el dipòsit de fitxers
   text_plugin_assets_writable: Es pot escriure als connectors actius
   text_rmagick_available: RMagick disponible (opcional)
-  text_destroy_time_entries_question: "S'han informat {{hours}} hores en els assumptes que aneu a suprimir. Què voleu fer?"
+  text_destroy_time_entries_question: "S'han informat %{hours} hores en els assumptes que aneu a suprimir. Què voleu fer?"
   text_destroy_time_entries: Suprimeix les hores informades
   text_assign_time_entries_to_project: Assigna les hores informades al projecte
   text_reassign_time_entries: "Torna a assignar les hores informades a aquest assumpte:"
-  text_user_wrote: "{{value}} va escriure:"
-  text_enumeration_destroy_question: "{{count}} objectes estan assignats a aquest valor."
+  text_user_wrote: "%{value} va escriure:"
+  text_enumeration_destroy_question: "%{count} objectes estan assignats a aquest valor."
   text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:"
   text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo."
   text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament."
   text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar."
   text_custom_field_possible_values_info: "Una línia per a cada valor"
-  text_wiki_page_destroy_question: "Aquesta pàgina té {{descendants}} pàgines fill i descendents. Què voleu fer?"
+  text_wiki_page_destroy_question: "Aquesta pàgina té %{descendants} pàgines fill i descendents. Què voleu fer?"
   text_wiki_page_nullify_children: "Deixa les pàgines fill com a pàgines arrel"
   text_wiki_page_destroy_children: "Suprimeix les pàgines fill i tots els seus descendents"
   text_wiki_page_reassign_children: "Reasigna les pàgines fill a aquesta pàgina pare"
@@ -914,7 +919,7 @@
   enumeration_activities: Activitats (seguidor de temps)
   enumeration_system_activity: Activitat del sistema
 
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -925,8 +930,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/cs.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/cs.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "půl minuty"
       less_than_x_seconds:
         one:   "méně než sekunda"
-        other: "méně než {{count}} sekund"
+        other: "méně než %{count} sekund"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekund"
+        other: "%{count} sekund"
       less_than_x_minutes:
         one:   "méně než minuta"
-        other: "méně než {{count}} minut"
+        other: "méně než %{count} minut"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minut"
+        other: "%{count} minut"
       about_x_hours:
         one:   "asi 1 hodina"
-        other: "asi {{count}} hodin"
+        other: "asi %{count} hodin"
       x_days:
         one:   "1 den"
-        other: "{{count}} dnů"
+        other: "%{count} dnů"
       about_x_months:
         one:   "asi 1 měsíc"
-        other: "asi {{count}} měsíců"
+        other: "asi %{count} měsíců"
       x_months:
         one:   "1 měsíc"
-        other: "{{count}} měsíců"
+        other: "%{count} měsíců"
       about_x_years:
         one:   "asi 1 rok"
-        other: "asi {{count}} let"
+        other: "asi %{count} let"
       over_x_years:
         one:   "více než 1 rok"
-        other: "více než {{count}} roky"
+        other: "více než %{count} roky"
       almost_x_years:
         one:   "témeř 1 rok"
-        other: "téměř {{count}} roky"
+        other: "téměř %{count} roky"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "není zahrnuto v seznamu"
         exclusion: "je rezervováno"
@@ -106,11 +110,11 @@
         taken: "je již použito"
         not_a_number: "není Äíslo"
         not_a_date: "není platné datum"
-        greater_than: "musí být větší než {{count}}"
-        greater_than_or_equal_to: "musí být větší nebo rovno {{count}}"
-        equal_to: "musí být přesně {{count}}"
-        less_than: "musí být méně než {{count}}"
-        less_than_or_equal_to: "musí být méně nebo rovno {{count}}"
+        greater_than: "musí být větší než %{count}"
+        greater_than_or_equal_to: "musí být větší nebo rovno %{count}"
+        equal_to: "musí být přesně %{count}"
+        less_than: "musí být méně než %{count}"
+        less_than_or_equal_to: "musí být méně nebo rovno %{count}"
         odd: "musí být liché"
         even: "musí být sudé"
         greater_than_start_date: "musí být vÄ›tší než poÄáteÄní datum"
@@ -152,30 +156,30 @@
   notice_locking_conflict: Údaje byly změněny jiným uživatelem.
   notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
   notice_not_authorized: Nemáte dostateÄná práva pro zobrazení této stránky.
-  notice_email_sent: "Na adresu {{value}} byl odeslán email"
-  notice_email_error: "Při odesílání emailu nastala chyba ({{value}})"
+  notice_email_sent: "Na adresu %{value} byl odeslán email"
+  notice_email_error: "Při odesílání emailu nastala chyba (%{value})"
   notice_feeds_access_key_reseted: Váš klÃ­Ä pro přístup k RSS byl resetován.
-  notice_failed_to_save_issues: "Chyba při uložení {{count}} úkolu(ů) z {{total}} vybraných: {{ids}}."
+  notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}."
   notice_no_issue_selected: "Nebyl zvolen žádný úkol. Prosím, zvolte úkoly, které chcete editovat"
   notice_account_pending: "Váš úÄet byl vytvoÅ™en, nyní Äeká na schválení administrátorem."
   notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána.
   
-  error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: {{value}}"
+  error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}"
   error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři."
-  error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: {{value}}"
+  error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}"
   error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu'
   
-  mail_subject_lost_password: "Vaše heslo ({{value}})"
+  mail_subject_lost_password: "Vaše heslo (%{value})"
   mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:'
-  mail_subject_register: "Aktivace úÄtu ({{value}})"
+  mail_subject_register: "Aktivace úÄtu (%{value})"
   mail_body_register: 'Pro aktivaci vaÅ¡eho úÄtu kliknÄ›te na následující odkaz:'
-  mail_body_account_information_external: "Pomocí vaÅ¡eho úÄtu {{value}} se můžete pÅ™ihlásit."
+  mail_body_account_information_external: "Pomocí vaÅ¡eho úÄtu %{value} se můžete pÅ™ihlásit."
   mail_body_account_information: Informace o vaÅ¡em úÄtu
-  mail_subject_account_activation_request: "Aktivace {{value}} úÄtu"
-  mail_body_account_activation_request: "Byl zaregistrován nový uživatel {{value}}. Aktivace jeho úÄtu závisí na vaÅ¡em potvrzení."
+  mail_subject_account_activation_request: "Aktivace %{value} úÄtu"
+  mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho úÄtu závisí na vaÅ¡em potvrzení."
   
   gui_validation_error: 1 chyba
-  gui_validation_error_plural: "{{count}} chyb(y)"
+  gui_validation_error_plural: "%{count} chyb(y)"
   
   field_name: Název
   field_description: Popis
@@ -237,6 +241,7 @@
   field_attr_lastname: Příjemní (atribut)
   field_attr_mail: Email (atribut)
   field_onthefly: Automatické vytváření uživatelů
+  field_start_date: ZaÄátek
   field_done_ratio: % Hotovo
   field_auth_source: AutentifikaÄní mód
   field_hide_mail: Nezobrazovat můj email
@@ -310,14 +315,14 @@
   label_x_projects:
     zero:  žádné projekty
     one:   1 projekt
-    other: "{{count}} projekty(ů)"
+    other: "%{count} projekty(ů)"
   label_project_all: Všechny projekty
   label_project_latest: Poslední projekty
   label_issue: Úkol
   label_issue_new: Nový úkol
   label_issue_plural: Úkoly
   label_issue_view_all: Všechny úkoly
-  label_issues_by: "Úkoly podle {{value}}"
+  label_issues_by: "Úkoly podle %{value}"
   label_issue_added: Úkol přidán
   label_issue_updated: Úkol aktualizován
   label_document: Dokument
@@ -383,8 +388,8 @@
   label_text: Dlouhý text
   label_attribute: Atribut
   label_attribute_plural: Atributy
-  label_download: "{{count}} stažení"
-  label_download_plural: "{{count}} stažení"
+  label_download: "%{count} stažení"
+  label_download_plural: "%{count} stažení"
   label_no_data: Žádné položky
   label_change_status: Změnit stav
   label_history: Historie
@@ -415,17 +420,17 @@
   label_closed_issues: uzavřený
   label_closed_issues_plural: uzavřené
   label_x_open_issues_abbr_on_total:
-    zero:  0 otevřených / {{total}}
-    one:   1 otevřený / {{total}}
-    other: "{{count}} otevřených / {{total}}"
+    zero:  0 otevřených / %{total}
+    one:   1 otevřený / %{total}
+    other: "%{count} otevřených / %{total}"
   label_x_open_issues_abbr:
     zero:  0 otevřených
     one:   1 otevřený
-    other: "{{count}} otevřených"
+    other: "%{count} otevřených"
   label_x_closed_issues_abbr:
     zero:  0 uzavřených
     one:   1 uzavřený
-    other: "{{count}} uzavřených"
+    other: "%{count} uzavřených"
   label_total: Celkem
   label_permissions: Práva
   label_current_status: Aktuální stav
@@ -443,7 +448,7 @@
   label_months_from: měsíců od
   label_gantt: Ganttův graf
   label_internal: Interní
-  label_last_changes: "posledních {{count}} změn"
+  label_last_changes: "posledních %{count} změn"
   label_change_view_all: Zobrazit všechny změny
   label_personalize_page: Přizpůsobit tuto stránku
   label_comment: Komentář
@@ -451,7 +456,7 @@
   label_x_comments:
     zero: žádné komentáře
     one: 1 komentář
-    other: "{{count}} komentářů"
+    other: "%{count} komentářů"
   label_comment_add: Přidat komentáře
   label_comment_added: Komentář přidán
   label_comment_delete: Odstranit komentář
@@ -470,7 +475,7 @@
   label_yesterday: vÄera
   label_this_week: tento týden
   label_last_week: minulý týden
-  label_last_n_days: "posledních {{count}} dnů"
+  label_last_n_days: "posledních %{count} dnů"
   label_this_month: tento měsíc
   label_last_month: minulý měsíc
   label_this_year: tento rok
@@ -484,8 +489,8 @@
   label_repository: Repozitář
   label_repository_plural: Repozitáře
   label_browse: Procházet
-  label_modification: "{{count}} změna"
-  label_modification_plural: "{{count}} změn"
+  label_modification: "%{count} změna"
+  label_modification_plural: "%{count} změn"
   label_revision: Revize
   label_revision_plural: Revizí
   label_associated_revisions: Související verze
@@ -501,8 +506,8 @@
   label_sort_lower: Přesunout dolů
   label_sort_lowest: Přesunout na konec
   label_roadmap: Plán
-  label_roadmap_due_in: "Zbývá {{value}}"
-  label_roadmap_overdue: "{{value}} pozdÄ›"
+  label_roadmap_due_in: "Zbývá %{value}"
+  label_roadmap_overdue: "%{value} pozdÄ›"
   label_roadmap_no_issues: Pro tuto verzi nejsou žádné úkoly
   label_search: Hledat
   label_result_plural: Výsledky
@@ -520,8 +525,8 @@
   label_changes_details: Detail všech změn
   label_issue_tracking: Sledování úkolů
   label_spent_time: Strávený Äas
-  label_f_hour: "{{value}} hodina"
-  label_f_hour_plural: "{{value}} hodin"
+  label_f_hour: "%{value} hodina"
+  label_f_hour_plural: "%{value} hodin"
   label_time_tracking: Sledování Äasu
   label_change_plural: Změny
   label_statistics: Statistiky
@@ -569,12 +574,12 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Podle výchozího jazyku
-  label_sort_by: "Seřadit podle {{value}}"
+  label_sort_by: "Seřadit podle %{value}"
   label_send_test_email: Poslat testovací email
-  label_feeds_access_key_created_on: "Přístupový klÃ­Ä pro RSS byl vytvoÅ™en pÅ™ed {{value}}"
+  label_feeds_access_key_created_on: "Přístupový klÃ­Ä pro RSS byl vytvoÅ™en pÅ™ed %{value}"
   label_module_plural: Moduly
-  label_added_time_by: "Přidáno uživatelem {{author}} před {{age}}"
-  label_updated_time: "Aktualizováno před {{value}}"
+  label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
+  label_updated_time: "Aktualizováno před %{value}"
   label_jump_to_a_project: Vyberte projekt...
   label_file_plural: Soubory
   label_changeset_plural: Changesety
@@ -590,7 +595,7 @@
   label_registration_activation_by_email: aktivace úÄtu emailem
   label_registration_manual_activation: manuální aktivace úÄtu
   label_registration_automatic_activation: automatická aktivace úÄtu
-  label_display_per_page: "{{value}} na stránku"
+  label_display_per_page: "%{value} na stránku"
   label_age: Věk
   label_change_properties: Změnit vlastnosti
   label_general: Obecné
@@ -657,29 +662,29 @@
   text_tip_issue_end_day: úkol konÄí v tento den
   text_tip_issue_begin_end_day: úkol zaÄíná a konÄí v tento den
   text_project_identifier_info: 'Jsou povolena malá písmena (a-z), Äísla a pomlÄky.<br />Po uložení již není možné identifikátor zmÄ›nit.'
-  text_caracters_maximum: "{{count}} znaků maximálně."
-  text_caracters_minimum: "Musí být alespoň {{count}} znaků dlouhé."
-  text_length_between: "Délka mezi {{min}} a {{max}} znaky."
+  text_caracters_maximum: "%{count} znaků maximálně."
+  text_caracters_minimum: "Musí být alespoň %{count} znaků dlouhé."
+  text_length_between: "Délka mezi %{min} a %{max} znaky."
   text_tracker_no_workflow: Pro tuto frontu není definován žádný průběh práce
   text_unallowed_characters: Nepovolené znaky
   text_comma_separated: Povoleno více hodnot (oddÄ›lÄ›né Äárkou).
   text_issues_ref_in_commit_messages: Odkazování a opravování úkolů ve zprávách commitů
-  text_issue_added: "Úkol {{id}} byl vytvořen uživatelem {{author}}."
-  text_issue_updated: "Úkol {{id}} byl aktualizován uživatelem {{author}}."
+  text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
+  text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
   text_wiki_destroy_confirmation: Opravdu si přejete odstranit tuto Wiki a celý její obsah?
-  text_issue_category_destroy_question: "Některé úkoly ({{count}}) jsou přiřazeny k této kategorii. Co s nimi chtete udělat?"
+  text_issue_category_destroy_question: "Některé úkoly (%{count}) jsou přiřazeny k této kategorii. Co s nimi chtete udělat?"
   text_issue_category_destroy_assignments: Zrušit přiřazení ke kategorii
   text_issue_category_reassign_to: Přiřadit úkoly do této kategorie
   text_user_mail_option: "U projektů, které nebyly vybrány, budete dostávat oznámení pouze o vaÅ¡ich Äi o sledovaných položkách (napÅ™. o položkách jejichž jste autor nebo ke kterým jste pÅ™iÅ™azen(a))."
   text_no_configuration_data: "Role, fronty, stavy úkolů ani průbÄ›h práce nebyly zatím nakonfigurovány.\nVelice doporuÄujeme nahrát výchozí konfiguraci. Po té si můžete vÅ¡e upravit"
   text_load_default_configuration: Nahrát výchozí konfiguraci
-  text_status_changed_by_changeset: "Použito v changesetu {{value}}."
+  text_status_changed_by_changeset: "Použito v changesetu %{value}."
   text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
   text_select_project_modules: 'Aktivní moduly v tomto projektu:'
   text_default_administrator_account_changed: Výchozí nastavení administrátorského úÄtu zmÄ›nÄ›no
   text_file_repository_writable: Povolen zápis do adresáře ukládání souborů
   text_rmagick_available: RMagick k dispozici (volitelné)
-  text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno {{hours}} práce. Co chete udělat?"
+  text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
   text_destroy_time_entries: Odstranit evidované hodiny.
   text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
   text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
@@ -711,15 +716,15 @@
   enumeration_activities: Aktivity (sledování Äasu)
   error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
   label_planning: Plánování
-  text_subprojects_destroy_warning: "Jeho podprojek(y): {{value}} budou také smazány."
-  label_and_its_subprojects: "{{value}} a jeho  podprojekty"
-  mail_body_reminder: "{{count}} úkol(ů), které máte přiřazeny má termín během několik dní ({{days}}):"
-  mail_subject_reminder: "{{count}} úkol(ů) má termín během několik dní ({{days}})"
-  text_user_wrote: "{{value}} napsal:"
+  text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
+  label_and_its_subprojects: "%{value} a jeho  podprojekty"
+  mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
+  mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
+  text_user_wrote: "%{value} napsal:"
   label_duplicated_by: duplikováno od
   setting_enabled_scm: Povolené SCM
   text_enumeration_category_reassign_to: 'Přeřadit je do této:'
-  text_enumeration_destroy_question: "Několik ({{count}}) objektů je přiřazeno k této hodnotě."
+  text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
   label_incoming_emails: Příchozí e-maily
   label_generate_key: Generovat klíÄ
   setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
@@ -785,12 +790,12 @@
   text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
   permission_edit_own_messages: Upravit vlastní zprávy
   permission_delete_own_messages: Smazat vlastní zprávy
-  label_user_activity: "Aktivita uživatele: {{value}}"
-  label_updated_time_by: "Akutualizováno: {{author}} před: {{age}}"
+  label_user_activity: "Aktivita uživatele: %{value}"
+  label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
   text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
   setting_diff_max_lines_displayed: Maximální poÄet zobrazenách řádků rozdílů
   text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
-  warning_attachments_not_saved: "{{count}} soubor(ů) nebylo možné uložit."
+  warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
   button_create_and_continue: VytvoÅ™it a pokraÄovat
   text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
   label_display: Zobrazit
@@ -805,21 +810,21 @@
   label_descending: SestupnÄ›
   label_sort: Řazení
   label_ascending: VzestupnÄ›
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Tato stránka má {{descendants}} podstránek a potomků. Co chcete udělat?
+  text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
   text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
   text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
   text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
   setting_password_min_length: Minimální délka hesla
   field_group_by: Seskupovat výsledky podle
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki stránka byla aktualizována"
+  mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
   label_wiki_content_added: Wiki stránka přidána
-  mail_subject_wiki_content_added: "'{{id}}' Wiki stránka byla přidána"
-  mail_body_wiki_content_added: "'{{id}}' Wiki stránka byla přidána od {{author}}."
+  mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
+  mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
   label_wiki_content_updated: Wiki stránka aktualizována
-  mail_body_wiki_content_updated: "'{{id}}' Wiki stránka byla aktualizována od {{author}}."
+  mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
   permission_add_project: Vytvořit projekt
   setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
   label_view_all_revisions: Zobrazit všechny revize
@@ -827,14 +832,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
   error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
-  text_journal_changed: "{{label}} změněn z {{old}} na {{new}}"
-  text_journal_set_to: "{{label}} nastaven na {{value}}"
-  text_journal_deleted: "{{label}} smazán ({{old}})"
+  text_journal_changed: "%{label} změněn z %{old} na %{new}"
+  text_journal_set_to: "%{label} nastaven na %{value}"
+  text_journal_deleted: "%{label} smazán (%{old})"
   label_group_plural: Skupiny
   label_group: Skupina
   label_group_new: Nová skupina
   label_time_entry_plural: Strávený Äas
-  text_journal_added: "{{label}} {{value}} přidán"
+  text_journal_added: "%{label} %{value} přidán"
   field_active: Aktivní
   enumeration_system_activity: Systémová aktivita
   permission_delete_issue_watchers: Smazat přihlížející
@@ -869,9 +874,9 @@
   setting_start_of_week: ZaÄínat kalendáře
   permission_view_issues: Zobrazit úkoly
   label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
-  label_revision_id: Revize {{value}}
+  label_revision_id: Revize %{value}
   label_api_access_key: API přístupový klíÄ
-  label_api_access_key_created_on: API přístupový klÃ­Ä vytvoÅ™en {{value}} 
+  label_api_access_key_created_on: API přístupový klÃ­Ä vytvoÅ™en %{value} 
   label_feeds_access_key: RSS přístupový klíÄ
   notice_api_access_key_reseted: Váš API přístupový klÃ­Ä byl resetován.
   setting_rest_api_enabled: Zapnout službu REST
@@ -898,12 +903,12 @@
   label_subtask_plural: Podúkol
   label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
   error_can_not_delete_custom_field: Nelze smazat volitelné pole
-  error_unable_to_connect: Nelze se připojit ({{value}})
+  error_unable_to_connect: Nelze se připojit (%{value})
   error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
   error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
   field_principal: Hlavní
   label_my_page_block: Bloky na mé stránce
-  notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): {{errors}}."
+  notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
   text_zoom_out: Oddálit
   text_zoom_in: Přiblížit
   notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
@@ -911,7 +916,7 @@
   field_time_entries: Zaznamenaný Äas
   project_module_gantt: Gantt
   project_module_calendar: Kalendář
-  button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: {{page_title}}"
+  button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
   text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
   field_text: Textové pole
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -922,8 +927,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/da.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/da.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: "et halvt minut"
       less_than_x_seconds:
         one:  "mindre end et sekund"
-        other: "mindre end {{count}} sekunder"
+        other: "mindre end %{count} sekunder"
       x_seconds:
         one:  "et sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one:  "mindre end et minut"
-        other: "mindre end {{count}} minutter"
+        other: "mindre end %{count} minutter"
       x_minutes:
         one:  "et minut"
-        other: "{{count}} minutter"
+        other: "%{count} minutter"
       about_x_hours:
         one:  "cirka en time"
-        other: "cirka {{count}} timer"
+        other: "cirka %{count} timer"
       x_days:
         one:  "en dag"
-        other: "{{count}} dage"
+        other: "%{count} dage"
       about_x_months:
         one:  "cirka en måned"
-        other: "cirka {{count}} måneder"
+        other: "cirka %{count} måneder"
       x_months:
         one:  "en måned"
-        other: "{{count}} måneder"
+        other: "%{count} måneder"
       about_x_years:
         one:  "cirka et år"
-        other: "cirka {{count}} år"
+        other: "cirka %{count} år"
       over_x_years:
         one:  "mere end et år"
-        other: "mere end {{count}} år"
+        other: "mere end %{count} år"
       almost_x_years:
         one:   "næsten 1 år"
-        other: "næsten {{count}} år"
+        other: "næsten %{count} år"
 
   number:
     format:
@@ -107,6 +107,10 @@
 
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "er ikke i listen"
         exclusion: "er reserveret"
@@ -115,16 +119,16 @@
         accepted: "skal accepteres"
         empty: "må ikke udelades"
         blank: "skal udfyldes"
-        too_long: "er for lang (højst {{count}} tegn)"
-        too_short: "er for kort (mindst {{count}} tegn)"
-        wrong_length: "har forkert længde (skulle være {{count}} tegn)"
+        too_long: "er for lang (højst %{count} tegn)"
+        too_short: "er for kort (mindst %{count} tegn)"
+        wrong_length: "har forkert længde (skulle være %{count} tegn)"
         taken: "er allerede anvendt"
         not_a_number: "er ikke et tal"
-        greater_than: "skal være større end {{count}}"
-        greater_than_or_equal_to: "skal være større end eller lig med {{count}}"
-        equal_to: "skal være lig med {{count}}"
-        less_than: "skal være mindre end {{count}}"
-        less_than_or_equal_to: "skal være mindre end eller lig med {{count}}"
+        greater_than: "skal være større end %{count}"
+        greater_than_or_equal_to: "skal være større end eller lig med %{count}"
+        equal_to: "skal være lig med %{count}"
+        less_than: "skal være mindre end %{count}"
+        less_than_or_equal_to: "skal være mindre end eller lig med %{count}"
         odd: "skal være ulige"
         even: "skal være lige"
         greater_than_start_date: "skal være senere end startdatoen"
@@ -134,8 +138,8 @@
 
       template:
         header:
-          one:   "En fejl forhindrede {{model}} i at blive gemt"
-          other:  "{{count}} fejl forhindrede denne {{model}} i at blive gemt"
+          one:   "En fejl forhindrede %{model} i at blive gemt"
+          other:  "%{count} fejl forhindrede denne %{model} i at blive gemt"
         body: "Der var problemer med følgende felter:"
   
   actionview_instancetag_blank_option: Vælg venligst
@@ -166,29 +170,29 @@
   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 ikke adgang til denne side.
-  notice_email_sent: "En email er sendt til {{value}}"
-  notice_email_error: "En fejl opstod under afsendelse af email ({{value}})"
+  notice_email_sent: "En email er sendt til %{value}"
+  notice_email_error: "En fejl opstod under afsendelse af email (%{value})"
   notice_feeds_access_key_reseted: Din adgangsnøgle til RSS er nulstillet.
-  notice_failed_to_save_issues: "Det mislykkedes at gemme {{count}} sage(r) på {{total}} valgt: {{ids}}."
+  notice_failed_to_save_issues: "Det mislykkedes at gemme %{count} sage(r) på %{total} valgt: %{ids}."
   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 administrators godkendelse."
   notice_default_data_loaded: Standardopsætningen er indlæst.
   
-  error_can_t_load_default_data: "Standardopsætning kunne ikke indlæses: {{value}}"
+  error_can_t_load_default_data: "Standardopsætning kunne ikke indlæses: %{value}"
   error_scm_not_found: "Adgang nægtet og/eller revision blev ikke fundet i det valgte repository."
-  error_scm_command_failed: "En fejl opstod under forbindelsen til det valgte repository: {{value}}"
+  error_scm_command_failed: "En fejl opstod under forbindelsen til det valgte repository: %{value}"
   
-  mail_subject_lost_password: "Dit {{value}} kodeord"
+  mail_subject_lost_password: "Dit %{value} kodeord"
   mail_body_lost_password: 'For at ændre dit kodeord, klik på dette link:'
-  mail_subject_register: "{{value}} kontoaktivering"
+  mail_subject_register: "%{value} kontoaktivering"
   mail_body_register: 'Klik på dette link for at aktivere din konto:'
-  mail_body_account_information_external: "Du kan bruge din {{value}} konto til at logge ind."
+  mail_body_account_information_external: "Du kan bruge din %{value} konto til at logge ind."
   mail_body_account_information: Din kontoinformation
-  mail_subject_account_activation_request: "{{value}} kontoaktivering"
-  mail_body_account_activation_request: "En ny bruger ({{value}}) er registreret. Godkend venligst kontoen:"
+  mail_subject_account_activation_request: "%{value} kontoaktivering"
+  mail_body_account_activation_request: "En ny bruger (%{value}) er registreret. Godkend venligst kontoen:"
   
   gui_validation_error: 1 fejl
-  gui_validation_error_plural: "{{count}} fejl"
+  gui_validation_error_plural: "%{count} fejl"
   
   field_name: Navn
   field_description: Beskrivelse
@@ -250,6 +254,7 @@
   field_attr_lastname: Efternavn attribut
   field_attr_mail: Email attribut
   field_onthefly: løbende brugeroprettelse
+  field_start_date: Start date
   field_done_ratio: % Færdig
   field_auth_source: Sikkerhedsmetode
   field_hide_mail: Skjul min email
@@ -318,14 +323,14 @@
   label_x_projects:
     zero:  Ingen projekter
     one:   1 projekt
-    other: "{{count}} projekter"
+    other: "%{count} projekter"
   label_project_all: Alle projekter
   label_project_latest: Seneste projekter
   label_issue: Sag
   label_issue_new: Opret sag
   label_issue_plural: Sager
   label_issue_view_all: Vis alle sager
-  label_issues_by: "Sager fra {{value}}"
+  label_issues_by: "Sager fra %{value}"
   label_issue_added: Sagen er oprettet
   label_issue_updated: Sagen er opdateret
   label_document: Dokument
@@ -370,7 +375,7 @@
   label_reported_issues: Rapporterede sager
   label_assigned_to_me_issues: Sager tildelt mig
   label_last_login: Sidste login tidspunkt
-  label_registered_on: Registeret den
+  label_registered_on: Registreret den
   label_activity: Aktivitet
   label_new: Ny
   label_logged_as: Registreret som
@@ -390,8 +395,8 @@
   label_text: Lang tekst
   label_attribute: Attribut
   label_attribute_plural: Attributter
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Ingen data at vise
   label_change_status: Ændringsstatus
   label_history: Historik
@@ -422,17 +427,17 @@
   label_closed_issues: lukket
   label_closed_issues_plural: lukkede
   label_x_open_issues_abbr_on_total:
-    zero:  0 åbne / {{total}}
-    one:   1 åben / {{total}}
-    other: "{{count}} åbne / {{total}}"
+    zero:  0 åbne / %{total}
+    one:   1 åben / %{total}
+    other: "%{count} åbne / %{total}"
   label_x_open_issues_abbr:
     zero:  0 åbne
     one:   1 åben
-    other: "{{count}} åbne"
+    other: "%{count} åbne"
   label_x_closed_issues_abbr:
     zero:  0 lukkede
     one:   1 lukket
-    other: "{{count}} lukkede"
+    other: "%{count} lukkede"
   label_total: Total
   label_permissions: Rettigheder
   label_current_status: Nuværende status
@@ -441,7 +446,7 @@
   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 note
@@ -450,7 +455,7 @@
   label_months_from: måneder frem
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "sidste {{count}} ændringer"
+  label_last_changes: "sidste %{count} ændringer"
   label_change_view_all: Vis alle ændringer
   label_personalize_page: Tilret denne side
   label_comment: Kommentar
@@ -458,7 +463,7 @@
   label_x_comments:
     zero: ingen kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Tilføj en kommentar
   label_comment_added: Kommentaren er tilføjet
   label_comment_delete: Slet kommentar
@@ -477,7 +482,7 @@
   label_yesterday: i går
   label_this_week: denne uge
   label_last_week: sidste uge
-  label_last_n_days: "sidste {{count}} dage"
+  label_last_n_days: "sidste %{count} dage"
   label_this_month: denne måned
   label_last_month: sidste måned
   label_this_year: dette år
@@ -491,8 +496,8 @@
   label_repository: Repository
   label_repository_plural: Repositories
   label_browse: Gennemse
-  label_modification: "{{count}} ændring"
-  label_modification_plural: "{{count}} ændringer"
+  label_modification: "%{count} ændring"
+  label_modification_plural: "%{count} ændringer"
   label_revision: Revision
   label_revision_plural: Revisioner
   label_associated_revisions: Tilnyttede revisioner
@@ -509,7 +514,7 @@
   label_sort_lowest: Flyt til bunden
   label_roadmap: Roadmap
   label_roadmap_due_in: Deadline
-  label_roadmap_overdue: "{{value}} forsinket"
+  label_roadmap_overdue: "%{value} forsinket"
   label_roadmap_no_issues: Ingen sager i denne version
   label_search: Søg
   label_result_plural: Resultater
@@ -527,8 +532,8 @@
   label_changes_details: Detaljer for alle ændringer
   label_issue_tracking: Sags søgning
   label_spent_time: Anvendt tid
-  label_f_hour: "{{value}} time"
-  label_f_hour_plural: "{{value}} timer"
+  label_f_hour: "%{value} time"
+  label_f_hour_plural: "%{value} timer"
   label_time_tracking: Tidsstyring
   label_change_plural: Ændringer
   label_statistics: Statistik
@@ -537,7 +542,7 @@
   label_view_diff: Vis forskelle
   label_diff_inline: inline
   label_diff_side_by_side: side om side
-  label_options: Optioner
+  label_options: Formatering
   label_copy_workflow_from: Kopier arbejdsgang fra
   label_permissions_report: Godkendelsesrapport
   label_watched_issues: Overvågede sager
@@ -547,7 +552,7 @@
   label_relation_new: Ny relation
   label_relation_delete: Slet relation
   label_relates_to: relaterer til
-  label_duplicates: kopierer
+  label_duplicates: duplikater
   label_blocks: blokerer
   label_blocked_by: blokeret af
   label_precedes: kommer før
@@ -576,12 +581,12 @@
   label_date_from: Fra
   label_date_to: Til
   label_language_based: Baseret på brugerens sprog
-  label_sort_by: "Sortér efter {{value}}"
+  label_sort_by: "Sortér efter %{value}"
   label_send_test_email: Send en test email
-  label_feeds_access_key_created_on: "RSS adgangsnøgle dannet for {{value}} siden"
+  label_feeds_access_key_created_on: "RSS adgangsnøgle dannet for %{value} siden"
   label_module_plural: Moduler
-  label_added_time_by: "Tilføjet af {{author}} for {{age}} siden"
-  label_updated_time: "Opdateret for {{value}} siden"
+  label_added_time_by: "Tilføjet af %{author} for %{age} siden"
+  label_updated_time: "Opdateret for %{value} siden"
   label_jump_to_a_project: Skift til projekt...
   label_file_plural: Filer
   label_changeset_plural: Ændringer
@@ -597,7 +602,7 @@
   label_registration_activation_by_email: kontoaktivering på email
   label_registration_manual_activation: manuel kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Per side: {{value}}"
+  label_display_per_page: "Per side: %{value}"
   label_age: Alder
   label_change_properties: Ændre indstillinger
   label_general: Generelt
@@ -659,23 +664,23 @@
   text_tip_issue_end_day: opaven slutter denne dag
   text_tip_issue_begin_end_day: opgaven begynder og slutter denne dag
   text_project_identifier_info: 'Små bogstaver (a-z), numre og bindestreg er tilladt.<br />Denne er en unik identifikation for projektet, og kan defor ikke rettes senere.'
-  text_caracters_maximum: "max {{count}} karakterer."
-  text_caracters_minimum: "Skal være mindst {{count}} karakterer lang."
-  text_length_between: "Længde skal være mellem {{min}} og {{max}} karakterer."
+  text_caracters_maximum: "max %{count} karakterer."
+  text_caracters_minimum: "Skal være mindst %{count} karakterer lang."
+  text_length_between: "Længde skal være mellem %{min} og %{max} karakterer."
   text_tracker_no_workflow: Ingen arbejdsgang defineret for denne type
   text_unallowed_characters: Ikke-tilladte karakterer
   text_comma_separated: Adskillige værdier tilladt (adskilt med komma).
   text_issues_ref_in_commit_messages: Referer og løser sager i commit-beskeder
-  text_issue_added: "Sag {{id}} er rapporteret af {{author}}."
-  text_issue_updated: "Sag {{id}} er blevet opdateret af {{author}}."
+  text_issue_added: "Sag %{id} er rapporteret af %{author}."
+  text_issue_updated: "Sag %{id} er blevet opdateret af %{author}."
   text_wiki_destroy_confirmation: Er du sikker på at du vil slette denne wiki og dens indhold?
-  text_issue_category_destroy_question: "Nogle sager ({{count}}) er tildelt denne kategori. Hvad ønsker du at gøre?"
+  text_issue_category_destroy_question: "Nogle sager (%{count}) er tildelt denne kategori. Hvad ønsker du at gøre?"
   text_issue_category_destroy_assignments: Slet tildelinger af kategori
   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 har indberettet eller ejer)."
   text_no_configuration_data: "Roller, typer, sagsstatuser og arbejdsgange er endnu ikke konfigureret.\nDet er anbefalet at indlæse standardopsætningen. Du vil kunne ændre denne når den er indlæst."
   text_load_default_configuration: Indlæs standardopsætningen
-  text_status_changed_by_changeset: "Anvendt i ændring {{value}}."
+  text_status_changed_by_changeset: "Anvendt i ændring %{value}."
   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 administratorkonto ændret
@@ -711,7 +716,7 @@
   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 projektaktivitet
-  text_destroy_time_entries_question: "{{hours}} timer er registreret på denne sag som du er ved at slette. Hvad vil du gøre?"
+  text_destroy_time_entries_question: "%{hours} timer er registreret 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 standard
@@ -725,7 +730,7 @@
   setting_default_projects_public: Nye projekter er offentlige som standard
   error_scm_annotate: "Filen findes ikke, eller kunne ikke annoteres."
   label_planning: Planlægning
-  text_subprojects_destroy_warning: "Dets underprojekter(er): {{value}} vil også blive slettet."
+  text_subprojects_destroy_warning: "Dets underprojekter(er): %{value} vil også blive slettet."
   permission_edit_issues: Redigér sager
   setting_diff_max_lines_displayed: Højeste antal forskelle der vises
   permission_edit_own_issue_notes: Redigér egne noter
@@ -752,7 +757,7 @@
   permission_protect_wiki_pages: Beskyt wiki sider
   permission_manage_documents: Administrér dokumenter
   permission_add_issue_watchers: Tilføj overvågere
-  warning_attachments_not_saved: "der var {{count}} fil(er), som ikke kunne gemmes."
+  warning_attachments_not_saved: "der var %{count} fil(er), som ikke kunne gemmes."
   permission_comment_news: Kommentér nyheder
   text_enumeration_category_reassign_to: 'FLyt dem til denne værdi:'
   permission_select_project_modules: Vælg projektmoduler
@@ -760,7 +765,7 @@
   permission_delete_messages: Slet beskeder
   permission_move_issues: Flyt sager
   permission_edit_wiki_pages: Redigér wiki sider
-  label_user_activity: "{{value}}'s aktivitet"
+  label_user_activity: "%{value}'s aktivitet"
   permission_manage_issue_relations: Administrér sags-relationer
   label_issue_watchers: Overvågere
   permission_delete_wiki_pages: Slet wiki sider
@@ -771,27 +776,27 @@
   permission_manage_boards: Administrér fora
   permission_delete_wiki_pages_attachments: Slet filer vedhæftet wiki sider
   permission_view_messages: Se beskeder
-  text_enumeration_destroy_question: "{{count}} objekter er tildelt denne værdi."
+  text_enumeration_destroy_question: "%{count} objekter er tildelt denne værdi."
   permission_manage_files: Administrér filer
   permission_add_messages: Opret beskeder
   permission_edit_issue_notes: Redigér noter
   permission_manage_news: Administrér nyheder
   text_plugin_assets_writable: Der er skriverettigheder til plugin assets folderen 
   label_display: Vis
-  label_and_its_subprojects: "{{value}} og dets underprojekter"
+  label_and_its_subprojects: "%{value} og dets underprojekter"
   permission_view_calendar: Se kalender
   button_create_and_continue: Opret og fortsæt
   setting_gravatar_enabled: Anvend Gravatar bruger ikoner
-  label_updated_time_by: "Opdateret af {{author}} for {{age}} siden"
+  label_updated_time_by: "Opdateret af %{author} for %{age} siden"
   text_diff_truncated: '... Listen over forskelle er bleve afkortet da den overstiger den maksimale størrelse der kan vises.'
-  text_user_wrote: "{{value}} skrev:"
+  text_user_wrote: "%{value} skrev:"
   setting_mail_handler_api_enabled: Aktiver webservice for indkomne emails
   permission_delete_issues: Slet sager
   permission_view_documents: Se dokumenter
   permission_browse_repository: Gennemse repository
   permission_manage_repository: Administrér repository
   permission_manage_members: Administrér medlemmer
-  mail_subject_reminder: "{{count}} sag(er) har deadline i de kommende dage ({{days}})"
+  mail_subject_reminder: "%{count} sag(er) har deadline i de kommende dage (%{days})"
   permission_add_issue_notes: Tilføj noter
   permission_edit_messages: Redigér beskeder
   permission_view_issue_watchers: Se liste over overvågere
@@ -816,26 +821,26 @@
   field_identity_url: OpenID URL
   label_login_with_open_id_option: eller login med OpenID
   setting_per_page_options: Enheder per side muligheder
-  mail_body_reminder: "{{count}} sage(er) som er tildelt dig har deadline indenfor de næste {{days}} dage:"
+  mail_body_reminder: "%{count} sage(er) som er tildelt dig har deadline indenfor de næste %{days} dage:"
   field_content: Indhold
   label_descending: Aftagende
   label_sort: Sortér
   label_ascending: Tiltagende
-  label_date_from_to: Fra {{start}} til {{end}}
+  label_date_from_to: Fra %{start} til %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Denne side har {{descendants}} underside(r) og afledte. Hvad vil du gøre?
+  text_wiki_page_destroy_question: Denne side har %{descendants} underside(r) og afledte. Hvad vil du gøre?
   text_wiki_page_reassign_children: Flyt undersider til denne side
   text_wiki_page_nullify_children: Behold undersider som rod-sider
   text_wiki_page_destroy_children: Slet undersider ogalle deres afledte sider.
   setting_password_min_length: Mindste længde på kodeord
   field_group_by: Gruppér resultater efter
-  mail_subject_wiki_content_updated: "'{{id}}' wikisiden er blevet opdateret"
+  mail_subject_wiki_content_updated: "'%{id}' wikisiden er blevet opdateret"
   label_wiki_content_added: Wiki side tilføjet
-  mail_subject_wiki_content_added: "'{{id}}' wikisiden er blevet tilføjet"
-  mail_body_wiki_content_added: The '{{id}}' wikiside er blevet tilføjet af {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wikisiden er blevet tilføjet"
+  mail_body_wiki_content_added: The '%{id}' wikiside er blevet tilføjet af %{author}.
   label_wiki_content_updated: Wikiside opdateret
-  mail_body_wiki_content_updated: Wikisiden '{{id}}' er blevet opdateret af {{author}}.
+  mail_body_wiki_content_updated: Wikisiden '%{id}' er blevet opdateret af %{author}.
   permission_add_project: Opret projekt
   setting_new_project_user_role_id: Denne rolle gives til en bruger, som ikke er administrator, og som opretter et projekt
   label_view_all_revisions: Se alle revisioner
@@ -843,14 +848,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Der er ingen sagshåndtering for dette projekt. Kontrollér venligst projektindstillingerne.
   error_no_default_issue_status: Der er ikek defineret en standardstatus. Kontrollér venligst indstillingernen (Gå til "Administration -> Sagsstatuser").
-  text_journal_changed: "{{label}} ændret fra {{old}} til {{new}}"
-  text_journal_set_to: "{{label}} sat til {{value}}"
-  text_journal_deleted: "{{label}} slettet ({{old}})"
+  text_journal_changed: "%{label} ændret fra %{old} til %{new}"
+  text_journal_set_to: "%{label} sat til %{value}"
+  text_journal_deleted: "%{label} slettet (%{old})"
   label_group_plural: Grupper
   label_group: Grupper
   label_group_new: Ny gruppe
   label_time_entry_plural: Anvendt tid
-  text_journal_added: "{{label}} {{value}} tilføjet"
+  text_journal_added: "%{label} %{value} tilføjet"
   field_active: Aktiv
   enumeration_system_activity: System Aktivitet
   permission_delete_issue_watchers: Slet overvågere
@@ -869,8 +874,8 @@
   label_version_sharing_tree: Med projekt træ
   label_version_sharing_none: Ikke delt
   error_can_not_archive_project: Dette projekt kan ikke arkiveres
-  button_duplicate: Kopier
-  button_copy_and_follow: Kopier og overvåg
+  button_duplicate: Duplikér
+  button_copy_and_follow: Kopiér og overvåg
   label_copy_source: Kilde
   setting_issue_done_ratio: Beregn sagsløsning ratio
   setting_issue_done_ratio_issue_status: Benyt sags status
@@ -885,9 +890,9 @@
   setting_start_of_week: Start kalendre på
   permission_view_issues: Vis sager
   label_display_used_statuses_only: Vis kun statuser der er benyttet af denne tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API nøgle
-  label_api_access_key_created_on: API nøgle genereret {{value}} siden
+  label_api_access_key_created_on: API nøgle genereret %{value} siden
   label_feeds_access_key: RSS nøgle
   notice_api_access_key_reseted: Din API nøgle er nulstillet.
   setting_rest_api_enabled: Aktiver REST web service
@@ -895,14 +900,14 @@
   label_missing_feeds_access_key: Mangler en RSS nøgle
   button_show: Vis
   text_line_separated: Flere væredier tilladt (en linje for hver værdi).
-  setting_mail_handler_body_delimiters: Trunker emails efter en af disse linjer
+  setting_mail_handler_body_delimiters: Trunkér emails efter en af disse linjer
   permission_add_subprojects: Lav underprojekter
   label_subproject_new: Nyt underprojekt
   text_own_membership_delete_confirmation: |-
     Du er ved at fjerne en eller flere af dine rettigheder, og kan muligvis ikke redigere projektet bagefter.
     Er du sikker på du ønsker at fortsætte?
   label_close_versions: Luk færdige versioner
-  label_board_sticky: Sticky
+  label_board_sticky: Klistret
   label_board_locked: LÃ¥st
   permission_export_wiki_pages: Eksporter wiki sider
   setting_cache_formatted_text: Cache formatteret tekst
@@ -913,33 +918,37 @@
   field_parent_issue: Hoved opgave
   label_subtask_plural: Under opgaver
   label_project_copy_notifications: Send email notifikationer, mens projektet kopieres
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  error_can_not_delete_custom_field: Kan ikke slette brugerdefineret felt
+  error_unable_to_connect: Kan ikke forbinde (%{value})
+  error_can_not_remove_role: Denne rolle er i brug og kan ikke slettes.
+  error_can_not_delete_tracker: Denne type indeholder sager og kan ikke slettes.
   field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
+  label_my_page_block: blok
+  notice_failed_to_save_members: "Fejl under lagring af medlem(mer): %{errors}."
+  text_zoom_out: Zoom ud
   text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
+  notice_unable_delete_time_entry: Kan ikke slette tidsregistrering.
+  label_overall_spent_time: Overordnet forbrug af tid
+  field_time_entries: Log tid
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
+  project_module_calendar: Kalender
+  button_edit_associated_wikipage: "Redigér tilknyttet Wiki side: %{page_title}"
+  text_are_you_sure_with_children: Slet sag og alle undersager?
+  field_text: Tekstfelt
   label_user_mail_option_only_owner: Only for things I am the owner of
   setting_default_notification_option: Default notification option
   label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
   label_user_mail_option_only_assigned: Only for things I am assigned to
   label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+  field_member_of_group: Medlem af Gruppe
+  field_assigned_to_role: Medlem af Rolle
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/de.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/de.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: 'eine halbe Minute'
       less_than_x_seconds:
         one: 'weniger als 1 Sekunde'
-        other: 'weniger als {{count}} Sekunden'
+        other: 'weniger als %{count} Sekunden'
       x_seconds:
         one: '1 Sekunde'
-        other: '{{count}} Sekunden'
+        other: '%{count} Sekunden'
       less_than_x_minutes:
         one: 'weniger als 1 Minute'
-        other: 'weniger als {{count}} Minuten'
+        other: 'weniger als %{count} Minuten'
       x_minutes:
         one: '1 Minute'
-        other: '{{count}} Minuten'
+        other: '%{count} Minuten'
       about_x_hours:
         one: 'etwa 1 Stunde'
-        other: 'etwa {{count}} Stunden'
+        other: 'etwa %{count} Stunden'
       x_days:
         one: '1 Tag'
-        other: '{{count}} Tagen'
+        other: '%{count} Tagen'
       about_x_months:
         one: 'etwa 1 Monat'
-        other: 'etwa {{count}} Monaten'
+        other: 'etwa %{count} Monaten'
       x_months:
         one: '1 Monat'
-        other: '{{count}} Monaten'
+        other: '%{count} Monaten'
       about_x_years:
         one: 'etwa 1 Jahr'
-        other: 'etwa {{count}} Jahren'
+        other: 'etwa %{count} Jahren'
       over_x_years:
         one: 'mehr als 1 Jahr'
-        other: 'mehr als {{count}} Jahren'
+        other: 'mehr als %{count} Jahren'
       almost_x_years:
         one:   "fast 1 Jahr"
-        other: "fast {{count}} Jahren"
+        other: "fast %{count} Jahren"
 
   number:
     # Default format for numbers
@@ -111,7 +111,9 @@
   activerecord:
     errors:
       template:
-        header: "Dieses {{model}}-Objekt konnte nicht gespeichert werden: {{count}} Fehler."
+        header:
+          one:    "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler."
+          other:  "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler."
         body: "Bitte überprüfen Sie die folgenden Felder:"
 
       messages:
@@ -122,17 +124,17 @@
         accepted: "muss akzeptiert werden"
         empty: "muss ausgefüllt werden"
         blank: "muss ausgefüllt werden"
-        too_long: "ist zu lang (nicht mehr als {{count}} Zeichen)"
-        too_short: "ist zu kurz (nicht weniger als {{count}} Zeichen)"
-        wrong_length: "hat die falsche Länge (muss genau {{count}} Zeichen haben)"
+        too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
+        too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
+        wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
         taken: "ist bereits vergeben"
         not_a_number: "ist keine Zahl"
         not_a_date: "is kein gültiges Datum"
-        greater_than: "muss größer als {{count}} sein"
-        greater_than_or_equal_to: "muss größer oder gleich {{count}} sein"
-        equal_to: "muss genau {{count}} sein"
-        less_than: "muss kleiner als {{count}} sein"
-        less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
+        greater_than: "muss größer als %{count} sein"
+        greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
+        equal_to: "muss genau %{count} sein"
+        less_than: "muss kleiner als %{count} sein"
+        less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
         odd: "muss ungerade sein"
         even: "muss gerade sein"
         greater_than_start_date: "muss größer als Anfangsdatum sein"
@@ -169,12 +171,12 @@
   notice_file_not_found: Anhang existiert nicht oder ist gelöscht worden.
   notice_locking_conflict: Datum wurde von einem anderen Benutzer geändert.
   notice_not_authorized: Sie sind nicht berechtigt, auf diese Seite zuzugreifen.
-  notice_email_sent: "Eine E-Mail wurde an {{value}} gesendet."
-  notice_email_error: "Beim Senden einer E-Mail ist ein Fehler aufgetreten ({{value}})."
+  notice_email_sent: "Eine E-Mail wurde an %{value} gesendet."
+  notice_email_error: "Beim Senden einer E-Mail ist ein Fehler aufgetreten (%{value})."
   notice_feeds_access_key_reseted: Ihr Atom-Zugriffsschlüssel wurde zurückgesetzt.
   notice_api_access_key_reseted: Ihr API-Zugriffsschlüssel wurde zurückgesetzt.
-  notice_failed_to_save_issues: "{{count}} von {{total}} ausgewählten Tickets konnte(n) nicht gespeichert werden: {{ids}}."
-  notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: {{errors}}."
+  notice_failed_to_save_issues: "%{count} von %{total} ausgewählten Tickets konnte(n) nicht gespeichert werden: %{ids}."
+  notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: %{errors}."
   notice_no_issue_selected: "Kein Ticket ausgewählt! Bitte wählen Sie die Tickets, die Sie bearbeiten möchten."
   notice_account_pending: "Ihr Konto wurde erstellt und wartet jetzt auf die Genehmigung des Administrators."
   notice_default_data_loaded: Die Standard-Konfiguration wurde erfolgreich geladen.
@@ -182,9 +184,9 @@
   notice_unable_delete_time_entry: Der Zeiterfassungseintrag konnte nicht gelöscht werden.
   notice_issue_done_ratios_updated: Der Ticket-Fortschritt wurde aktualisiert.
 
-  error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: {{value}}"
+  error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: %{value}"
   error_scm_not_found: Eintrag und/oder Revision existiert nicht im Projektarchiv.
-  error_scm_command_failed: "Beim Zugriff auf das Projektarchiv ist ein Fehler aufgetreten: {{value}}"
+  error_scm_command_failed: "Beim Zugriff auf das Projektarchiv ist ein Fehler aufgetreten: %{value}"
   error_scm_annotate: "Der Eintrag existiert nicht oder kann nicht annotiert werden."
   error_issue_not_found_in_project: 'Das Ticket wurde nicht gefunden oder gehört nicht zu diesem Projekt.'
   error_no_tracker_in_project: Diesem Projekt ist kein Tracker zugeordnet. Bitte überprüfen Sie die Projekteinstellungen.
@@ -198,26 +200,26 @@
   error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker und eine Quell-Rolle.
   error_workflow_copy_target: Bitte wählen Sie die Ziel-Tracker und -Rollen.
   error_unable_delete_issue_status: "Der Ticket-Status konnte nicht gelöscht werden."
-  error_unable_to_connect: Fehler beim Verbinden ({{value}})
-  warning_attachments_not_saved: "{{count}} Datei(en) konnten nicht gespeichert werden."
+  error_unable_to_connect: Fehler beim Verbinden (%{value})
+  warning_attachments_not_saved: "%{count} Datei(en) konnten nicht gespeichert werden."
   
-  mail_subject_lost_password: "Ihr {{value}} Kennwort"
+  mail_subject_lost_password: "Ihr %{value} Kennwort"
   mail_body_lost_password: 'Benutzen Sie den folgenden Link, um Ihr Kennwort zu ändern:'
-  mail_subject_register: "{{value}} Kontoaktivierung"
+  mail_subject_register: "%{value} Kontoaktivierung"
   mail_body_register: 'Um Ihr Konto zu aktivieren, benutzen Sie folgenden Link:'
-  mail_body_account_information_external: "Sie können sich mit Ihrem Konto {{value}} an anmelden."
+  mail_body_account_information_external: "Sie können sich mit Ihrem Konto %{value} an anmelden."
   mail_body_account_information: Ihre Konto-Informationen
-  mail_subject_account_activation_request: "Antrag auf {{value}} Kontoaktivierung"
-  mail_body_account_activation_request: "Ein neuer Benutzer ({{value}}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:"
-  mail_subject_reminder: "{{count}} Tickets müssen in den nächsten {{days}} Tagen abgegeben werden"
-  mail_body_reminder: "{{count}} Tickets, die Ihnen zugewiesen sind, müssen in den nächsten {{days}} Tagen abgegeben werden:"
-  mail_subject_wiki_content_added: "Wiki-Seite '{{id}}' hinzugefügt"
-  mail_body_wiki_content_added: "Die Wiki-Seite '{{id}}' wurde von {{author}} hinzugefügt."
-  mail_subject_wiki_content_updated: "Wiki-Seite '{{id}}' erfolgreich aktualisiert"
-  mail_body_wiki_content_updated: "Die Wiki-Seite '{{id}}' wurde von {{author}} aktualisiert."
+  mail_subject_account_activation_request: "Antrag auf %{value} Kontoaktivierung"
+  mail_body_account_activation_request: "Ein neuer Benutzer (%{value}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:"
+  mail_subject_reminder: "%{count} Tickets müssen in den nächsten %{days} Tagen abgegeben werden"
+  mail_body_reminder: "%{count} Tickets, die Ihnen zugewiesen sind, müssen in den nächsten %{days} Tagen abgegeben werden:"
+  mail_subject_wiki_content_added: "Wiki-Seite '%{id}' hinzugefügt"
+  mail_body_wiki_content_added: "Die Wiki-Seite '%{id}' wurde von %{author} hinzugefügt."
+  mail_subject_wiki_content_updated: "Wiki-Seite '%{id}' erfolgreich aktualisiert"
+  mail_body_wiki_content_updated: "Die Wiki-Seite '%{id}' wurde von %{author} aktualisiert."
 
   gui_validation_error: 1 Fehler
-  gui_validation_error_plural: "{{count}} Fehler"
+  gui_validation_error_plural: "%{count} Fehler"
 
   field_name: Name
   field_description: Beschreibung
@@ -280,6 +282,7 @@
   field_attr_lastname: Name-Attribut
   field_attr_mail: E-Mail-Attribut
   field_onthefly: On-the-fly-Benutzererstellung
+  field_start_date: Beginn
   field_done_ratio: % erledigt
   field_auth_source: Authentifizierungs-Modus
   field_hide_mail: E-Mail-Adresse nicht anzeigen
@@ -443,14 +446,14 @@
   label_x_projects:
     zero:  keine Projekte
     one:   1 Projekt
-    other: "{{count}} Projekte"
+    other: "%{count} Projekte"
   label_project_all: Alle Projekte
   label_project_latest: Neueste Projekte
   label_issue: Ticket
   label_issue_new: Neues Ticket
   label_issue_plural: Tickets
   label_issue_view_all: Alle Tickets anzeigen
-  label_issues_by: "Tickets von {{value}}"
+  label_issues_by: "Tickets von %{value}"
   label_issue_added: Ticket hinzugefügt
   label_issue_updated: Ticket aktualisiert
   label_document: Dokument
@@ -500,7 +503,7 @@
   label_registered_on: Angemeldet am
   label_activity: Aktivität
   label_overall_activity: Aktivität aller Projekte anzeigen
-  label_user_activity: "Aktivität von {{value}}"
+  label_user_activity: "Aktivität von %{value}"
   label_new: Neu
   label_logged_as: Angemeldet als
   label_environment: Umgebung
@@ -510,7 +513,7 @@
   label_auth_source_plural: Authentifizierungs-Arten
   label_subproject_plural: Unterprojekte
   label_subproject_new: Neues Unterprojekt
-  label_and_its_subprojects: "{{value}} und dessen Unterprojekte"
+  label_and_its_subprojects: "%{value} und dessen Unterprojekte"
   label_min_max_length: Länge (Min. - Max.)
   label_list: Liste
   label_date: Datum
@@ -521,8 +524,8 @@
   label_text: Langer Text
   label_attribute: Attribut
   label_attribute_plural: Attribute
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nichts anzuzeigen
   label_change_status: Statuswechsel
   label_history: Historie
@@ -554,17 +557,17 @@
   label_closed_issues: geschlossen
   label_closed_issues_plural: geschlossen
   label_x_open_issues_abbr_on_total:
-    zero:  0 offen / {{total}}
-    one:   1 offen / {{total}}
-    other: "{{count}} offen / {{total}}"
+    zero:  0 offen / %{total}
+    one:   1 offen / %{total}
+    other: "%{count} offen / %{total}"
   label_x_open_issues_abbr:
     zero:  0 offen
     one:   1 offen
-    other: "{{count}} offen"
+    other: "%{count} offen"
   label_x_closed_issues_abbr:
     zero:  0 geschlossen
     one:   1 geschlossen
-    other: "{{count}} geschlossen"
+    other: "%{count} geschlossen"
   label_total: Gesamtzahl
   label_permissions: Berechtigungen
   label_current_status: Gegenwärtiger Status
@@ -582,7 +585,7 @@
   label_months_from: Monate ab
   label_gantt: Gantt-Diagramm
   label_internal: Intern
-  label_last_changes: "{{count}} letzte Änderungen"
+  label_last_changes: "%{count} letzte Änderungen"
   label_change_view_all: Alle Änderungen anzeigen
   label_personalize_page: Diese Seite anpassen
   label_comment: Kommentar
@@ -590,7 +593,7 @@
   label_x_comments:
     zero: keine Kommentare
     one: 1 Kommentar
-    other: "{{count}} Kommentare"
+    other: "%{count} Kommentare"
   label_comment_add: Kommentar hinzufügen
   label_comment_added: Kommentar hinzugefügt
   label_comment_delete: Kommentar löschen
@@ -611,7 +614,7 @@
   label_yesterday: gestern
   label_this_week: aktuelle Woche
   label_last_week: vorige Woche
-  label_last_n_days: "die letzten {{count}} Tage"
+  label_last_n_days: "die letzten %{count} Tage"
   label_this_month: aktueller Monat
   label_last_month: voriger Monat
   label_this_year: aktuelles Jahr
@@ -625,13 +628,13 @@
   label_repository: Projektarchiv
   label_repository_plural: Projektarchive
   label_browse: Codebrowser
-  label_modification: "{{count}} Änderung"
-  label_modification_plural: "{{count}} Änderungen"
+  label_modification: "%{count} Änderung"
+  label_modification_plural: "%{count} Änderungen"
   label_branch: Zweig
   label_tag: Markierung
   label_revision: Revision
   label_revision_plural: Revisionen
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_associated_revisions: Zugehörige Revisionen
   label_added: hinzugefügt
   label_modified: geändert
@@ -648,8 +651,8 @@
   label_sort_lower: Eins tiefer
   label_sort_lowest: Ans Ende
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Fällig in {{value}}"
-  label_roadmap_overdue: "{{value}} verspätet"
+  label_roadmap_due_in: "Fällig in %{value}"
+  label_roadmap_overdue: "%{value} verspätet"
   label_roadmap_no_issues: Keine Tickets für diese Version
   label_search: Suche
   label_result_plural: Resultate
@@ -668,8 +671,8 @@
   label_issue_tracking: Tickets
   label_spent_time: Aufgewendete Zeit
   label_overall_spent_time: Aufgewendete Zeit aller Projekte anzeigen
-  label_f_hour: "{{value}} Stunde"
-  label_f_hour_plural: "{{value}} Stunden"
+  label_f_hour: "%{value} Stunde"
+  label_f_hour_plural: "%{value} Stunden"
   label_time_tracking: Zeiterfassung
   label_change_plural: Änderungen
   label_statistics: Statistiken
@@ -720,15 +723,15 @@
   label_date_from: Von
   label_date_to: Bis
   label_language_based: Sprachabhängig
-  label_sort_by: "Sortiert nach {{value}}"
+  label_sort_by: "Sortiert nach %{value}"
   label_send_test_email: Test-E-Mail senden
   label_feeds_access_key: RSS-Zugriffsschlüssel
   label_missing_feeds_access_key: Der RSS-Zugriffsschlüssel fehlt.
-  label_feeds_access_key_created_on: "Atom-Zugriffsschlüssel vor {{value}} erstellt"
+  label_feeds_access_key_created_on: "Atom-Zugriffsschlüssel vor %{value} erstellt"
   label_module_plural: Module
-  label_added_time_by: "Von {{author}} vor {{age}} hinzugefügt"
-  label_updated_time_by: "Von {{author}} vor {{age}} aktualisiert"
-  label_updated_time: "Vor {{value}} aktualisiert"
+  label_added_time_by: "Von %{author} vor %{age} hinzugefügt"
+  label_updated_time_by: "Von %{author} vor %{age} aktualisiert"
+  label_updated_time: "Vor %{value} aktualisiert"
   label_jump_to_a_project: Zu einem Projekt springen...
   label_file_plural: Dateien
   label_changeset_plural: Changesets
@@ -744,7 +747,7 @@
   label_registration_activation_by_email: Kontoaktivierung durch E-Mail
   label_registration_manual_activation: Manuelle Kontoaktivierung
   label_registration_automatic_activation: Automatische Kontoaktivierung
-  label_display_per_page: "Pro Seite: {{value}}"
+  label_display_per_page: "Pro Seite: %{value}"
   label_age: Geändert vor
   label_change_properties: Eigenschaften ändern
   label_general: Allgemein
@@ -767,7 +770,7 @@
   label_sort: Sortierung
   label_ascending: Aufsteigend
   label_descending: Absteigend
-  label_date_from_to: von {{start}} bis {{end}}
+  label_date_from_to: von %{start} bis %{end}
   label_wiki_content_added: Die Wiki-Seite wurde erfolgreich hinzugefügt.
   label_wiki_content_updated: Die Wiki-Seite wurde erfolgreich aktualisiert.
   label_group: Gruppe
@@ -786,7 +789,7 @@
   label_display_used_statuses_only: Zeige nur Status an, die von diesem Tracker verwendet werden
   label_api_access_key: API-Zugriffsschlüssel
   label_missing_api_access_key: Der API-Zugriffsschlüssel fehlt.
-  label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor {{value}} erstellt
+  label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor %{value} erstellt
   label_profile: Profil
   label_subtask_plural: Unteraufgaben
   label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
@@ -803,7 +806,7 @@
   button_create_and_continue: Anlegen und weiter
   button_test: Testen
   button_edit: Bearbeiten
-  button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: {{page_title}}"
+  button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: %{page_title}"
   button_add: Hinzufügen
   button_change: Wechseln
   button_apply: Anwenden
@@ -852,53 +855,54 @@
   text_regexp_info: z. B. ^[A-Z0-9]+$
   text_min_max_length_info: 0 heißt keine Beschränkung
   text_project_destroy_confirmation: Sind Sie sicher, dass sie das Projekt löschen wollen?
-  text_subprojects_destroy_warning: "Dessen Unterprojekte ({{value}}) werden ebenfalls gelöscht."
+  text_subprojects_destroy_warning: "Dessen Unterprojekte (%{value}) werden ebenfalls gelöscht."
   text_workflow_edit: Workflow zum Bearbeiten auswählen
   text_are_you_sure: Sind Sie sicher?
-  text_journal_changed: "{{label}} wurde von {{old}} zu {{new}} geändert"
-  text_journal_set_to: "{{label}} wurde auf {{value}} gesetzt"
-  text_journal_deleted: "{{label}} {{old}} wurde gelöscht"
-  text_journal_added: "{{label}} {{value}} wurde hinzugefügt"
+  text_are_you_sure_with_children: "Lösche Aufgabe und alle Unteraufgaben?"
+  text_journal_changed: "%{label} wurde von %{old} zu %{new} geändert"
+  text_journal_set_to: "%{label} wurde auf %{value} gesetzt"
+  text_journal_deleted: "%{label} %{old} wurde gelöscht"
+  text_journal_added: "%{label} %{value} wurde hinzugefügt"
   text_tip_issue_begin_day: Aufgabe, die an diesem Tag beginnt
   text_tip_issue_end_day: Aufgabe, die an diesem Tag endet
   text_tip_issue_begin_end_day: Aufgabe, die an diesem Tag beginnt und endet
   text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern und Bindestriche erlaubt.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.'
-  text_caracters_maximum: "Max. {{count}} Zeichen."
-  text_caracters_minimum: "Muss mindestens {{count}} Zeichen lang sein."
-  text_length_between: "Länge zwischen {{min}} und {{max}} Zeichen."
+  text_caracters_maximum: "Max. %{count} Zeichen."
+  text_caracters_minimum: "Muss mindestens %{count} Zeichen lang sein."
+  text_length_between: "Länge zwischen %{min} und %{max} Zeichen."
   text_tracker_no_workflow: Kein Workflow für diesen Tracker definiert.
   text_unallowed_characters: Nicht erlaubte Zeichen
   text_comma_separated: Mehrere Werte erlaubt (durch Komma getrennt).
   text_line_separated: Mehrere Werte sind erlaubt (eine Zeile pro Wert).
   text_issues_ref_in_commit_messages: Ticket-Beziehungen und -Status in Commit-Log-Meldungen
-  text_issue_added: "Ticket {{id}} wurde erstellt von {{author}}."
-  text_issue_updated: "Ticket {{id}} wurde aktualisiert von {{author}}."
+  text_issue_added: "Ticket %{id} wurde erstellt von %{author}."
+  text_issue_updated: "Ticket %{id} wurde aktualisiert von %{author}."
   text_wiki_destroy_confirmation: Sind Sie sicher, dass Sie dieses Wiki mit sämtlichem Inhalt löschen möchten?
-  text_issue_category_destroy_question: "Einige Tickets ({{count}}) sind dieser Kategorie zugeodnet. Was möchten Sie tun?"
+  text_issue_category_destroy_question: "Einige Tickets (%{count}) sind dieser Kategorie zugeodnet. Was möchten Sie tun?"
   text_issue_category_destroy_assignments: Kategorie-Zuordnung entfernen
   text_issue_category_reassign_to: Tickets dieser Kategorie zuordnen
   text_user_mail_option: "Für nicht ausgewählte Projekte werden Sie nur Benachrichtigungen für Dinge erhalten, die Sie beobachten oder an denen Sie beteiligt sind (z. B. Tickets, deren Autor Sie sind oder die Ihnen zugewiesen sind)."
   text_no_configuration_data: "Rollen, Tracker, Ticket-Status und Workflows wurden noch nicht konfiguriert.\nEs ist sehr zu empfehlen, die Standard-Konfiguration zu laden. Sobald sie geladen ist, können Sie sie abändern."
   text_load_default_configuration: Standard-Konfiguration laden
-  text_status_changed_by_changeset: "Status geändert durch Changeset {{value}}."
+  text_status_changed_by_changeset: "Status geändert durch Changeset %{value}."
   text_issues_destroy_confirmation: 'Sind Sie sicher, dass Sie die ausgewählten Tickets löschen möchten?'
   text_select_project_modules: 'Bitte wählen Sie die Module aus, die in diesem Projekt aktiviert sein sollen:'
   text_default_administrator_account_changed: Administrator-Kennwort geändert
   text_file_repository_writable: Verzeichnis für Dateien beschreibbar
   text_plugin_assets_writable: Verzeichnis für Plugin-Assets beschreibbar
   text_rmagick_available: RMagick verfügbar (optional)
-  text_destroy_time_entries_question: Es wurden bereits {{hours}} Stunden auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen?
+  text_destroy_time_entries_question: Es wurden bereits %{hours} Stunden auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen?
   text_destroy_time_entries: Gebuchte Aufwände löschen
   text_assign_time_entries_to_project: Gebuchte Aufwände dem Projekt zuweisen
   text_reassign_time_entries: 'Gebuchte Aufwände diesem Ticket zuweisen:'
-  text_user_wrote: "{{value}} schrieb:"
-  text_enumeration_destroy_question: "{{count}} Objekt(e) sind diesem Wert zugeordnet."
+  text_user_wrote: "%{value} schrieb:"
+  text_enumeration_destroy_question: "%{count} Objekt(e) sind diesem Wert zugeordnet."
   text_enumeration_category_reassign_to: 'Die Objekte stattdessen diesem Wert zuordnen:'
   text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/email.yml vor und starten Sie die Applikation neu."
   text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Log-Meldungen des Projektarchivs fest.\nBenutzer mit identischen Redmine- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet."
   text_diff_truncated: '... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.'
   text_custom_field_possible_values_info: 'Eine Zeile pro Wert'
-  text_wiki_page_destroy_question: "Diese Seite hat {{descendants}} Unterseite(n). Was möchten Sie tun?"
+  text_wiki_page_destroy_question: "Diese Seite hat %{descendants} Unterseite(n). Was möchten Sie tun?"
   text_wiki_page_nullify_children: Verschiebe die Unterseiten auf die oberste Ebene
   text_wiki_page_destroy_children: Lösche alle Unterseiten
   text_wiki_page_reassign_children: Ordne die Unterseiten dieser Seite zu
@@ -933,16 +937,19 @@
   enumeration_activities: Aktivitäten (Zeiterfassung)
   enumeration_system_activity: System-Aktivität
 
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  field_start_date: Start date
-  field_visible: Visible
-  setting_emails_header: Emails header
+  field_text: Textfeld
+  label_user_mail_option_only_owner: Nur für Aufgaben die ich angelegt habe
+  setting_default_notification_option: Standard Benachrichtigungsoptionen
+  label_user_mail_option_only_my_events: Nur für Aufgaben die ich beobachte oder an welchen ich mitarbeite
+  label_user_mail_option_only_assigned: Nur für Aufgaben für die ich zuständig bin.
+  notice_not_authorized_archived_project: Das Projekt wurde archiviert und ist daher nicht nicht verfügbar.
+  label_user_mail_option_none: keine Ereignisse
+  field_member_of_group: Zuständigkeitsgruppe
+  field_assigned_to_role: Zuständigkeitsrolle
+  field_visible: Sichtbar
+  setting_emails_header: Emailkopf
+  setting_commit_logtime_activity_id: Aktivität für die Zeiterfassung
+  text_time_logged_by_changeset: Angewendet in Changeset %{value}.
+  setting_commit_logtime_enabled: Aktiviere Zeitlogging
+  notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max})
+  setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden.
--- a/config/locales/.svn/text-base/el.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/el.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: "μισό λεπτό"
       less_than_x_seconds:
         one:   "λιγότεÏο από 1 δευτεÏόλεπτο"
-        other: "λιγότεÏο από {{count}} δευτεÏόλεπτα"
+        other: "λιγότεÏο από %{count} δευτεÏόλεπτα"
       x_seconds:
         one:   "1 δευτεÏόλεπτο"
-        other: "{{count}} δευτεÏόλεπτα"
+        other: "%{count} δευτεÏόλεπτα"
       less_than_x_minutes:
         one:   "λιγότεÏο από ένα λεπτό"
-        other: "λιγότεÏο από {{count}} λεπτά"
+        other: "λιγότεÏο από %{count} λεπτά"
       x_minutes:
         one:   "1 λεπτό"
-        other: "{{count}} λεπτά"
+        other: "%{count} λεπτά"
       about_x_hours:
         one:   "πεÏίπου 1 ÏŽÏα"
-        other: "πεÏίπου {{count}} ÏŽÏες"
+        other: "πεÏίπου %{count} ÏŽÏες"
       x_days:
         one:   "1 ημέÏα"
-        other: "{{count}} ημέÏες"
+        other: "%{count} ημέÏες"
       about_x_months:
         one:   "πεÏίπου 1 μήνα"
-        other: "πεÏίπου {{count}} μήνες"
+        other: "πεÏίπου %{count} μήνες"
       x_months:
         one:   "1 μήνα"
-        other: "{{count}} μήνες"
+        other: "%{count} μήνες"
       about_x_years:
         one:   "πεÏίπου 1 χÏόνο"
-        other: "πεÏίπου {{count}} χÏόνια"
+        other: "πεÏίπου %{count} χÏόνια"
       over_x_years:
         one:   "πάνω από 1 χÏόνο"
-        other: "πάνω από {{count}} χÏόνια"
+        other: "πάνω από %{count} χÏόνια"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
         
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "δεν πεÏιέχεται στη λίστα"
         exclusion: "έχει κατοχυÏωθεί"
@@ -103,17 +107,17 @@
         accepted: "Ï€Ïέπει να γίνει αποδοχή"
         empty: "δε μποÏεί να είναι άδειο"
         blank: "δε μποÏεί να είναι κενό"
-        too_long: "έχει πολλοÏÏ‚ (μέγ.επιτÏ. {{count}} χαÏακτήÏες)"
-        too_short: "έχει λίγους (ελάχ.επιτÏ. {{count}} χαÏακτήÏες)"
-        wrong_length: "δεν είναι σωστός ο αÏιθμός χαÏακτήÏων (Ï€Ïέπει να έχει {{count}} χαÏακτήÏες)"
+        too_long: "έχει πολλοÏÏ‚ (μέγ.επιτÏ. %{count} χαÏακτήÏες)"
+        too_short: "έχει λίγους (ελάχ.επιτÏ. %{count} χαÏακτήÏες)"
+        wrong_length: "δεν είναι σωστός ο αÏιθμός χαÏακτήÏων (Ï€Ïέπει να έχει %{count} χαÏακτήÏες)"
         taken: "έχει ήδη κατοχυÏωθεί"
         not_a_number: "δεν είναι αÏιθμός"
         not_a_date: "δεν είναι σωστή ημεÏομηνία"
-        greater_than: "Ï€Ïέπει να είναι μεγαλÏτεÏο από {{count}}"
-        greater_than_or_equal_to: "Ï€Ïέπει να είναι μεγαλÏτεÏο από ή ίσο με {{count}}"
-        equal_to: "Ï€Ïέπει να είναι ίσον με {{count}}"
-        less_than: "Ï€Ïέπει να είναι μικÏότεÏη από {{count}}"
-        less_than_or_equal_to: "Ï€Ïέπει να είναι μικÏότεÏο από ή ίσο με  {{count}}"
+        greater_than: "Ï€Ïέπει να είναι μεγαλÏτεÏο από %{count}"
+        greater_than_or_equal_to: "Ï€Ïέπει να είναι μεγαλÏτεÏο από ή ίσο με %{count}"
+        equal_to: "Ï€Ïέπει να είναι ίσον με %{count}"
+        less_than: "Ï€Ïέπει να είναι μικÏότεÏη από %{count}"
+        less_than_or_equal_to: "Ï€Ïέπει να είναι μικÏότεÏο από ή ίσο με  %{count}"
         odd: "Ï€Ïέπει να είναι μονός"
         even: "Ï€Ïέπει να είναι ζυγός"
         greater_than_start_date: "Ï€Ïέπει να είναι αÏγότεÏα από την ημεÏομηνία έναÏξης"
@@ -150,42 +154,42 @@
   notice_file_not_found: Η σελίδα που ζητήσατε δεν υπάÏχει ή έχει αφαιÏεθεί. 
   notice_locking_conflict: Τα δεδομένα έχουν ενημεÏωθεί από άλλο χÏήστη.
   notice_not_authorized: Δεν έχετε δικαίωμα Ï€Ïόσβασης σε αυτή τη σελίδα.
-  notice_email_sent: "Ένα μήνυμα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου εστάλη στο {{value}}"
-  notice_email_error: "Σφάλμα κατά την αποστολή του μηνÏματος στο ({{value}})"
+  notice_email_sent: "Ένα μήνυμα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου εστάλη στο %{value}"
+  notice_email_error: "Σφάλμα κατά την αποστολή του μηνÏματος στο (%{value})"
   notice_feeds_access_key_reseted:  Έγινε επαναφοÏά στο κλειδί Ï€Ïόσβασης RSS.
-  notice_failed_to_save_issues: "Αποτυχία αποθήκευσης {{count}} θεμα(των) από τα {{total}} επιλεγμένα: {{ids}}."
+  notice_failed_to_save_issues: "Αποτυχία αποθήκευσης %{count} θεμα(των) από τα %{total} επιλεγμένα: %{ids}."
   notice_no_issue_selected: "Κανένα θέμα δεν είναι επιλεγμένο! ΠαÏακαλοÏμε, ελέγξτε τα θέματα που θέλετε να επεξεÏγαστείτε."
   notice_account_pending: "Ο λογαÏιασμός σας έχει δημιουÏγηθεί και είναι σε στάδιο έγκÏισης από τον διαχειÏιστή."
   notice_default_data_loaded: Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις φοÏτώθηκαν επιτυχώς.
   notice_unable_delete_version: ΑδÏνατον να διαγÏαφεί η έκδοση.
   
-  error_can_t_load_default_data: "Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις δεν μπόÏεσαν να φοÏτωθοÏν:: {{value}}"
+  error_can_t_load_default_data: "Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις δεν μπόÏεσαν να φοÏτωθοÏν:: %{value}"
   error_scm_not_found: "Η εγγÏαφή ή η αναθεώÏηση δεν βÏέθηκε στο αποθετήÏιο."
-  error_scm_command_failed: "ΠαÏουσιάστηκε σφάλμα κατά την Ï€Ïοσπάθεια Ï€Ïόσβασης στο αποθετήÏιο: {{value}}"
+  error_scm_command_failed: "ΠαÏουσιάστηκε σφάλμα κατά την Ï€Ïοσπάθεια Ï€Ïόσβασης στο αποθετήÏιο: %{value}"
   error_scm_annotate: "Η καταχώÏιση δεν υπάÏχει ή δεν μποÏεί να σχολιαστεί."
   error_issue_not_found_in_project: 'Το θέμα δεν βÏέθηκε ή δεν ανήκει σε αυτό το έÏγο'
   error_no_tracker_in_project: 'Δεν υπάÏχει ανιχνευτής για αυτό το έÏγο. ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις του έÏγου.'
   error_no_default_issue_status: 'Δεν έχει οÏιστεί η Ï€Ïοεπιλογή  κατάστασης θεμάτων. ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις σας (Μεταβείτε στην  "ΔιαχείÏιση -> Κατάσταση θεμάτων").'
   
-  warning_attachments_not_saved: "{{count}} αÏχείο(α) δε μποÏοÏν να αποθηκευτοÏν."
+  warning_attachments_not_saved: "%{count} αÏχείο(α) δε μποÏοÏν να αποθηκευτοÏν."
   
-  mail_subject_lost_password: "Ο κωδικός σας {{value}}"
+  mail_subject_lost_password: "Ο κωδικός σας %{value}"
   mail_body_lost_password: 'Για να αλλάξετε τον κωδικό Ï€Ïόσβασης, πατήστε τον ακόλουθο σÏνδεσμο:'
-  mail_subject_register: "ΕνεÏγοποίηση του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Ï‡Ïήστη {{value}} "
+  mail_subject_register: "ΕνεÏγοποίηση του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Ï‡Ïήστη %{value} "
   mail_body_register: 'Για να ενεÏγοποιήσετε το λογαÏιασμό σας, επιλέξτε τον ακόλουθο σÏνδεσμο:'
-  mail_body_account_information_external: "ΜποÏείτε να χÏησιμοποιήσετε τον λογαÏιασμό {{value}} για να συνδεθείτε."
+  mail_body_account_information_external: "ΜποÏείτε να χÏησιμοποιήσετε τον λογαÏιασμό %{value} για να συνδεθείτε."
   mail_body_account_information: ΠληÏοφοÏίες του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÎ±Ï‚
-  mail_subject_account_activation_request: "αίτημα ενεÏγοποίησης λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï {{value}}"
-  mail_body_account_activation_request: "'Ένας νέος χÏήστης ({{value}}) έχει εγγÏαφεί. Ο λογαÏιασμός είναι σε στάδιο αναμονής της έγκÏισης σας:"
-  mail_subject_reminder: "{{count}} θέμα(τα) με Ï€Ïοθεσμία στις επόμενες {{days}} ημέÏες"
-  mail_body_reminder: "{{count}}θέμα(τα)  που έχουν ανατεθεί σε σας, με Ï€Ïοθεσμία στις επόμενες {{days}} ημέÏες:"
-  mail_subject_wiki_content_added: "'Ï€Ïοστέθηκε η σελίδα wiki {{id}}' "
-  mail_body_wiki_content_added: "Η σελίδα wiki '{{id}}' Ï€Ïοστέθηκε από τον {{author}}."
-  mail_subject_wiki_content_updated: "'ενημεÏώθηκε η σελίδα wiki {{id}}' "
-  mail_body_wiki_content_updated: "Η σελίδα wiki  '{{id}}' ενημεÏώθηκε από τον {{author}}."
+  mail_subject_account_activation_request: "αίτημα ενεÏγοποίησης λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï %{value}"
+  mail_body_account_activation_request: "'Ένας νέος χÏήστης (%{value}) έχει εγγÏαφεί. Ο λογαÏιασμός είναι σε στάδιο αναμονής της έγκÏισης σας:"
+  mail_subject_reminder: "%{count} θέμα(τα) με Ï€Ïοθεσμία στις επόμενες %{days} ημέÏες"
+  mail_body_reminder: "%{count}θέμα(τα)  που έχουν ανατεθεί σε σας, με Ï€Ïοθεσμία στις επόμενες %{days} ημέÏες:"
+  mail_subject_wiki_content_added: "'Ï€Ïοστέθηκε η σελίδα wiki %{id}' "
+  mail_body_wiki_content_added: "Η σελίδα wiki '%{id}' Ï€Ïοστέθηκε από τον %{author}."
+  mail_subject_wiki_content_updated: "'ενημεÏώθηκε η σελίδα wiki %{id}' "
+  mail_body_wiki_content_updated: "Η σελίδα wiki  '%{id}' ενημεÏώθηκε από τον %{author}."
   
   gui_validation_error: 1 σφάλμα
-  gui_validation_error_plural: "{{count}} σφάλματα"
+  gui_validation_error_plural: "%{count} σφάλματα"
   
   field_name: Όνομα
   field_description: ΠεÏιγÏαφή
@@ -247,6 +251,7 @@
   field_attr_lastname:  Ιδιότητα επωνÏμου
   field_attr_mail: Ιδιότητα email
   field_onthefly: Άμεση δημιουÏγία χÏήστη
+  field_start_date: Εκκίνηση
   field_done_ratio: % επιτεÏχθη
   field_auth_source: ΤÏόπος πιστοποίησης
   field_hide_mail: ΑπόκÏυψη διεÏθυνσης email
@@ -389,14 +394,14 @@
   label_x_projects:
     zero:  κανένα έÏγο
     one:   1 έÏγο
-    other: "{{count}} έÏγα"
+    other: "%{count} έÏγα"
   label_project_all: Όλα τα έÏγα
   label_project_latest: Τελευταία έÏγα
   label_issue: Θέμα
   label_issue_new: Îέο θέμα
   label_issue_plural: Θέματα
   label_issue_view_all: ΠÏοβολή όλων των θεμάτων
-  label_issues_by: "Θέματα του  {{value}}"
+  label_issues_by: "Θέματα του  %{value}"
   label_issue_added: Το θέμα Ï€Ïοστέθηκε
   label_issue_updated: Το θέμα ενημεÏώθηκε
   label_document: ΈγγÏαφο
@@ -445,7 +450,7 @@
   label_registered_on: ΕγγÏάφηκε την 
   label_activity: ΔÏαστηÏιότητα
   label_overall_activity: Συνολική δÏαστηÏιότητα
-  label_user_activity: "δÏαστηÏιότητα του {{value}}"
+  label_user_activity: "δÏαστηÏιότητα του %{value}"
   label_new: Îέο
   label_logged_as: ΣÏνδεδεμένος ως
   label_environment: ΠεÏιβάλλον
@@ -454,7 +459,7 @@
   label_auth_source_new: Îέος Ï„Ïόπος πιστοποίησης
   label_auth_source_plural: ΤÏόποι πιστοποίησης
   label_subproject_plural: ΕπιμέÏους έÏγα
-  label_and_its_subprojects: "{{value}} και τα επιμέÏους έÏγα του"
+  label_and_its_subprojects: "%{value} και τα επιμέÏους έÏγα του"
   label_min_max_length: Ελάχ. - Μέγ. μήκος
   label_list: Λίστα
   label_date: ΗμεÏομηνία
@@ -465,8 +470,8 @@
   label_text: ΜακÏοσκελές κείμενο
   label_attribute: Ιδιότητα
   label_attribute_plural: Ιδιότητες
-  label_download: "{{count}} ΜεταφόÏτωση"
-  label_download_plural: "{{count}} ΜεταφοÏτώσεις"
+  label_download: "%{count} ΜεταφόÏτωση"
+  label_download_plural: "%{count} ΜεταφοÏτώσεις"
   label_no_data: Δεν υπάÏχουν δεδομένα
   label_change_status: Αλλαγή κατάστασης
   label_history: ΙστοÏικό
@@ -497,17 +502,17 @@
   label_closed_issues: Κλειστό
   label_closed_issues_plural: Κλειστά
   label_x_open_issues_abbr_on_total:
-    zero:  0 ανοικτά / {{total}}
-    one:   1 ανοικτό / {{total}}
-    other: "{{count}} ανοικτά / {{total}}"
+    zero:  0 ανοικτά / %{total}
+    one:   1 ανοικτό / %{total}
+    other: "%{count} ανοικτά / %{total}"
   label_x_open_issues_abbr:
     zero:  0 ανοικτά
     one:   1 ανοικτό
-    other: "{{count}} ανοικτά"
+    other: "%{count} ανοικτά"
   label_x_closed_issues_abbr:
     zero:  0 κλειστά
     one:   1 κλειστό
-    other: "{{count}} κλειστά"
+    other: "%{count} κλειστά"
   label_total: ΣÏνολο
   label_permissions: Άδειες
   label_current_status: ΤÏέχουσα κατάσταση
@@ -525,7 +530,7 @@
   label_months_from: μηνών από
   label_gantt: Gantt
   label_internal: ΕσωτεÏικό
-  label_last_changes: "Τελευταίες {{count}} αλλαγές"
+  label_last_changes: "Τελευταίες %{count} αλλαγές"
   label_change_view_all: ΠÏοβολή όλων των αλλαγών
   label_personalize_page: ΠÏοσαÏμογή σελίδας
   label_comment: Σχόλιο
@@ -533,7 +538,7 @@
   label_x_comments:
     zero: δεν υπάÏχουν σχόλια
     one: 1 σχόλιο
-    other: "{{count}} σχόλια"
+    other: "%{count} σχόλια"
   label_comment_add: ΠÏοσθήκη σχολίου
   label_comment_added: Τα σχόλια Ï€Ïοστέθηκαν
   label_comment_delete: ΔιαγÏαφή σχολίων
@@ -554,7 +559,7 @@
   label_yesterday: χθες
   label_this_week: αυτή την εβδομάδα
   label_last_week: την Ï€ÏοηγοÏμενη εβδομάδα
-  label_last_n_days: "τελευταίες {{count}} μέÏες"
+  label_last_n_days: "τελευταίες %{count} μέÏες"
   label_this_month: αυτό το μήνα
   label_last_month: τον Ï€ÏοηγοÏμενο μήνα
   label_this_year: αυτό το χÏόνο
@@ -568,8 +573,8 @@
   label_repository: ΑποθετήÏιο
   label_repository_plural: ΑποθετήÏια
   label_browse: Πλοήγηση
-  label_modification: "{{count}} Ï„Ïοποποίηση"
-  label_modification_plural: "{{count}} Ï„Ïοποποιήσεις"
+  label_modification: "%{count} Ï„Ïοποποίηση"
+  label_modification_plural: "%{count} Ï„Ïοποποιήσεις"
   label_branch: Branch
   label_tag: Tag 
   label_revision: ΑναθεώÏηση
@@ -590,8 +595,8 @@
   label_sort_lower: Μετακίνηση Ï€Ïος τα κάτω
   label_sort_lowest: Μετακίνηση στο κατώτατο μέÏος
   label_roadmap: ΧάÏτης ποÏείας
-  label_roadmap_due_in: "ΠÏοθεσμία σε {{value}}"
-  label_roadmap_overdue: "{{value}} καθυστεÏημένο"
+  label_roadmap_due_in: "ΠÏοθεσμία σε %{value}"
+  label_roadmap_overdue: "%{value} καθυστεÏημένο"
   label_roadmap_no_issues: Δεν υπάÏχουν θέματα για αυτή την έκδοση
   label_search: Αναζήτηση
   label_result_plural: Αποτελέσματα
@@ -609,8 +614,8 @@
   label_changes_details: ΛεπτομέÏειες όλων των αλλαγών
   label_issue_tracking: Ανίχνευση θεμάτων
   label_spent_time: Δαπανημένος χÏόνος
-  label_f_hour: "{{value}} ÏŽÏα"
-  label_f_hour_plural: "{{value}} ÏŽÏες"
+  label_f_hour: "%{value} ÏŽÏα"
+  label_f_hour_plural: "%{value} ÏŽÏες"
   label_time_tracking: Ανίχνευση χÏόνου
   label_change_plural: Αλλαγές
   label_statistics: Στατιστικά
@@ -659,13 +664,13 @@
   label_date_from: Από
   label_date_to:  Έως
   label_language_based: Με βάση τη γλώσσα του χÏήστη
-  label_sort_by: "Ταξινόμηση ανά {{value}}"
+  label_sort_by: "Ταξινόμηση ανά %{value}"
   label_send_test_email: Αποστολή Î´Î¿ÎºÎ¹Î¼Î±ÏƒÏ„Î¹ÎºÎ¿Ï email
-  label_feeds_access_key_created_on: "το κλειδί Ï€Ïόσβασης RSS δημιουÏγήθηκε Ï€Ïιν από {{value}}"
+  label_feeds_access_key_created_on: "το κλειδί Ï€Ïόσβασης RSS δημιουÏγήθηκε Ï€Ïιν από %{value}"
   label_module_plural: Μονάδες
-  label_added_time_by: "ΠÏοστέθηκε από τον {{author}} Ï€Ïιν από {{age}}"
-  label_updated_time_by: "ΕνημεÏώθηκε από τον {{author}} Ï€Ïιν από {{age}}"
-  label_updated_time: "ΕνημεÏώθηκε Ï€Ïιν από {{value}}"
+  label_added_time_by: "ΠÏοστέθηκε από τον %{author} Ï€Ïιν από %{age}"
+  label_updated_time_by: "ΕνημεÏώθηκε από τον %{author} Ï€Ïιν από %{age}"
+  label_updated_time: "ΕνημεÏώθηκε Ï€Ïιν από %{value}"
   label_jump_to_a_project: Μεταβείτε σε ένα έÏγο...
   label_file_plural: ΑÏχεία
   label_changeset_plural: Changesets
@@ -681,7 +686,7 @@
   label_registration_activation_by_email: ενεÏγοποίηση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Î¼Îµ email
   label_registration_manual_activation: χειÏοκίνητη ενεÏγοποίηση λογαÏιασμοÏ
   label_registration_automatic_activation: αυτόματη ενεÏγοποίηση λογαÏιασμοÏ
-  label_display_per_page: "Ανά σελίδα: {{value}}"
+  label_display_per_page: "Ανά σελίδα: %{value}"
   label_age: Ηλικία
   label_change_properties: Αλλαγή ιδιοτήτων
   label_general: Γενικά
@@ -704,7 +709,7 @@
   label_sort: Ταξινόμηση
   label_ascending: ΑÏξουσα
   label_descending: Φθίνουσα
-  label_date_from_to: Από {{start}} έως {{end}}
+  label_date_from_to: Από %{start} έως %{end}
   label_wiki_content_added: Η σελίδα Wiki Ï€Ïοστέθηκε
   label_wiki_content_updated: Η σελίδα Wiki ενημεÏώθηκε
   
@@ -756,48 +761,48 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 σημαίνει ότι δεν υπάÏχουν πεÏιοÏισμοί
   text_project_destroy_confirmation: Είστε σίγουÏοι ότι θέλετε να διαγÏάψετε αυτό το έÏγο και τα σχετικά δεδομένα του;
-  text_subprojects_destroy_warning: "Επίσης το(α) επιμέÏους έÏγο(α): {{value}}  θα διαγÏαφοÏν."
+  text_subprojects_destroy_warning: "Επίσης το(α) επιμέÏους έÏγο(α): %{value}  θα διαγÏαφοÏν."
   text_workflow_edit: Επιλέξτε ένα Ïόλο και έναν ανιχνευτή για να επεξεÏγαστείτε  τη Ïοή εÏγασίας
   text_are_you_sure: Είστε σίγουÏος ;
   text_tip_issue_begin_day: καθήκοντα που ξεκινάνε σήμεÏα
   text_tip_issue_end_day: καθήκοντα που τελειώνουν σήμεÏα
   text_tip_issue_begin_end_day: καθήκοντα που ξεκινάνε και τελειώνουν σήμεÏα
   text_project_identifier_info: 'ΕπιτÏέπονται μόνο μικÏά πεζά γÏάμματα (a-z), αÏιθμοί και παÏλες. <br /> Μετά την αποθήκευση, το αναγνωÏιστικό δεν μποÏεί να αλλάξει.'
-  text_caracters_maximum: "μέγιστος αÏιθμός {{count}} χαÏακτήÏες."
-  text_caracters_minimum: "ΠÏέπει να πεÏιέχει τουλάχιστον {{count}} χαÏακτήÏες."
-  text_length_between: "Μήκος Î¼ÎµÏ„Î±Î¾Ï {{min}} και {{max}} χαÏακτήÏες."
+  text_caracters_maximum: "μέγιστος αÏιθμός %{count} χαÏακτήÏες."
+  text_caracters_minimum: "ΠÏέπει να πεÏιέχει τουλάχιστον %{count} χαÏακτήÏες."
+  text_length_between: "Μήκος Î¼ÎµÏ„Î±Î¾Ï %{min} και %{max} χαÏακτήÏες."
   text_tracker_no_workflow: Δεν έχει οÏιστεί Ïοή εÏγασίας για αυτό τον ανιχνευτή
   text_unallowed_characters: Μη επιτÏεπόμενοι χαÏακτήÏες
   text_comma_separated: ΕπιτÏέπονται πολλαπλές τιμές (χωÏισμένες με κόμμα).
   text_issues_ref_in_commit_messages: ΑναφοÏά και καθοÏισμός θεμάτων σε μηνÏματα commit
-  text_issue_added: "Το θέμα {{id}} παÏουσιάστηκε από τον {{author}}."
-  text_issue_updated: "Το θέμα {{id}} ενημεÏώθηκε από τον {{author}}."
+  text_issue_added: "Το θέμα %{id} παÏουσιάστηκε από τον %{author}."
+  text_issue_updated: "Το θέμα %{id} ενημεÏώθηκε από τον %{author}."
   text_wiki_destroy_confirmation: Είστε σίγουÏοι ότι θέλετε να διαγÏάψετε αυτό το wiki και όλο το πεÏιεχόμενο του ;
-  text_issue_category_destroy_question: "Κάποια θέματα ({{count}}) έχουν εκχωÏηθεί σε αυτή την κατηγοÏία. Τι θέλετε να κάνετε ;"
+  text_issue_category_destroy_question: "Κάποια θέματα (%{count}) έχουν εκχωÏηθεί σε αυτή την κατηγοÏία. Τι θέλετε να κάνετε ;"
   text_issue_category_destroy_assignments: ΑφαίÏεση εκχωÏήσεων κατηγοÏίας
   text_issue_category_reassign_to: ΕπανεκχώÏηση θεμάτων σε αυτή την κατηγοÏία
   text_user_mail_option: "Για μη επιλεγμένα έÏγα, θα λάβετε ειδοποιήσεις μόνο για Ï€Ïάγματα που παÏακολουθείτε ή στα οποία συμμετέχω ενεÏγά (Ï€.χ. θέματα των οποίων είστε συγγÏαφέας ή σας έχουν ανατεθεί)."
   text_no_configuration_data: "Οι Ïόλοι, οι ανιχνευτές, η κατάσταση των θεμάτων και η Ïοή εÏγασίας δεν έχουν Ïυθμιστεί ακόμα.\nΣυνιστάται ιδιαίτεÏα να φοÏτώσετε τις Ï€Ïοεπιλεγμένες Ïυθμίσεις. Θα είστε σε θέση να τις Ï„Ïοποποιήσετε μετά τη φόÏτωση τους."
   text_load_default_configuration: ΦόÏτωση Ï€Ïοεπιλεγμένων Ïυθμίσεων
-  text_status_changed_by_changeset: "ΕφαÏμόστηκε στο changeset {{value}}."
+  text_status_changed_by_changeset: "ΕφαÏμόστηκε στο changeset %{value}."
   text_issues_destroy_confirmation: 'Είστε σίγουÏος ότι θέλετε να διαγÏάψετε το επιλεγμένο θέμα(τα);'
   text_select_project_modules: 'Επιλέξτε ποιες μονάδες θα ενεÏγοποιήσετε για αυτό το έÏγο:'
   text_default_administrator_account_changed: Ο Ï€ÏοκαθοÏισμένος λογαÏιασμός του διαχειÏιστή άλλαξε
   text_file_repository_writable: ΕγγÏάψιμος κατάλογος συνημμένων
   text_plugin_assets_writable: ΕγγÏάψιμος κατάλογος plugin assets
   text_rmagick_available: Διαθέσιμο RMagick (Ï€ÏοαιÏετικό)
-  text_destroy_time_entries_question: "{{hours}} δαπανήθηκαν σχετικά με τα θέματα που Ï€Ïόκειται να διαγÏάψετε. Τι θέλετε να κάνετε ;"
+  text_destroy_time_entries_question: "%{hours} δαπανήθηκαν σχετικά με τα θέματα που Ï€Ïόκειται να διαγÏάψετε. Τι θέλετε να κάνετε ;"
   text_destroy_time_entries: ΔιαγÏαφή αναφεÏόμενων ωÏών
   text_assign_time_entries_to_project: Ανάθεση αναφεÏόμενων ωÏών στο έÏγο
   text_reassign_time_entries: 'Ανάθεση εκ νέου των αναφεÏόμενων ωÏών στο θέμα:'
-  text_user_wrote: "{{value}} έγÏαψε:"
-  text_enumeration_destroy_question: "{{count}} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
+  text_user_wrote: "%{value} έγÏαψε:"
+  text_enumeration_destroy_question: "%{count} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
   text_enumeration_category_reassign_to: 'ΕπανεκχώÏηση τους στην παÏοÏσα αξία:'
   text_email_delivery_not_configured: "Δεν έχουν γίνει Ïυθμίσεις παÏάδοσης email, και οι ειδοποιήσεις είναι απενεÏγοποιημένες.\nΔηλώστε τον εξυπηÏετητή SMTP στο config/email.yml και κάντε επανακκίνηση την εφαÏμογή για να τις Ïυθμίσεις."
   text_repository_usernames_mapping: "Επιλέξτε ή ενημεÏώστε τον χÏήστη Redmine που αντιστοιχεί σε κάθε όνομα χÏήστη  στο ιστοÏικό του αποθετηÏίου.\nΧÏήστες με το ίδιο όνομα χÏήστη ή email στο Redmine και στο αποθετηÏίο αντιστοιχίζονται αυτόματα."
   text_diff_truncated: '... Αυτό το diff εχεί κοπεί επειδή υπεÏβαίνει το μέγιστο μέγεθος που μποÏεί να Ï€Ïοβληθεί.'
   text_custom_field_possible_values_info: 'Μία γÏαμμή για κάθε τιμή'
-  text_wiki_page_destroy_question: "Αυτή η σελίδα έχει {{descendants}} σελίδες τέκνων και απογόνων. Τι θέλετε να κάνετε ;"
+  text_wiki_page_destroy_question: "Αυτή η σελίδα έχει %{descendants} σελίδες τέκνων και απογόνων. Τι θέλετε να κάνετε ;"
   text_wiki_page_nullify_children: "ΔιατηÏήστε τις σελίδες τέκνων ως σελίδες root"
   text_wiki_page_destroy_children: "ΔιαγÏάψτε όλες τις σελίδες τέκνων και των απογόνων τους"
   text_wiki_page_reassign_children: "ΕπανεκχώÏιση των σελίδων τέκνων στη γονική σελίδα"
@@ -827,14 +832,14 @@
   enumeration_issue_priorities: ΠÏοτεÏαιότητα θέματος
   enumeration_doc_categories: ΚατηγοÏία εγγÏάφων
   enumeration_activities: ΔÏαστηÏιότητες (κατακεÏματισμός χÏόνου)
-  text_journal_changed: "{{label}} άλλαξε από {{old}} σε {{new}}"
-  text_journal_set_to: "{{label}} οÏίζεται σε {{value}}"
-  text_journal_deleted: "{{label}} διαγÏάφηκε ({{old}})"
+  text_journal_changed: "%{label} άλλαξε από %{old} σε %{new}"
+  text_journal_set_to: "%{label} οÏίζεται σε %{value}"
+  text_journal_deleted: "%{label} διαγÏάφηκε (%{old})"
   label_group_plural: Ομάδες
   label_group: Ομάδα
   label_group_new: Îέα ομάδα
   label_time_entry_plural: ΧÏόνος που δαπανήθηκε
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -869,9 +874,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -898,12 +903,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -911,7 +916,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -922,8 +927,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/en-GB.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/en-GB.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,933 +1,942 @@
-en-GB:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d/%m/%Y"
-      short: "%d %b"
-      long: "%d %B, %Y"
-      
-    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
-    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
-    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
-    # Used in date_select and datime_select.
-    order: [ :year, :month, :day ]
-
-  time:
-    formats:
-      default: "%d/%m/%Y %I:%M %p"
-      time: "%I:%M %p"
-      short: "%d %b %H:%M"
-      long: "%d %B, %Y %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "half a minute"
-      less_than_x_seconds:
-        one:   "less than 1 second"
-        other: "less than {{count}} seconds"
-      x_seconds:
-        one:   "1 second"
-        other: "{{count}} seconds"
-      less_than_x_minutes:
-        one:   "less than a minute"
-        other: "less than {{count}} minutes"
-      x_minutes:
-        one:   "1 minute"
-        other: "{{count}} minutes"
-      about_x_hours:
-        one:   "about 1 hour"
-        other: "about {{count}} hours"
-      x_days:
-        one:   "1 day"
-        other: "{{count}} days"
-      about_x_months:
-        one:   "about 1 month"
-        other: "about {{count}} months"
-      x_months:
-        one:   "1 month"
-        other: "{{count}} months"
-      about_x_years:
-        one:   "about 1 year"
-        other: "about {{count}} years"
-      over_x_years:
-        one:   "over 1 year"
-        other: "over {{count}} years"
-      almost_x_years:
-        one:   "almost 1 year"
-        other: "almost {{count}} years"
-
-  number:
-    format:
-      separator: "."
-      delimiter: " "
-      precision: 3
-
-    currency:
-      format:
-        format: "%u%n"
-        unit: "£"
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "kB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "and"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "is not included in the list"
-        exclusion: "is reserved"
-        invalid: "is invalid"
-        confirmation: "doesn't match confirmation"
-        accepted: "must be accepted"
-        empty: "can't be empty"
-        blank: "can't be blank"
-        too_long: "is too long (maximum is {{count}} characters)"
-        too_short: "is too short (minimum is {{count}} characters)"
-        wrong_length: "is the wrong length (should be {{count}} characters)"
-        taken: "has already been taken"
-        not_a_number: "is not a number"
-        not_a_date: "is not a valid date"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
-        odd: "must be odd"
-        even: "must be even"
-        greater_than_start_date: "must be greater than start date"
-        not_same_project: "doesn't belong to the same project"
-        circular_dependency: "This relation would create a circular dependency"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Please select
-  
-  general_text_No: 'No'
-  general_text_Yes: 'Yes'
-  general_text_no: 'no'
-  general_text_yes: 'yes'
-  general_lang_name: 'English (British)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: ISO-8859-1
-  general_pdf_encoding: ISO-8859-1
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Account was successfully updated.
-  notice_account_invalid_creditentials: Invalid user or password
-  notice_account_password_updated: Password was successfully updated.
-  notice_account_wrong_password: Wrong password
-  notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
-  notice_account_unknown_email: Unknown user.
-  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
-  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
-  notice_account_activated: Your account has been activated. You can now log in.
-  notice_successful_create: Successful creation.
-  notice_successful_update: Successful update.
-  notice_successful_delete: Successful deletion.
-  notice_successful_connection: Successful connection.
-  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
-  notice_locking_conflict: Data has been updated by another user.
-  notice_not_authorized: You are not authorised to access this page.
-  notice_email_sent: "An email was sent to {{value}}"
-  notice_email_error: "An error occurred while sending mail ({{value}})"
-  notice_feeds_access_key_reseted: Your RSS access key was reset.
-  notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
-  notice_account_pending: "Your account was created and is now pending administrator approval."
-  notice_default_data_loaded: Default configuration successfully loaded.
-  notice_unable_delete_version: Unable to delete version.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-  
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
-  error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
-  error_scm_annotate: "The entry does not exist or can not be annotated."
-  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
-  
-  mail_subject_lost_password: "Your {{value}} password"
-  mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
-  mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
-  mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "A new user ({{value}}) has registered. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-  
-  gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
-  
-  field_name: Name
-  field_description: Description
-  field_summary: Summary
-  field_is_required: Required
-  field_firstname: Firstname
-  field_lastname: Lastname
-  field_mail: Email
-  field_filename: File
-  field_filesize: Size
-  field_downloads: Downloads
-  field_author: Author
-  field_created_on: Created
-  field_updated_on: Updated
-  field_field_format: Format
-  field_is_for_all: For all projects
-  field_possible_values: Possible values
-  field_regexp: Regular expression
-  field_min_length: Minimum length
-  field_max_length: Maximum length
-  field_value: Value
-  field_category: Category
-  field_title: Title
-  field_project: Project
-  field_issue: Issue
-  field_status: Status
-  field_notes: Notes
-  field_is_closed: Issue closed
-  field_is_default: Default value
-  field_tracker: Tracker
-  field_subject: Subject
-  field_due_date: Due date
-  field_assigned_to: Assignee
-  field_priority: Priority
-  field_fixed_version: Target version
-  field_user: User
-  field_role: Role
-  field_homepage: Homepage
-  field_is_public: Public
-  field_parent: Subproject of
-  field_is_in_roadmap: Issues displayed in roadmap
-  field_login: Login
-  field_mail_notification: Email notifications
-  field_admin: Administrator
-  field_last_login_on: Last connection
-  field_language: Language
-  field_effective_date: Date
-  field_password: Password
-  field_new_password: New password
-  field_password_confirmation: Confirmation
-  field_version: Version
-  field_type: Type
-  field_host: Host
-  field_port: Port
-  field_account: Account
-  field_base_dn: Base DN
-  field_attr_login: Login attribute
-  field_attr_firstname: Firstname attribute
-  field_attr_lastname: Lastname attribute
-  field_attr_mail: Email attribute
-  field_onthefly: On-the-fly user creation
-  field_start_date: Start date
-  field_done_ratio: % Done
-  field_auth_source: Authentication mode
-  field_hide_mail: Hide my email address
-  field_comments: Comment
-  field_url: URL
-  field_start_page: Start page
-  field_subproject: Subproject
-  field_hours: Hours
-  field_activity: Activity
-  field_spent_on: Date
-  field_identifier: Identifier
-  field_is_filter: Used as a filter
-  field_issue_to: Related issue
-  field_delay: Delay
-  field_assignable: Issues can be assigned to this role
-  field_redirect_existing_links: Redirect existing links
-  field_estimated_hours: Estimated time
-  field_column_names: Columns
-  field_time_zone: Time zone
-  field_searchable: Searchable
-  field_default_value: Default value
-  field_comments_sorting: Display comments
-  field_parent_title: Parent page
-  field_editable: Editable
-  field_watcher: Watcher
-  field_identity_url: OpenID URL
-  field_content: Content
-  field_group_by: Group results by
-  field_sharing: Sharing
-  
-  setting_app_title: Application title
-  setting_app_subtitle: Application subtitle
-  setting_welcome_text: Welcome text
-  setting_default_language: Default language
-  setting_login_required: Authentication required
-  setting_self_registration: Self-registration
-  setting_attachment_max_size: Attachment max. size
-  setting_issues_export_limit: Issues export limit
-  setting_mail_from: Emission email address
-  setting_bcc_recipients: Blind carbon copy recipients (bcc)
-  setting_plain_text_mail: Plain text mail (no HTML)
-  setting_host_name: Host name and path
-  setting_text_formatting: Text formatting
-  setting_wiki_compression: Wiki history compression
-  setting_feeds_limit: Feed content limit
-  setting_default_projects_public: New projects are public by default
-  setting_autofetch_changesets: Autofetch commits
-  setting_sys_api_enabled: Enable WS for repository management
-  setting_commit_ref_keywords: Referencing keywords
-  setting_commit_fix_keywords: Fixing keywords
-  setting_autologin: Autologin
-  setting_date_format: Date format
-  setting_time_format: Time format
-  setting_cross_project_issue_relations: Allow cross-project issue relations
-  setting_issue_list_default_columns: Default columns displayed on the issue list
-  setting_repositories_encodings: Repositories encodings
-  setting_commit_logs_encoding: Commit messages encoding
-  setting_emails_footer: Emails footer
-  setting_protocol: Protocol
-  setting_per_page_options: Objects per page options
-  setting_user_format: Users display format
-  setting_activity_days_default: Days displayed on project activity
-  setting_display_subprojects_issues: Display subprojects issues on main projects by default
-  setting_enabled_scm: Enabled SCM
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: Enable WS for incoming emails
-  setting_mail_handler_api_key: API key
-  setting_sequential_project_identifiers: Generate sequential project identifiers
-  setting_gravatar_enabled: Use Gravatar user icons
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Max number of diff lines displayed
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Allow OpenID login and registration
-  setting_password_min_length: Minimum password length
-  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-  
-  permission_add_project: Create project
-  permission_add_subprojects: Create subprojects
-  permission_edit_project: Edit project
-  permission_select_project_modules: Select project modules
-  permission_manage_members: Manage members
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Manage versions
-  permission_manage_categories: Manage issue categories
-  permission_view_issues: View Issues
-  permission_add_issues: Add issues
-  permission_edit_issues: Edit issues
-  permission_manage_issue_relations: Manage issue relations
-  permission_add_issue_notes: Add notes
-  permission_edit_issue_notes: Edit notes
-  permission_edit_own_issue_notes: Edit own notes
-  permission_move_issues: Move issues
-  permission_delete_issues: Delete issues
-  permission_manage_public_queries: Manage public queries
-  permission_save_queries: Save queries
-  permission_view_gantt: View gantt chart
-  permission_view_calendar: View calendar
-  permission_view_issue_watchers: View watchers list
-  permission_add_issue_watchers: Add watchers
-  permission_delete_issue_watchers: Delete watchers
-  permission_log_time: Log spent time
-  permission_view_time_entries: View spent time
-  permission_edit_time_entries: Edit time logs
-  permission_edit_own_time_entries: Edit own time logs
-  permission_manage_news: Manage news
-  permission_comment_news: Comment news
-  permission_manage_documents: Manage documents
-  permission_view_documents: View documents
-  permission_manage_files: Manage files
-  permission_view_files: View files
-  permission_manage_wiki: Manage wiki
-  permission_rename_wiki_pages: Rename wiki pages
-  permission_delete_wiki_pages: Delete wiki pages
-  permission_view_wiki_pages: View wiki
-  permission_view_wiki_edits: View wiki history
-  permission_edit_wiki_pages: Edit wiki pages
-  permission_delete_wiki_pages_attachments: Delete attachments
-  permission_protect_wiki_pages: Protect wiki pages
-  permission_manage_repository: Manage repository
-  permission_browse_repository: Browse repository
-  permission_view_changesets: View changesets
-  permission_commit_access: Commit access
-  permission_manage_boards: Manage boards
-  permission_view_messages: View messages
-  permission_add_messages: Post messages
-  permission_edit_messages: Edit messages
-  permission_edit_own_messages: Edit own messages
-  permission_delete_messages: Delete messages
-  permission_delete_own_messages: Delete own messages
-  permission_export_wiki_pages: Export wiki pages
-  
-  project_module_issue_tracking: Issue tracking
-  project_module_time_tracking: Time tracking
-  project_module_news: News
-  project_module_documents: Documents
-  project_module_files: Files
-  project_module_wiki: Wiki
-  project_module_repository: Repository
-  project_module_boards: Boards
-  
-  label_user: User
-  label_user_plural: Users
-  label_user_new: New user
-  label_user_anonymous: Anonymous
-  label_project: Project
-  label_project_new: New project
-  label_project_plural: Projects
-  label_x_projects:
-    zero:  no projects
-    one:   1 project
-    other: "{{count}} projects"
-  label_project_all: All Projects
-  label_project_latest: Latest projects
-  label_issue: Issue
-  label_issue_new: New issue
-  label_issue_plural: Issues
-  label_issue_view_all: View all issues
-  label_issues_by: "Issues by {{value}}"
-  label_issue_added: Issue added
-  label_issue_updated: Issue updated
-  label_document: Document
-  label_document_new: New document
-  label_document_plural: Documents
-  label_document_added: Document added
-  label_role: Role
-  label_role_plural: Roles
-  label_role_new: New role
-  label_role_and_permissions: Roles and permissions
-  label_member: Member
-  label_member_new: New member
-  label_member_plural: Members
-  label_tracker: Tracker
-  label_tracker_plural: Trackers
-  label_tracker_new: New tracker
-  label_workflow: Workflow
-  label_issue_status: Issue status
-  label_issue_status_plural: Issue statuses
-  label_issue_status_new: New status
-  label_issue_category: Issue category
-  label_issue_category_plural: Issue categories
-  label_issue_category_new: New category
-  label_custom_field: Custom field
-  label_custom_field_plural: Custom fields
-  label_custom_field_new: New custom field
-  label_enumerations: Enumerations
-  label_enumeration_new: New value
-  label_information: Information
-  label_information_plural: Information
-  label_please_login: Please log in
-  label_register: Register
-  label_login_with_open_id_option: or login with OpenID
-  label_password_lost: Lost password
-  label_home: Home
-  label_my_page: My page
-  label_my_account: My account
-  label_my_projects: My projects
-  label_administration: Administration
-  label_login: Sign in
-  label_logout: Sign out
-  label_help: Help
-  label_reported_issues: Reported issues
-  label_assigned_to_me_issues: Issues assigned to me
-  label_last_login: Last connection
-  label_registered_on: Registered on
-  label_activity: Activity
-  label_overall_activity: Overall activity
-  label_user_activity: "{{value}}'s activity"
-  label_new: New
-  label_logged_as: Logged in as
-  label_environment: Environment
-  label_authentication: Authentication
-  label_auth_source: Authentication mode
-  label_auth_source_new: New authentication mode
-  label_auth_source_plural: Authentication modes
-  label_subproject_plural: Subprojects
-  label_subproject_new: New subproject
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  label_min_max_length: Min - Max length
-  label_list: List
-  label_date: Date
-  label_integer: Integer
-  label_float: Float
-  label_boolean: Boolean
-  label_string: Text
-  label_text: Long text
-  label_attribute: Attribute
-  label_attribute_plural: Attributes
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
-  label_no_data: No data to display
-  label_change_status: Change status
-  label_history: History
-  label_attachment: File
-  label_attachment_new: New file
-  label_attachment_delete: Delete file
-  label_attachment_plural: Files
-  label_file_added: File added
-  label_report: Report
-  label_report_plural: Reports
-  label_news: News
-  label_news_new: Add news
-  label_news_plural: News
-  label_news_latest: Latest news
-  label_news_view_all: View all news
-  label_news_added: News added
-  label_settings: Settings
-  label_overview: Overview
-  label_version: Version
-  label_version_new: New version
-  label_version_plural: Versions
-  label_close_versions: Close completed versions
-  label_confirmation: Confirmation
-  label_export_to: 'Also available in:'
-  label_read: Read...
-  label_public_projects: Public projects
-  label_open_issues: open
-  label_open_issues_plural: open
-  label_closed_issues: closed
-  label_closed_issues_plural: closed
-  label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 open
-    one:   1 open
-    other: "{{count}} open"
-  label_x_closed_issues_abbr:
-    zero:  0 closed
-    one:   1 closed
-    other: "{{count}} closed"
-  label_total: Total
-  label_permissions: Permissions
-  label_current_status: Current status
-  label_new_statuses_allowed: New statuses allowed
-  label_all: all
-  label_none: none
-  label_nobody: nobody
-  label_next: Next
-  label_previous: Previous
-  label_used_by: Used by
-  label_details: Details
-  label_add_note: Add a note
-  label_per_page: Per page
-  label_calendar: Calendar
-  label_months_from: months from
-  label_gantt: Gantt
-  label_internal: Internal
-  label_last_changes: "last {{count}} changes"
-  label_change_view_all: View all changes
-  label_personalize_page: Personalise this page
-  label_comment: Comment
-  label_comment_plural: Comments
-  label_x_comments:
-    zero: no comments
-    one: 1 comment
-    other: "{{count}} comments"
-  label_comment_add: Add a comment
-  label_comment_added: Comment added
-  label_comment_delete: Delete comments
-  label_query: Custom query
-  label_query_plural: Custom queries
-  label_query_new: New query
-  label_filter_add: Add filter
-  label_filter_plural: Filters
-  label_equals: is
-  label_not_equals: is not
-  label_in_less_than: in less than
-  label_in_more_than: in more than
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: in
-  label_today: today
-  label_all_time: all time
-  label_yesterday: yesterday
-  label_this_week: this week
-  label_last_week: last week
-  label_last_n_days: "last {{count}} days"
-  label_this_month: this month
-  label_last_month: last month
-  label_this_year: this year
-  label_date_range: Date range
-  label_less_than_ago: less than days ago
-  label_more_than_ago: more than days ago
-  label_ago: days ago
-  label_contains: contains
-  label_not_contains: doesn't contain
-  label_day_plural: days
-  label_repository: Repository
-  label_repository_plural: Repositories
-  label_browse: Browse
-  label_modification: "{{count}} change"
-  label_modification_plural: "{{count}} changes"
-  label_branch: Branch
-  label_tag: Tag 
-  label_revision: Revision
-  label_revision_plural: Revisions
-  label_revision_id: "Revision {{value}}"
-  label_associated_revisions: Associated revisions
-  label_added: added
-  label_modified: modified
-  label_copied: copied
-  label_renamed: renamed
-  label_deleted: deleted
-  label_latest_revision: Latest revision
-  label_latest_revision_plural: Latest revisions
-  label_view_revisions: View revisions
-  label_view_all_revisions: View all revisions
-  label_max_size: Maximum size
-  label_sort_highest: Move to top
-  label_sort_higher: Move up
-  label_sort_lower: Move down
-  label_sort_lowest: Move to bottom
-  label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} late"
-  label_roadmap_no_issues: No issues for this version
-  label_search: Search
-  label_result_plural: Results
-  label_all_words: All words
-  label_wiki: Wiki
-  label_wiki_edit: Wiki edit
-  label_wiki_edit_plural: Wiki edits
-  label_wiki_page: Wiki page
-  label_wiki_page_plural: Wiki pages
-  label_index_by_title: Index by title
-  label_index_by_date: Index by date
-  label_current_version: Current version
-  label_preview: Preview
-  label_feed_plural: Feeds
-  label_changes_details: Details of all changes
-  label_issue_tracking: Issue tracking
-  label_spent_time: Spent time
-  label_f_hour: "{{value}} hour"
-  label_f_hour_plural: "{{value}} hours"
-  label_time_tracking: Time tracking
-  label_change_plural: Changes
-  label_statistics: Statistics
-  label_commits_per_month: Commits per month
-  label_commits_per_author: Commits per author
-  label_view_diff: View differences
-  label_diff_inline: inline
-  label_diff_side_by_side: side by side
-  label_options: Options
-  label_copy_workflow_from: Copy workflow from
-  label_permissions_report: Permissions report
-  label_watched_issues: Watched issues
-  label_related_issues: Related issues
-  label_applied_status: Applied status
-  label_loading: Loading...
-  label_relation_new: New relation
-  label_relation_delete: Delete relation
-  label_relates_to: related to
-  label_duplicates: duplicates
-  label_duplicated_by: duplicated by
-  label_blocks: blocks
-  label_blocked_by: blocked by
-  label_precedes: precedes
-  label_follows: follows
-  label_end_to_start: end to start
-  label_end_to_end: end to end
-  label_start_to_start: start to start
-  label_start_to_end: start to end
-  label_stay_logged_in: Stay logged in
-  label_disabled: disabled
-  label_show_completed_versions: Show completed versions
-  label_me: me
-  label_board: Forum
-  label_board_new: New forum
-  label_board_plural: Forums
-  label_board_locked: Locked
-  label_board_sticky: Sticky
-  label_topic_plural: Topics
-  label_message_plural: Messages
-  label_message_last: Last message
-  label_message_new: New message
-  label_message_posted: Message added
-  label_reply_plural: Replies
-  label_send_information: Send account information to the user
-  label_year: Year
-  label_month: Month
-  label_week: Week
-  label_date_from: From
-  label_date_to: To
-  label_language_based: Based on user's language
-  label_sort_by: "Sort by {{value}}"
-  label_send_test_email: Send a test email
-  label_feeds_access_key: RSS access key
-  label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS access key created {{value}} ago"
-  label_module_plural: Modules
-  label_added_time_by: "Added by {{author}} {{age}} ago"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
-  label_updated_time: "Updated {{value}} ago"
-  label_jump_to_a_project: Jump to a project...
-  label_file_plural: Files
-  label_changeset_plural: Changesets
-  label_default_columns: Default columns
-  label_no_change_option: (No change)
-  label_bulk_edit_selected_issues: Bulk edit selected issues
-  label_theme: Theme
-  label_default: Default
-  label_search_titles_only: Search titles only
-  label_user_mail_option_all: "For any event on all my projects"
-  label_user_mail_option_selected: "For any event on the selected projects only..."
-  label_user_mail_option_none: "No events"
-  label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
-  label_registration_activation_by_email: account activation by email
-  label_registration_manual_activation: manual account activation
-  label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "Per page: {{value}}"
-  label_age: Age
-  label_change_properties: Change properties
-  label_general: General
-  label_more: More
-  label_scm: SCM
-  label_plugins: Plugins
-  label_ldap_authentication: LDAP authentication
-  label_downloads_abbr: D/L
-  label_optional_description: Optional description
-  label_add_another_file: Add another file
-  label_preferences: Preferences
-  label_chronological_order: In chronological order
-  label_reverse_chronological_order: In reverse chronological order
-  label_planning: Planning
-  label_incoming_emails: Incoming emails
-  label_generate_key: Generate a key
-  label_issue_watchers: Watchers
-  label_example: Example
-  label_display: Display
-  label_sort: Sort
-  label_ascending: Ascending
-  label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
-  label_wiki_content_added: Wiki page added
-  label_wiki_content_updated: Wiki page updated
-  label_group: Group
-  label_group_plural: Groups
-  label_group_new: New group
-  label_time_entry_plural: Spent time
-  label_version_sharing_none: Not shared
-  label_version_sharing_descendants: With subprojects
-  label_version_sharing_hierarchy: With project hierarchy
-  label_version_sharing_tree: With project tree
-  label_version_sharing_system: With all projects
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Source
-  label_copy_target: Target
-  label_copy_same_as_target: Same as target
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API access key
-  label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
-  
-  button_login: Login
-  button_submit: Submit
-  button_save: Save
-  button_check_all: Check all
-  button_uncheck_all: Uncheck all
-  button_delete: Delete
-  button_create: Create
-  button_create_and_continue: Create and continue
-  button_test: Test
-  button_edit: Edit
-  button_add: Add
-  button_change: Change
-  button_apply: Apply
-  button_clear: Clear
-  button_lock: Lock
-  button_unlock: Unlock
-  button_download: Download
-  button_list: List
-  button_view: View
-  button_move: Move
-  button_move_and_follow: Move and follow
-  button_back: Back
-  button_cancel: Cancel
-  button_activate: Activate
-  button_sort: Sort
-  button_log_time: Log time
-  button_rollback: Rollback to this version
-  button_watch: Watch
-  button_unwatch: Unwatch
-  button_reply: Reply
-  button_archive: Archive
-  button_unarchive: Unarchive
-  button_reset: Reset
-  button_rename: Rename
-  button_change_password: Change password
-  button_copy: Copy
-  button_copy_and_follow: Copy and follow
-  button_annotate: Annotate
-  button_update: Update
-  button_configure: Configure
-  button_quote: Quote
-  button_duplicate: Duplicate
-  button_show: Show
-  
-  status_active: active
-  status_registered: registered
-  status_locked: locked
-  
-  version_status_open: open
-  version_status_locked: locked
-  version_status_closed: closed
-
-  field_active: Active
-  
-  text_select_mail_notifications: Select actions for which email notifications should be sent.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 means no restriction
-  text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
-  text_workflow_edit: Select a role and a tracker to edit the workflow
-  text_are_you_sure: Are you sure?
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
-  text_tip_issue_begin_day: task beginning this day
-  text_tip_issue_end_day: task ending this day
-  text_tip_issue_begin_end_day: task beginning and ending this day
-  text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
-  text_caracters_maximum: "{{count}} characters maximum."
-  text_caracters_minimum: "Must be at least {{count}} characters long."
-  text_length_between: "Length between {{min}} and {{max}} characters."
-  text_tracker_no_workflow: No workflow defined for this tracker
-  text_unallowed_characters: Unallowed characters
-  text_comma_separated: Multiple values allowed (comma separated).
-  text_line_separated: Multiple values allowed (one line for each value).
-  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
-  text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do?"
-  text_issue_category_destroy_assignments: Remove category assignments
-  text_issue_category_reassign_to: Reassign issues to this category
-  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)."
-  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."
-  text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
-  text_select_project_modules: 'Select modules to enable for this project:'
-  text_default_administrator_account_changed: Default administrator account changed
-  text_file_repository_writable: Attachments directory writable
-  text_plugin_assets_writable: Plugin assets directory writable
-  text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do?"
-  text_destroy_time_entries: Delete reported hours
-  text_assign_time_entries_to_project: Assign reported hours to the project
-  text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_enumeration_category_reassign_to: 'Reassign them to this value:'
-  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."
-  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
-  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  
-  default_role_manager: Manager
-  default_role_developer: Developer
-  default_role_reporter: Reporter
-  default_tracker_bug: Bug
-  default_tracker_feature: Feature
-  default_tracker_support: Support
-  default_issue_status_new: New
-  default_issue_status_in_progress: In Progress
-  default_issue_status_resolved: Resolved
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: Closed
-  default_issue_status_rejected: Rejected
-  default_doc_category_user: User documentation
-  default_doc_category_tech: Technical documentation
-  default_priority_low: Low
-  default_priority_normal: Normal
-  default_priority_high: High
-  default_priority_urgent: Urgent
-  default_priority_immediate: Immediate
-  default_activity_design: Design
-  default_activity_development: Development
-  
-  enumeration_issue_priorities: Issue priorities
-  enumeration_doc_categories: Document categories
-  enumeration_activities: Activities (time tracking)
-  enumeration_system_activity: System Activity
-
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  error_can_not_delete_custom_field: Unable to delete custom field
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  error_unable_to_connect: Unable to connect ({{value}})
-  label_overall_spent_time: Overall spent time
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  field_principal: Principal
-  field_parent_issue: Parent task
-  label_my_page_block: My page block
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  label_project_copy_notifications: Send email notifications during the project copy
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  field_member_of_group: Member of Group
-  field_assigned_to_role: Member of Role
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
+en-GB:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d/%m/%Y"
+      short: "%d %b"
+      long: "%d %B, %Y"
+      
+    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%d/%m/%Y %I:%M %p"
+      time: "%I:%M %p"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "half a minute"
+      less_than_x_seconds:
+        one:   "less than 1 second"
+        other: "less than %{count} seconds"
+      x_seconds:
+        one:   "1 second"
+        other: "%{count} seconds"
+      less_than_x_minutes:
+        one:   "less than a minute"
+        other: "less than %{count} minutes"
+      x_minutes:
+        one:   "1 minute"
+        other: "%{count} minutes"
+      about_x_hours:
+        one:   "about 1 hour"
+        other: "about %{count} hours"
+      x_days:
+        one:   "1 day"
+        other: "%{count} days"
+      about_x_months:
+        one:   "about 1 month"
+        other: "about %{count} months"
+      x_months:
+        one:   "1 month"
+        other: "%{count} months"
+      about_x_years:
+        one:   "about 1 year"
+        other: "about %{count} years"
+      over_x_years:
+        one:   "over 1 year"
+        other: "over %{count} years"
+      almost_x_years:
+        one:   "almost 1 year"
+        other: "almost %{count} years"
+
+  number:
+    format:
+      separator: "."
+      delimiter: " "
+      precision: 3
+
+    currency:
+      format:
+        format: "%u%n"
+        unit: "£"
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "kB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "and"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "is not included in the list"
+        exclusion: "is reserved"
+        invalid: "is invalid"
+        confirmation: "doesn't match confirmation"
+        accepted: "must be accepted"
+        empty: "can't be empty"
+        blank: "can't be blank"
+        too_long: "is too long (maximum is %{count} characters)"
+        too_short: "is too short (minimum is %{count} characters)"
+        wrong_length: "is the wrong length (should be %{count} characters)"
+        taken: "has already been taken"
+        not_a_number: "is not a number"
+        not_a_date: "is not a valid date"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
+        odd: "must be odd"
+        even: "must be even"
+        greater_than_start_date: "must be greater than start date"
+        not_same_project: "doesn't belong to the same project"
+        circular_dependency: "This relation would create a circular dependency"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Please select
+  
+  general_text_No: 'No'
+  general_text_Yes: 'Yes'
+  general_text_no: 'no'
+  general_text_yes: 'yes'
+  general_lang_name: 'English (British)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: ISO-8859-1
+  general_pdf_encoding: ISO-8859-1
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Account was successfully updated.
+  notice_account_invalid_creditentials: Invalid user or password
+  notice_account_password_updated: Password was successfully updated.
+  notice_account_wrong_password: Wrong password
+  notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
+  notice_account_unknown_email: Unknown user.
+  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+  notice_account_activated: Your account has been activated. You can now log in.
+  notice_successful_create: Successful creation.
+  notice_successful_update: Successful update.
+  notice_successful_delete: Successful deletion.
+  notice_successful_connection: Successful connection.
+  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+  notice_locking_conflict: Data has been updated by another user.
+  notice_not_authorized: You are not authorised to access this page.
+  notice_email_sent: "An email was sent to %{value}"
+  notice_email_error: "An error occurred while sending mail (%{value})"
+  notice_feeds_access_key_reseted: Your RSS access key was reset.
+  notice_api_access_key_reseted: Your API access key was reset.
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+  notice_account_pending: "Your account was created and is now pending administrator approval."
+  notice_default_data_loaded: Default configuration successfully loaded.
+  notice_unable_delete_version: Unable to delete version.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+  
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
+  error_scm_not_found: "The entry or revision was not found in the repository."
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
+  error_scm_annotate: "The entry does not exist or can not be annotated."
+  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
+  
+  mail_subject_lost_password: "Your %{value} password"
+  mail_body_lost_password: 'To change your password, click on the following link:'
+  mail_subject_register: "Your %{value} account activation"
+  mail_body_register: 'To activate your account, click on the following link:'
+  mail_body_account_information_external: "You can use your %{value} account to log in."
+  mail_body_account_information: Your account information
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+  
+  gui_validation_error: 1 error
+  gui_validation_error_plural: "%{count} errors"
+  
+  field_name: Name
+  field_description: Description
+  field_summary: Summary
+  field_is_required: Required
+  field_firstname: Firstname
+  field_lastname: Lastname
+  field_mail: Email
+  field_filename: File
+  field_filesize: Size
+  field_downloads: Downloads
+  field_author: Author
+  field_created_on: Created
+  field_updated_on: Updated
+  field_field_format: Format
+  field_is_for_all: For all projects
+  field_possible_values: Possible values
+  field_regexp: Regular expression
+  field_min_length: Minimum length
+  field_max_length: Maximum length
+  field_value: Value
+  field_category: Category
+  field_title: Title
+  field_project: Project
+  field_issue: Issue
+  field_status: Status
+  field_notes: Notes
+  field_is_closed: Issue closed
+  field_is_default: Default value
+  field_tracker: Tracker
+  field_subject: Subject
+  field_due_date: Due date
+  field_assigned_to: Assignee
+  field_priority: Priority
+  field_fixed_version: Target version
+  field_user: User
+  field_role: Role
+  field_homepage: Homepage
+  field_is_public: Public
+  field_parent: Subproject of
+  field_is_in_roadmap: Issues displayed in roadmap
+  field_login: Login
+  field_mail_notification: Email notifications
+  field_admin: Administrator
+  field_last_login_on: Last connection
+  field_language: Language
+  field_effective_date: Date
+  field_password: Password
+  field_new_password: New password
+  field_password_confirmation: Confirmation
+  field_version: Version
+  field_type: Type
+  field_host: Host
+  field_port: Port
+  field_account: Account
+  field_base_dn: Base DN
+  field_attr_login: Login attribute
+  field_attr_firstname: Firstname attribute
+  field_attr_lastname: Lastname attribute
+  field_attr_mail: Email attribute
+  field_onthefly: On-the-fly user creation
+  field_start_date: Start date
+  field_done_ratio: % Done
+  field_auth_source: Authentication mode
+  field_hide_mail: Hide my email address
+  field_comments: Comment
+  field_url: URL
+  field_start_page: Start page
+  field_subproject: Subproject
+  field_hours: Hours
+  field_activity: Activity
+  field_spent_on: Date
+  field_identifier: Identifier
+  field_is_filter: Used as a filter
+  field_issue_to: Related issue
+  field_delay: Delay
+  field_assignable: Issues can be assigned to this role
+  field_redirect_existing_links: Redirect existing links
+  field_estimated_hours: Estimated time
+  field_column_names: Columns
+  field_time_zone: Time zone
+  field_searchable: Searchable
+  field_default_value: Default value
+  field_comments_sorting: Display comments
+  field_parent_title: Parent page
+  field_editable: Editable
+  field_watcher: Watcher
+  field_identity_url: OpenID URL
+  field_content: Content
+  field_group_by: Group results by
+  field_sharing: Sharing
+  
+  setting_app_title: Application title
+  setting_app_subtitle: Application subtitle
+  setting_welcome_text: Welcome text
+  setting_default_language: Default language
+  setting_login_required: Authentication required
+  setting_self_registration: Self-registration
+  setting_attachment_max_size: Attachment max. size
+  setting_issues_export_limit: Issues export limit
+  setting_mail_from: Emission email address
+  setting_bcc_recipients: Blind carbon copy recipients (bcc)
+  setting_plain_text_mail: Plain text mail (no HTML)
+  setting_host_name: Host name and path
+  setting_text_formatting: Text formatting
+  setting_wiki_compression: Wiki history compression
+  setting_feeds_limit: Feed content limit
+  setting_default_projects_public: New projects are public by default
+  setting_autofetch_changesets: Autofetch commits
+  setting_sys_api_enabled: Enable WS for repository management
+  setting_commit_ref_keywords: Referencing keywords
+  setting_commit_fix_keywords: Fixing keywords
+  setting_autologin: Autologin
+  setting_date_format: Date format
+  setting_time_format: Time format
+  setting_cross_project_issue_relations: Allow cross-project issue relations
+  setting_issue_list_default_columns: Default columns displayed on the issue list
+  setting_repositories_encodings: Repositories encodings
+  setting_commit_logs_encoding: Commit messages encoding
+  setting_emails_footer: Emails footer
+  setting_protocol: Protocol
+  setting_per_page_options: Objects per page options
+  setting_user_format: Users display format
+  setting_activity_days_default: Days displayed on project activity
+  setting_display_subprojects_issues: Display subprojects issues on main projects by default
+  setting_enabled_scm: Enabled SCM
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: Enable WS for incoming emails
+  setting_mail_handler_api_key: API key
+  setting_sequential_project_identifiers: Generate sequential project identifiers
+  setting_gravatar_enabled: Use Gravatar user icons
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Max number of diff lines displayed
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Allow OpenID login and registration
+  setting_password_min_length: Minimum password length
+  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+  
+  permission_add_project: Create project
+  permission_add_subprojects: Create subprojects
+  permission_edit_project: Edit project
+  permission_select_project_modules: Select project modules
+  permission_manage_members: Manage members
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Manage versions
+  permission_manage_categories: Manage issue categories
+  permission_view_issues: View Issues
+  permission_add_issues: Add issues
+  permission_edit_issues: Edit issues
+  permission_manage_issue_relations: Manage issue relations
+  permission_add_issue_notes: Add notes
+  permission_edit_issue_notes: Edit notes
+  permission_edit_own_issue_notes: Edit own notes
+  permission_move_issues: Move issues
+  permission_delete_issues: Delete issues
+  permission_manage_public_queries: Manage public queries
+  permission_save_queries: Save queries
+  permission_view_gantt: View gantt chart
+  permission_view_calendar: View calendar
+  permission_view_issue_watchers: View watchers list
+  permission_add_issue_watchers: Add watchers
+  permission_delete_issue_watchers: Delete watchers
+  permission_log_time: Log spent time
+  permission_view_time_entries: View spent time
+  permission_edit_time_entries: Edit time logs
+  permission_edit_own_time_entries: Edit own time logs
+  permission_manage_news: Manage news
+  permission_comment_news: Comment news
+  permission_manage_documents: Manage documents
+  permission_view_documents: View documents
+  permission_manage_files: Manage files
+  permission_view_files: View files
+  permission_manage_wiki: Manage wiki
+  permission_rename_wiki_pages: Rename wiki pages
+  permission_delete_wiki_pages: Delete wiki pages
+  permission_view_wiki_pages: View wiki
+  permission_view_wiki_edits: View wiki history
+  permission_edit_wiki_pages: Edit wiki pages
+  permission_delete_wiki_pages_attachments: Delete attachments
+  permission_protect_wiki_pages: Protect wiki pages
+  permission_manage_repository: Manage repository
+  permission_browse_repository: Browse repository
+  permission_view_changesets: View changesets
+  permission_commit_access: Commit access
+  permission_manage_boards: Manage boards
+  permission_view_messages: View messages
+  permission_add_messages: Post messages
+  permission_edit_messages: Edit messages
+  permission_edit_own_messages: Edit own messages
+  permission_delete_messages: Delete messages
+  permission_delete_own_messages: Delete own messages
+  permission_export_wiki_pages: Export wiki pages
+  
+  project_module_issue_tracking: Issue tracking
+  project_module_time_tracking: Time tracking
+  project_module_news: News
+  project_module_documents: Documents
+  project_module_files: Files
+  project_module_wiki: Wiki
+  project_module_repository: Repository
+  project_module_boards: Boards
+  
+  label_user: User
+  label_user_plural: Users
+  label_user_new: New user
+  label_user_anonymous: Anonymous
+  label_project: Project
+  label_project_new: New project
+  label_project_plural: Projects
+  label_x_projects:
+    zero:  no projects
+    one:   1 project
+    other: "%{count} projects"
+  label_project_all: All Projects
+  label_project_latest: Latest projects
+  label_issue: Issue
+  label_issue_new: New issue
+  label_issue_plural: Issues
+  label_issue_view_all: View all issues
+  label_issues_by: "Issues by %{value}"
+  label_issue_added: Issue added
+  label_issue_updated: Issue updated
+  label_document: Document
+  label_document_new: New document
+  label_document_plural: Documents
+  label_document_added: Document added
+  label_role: Role
+  label_role_plural: Roles
+  label_role_new: New role
+  label_role_and_permissions: Roles and permissions
+  label_member: Member
+  label_member_new: New member
+  label_member_plural: Members
+  label_tracker: Tracker
+  label_tracker_plural: Trackers
+  label_tracker_new: New tracker
+  label_workflow: Workflow
+  label_issue_status: Issue status
+  label_issue_status_plural: Issue statuses
+  label_issue_status_new: New status
+  label_issue_category: Issue category
+  label_issue_category_plural: Issue categories
+  label_issue_category_new: New category
+  label_custom_field: Custom field
+  label_custom_field_plural: Custom fields
+  label_custom_field_new: New custom field
+  label_enumerations: Enumerations
+  label_enumeration_new: New value
+  label_information: Information
+  label_information_plural: Information
+  label_please_login: Please log in
+  label_register: Register
+  label_login_with_open_id_option: or login with OpenID
+  label_password_lost: Lost password
+  label_home: Home
+  label_my_page: My page
+  label_my_account: My account
+  label_my_projects: My projects
+  label_administration: Administration
+  label_login: Sign in
+  label_logout: Sign out
+  label_help: Help
+  label_reported_issues: Reported issues
+  label_assigned_to_me_issues: Issues assigned to me
+  label_last_login: Last connection
+  label_registered_on: Registered on
+  label_activity: Activity
+  label_overall_activity: Overall activity
+  label_user_activity: "%{value}'s activity"
+  label_new: New
+  label_logged_as: Logged in as
+  label_environment: Environment
+  label_authentication: Authentication
+  label_auth_source: Authentication mode
+  label_auth_source_new: New authentication mode
+  label_auth_source_plural: Authentication modes
+  label_subproject_plural: Subprojects
+  label_subproject_new: New subproject
+  label_and_its_subprojects: "%{value} and its subprojects"
+  label_min_max_length: Min - Max length
+  label_list: List
+  label_date: Date
+  label_integer: Integer
+  label_float: Float
+  label_boolean: Boolean
+  label_string: Text
+  label_text: Long text
+  label_attribute: Attribute
+  label_attribute_plural: Attributes
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
+  label_no_data: No data to display
+  label_change_status: Change status
+  label_history: History
+  label_attachment: File
+  label_attachment_new: New file
+  label_attachment_delete: Delete file
+  label_attachment_plural: Files
+  label_file_added: File added
+  label_report: Report
+  label_report_plural: Reports
+  label_news: News
+  label_news_new: Add news
+  label_news_plural: News
+  label_news_latest: Latest news
+  label_news_view_all: View all news
+  label_news_added: News added
+  label_settings: Settings
+  label_overview: Overview
+  label_version: Version
+  label_version_new: New version
+  label_version_plural: Versions
+  label_close_versions: Close completed versions
+  label_confirmation: Confirmation
+  label_export_to: 'Also available in:'
+  label_read: Read...
+  label_public_projects: Public projects
+  label_open_issues: open
+  label_open_issues_plural: open
+  label_closed_issues: closed
+  label_closed_issues_plural: closed
+  label_x_open_issues_abbr_on_total:
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 open
+    one:   1 open
+    other: "%{count} open"
+  label_x_closed_issues_abbr:
+    zero:  0 closed
+    one:   1 closed
+    other: "%{count} closed"
+  label_total: Total
+  label_permissions: Permissions
+  label_current_status: Current status
+  label_new_statuses_allowed: New statuses allowed
+  label_all: all
+  label_none: none
+  label_nobody: nobody
+  label_next: Next
+  label_previous: Previous
+  label_used_by: Used by
+  label_details: Details
+  label_add_note: Add a note
+  label_per_page: Per page
+  label_calendar: Calendar
+  label_months_from: months from
+  label_gantt: Gantt
+  label_internal: Internal
+  label_last_changes: "last %{count} changes"
+  label_change_view_all: View all changes
+  label_personalize_page: Personalise this page
+  label_comment: Comment
+  label_comment_plural: Comments
+  label_x_comments:
+    zero: no comments
+    one: 1 comment
+    other: "%{count} comments"
+  label_comment_add: Add a comment
+  label_comment_added: Comment added
+  label_comment_delete: Delete comments
+  label_query: Custom query
+  label_query_plural: Custom queries
+  label_query_new: New query
+  label_filter_add: Add filter
+  label_filter_plural: Filters
+  label_equals: is
+  label_not_equals: is not
+  label_in_less_than: in less than
+  label_in_more_than: in more than
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: in
+  label_today: today
+  label_all_time: all time
+  label_yesterday: yesterday
+  label_this_week: this week
+  label_last_week: last week
+  label_last_n_days: "last %{count} days"
+  label_this_month: this month
+  label_last_month: last month
+  label_this_year: this year
+  label_date_range: Date range
+  label_less_than_ago: less than days ago
+  label_more_than_ago: more than days ago
+  label_ago: days ago
+  label_contains: contains
+  label_not_contains: doesn't contain
+  label_day_plural: days
+  label_repository: Repository
+  label_repository_plural: Repositories
+  label_browse: Browse
+  label_modification: "%{count} change"
+  label_modification_plural: "%{count} changes"
+  label_branch: Branch
+  label_tag: Tag 
+  label_revision: Revision
+  label_revision_plural: Revisions
+  label_revision_id: "Revision %{value}"
+  label_associated_revisions: Associated revisions
+  label_added: added
+  label_modified: modified
+  label_copied: copied
+  label_renamed: renamed
+  label_deleted: deleted
+  label_latest_revision: Latest revision
+  label_latest_revision_plural: Latest revisions
+  label_view_revisions: View revisions
+  label_view_all_revisions: View all revisions
+  label_max_size: Maximum size
+  label_sort_highest: Move to top
+  label_sort_higher: Move up
+  label_sort_lower: Move down
+  label_sort_lowest: Move to bottom
+  label_roadmap: Roadmap
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} late"
+  label_roadmap_no_issues: No issues for this version
+  label_search: Search
+  label_result_plural: Results
+  label_all_words: All words
+  label_wiki: Wiki
+  label_wiki_edit: Wiki edit
+  label_wiki_edit_plural: Wiki edits
+  label_wiki_page: Wiki page
+  label_wiki_page_plural: Wiki pages
+  label_index_by_title: Index by title
+  label_index_by_date: Index by date
+  label_current_version: Current version
+  label_preview: Preview
+  label_feed_plural: Feeds
+  label_changes_details: Details of all changes
+  label_issue_tracking: Issue tracking
+  label_spent_time: Spent time
+  label_f_hour: "%{value} hour"
+  label_f_hour_plural: "%{value} hours"
+  label_time_tracking: Time tracking
+  label_change_plural: Changes
+  label_statistics: Statistics
+  label_commits_per_month: Commits per month
+  label_commits_per_author: Commits per author
+  label_view_diff: View differences
+  label_diff_inline: inline
+  label_diff_side_by_side: side by side
+  label_options: Options
+  label_copy_workflow_from: Copy workflow from
+  label_permissions_report: Permissions report
+  label_watched_issues: Watched issues
+  label_related_issues: Related issues
+  label_applied_status: Applied status
+  label_loading: Loading...
+  label_relation_new: New relation
+  label_relation_delete: Delete relation
+  label_relates_to: related to
+  label_duplicates: duplicates
+  label_duplicated_by: duplicated by
+  label_blocks: blocks
+  label_blocked_by: blocked by
+  label_precedes: precedes
+  label_follows: follows
+  label_end_to_start: end to start
+  label_end_to_end: end to end
+  label_start_to_start: start to start
+  label_start_to_end: start to end
+  label_stay_logged_in: Stay logged in
+  label_disabled: disabled
+  label_show_completed_versions: Show completed versions
+  label_me: me
+  label_board: Forum
+  label_board_new: New forum
+  label_board_plural: Forums
+  label_board_locked: Locked
+  label_board_sticky: Sticky
+  label_topic_plural: Topics
+  label_message_plural: Messages
+  label_message_last: Last message
+  label_message_new: New message
+  label_message_posted: Message added
+  label_reply_plural: Replies
+  label_send_information: Send account information to the user
+  label_year: Year
+  label_month: Month
+  label_week: Week
+  label_date_from: From
+  label_date_to: To
+  label_language_based: Based on user's language
+  label_sort_by: "Sort by %{value}"
+  label_send_test_email: Send a test email
+  label_feeds_access_key: RSS access key
+  label_missing_feeds_access_key: Missing a RSS access key
+  label_feeds_access_key_created_on: "RSS access key created %{value} ago"
+  label_module_plural: Modules
+  label_added_time_by: "Added by %{author} %{age} ago"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
+  label_updated_time: "Updated %{value} ago"
+  label_jump_to_a_project: Jump to a project...
+  label_file_plural: Files
+  label_changeset_plural: Changesets
+  label_default_columns: Default columns
+  label_no_change_option: (No change)
+  label_bulk_edit_selected_issues: Bulk edit selected issues
+  label_theme: Theme
+  label_default: Default
+  label_search_titles_only: Search titles only
+  label_user_mail_option_all: "For any event on all my projects"
+  label_user_mail_option_selected: "For any event on the selected projects only..."
+  label_user_mail_option_none: "No events"
+  label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
+  label_registration_activation_by_email: account activation by email
+  label_registration_manual_activation: manual account activation
+  label_registration_automatic_activation: automatic account activation
+  label_display_per_page: "Per page: %{value}"
+  label_age: Age
+  label_change_properties: Change properties
+  label_general: General
+  label_more: More
+  label_scm: SCM
+  label_plugins: Plugins
+  label_ldap_authentication: LDAP authentication
+  label_downloads_abbr: D/L
+  label_optional_description: Optional description
+  label_add_another_file: Add another file
+  label_preferences: Preferences
+  label_chronological_order: In chronological order
+  label_reverse_chronological_order: In reverse chronological order
+  label_planning: Planning
+  label_incoming_emails: Incoming emails
+  label_generate_key: Generate a key
+  label_issue_watchers: Watchers
+  label_example: Example
+  label_display: Display
+  label_sort: Sort
+  label_ascending: Ascending
+  label_descending: Descending
+  label_date_from_to: From %{start} to %{end}
+  label_wiki_content_added: Wiki page added
+  label_wiki_content_updated: Wiki page updated
+  label_group: Group
+  label_group_plural: Groups
+  label_group_new: New group
+  label_time_entry_plural: Spent time
+  label_version_sharing_none: Not shared
+  label_version_sharing_descendants: With subprojects
+  label_version_sharing_hierarchy: With project hierarchy
+  label_version_sharing_tree: With project tree
+  label_version_sharing_system: With all projects
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Source
+  label_copy_target: Target
+  label_copy_same_as_target: Same as target
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API access key
+  label_missing_api_access_key: Missing an API access key
+  label_api_access_key_created_on: "API access key created %{value} ago"
+  
+  button_login: Login
+  button_submit: Submit
+  button_save: Save
+  button_check_all: Check all
+  button_uncheck_all: Uncheck all
+  button_delete: Delete
+  button_create: Create
+  button_create_and_continue: Create and continue
+  button_test: Test
+  button_edit: Edit
+  button_add: Add
+  button_change: Change
+  button_apply: Apply
+  button_clear: Clear
+  button_lock: Lock
+  button_unlock: Unlock
+  button_download: Download
+  button_list: List
+  button_view: View
+  button_move: Move
+  button_move_and_follow: Move and follow
+  button_back: Back
+  button_cancel: Cancel
+  button_activate: Activate
+  button_sort: Sort
+  button_log_time: Log time
+  button_rollback: Rollback to this version
+  button_watch: Watch
+  button_unwatch: Unwatch
+  button_reply: Reply
+  button_archive: Archive
+  button_unarchive: Unarchive
+  button_reset: Reset
+  button_rename: Rename
+  button_change_password: Change password
+  button_copy: Copy
+  button_copy_and_follow: Copy and follow
+  button_annotate: Annotate
+  button_update: Update
+  button_configure: Configure
+  button_quote: Quote
+  button_duplicate: Duplicate
+  button_show: Show
+  
+  status_active: active
+  status_registered: registered
+  status_locked: locked
+  
+  version_status_open: open
+  version_status_locked: locked
+  version_status_closed: closed
+
+  field_active: Active
+  
+  text_select_mail_notifications: Select actions for which email notifications should be sent.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 means no restriction
+  text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
+  text_workflow_edit: Select a role and a tracker to edit the workflow
+  text_are_you_sure: Are you sure?
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
+  text_tip_issue_begin_day: task beginning this day
+  text_tip_issue_end_day: task ending this day
+  text_tip_issue_begin_end_day: task beginning and ending this day
+  text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
+  text_caracters_maximum: "%{count} characters maximum."
+  text_caracters_minimum: "Must be at least %{count} characters long."
+  text_length_between: "Length between %{min} and %{max} characters."
+  text_tracker_no_workflow: No workflow defined for this tracker
+  text_unallowed_characters: Unallowed characters
+  text_comma_separated: Multiple values allowed (comma separated).
+  text_line_separated: Multiple values allowed (one line for each value).
+  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
+  text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
+  text_issue_category_destroy_assignments: Remove category assignments
+  text_issue_category_reassign_to: Reassign issues to this category
+  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)."
+  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."
+  text_load_default_configuration: Load the default configuration
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
+  text_select_project_modules: 'Select modules to enable for this project:'
+  text_default_administrator_account_changed: Default administrator account changed
+  text_file_repository_writable: Attachments directory writable
+  text_plugin_assets_writable: Plugin assets directory writable
+  text_rmagick_available: RMagick available (optional)
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?"
+  text_destroy_time_entries: Delete reported hours
+  text_assign_time_entries_to_project: Assign reported hours to the project
+  text_reassign_time_entries: 'Reassign reported hours to this issue:'
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_enumeration_category_reassign_to: 'Reassign them to this value:'
+  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."
+  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
+  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  
+  default_role_manager: Manager
+  default_role_developer: Developer
+  default_role_reporter: Reporter
+  default_tracker_bug: Bug
+  default_tracker_feature: Feature
+  default_tracker_support: Support
+  default_issue_status_new: New
+  default_issue_status_in_progress: In Progress
+  default_issue_status_resolved: Resolved
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: Closed
+  default_issue_status_rejected: Rejected
+  default_doc_category_user: User documentation
+  default_doc_category_tech: Technical documentation
+  default_priority_low: Low
+  default_priority_normal: Normal
+  default_priority_high: High
+  default_priority_urgent: Urgent
+  default_priority_immediate: Immediate
+  default_activity_design: Design
+  default_activity_development: Development
+  
+  enumeration_issue_priorities: Issue priorities
+  enumeration_doc_categories: Document categories
+  enumeration_activities: Activities (time tracking)
+  enumeration_system_activity: System Activity
+
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  error_can_not_delete_custom_field: Unable to delete custom field
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  error_unable_to_connect: Unable to connect (%{value})
+  label_overall_spent_time: Overall spent time
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  field_principal: Principal
+  field_parent_issue: Parent task
+  label_my_page_block: My page block
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  label_project_copy_notifications: Send email notifications during the project copy
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  field_member_of_group: Member of Group
+  field_assigned_to_role: Member of Role
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/en.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/en.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -33,37 +33,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     # Default format for numbers
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "is not included in the list"
         exclusion: "is reserved"
@@ -103,17 +107,17 @@
         accepted: "must be accepted"
         empty: "can't be empty"
         blank: "can't be blank"
-        too_long: "is too long (maximum is {{count}} characters)"
-        too_short: "is too short (minimum is {{count}} characters)"
-        wrong_length: "is the wrong length (should be {{count}} characters)"
+        too_long: "is too long (maximum is %{count} characters)"
+        too_short: "is too short (minimum is %{count} characters)"
+        wrong_length: "is the wrong length (should be %{count} characters)"
         taken: "has already been taken"
         not_a_number: "is not a number"
         not_a_date: "is not a valid date"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "must be greater than start date"
@@ -151,22 +155,23 @@
   notice_locking_conflict: Data has been updated by another user.
   notice_not_authorized: You are not authorized to access this page.
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  notice_email_sent: "An email was sent to {{value}}"
-  notice_email_error: "An error occurred while sending mail ({{value}})"
+  notice_email_sent: "An email was sent to %{value}"
+  notice_email_error: "An error occurred while sending mail (%{value})"
   notice_feeds_access_key_reseted: Your RSS access key was reset.
   notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
   notice_account_pending: "Your account was created and is now pending administrator approval."
   notice_default_data_loaded: Default configuration successfully loaded.
   notice_unable_delete_version: Unable to delete version.
   notice_unable_delete_time_entry: Unable to delete time log entry.
   notice_issue_done_ratios_updated: Issue done ratios updated.
+  notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})"
   
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
   error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
   error_scm_annotate: "The entry does not exist or can not be annotated."
   error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
   error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
@@ -180,26 +185,26 @@
   error_workflow_copy_source: 'Please select a source tracker or role'
   error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
   error_unable_delete_issue_status: 'Unable to delete issue status'
-  error_unable_to_connect: "Unable to connect ({{value}})"
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  error_unable_to_connect: "Unable to connect (%{value})"
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   
-  mail_subject_lost_password: "Your {{value}} password"
+  mail_subject_lost_password: "Your %{value} password"
   mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
+  mail_subject_register: "Your %{value} account activation"
   mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
+  mail_body_account_information_external: "You can use your %{value} account to log in."
   mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "A new user ({{value}}) has registered. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
   
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
+  gui_validation_error_plural: "%{count} errors"
   
   field_name: Name
   field_description: Description
@@ -354,6 +359,9 @@
   setting_rest_api_enabled: Enable REST web service
   setting_cache_formatted_text: Cache formatted text
   setting_default_notification_option: Default notification option
+  setting_commit_logtime_enabled: Enable time logging
+  setting_commit_logtime_activity_id: Activity for logged time
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
   
   permission_add_project: Create project
   permission_add_subprojects: Create subprojects
@@ -432,14 +440,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: All Projects
   label_project_latest: Latest projects
   label_issue: Issue
   label_issue_new: New issue
   label_issue_plural: Issues
   label_issue_view_all: View all issues
-  label_issues_by: "Issues by {{value}}"
+  label_issues_by: "Issues by %{value}"
   label_issue_added: Issue added
   label_issue_updated: Issue updated
   label_document: Document
@@ -489,7 +497,7 @@
   label_registered_on: Registered on
   label_activity: Activity
   label_overall_activity: Overall activity
-  label_user_activity: "{{value}}'s activity"
+  label_user_activity: "%{value}'s activity"
   label_new: New
   label_logged_as: Logged in as
   label_environment: Environment
@@ -499,7 +507,7 @@
   label_auth_source_plural: Authentication modes
   label_subproject_plural: Subprojects
   label_subproject_new: New subproject
-  label_and_its_subprojects: "{{value}} and its subprojects"
+  label_and_its_subprojects: "%{value} and its subprojects"
   label_min_max_length: Min - Max length
   label_list: List
   label_date: Date
@@ -510,8 +518,8 @@
   label_text: Long text
   label_attribute: Attribute
   label_attribute_plural: Attributes
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: No data to display
   label_change_status: Change status
   label_history: History
@@ -543,17 +551,17 @@
   label_closed_issues: closed
   label_closed_issues_plural: closed
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Total
   label_permissions: Permissions
   label_current_status: Current status
@@ -571,7 +579,7 @@
   label_months_from: months from
   label_gantt: Gantt
   label_internal: Internal
-  label_last_changes: "last {{count}} changes"
+  label_last_changes: "last %{count} changes"
   label_change_view_all: View all changes
   label_personalize_page: Personalize this page
   label_comment: Comment
@@ -579,7 +587,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Add a comment
   label_comment_added: Comment added
   label_comment_delete: Delete comments
@@ -600,7 +608,7 @@
   label_yesterday: yesterday
   label_this_week: this week
   label_last_week: last week
-  label_last_n_days: "last {{count}} days"
+  label_last_n_days: "last %{count} days"
   label_this_month: this month
   label_last_month: last month
   label_this_year: this year
@@ -614,13 +622,13 @@
   label_repository: Repository
   label_repository_plural: Repositories
   label_browse: Browse
-  label_modification: "{{count}} change"
-  label_modification_plural: "{{count}} changes"
+  label_modification: "%{count} change"
+  label_modification_plural: "%{count} changes"
   label_branch: Branch
   label_tag: Tag 
   label_revision: Revision
   label_revision_plural: Revisions
-  label_revision_id: "Revision {{value}}"
+  label_revision_id: "Revision %{value}"
   label_associated_revisions: Associated revisions
   label_added: added
   label_modified: modified
@@ -637,8 +645,8 @@
   label_sort_lower: Move down
   label_sort_lowest: Move to bottom
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} late"
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} late"
   label_roadmap_no_issues: No issues for this version
   label_search: Search
   label_result_plural: Results
@@ -657,8 +665,8 @@
   label_issue_tracking: Issue tracking
   label_spent_time: Spent time
   label_overall_spent_time: Overall spent time
-  label_f_hour: "{{value}} hour"
-  label_f_hour_plural: "{{value}} hours"
+  label_f_hour: "%{value} hour"
+  label_f_hour_plural: "%{value} hours"
   label_time_tracking: Time tracking
   label_change_plural: Changes
   label_statistics: Statistics
@@ -709,15 +717,15 @@
   label_date_from: From
   label_date_to: To
   label_language_based: Based on user's language
-  label_sort_by: "Sort by {{value}}"
+  label_sort_by: "Sort by %{value}"
   label_send_test_email: Send a test email
   label_feeds_access_key: RSS access key
   label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS access key created {{value}} ago"
+  label_feeds_access_key_created_on: "RSS access key created %{value} ago"
   label_module_plural: Modules
-  label_added_time_by: "Added by {{author}} {{age}} ago"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
-  label_updated_time: "Updated {{value}} ago"
+  label_added_time_by: "Added by %{author} %{age} ago"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
+  label_updated_time: "Updated %{value} ago"
   label_jump_to_a_project: Jump to a project...
   label_file_plural: Files
   label_changeset_plural: Changesets
@@ -737,7 +745,7 @@
   label_registration_activation_by_email: account activation by email
   label_registration_manual_activation: manual account activation
   label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "Per page: {{value}}"
+  label_display_per_page: "Per page: %{value}"
   label_age: Age
   label_change_properties: Change properties
   label_general: General
@@ -760,7 +768,7 @@
   label_sort: Sort
   label_ascending: Ascending
   label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_wiki_content_added: Wiki page added
   label_wiki_content_updated: Wiki page updated
   label_group: Group
@@ -779,7 +787,7 @@
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   label_api_access_key: API access key
   label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
+  label_api_access_key_created_on: "API access key created %{value} ago"
   label_profile: Profile
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
@@ -796,7 +804,7 @@
   button_create_and_continue: Create and continue
   button_test: Test
   button_edit: Edit
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   button_add: Add
   button_change: Change
   button_apply: Apply
@@ -845,54 +853,55 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 means no restriction
   text_project_destroy_confirmation: Are you sure you want to delete this project and related data ?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Are you sure ?
   text_are_you_sure_with_children: "Delete issue and all child issues?"
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
   text_tip_issue_begin_day: issue beginning this day
   text_tip_issue_end_day: issue ending this day
   text_tip_issue_begin_end_day: issue beginning and ending this day
   text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
-  text_caracters_maximum: "{{count}} characters maximum."
-  text_caracters_minimum: "Must be at least {{count}} characters long."
-  text_length_between: "Length between {{min}} and {{max}} characters."
+  text_caracters_maximum: "%{count} characters maximum."
+  text_caracters_minimum: "Must be at least %{count} characters long."
+  text_length_between: "Length between %{min} and %{max} characters."
   text_tracker_no_workflow: No workflow defined for this tracker
   text_unallowed_characters: Unallowed characters
   text_comma_separated: Multiple values allowed (comma separated).
   text_line_separated: Multiple values allowed (one line for each value).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do ?"
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do ?"
   text_issue_category_destroy_assignments: Remove category assignments
   text_issue_category_reassign_to: Reassign issues to this category
   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)."
   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."
   text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_time_logged_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
   text_select_project_modules: 'Select modules to enable for this project:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: Attachments directory writable
   text_plugin_assets_writable: Plugin assets directory writable
   text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
   text_destroy_time_entries: Delete reported hours
   text_assign_time_entries_to_project: Assign reported hours to the project
   text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   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."
   text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
   text_wiki_page_nullify_children: "Keep child pages as root pages"
   text_wiki_page_destroy_children: "Delete child pages and all their descendants"
   text_wiki_page_reassign_children: "Reassign child pages to this parent page"
--- a/config/locales/.svn/text-base/es.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/es.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -66,44 +66,44 @@
       half_a_minute: "medio minuto" 
       less_than_x_seconds:
         one:  "menos de 1 segundo" 
-        other: "menos de {{count}} segundos"
+        other: "menos de %{count} segundos"
       x_seconds:
         one:  "1 segundo" 
-        other: "{{count}} segundos" 
+        other: "%{count} segundos" 
       less_than_x_minutes:
         one:  "menos de 1 minuto" 
-        other: "menos de {{count}} minutos" 
+        other: "menos de %{count} minutos" 
       x_minutes:
         one:  "1 minuto" 
-        other: "{{count}} minutos" 
+        other: "%{count} minutos" 
       about_x_hours:
         one:  "alrededor de 1 hora" 
-        other: "alrededor de {{count}} horas" 
+        other: "alrededor de %{count} horas" 
       x_days:
         one:  "1 día" 
-        other: "{{count}} días" 
+        other: "%{count} días" 
       about_x_months:
         one:  "alrededor de 1 mes" 
-        other: "alrededor de {{count}} meses" 
+        other: "alrededor de %{count} meses" 
       x_months:
         one:  "1 mes" 
-        other: "{{count}} meses" 
+        other: "%{count} meses" 
       about_x_years:
         one:  "alrededor de 1 año" 
-        other: "alrededor de {{count}} años" 
+        other: "alrededor de %{count} años" 
       over_x_years:
         one:  "más de 1 año" 
-        other: "más de {{count}} años" 
+        other: "más de %{count} años" 
       almost_x_years:
         one:   "casi 1 año"
-        other: "casi {{count}} años"
+        other: "casi %{count} años"
 
   activerecord:
     errors:
       template:
         header:
-          one:   "no se pudo guardar este {{model}} porque se encontró 1 error" 
-          other:  "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" 
+          one:   "no se pudo guardar este %{model} porque se encontró 1 error" 
+          other:  "no se pudo guardar este %{model} porque se encontraron %{count} errores" 
         # The variable :count is also available
         body: "Se encontraron problemas con los siguientes campos:" 
 
@@ -117,16 +117,16 @@
         accepted: "debe ser aceptado"
         empty: "no puede estar vacío"
         blank: "no puede estar en blanco"
-        too_long: "es demasiado largo ({{count}} caracteres máximo)"
-        too_short: "es demasiado corto ({{count}} caracteres mínimo)"
-        wrong_length: "no tiene la longitud correcta ({{count}} caracteres exactos)"
+        too_long: "es demasiado largo (%{count} caracteres máximo)"
+        too_short: "es demasiado corto (%{count} caracteres mínimo)"
+        wrong_length: "no tiene la longitud correcta (%{count} caracteres exactos)"
         taken: "ya está en uso"
         not_a_number: "no es un número"
-        greater_than: "debe ser mayor que {{count}}"
-        greater_than_or_equal_to: "debe ser mayor que o igual a {{count}}"
-        equal_to: "debe ser igual a {{count}}"
-        less_than: "debe ser menor que {{count}}"
-        less_than_or_equal_to: "debe ser menor que o igual a {{count}}"
+        greater_than: "debe ser mayor que %{count}"
+        greater_than_or_equal_to: "debe ser mayor que o igual a %{count}"
+        equal_to: "debe ser igual a %{count}"
+        less_than: "debe ser menor que %{count}"
+        less_than_or_equal_to: "debe ser menor que o igual a %{count}"
         odd: "debe ser impar"
         even: "debe ser par"
         greater_than_start_date: "debe ser posterior a la fecha de comienzo"
@@ -239,10 +239,10 @@
   enumeration_activities: Actividades (tiempo dedicado)
   enumeration_doc_categories: Categorías del documento
   enumeration_issue_priorities: Prioridad de las peticiones
-  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: {{value}}"
+  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: %{value}"
   error_issue_not_found_in_project: 'La petición no se encuentra o no está asociada a este proyecto'
   error_scm_annotate: "No existe la entrada o no ha podido ser anotada"
-  error_scm_command_failed: "Se produjo un error al acceder al repositorio: {{value}}"
+  error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}"
   error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio."
   field_account: Cuenta
   field_activity: Actividad
@@ -313,6 +313,7 @@
   field_role: Perfil
   field_searchable: Incluir en las búsquedas
   field_spent_on: Fecha
+  field_start_date: Fecha de inicio
   field_start_page: Página principal
   field_status: Estado
   field_subject: Tema
@@ -338,19 +339,19 @@
   general_text_no: 'no'
   general_text_yes: 'sí'
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errores"
+  gui_validation_error_plural: "%{count} errores"
   label_activity: Actividad
   label_add_another_file: Añadir otro fichero
   label_add_note: Añadir una nota
   label_added: añadido
-  label_added_time_by: "Añadido por {{author}} hace {{age}}"
+  label_added_time_by: "Añadido por %{author} hace %{age}"
   label_administration: Administración
   label_age: Edad
   label_ago: hace
   label_all: todos
   label_all_time: todo el tiempo
   label_all_words: Todas las palabras
-  label_and_its_subprojects: "{{value}} y proyectos secundarios"
+  label_and_its_subprojects: "%{value} y proyectos secundarios"
   label_applied_status: Aplicar estado
   label_assigned_to_me_issues: Peticiones que me están asignadas
   label_associated_revisions: Revisiones asociadas
@@ -383,17 +384,17 @@
   label_closed_issues: cerrada
   label_closed_issues_plural: cerradas
   label_x_open_issues_abbr_on_total:
-    zero:  0 abiertas / {{total}}
-    one:   1 abierta / {{total}}
-    other: "{{count}} abiertas / {{total}}"
+    zero:  0 abiertas / %{total}
+    one:   1 abierta / %{total}
+    other: "%{count} abiertas / %{total}"
   label_x_open_issues_abbr:
     zero:  0 abiertas
     one:   1 abierta
-    other: "{{count}} abiertas"
+    other: "%{count} abiertas"
   label_x_closed_issues_abbr:
     zero:  0 cerradas
     one:   1 cerrada
-    other: "{{count}} cerradas"
+    other: "%{count} cerradas"
   label_comment: Comentario
   label_comment_add: Añadir un comentario
   label_comment_added: Comentario añadido
@@ -402,7 +403,7 @@
   label_x_comments:
     zero: sin comentarios
     one: 1 comentario
-    other: "{{count}} comentarios"
+    other: "%{count} comentarios"
   label_commits_per_author: Commits por autor
   label_commits_per_month: Commits por mes
   label_confirmation: Confirmación
@@ -426,13 +427,13 @@
   label_diff_inline: en línea
   label_diff_side_by_side: cara a cara
   label_disabled: deshabilitado
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_document: Documento
   label_document_added: Documento añadido
   label_document_new: Nuevo documento
   label_document_plural: Documentos
-  label_download: "{{count}} Descarga"
-  label_download_plural: "{{count}} Descargas"
+  label_download: "%{count} Descarga"
+  label_download_plural: "%{count} Descargas"
   label_downloads_abbr: D/L
   label_duplicated_by: duplicada por
   label_duplicates: duplicada de
@@ -444,10 +445,10 @@
   label_equals: igual
   label_example: Ejemplo
   label_export_to: 'Exportar a:'
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "Clave de acceso por RSS creada hace {{value}}"
+  label_feeds_access_key_created_on: "Clave de acceso por RSS creada hace %{value}"
   label_file_added: Fichero añadido
   label_file_plural: Archivos
   label_filter_add: Añadir el filtro
@@ -484,13 +485,13 @@
   label_issue_updated: Petición actualizada
   label_issue_view_all: Ver todas las peticiones
   label_issue_watchers: Seguidores
-  label_issues_by: "Peticiones por {{value}}"
+  label_issues_by: "Peticiones por %{value}"
   label_jump_to_a_project: Ir al proyecto...
   label_language_based: Basado en el idioma
-  label_last_changes: "últimos {{count}} cambios"
+  label_last_changes: "últimos %{count} cambios"
   label_last_login: Última conexión
   label_last_month: último mes
-  label_last_n_days: "últimos {{count}} días"
+  label_last_n_days: "últimos %{count} días"
   label_last_week: última semana
   label_latest_revision: Última revisión
   label_latest_revision_plural: Últimas revisiones
@@ -511,8 +512,8 @@
   label_message_plural: Mensajes
   label_message_posted: Mensaje añadido
   label_min_max_length: Longitud mín - máx
-  label_modification: "{{count}} modificación"
-  label_modification_plural: "{{count}} modificaciones"
+  label_modification: "%{count} modificación"
+  label_modification_plural: "%{count} modificaciones"
   label_modified: modificado
   label_module_plural: Módulos
   label_month: Mes
@@ -563,7 +564,7 @@
   label_x_projects:
     zero:  sin proyectos
     one:   1 proyecto
-    other: "{{count}} proyectos"
+    other: "%{count} proyectos"
   label_public_projects: Proyectos públicos
   label_query: Consulta personalizada
   label_query_new: Nueva consulta
@@ -590,9 +591,9 @@
   label_revision: Revisión
   label_revision_plural: Revisiones
   label_roadmap: Planificación
-  label_roadmap_due_in: "Finaliza en {{value}}"
+  label_roadmap_due_in: "Finaliza en %{value}"
   label_roadmap_no_issues: No hay peticiones para esta versión
-  label_roadmap_overdue: "{{value}} tarde"
+  label_roadmap_overdue: "%{value} tarde"
   label_role: Perfil
   label_role_and_permissions: Perfiles y permisos
   label_role_new: Nuevo perfil
@@ -604,7 +605,7 @@
   label_send_test_email: Enviar un correo de prueba
   label_settings: Configuración
   label_show_completed_versions: Muestra las versiones terminadas
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_sort_higher: Subir
   label_sort_highest: Primero
   label_sort_lower: Bajar
@@ -628,11 +629,11 @@
   label_tracker: Tipo
   label_tracker_new: Nuevo tipo
   label_tracker_plural: Tipos de peticiones
-  label_updated_time: "Actualizado hace {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} hace {{age}}"
+  label_updated_time: "Actualizado hace %{value}"
+  label_updated_time_by: "Actualizado por %{author} hace %{age}"
   label_used_by: Utilizado por
   label_user: Usuario
-  label_user_activity: "Actividad de {{value}}"
+  label_user_activity: "Actividad de %{value}"
   label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
   label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
   label_user_mail_option_selected: "Para cualquier evento de los proyectos seleccionados..."
@@ -653,16 +654,16 @@
   label_workflow: Flujo de trabajo
   label_year: Año
   label_yesterday: ayer
-  mail_body_account_activation_request: "Se ha inscrito un nuevo usuario ({{value}}). La cuenta está pendiende de aprobación:"
+  mail_body_account_activation_request: "Se ha inscrito un nuevo usuario (%{value}). La cuenta está pendiende de aprobación:"
   mail_body_account_information: Información sobre su cuenta
-  mail_body_account_information_external: "Puede usar su cuenta {{value}} para conectarse."
+  mail_body_account_information_external: "Puede usar su cuenta %{value} para conectarse."
   mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:'
   mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:'
-  mail_body_reminder: "{{count}} peticion(es) asignadas a tí finalizan en los próximos {{days}} días:"
-  mail_subject_account_activation_request: "Petición de activación de cuenta {{value}}"
-  mail_subject_lost_password: "Tu contraseña del {{value}}"
-  mail_subject_register: "Activación de la cuenta del {{value}}"
-  mail_subject_reminder: "{{count}} peticion(es) finalizan en los próximos {{days}} días"
+  mail_body_reminder: "%{count} peticion(es) asignadas a tí finalizan en los próximos %{days} días:"
+  mail_subject_account_activation_request: "Petición de activación de cuenta %{value}"
+  mail_subject_lost_password: "Tu contraseña del %{value}"
+  mail_subject_register: "Activación de la cuenta del %{value}"
+  mail_subject_reminder: "%{count} peticion(es) finalizan en los próximos %{days} días"
   notice_account_activated: Su cuenta ha sido activada. Ya puede conectarse.
   notice_account_invalid_creditentials: Usuario o contraseña inválido.
   notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
@@ -674,9 +675,9 @@
   notice_account_wrong_password: Contraseña incorrecta.
   notice_can_t_change_password: Esta cuenta utiliza una fuente de autenticación externa. No es posible cambiar la contraseña.
   notice_default_data_loaded: Configuración por defecto cargada correctamente.
-  notice_email_error: "Ha ocurrido un error mientras enviando el correo ({{value}})"
-  notice_email_sent: "Se ha enviado un correo a {{value}}"
-  notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en {{count}} seleccionado: {{ids}}."
+  notice_email_error: "Ha ocurrido un error mientras enviando el correo (%{value})"
+  notice_email_sent: "Se ha enviado un correo a %{value}"
+  notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %{count} seleccionado: %{ids}."
   notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
   notice_file_not_found: La página a la que intenta acceder no existe.
   notice_locking_conflict: Los datos han sido modificados por otro usuario.
@@ -787,25 +788,25 @@
   status_registered: registrado
   text_are_you_sure: ¿Está seguro?
   text_assign_time_entries_to_project: Asignar las horas al proyecto
-  text_caracters_maximum: "{{count}} caracteres como máximo."
-  text_caracters_minimum: "{{count}} caracteres como mínimo."
+  text_caracters_maximum: "%{count} caracteres como máximo."
+  text_caracters_minimum: "%{count} caracteres como mínimo."
   text_comma_separated: Múltiples valores permitidos (separados por coma).
   text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
   text_destroy_time_entries: Borrar las horas
-  text_destroy_time_entries_question: Existen {{hours}} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
+  text_destroy_time_entries_question: Existen %{hours} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
   text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
   text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios."
   text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
-  text_enumeration_destroy_question: "{{count}} objetos con este valor asignado."
+  text_enumeration_destroy_question: "%{count} objetos con este valor asignado."
   text_file_repository_writable: Se puede escribir en el repositorio
-  text_issue_added: "Petición {{id}} añadida por {{author}}."
+  text_issue_added: "Petición %{id} añadida por %{author}."
   text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
-  text_issue_category_destroy_question: "Algunas peticiones ({{count}}) están asignadas a esta categoría. ¿Qué desea hacer?"
+  text_issue_category_destroy_question: "Algunas peticiones (%{count}) están asignadas a esta categoría. ¿Qué desea hacer?"
   text_issue_category_reassign_to: Reasignar las peticiones a la categoría
-  text_issue_updated: "La petición {{id}} ha sido actualizada por {{author}}."
+  text_issue_updated: "La petición %{id} ha sido actualizada por %{author}."
   text_issues_destroy_confirmation: '¿Seguro que quiere borrar las peticiones seleccionadas?'
   text_issues_ref_in_commit_messages: Referencia y petición de corrección en los mensajes
-  text_length_between: "Longitud entre {{min}} y {{max}} caracteres."
+  text_length_between: "Longitud entre %{min} y %{max} caracteres."
   text_load_default_configuration: Cargar la configuración por defecto
   text_min_max_length_info: 0 para ninguna restricción
   text_no_configuration_data: "Todavía no se han configurado perfiles, ni tipos, estados y flujo de trabajo asociado a peticiones. Se recomiendo encarecidamente cargar la configuración por defecto. Una vez cargada, podrá modificarla."
@@ -817,19 +818,19 @@
   text_rmagick_available: RMagick disponible (opcional)
   text_select_mail_notifications: Seleccionar los eventos a notificar
   text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
-  text_status_changed_by_changeset: "Aplicado en los cambios {{value}}"
-  text_subprojects_destroy_warning: "Los proyectos secundarios: {{value}} también se eliminarán"
+  text_status_changed_by_changeset: "Aplicado en los cambios %{value}"
+  text_subprojects_destroy_warning: "Los proyectos secundarios: %{value} también se eliminarán"
   text_tip_issue_begin_day: tarea que comienza este día
   text_tip_issue_begin_end_day: tarea que comienza y termina este día
   text_tip_issue_end_day: tarea que termina este día
   text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tipo de petición
   text_unallowed_characters: Caracteres no permitidos
   text_user_mail_option: "De los proyectos no seleccionados, sólo recibirá notificaciones sobre elementos monitorizados o elementos en los que esté involucrado (por ejemplo, peticiones de las que usted sea autor o asignadas a usted)."
-  text_user_wrote: "{{value}} escribió:"
+  text_user_wrote: "%{value} escribió:"
   text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
   text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
   text_plugin_assets_writable: Se puede escribir en el directorio público de las extensiones
-  warning_attachments_not_saved: "No se han podido grabar {{count}} ficheros."
+  warning_attachments_not_saved: "No se han podido grabar %{count} ficheros."
   button_create_and_continue: Crear y continuar
   text_custom_field_possible_values_info: 'Un valor en cada línea'
   label_display: Mostrar
@@ -844,21 +845,21 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: Desde {{start}} hasta {{end}}
+  label_date_from_to: Desde %{start} hasta %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tiene {{descendants}} página(s) hija(s) y descendiente(s). ¿Qué desea hacer?
+  text_wiki_page_destroy_question: Esta página tiene %{descendants} página(s) hija(s) y descendiente(s). ¿Qué desea hacer?
   text_wiki_page_reassign_children: Reasignar páginas hijas a esta página
   text_wiki_page_nullify_children: Dejar páginas hijas como páginas raíz
   text_wiki_page_destroy_children: Eliminar páginas hijas y todos sus descendientes
   setting_password_min_length: Longitud mínima de la contraseña
   field_group_by: Agrupar resultados por
-  mail_subject_wiki_content_updated: "La página wiki '{{id}}' ha sido actualizada"
+  mail_subject_wiki_content_updated: "La página wiki '%{id}' ha sido actualizada"
   label_wiki_content_added: Página wiki añadida
-  mail_subject_wiki_content_added: "Se ha añadido la página wiki '{{id}}'."
-  mail_body_wiki_content_added: "{{author}} ha añadido la página wiki '{{id}}'."
+  mail_subject_wiki_content_added: "Se ha añadido la página wiki '%{id}'."
+  mail_body_wiki_content_added: "%{author} ha añadido la página wiki '%{id}'."
   label_wiki_content_updated: Página wiki actualizada
-  mail_body_wiki_content_updated: La página wiki '{{id}}' ha sido actualizada por {{author}}.
+  mail_body_wiki_content_updated: La página wiki '%{id}' ha sido actualizada por %{author}.
   permission_add_project: Crear proyecto
   setting_new_project_user_role_id: Permiso asignado a un usuario no-administrador para crear proyectos
   label_view_all_revisions: Ver todas las revisiones
@@ -866,14 +867,14 @@
   label_branch: Rama
   error_no_tracker_in_project: Este proyecto no tiene asociados tipos de peticiones. Por favor, revise la configuración.
   error_no_default_issue_status: No se ha definido un estado de petición por defecto. Por favor, revise la configuración (en "Administración" -> "Estados de las peticiones").
-  text_journal_changed: "{{label}} cambiado {{old}} por {{new}}"
-  text_journal_set_to: "{{label}} establecido a {{value}}"
-  text_journal_deleted: "{{label}} eliminado ({{old}})"
+  text_journal_changed: "%{label} cambiado %{old} por %{new}"
+  text_journal_set_to: "%{label} establecido a %{value}"
+  text_journal_deleted: "%{label} eliminado (%{old})"
   label_group_plural: Grupos
   label_group: Grupo
   label_group_new: Nuevo grupo
   label_time_entry_plural: Tiempo dedicado
-  text_journal_added: "Añadido {{label}} {{value}}"
+  text_journal_added: "Añadido %{label} %{value}"
   field_active: Activo
   enumeration_system_activity: Actividad del sistema
   permission_delete_issue_watchers: Borrar seguidores
@@ -909,9 +910,9 @@
   setting_start_of_week: Comenzar las semanas en
   permission_view_issues: Ver peticiones
   label_display_used_statuses_only: Sólo mostrar los estados usados por este tipo de petición
-  label_revision_id: Revisión {{value}}
+  label_revision_id: Revisión %{value}
   label_api_access_key: Clave de acceso de la API
-  label_api_access_key_created_on: Clave de acceso de la API creada hace {{value}}
+  label_api_access_key_created_on: Clave de acceso de la API creada hace %{value}
   label_feeds_access_key: Clave de acceso RSS
   notice_api_access_key_reseted: Clave de acceso a la API regenerada.
   setting_rest_api_enabled: Activar servicio web REST
@@ -938,32 +939,37 @@
   label_subtask_plural: Subtareas
   label_project_copy_notifications: Enviar notificaciones por correo electrónico durante la copia del proyecto
   error_can_not_delete_custom_field: Fue imposible eliminar el campo personalizado
-  error_unable_to_connect: Fue imposible conectar con ({{value}})
+  error_unable_to_connect: Fue imposible conectar con (%{value})
   error_can_not_remove_role: Este rol está en uso y no puede ser eliminado.
   error_can_not_delete_tracker: Este tipo contiene peticiones y no puede ser eliminado.
   field_principal: Principal
   label_my_page_block: Bloque Mi página
-  notice_failed_to_save_members: "Fallo al guardar miembro(s): {{errors}}."
+  notice_failed_to_save_members: "Fallo al guardar miembro(s): %{errors}."
   text_zoom_out: Alejar
   text_zoom_in: Acercar
   notice_unable_delete_time_entry: Fue imposible eliminar la entrada de tiempo dedicado.
   label_overall_spent_time: Tiempo total dedicado
   field_time_entries: Log time
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  project_module_calendar: Calendario
+  button_edit_associated_wikipage: "Editar paginas Wiki asociadas: %{page_title}"
+  text_are_you_sure_with_children: ¿Borrar peticiones y todas sus peticiones hijas?
+  field_text: Campo de texto
+  label_user_mail_option_only_owner: Solo para objetos que soy propietario
+  setting_default_notification_option: Opcion de notificacion por defecto
+  label_user_mail_option_only_my_events: Solo para objetos que soy seguidor o estoy involucrado
+  label_user_mail_option_only_assigned: Solo para objetos que estoy asignado
+  label_user_mail_option_none: Sin eventos
+  field_member_of_group: Asignado al grupo
+  field_assigned_to_role: Asignado al perfil
+  notice_not_authorized_archived_project: El proyecto al que intenta acceder ha sido archivado.
+  label_principal_search: "Buscar por usuario o grupo:"
+  label_user_search: "Buscar por usuario:"
   field_visible: Visible
-  setting_emails_header: Emails header
+  setting_emails_header: Encabezado de Correos
+
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/eu.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/eu.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,933 +1,942 @@
-# Redmine EU language
-# Author: Ales Zabala Alava (Shagi), <shagi@gisa-elkartea.org>
-# 2010-01-25
-# Distributed under the same terms as the Redmine itself.
-eu:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%Y/%m/%d"
-      short: "%b %d"
-      long: "%Y %B %d"
-      
-    day_names: [Igandea, Astelehena, Asteartea, Asteazkena, Osteguna, Ostirala, Larunbata]
-    abbr_day_names: [Ig., Al., Ar., Az., Og., Or., La.]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, Urtarrila, Otsaila, Martxoa, Apirila, Maiatza, Ekaina, Uztaila, Abuztua, Iraila, Urria, Azaroa, Abendua]
-    abbr_month_names: [~, Urt, Ots, Mar, Api, Mai, Eka, Uzt, Abu, Ira, Urr, Aza, Abe]
-    # Used in date_select and datime_select.
-    order: [ :year, :month, :day ]
-
-  time:
-    formats:
-      default: "%Y/%m/%d %H:%M"
-      time: "%H:%M"
-      short: "%b %d %H:%M"
-      long: "%Y %B %d %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "minutu erdi"
-      less_than_x_seconds:
-        one:   "segundu bat baino gutxiago"
-        other: "{{count}} segundu baino gutxiago"
-      x_seconds:
-        one:   "segundu 1"
-        other: "{{count}} segundu"
-      less_than_x_minutes:
-        one:   "minutu bat baino gutxiago"
-        other: "{{count}} minutu baino gutxiago"
-      x_minutes:
-        one:   "minutu 1"
-        other: "{{count}} minutu"
-      about_x_hours:
-        one:   "ordu 1 inguru"
-        other: "{{count}} ordu inguru"
-      x_days:
-        one:   "egun 1"
-        other: "{{count}} egun"
-      about_x_months:
-        one:   "hilabete 1 inguru"
-        other: "{{count}} hilabete inguru"
-      x_months:
-        one:   "hilabete 1"
-        other: "{{count}} hilabete"
-      about_x_years:
-        one:   "urte 1 inguru"
-        other: "{{count}} urte inguru"
-      over_x_years:
-        one:   "urte 1 baino gehiago"
-        other: "{{count}} urte baino gehiago"
-      almost_x_years:
-        one:   "ia urte 1"
-        other: "ia {{count}} urte"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Byte"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "eta"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "ez dago zerrendan"
-        exclusion: "erreserbatuta dago"
-        invalid: "baliogabea da"
-        confirmation: "ez du berrespenarekin bat egiten"
-        accepted: "onartu behar da"
-        empty: "ezin da hutsik egon"
-        blank: "ezin da hutsik egon"
-        too_long: "luzeegia da (maximoa {{count}} karaktere dira)"
-        too_short: "laburregia da (minimoa {{count}} karaktere dira)"
-        wrong_length: "luzera ezegokia da ({{count}} karakter izan beharko litzake)"
-        taken: "dagoeneko hartuta dago"
-        not_a_number: "ez da zenbaki bat"
-        not_a_date: "ez da baliozko data"
-        greater_than: "{{count}} baino handiagoa izan behar du"
-        greater_than_or_equal_to: "{{count}} edo handiagoa izan behar du"
-        equal_to: "{{count}} izan behar du"
-        less_than: "{{count}} baino gutxiago izan behar du"
-        less_than_or_equal_to: "{{count}} edo gutxiago izan behar du"
-        odd: "bakoitia izan behar du"
-        even: "bikoitia izan behar du"
-        greater_than_start_date: "hasiera data baino handiagoa izan behar du"
-        not_same_project: "ez dago proiektu berdinean"
-        circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Hautatu mesedez
-  
-  general_text_No: 'Ez'
-  general_text_Yes: 'Bai'
-  general_text_no: 'ez'
-  general_text_yes: 'bai'
-  general_lang_name: 'Euskara'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Kontua ongi eguneratu da.
-  notice_account_invalid_creditentials: Erabiltzaile edo pasahitz ezegokia
-  notice_account_password_updated: Pasahitza ongi eguneratu da.
-  notice_account_wrong_password: Pasahitz ezegokia.
-  notice_account_register_done: Kontua ongi sortu da. Kontua gaitzeko klikatu epostan adierazi zaizun estekan.
-  notice_account_unknown_email: Erabiltzaile ezezaguna.
-  notice_can_t_change_password: Kontu honek kanpoko autentikazio bat erabiltzen du. Ezinezkoa da pasahitza aldatzea.
-  notice_account_lost_email_sent: Pasahitz berria aukeratzeko jarraibideak dituen eposta bat bidali zaizu.
-  notice_account_activated: Zure kontua gaituta dago. Orain saioa has dezakezu
-  notice_successful_create: Sortze arrakastatsua.
-  notice_successful_update: Eguneratze arrakastatsua.
-  notice_successful_delete: Ezabaketa arrakastatsua.
-  notice_successful_connection: Konexio arrakastatsua.
-  notice_file_not_found: Atzitu nahi duzun orria ez da exisitzen edo ezabatua izan da.
-  notice_locking_conflict: Beste erabiltzaile batek datuak eguneratu ditu.
-  notice_not_authorized: Ez duzu orri hau atzitzeko baimenik.
-  notice_email_sent: "{{value}} helbidera eposta bat bidali da"
-  notice_email_error: "Errorea eposta bidaltzean ({{value}})"
-  notice_feeds_access_key_reseted: Zure RSS atzipen giltza berrezarri da.
-  notice_api_access_key_reseted: Zure API atzipen giltza berrezarri da.
-  notice_failed_to_save_issues: "Hautatutako {{total}} zereginetatik {{count}} ezin izan dira konpondu: {{ids}}."
-  notice_no_issue_selected: "Ez da zereginik hautatu! Mesedez, editatu nahi dituzun arazoak markatu."
-  notice_account_pending: "Zure kontua sortu da, orain kudeatzailearen onarpenaren zain dago."
-  notice_default_data_loaded: Lehenetsitako konfigurazioa ongi kargatu da.
-  notice_unable_delete_version: Ezin da bertsioa ezabatu.
-  notice_issue_done_ratios_updated: Burututako zereginen erlazioa eguneratu da.
-  
-  error_can_t_load_default_data: "Ezin izan da lehenetsitako konfigurazioa kargatu: {{value}}"
-  error_scm_not_found: "Sarrera edo berrikuspena ez da biltegian topatu."
-  error_scm_command_failed: "Errorea gertatu da biltegia atzitzean: {{value}}"
-  error_scm_annotate: "Sarrera ez da existitzen edo ezin da anotatu."
-  error_issue_not_found_in_project: 'Zeregina ez da topatu edo ez da proiektu honetakoa'
-  error_no_tracker_in_project: 'Proiektu honek ez du aztarnaririk esleituta. Mesedez egiaztatu Proiektuaren ezarpenak.'
-  error_no_default_issue_status: 'Zereginek ez dute lehenetsitako egoerarik.  Mesedez egiaztatu zure konfigurazioa ("Kudeaketa -> Arazoen egoerak" atalera joan).'
-  error_can_not_reopen_issue_on_closed_version: 'Itxitako bertsio batera esleitutako zereginak ezin dira berrireki'
-  error_can_not_archive_project: Proiektu hau ezin da artxibatu
-  error_issue_done_ratios_not_updated: "Burututako zereginen erlazioa ez da eguneratu."
-  error_workflow_copy_source: 'Mesedez hautatu iturburuko aztarnari edo rola'
-  error_workflow_copy_target: 'Mesedez hautatu helburuko aztarnari(ak) edo rola(k)'
-  
-  warning_attachments_not_saved: "{{count}} fitxategi ezin izan d(ir)a gorde."
-  
-  mail_subject_lost_password: "Zure {{value}} pasahitza"
-  mail_body_lost_password: 'Zure pasahitza aldatzeko hurrengo estekan klikatu:'
-  mail_subject_register: "Zure {{value}} kontuaren gaitzea"
-  mail_body_register: 'Zure kontua gaitzeko hurrengo estekan klikatu:'
-  mail_body_account_information_external: "Zure {{value}} kontua erabil dezakezu saioa hasteko."
-  mail_body_account_information: Zure kontuaren informazioa
-  mail_subject_account_activation_request: "{{value}} kontu gaitzeko eskaera"
-  mail_body_account_activation_request: "Erabiltzaile berri bat ({{value}}) erregistratu da. Kontua zure onarpenaren zain dago:"
-  mail_subject_reminder: "{{count}} arazo hurrengo {{days}} egunetan amaitzen d(ir)a"
-  mail_body_reminder: "Zuri esleituta dauden {{count}} arazo hurrengo {{days}} egunetan amaitzen d(ir)a:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki orria gehitu da"
-  mail_body_wiki_content_added: "{{author}}-(e)k '{{id}}' wiki orria gehitu du."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki orria eguneratu da"
-  mail_body_wiki_content_updated: "{{author}}-(e)k '{{id}}' wiki orria eguneratu du."
-  
-  gui_validation_error: akats 1
-  gui_validation_error_plural: "{{count}} akats"
-  
-  field_name: Izena
-  field_description: Deskribapena
-  field_summary: Laburpena
-  field_is_required: Beharrezkoa
-  field_firstname: Izena
-  field_lastname: Abizenak
-  field_mail: Eposta
-  field_filename: Fitxategia
-  field_filesize: Tamaina
-  field_downloads: Deskargak
-  field_author: Egilea
-  field_created_on: Sortuta
-  field_updated_on: Eguneratuta
-  field_field_format: Formatua
-  field_is_for_all: Proiektu guztietarako
-  field_possible_values: Balio posibleak
-  field_regexp: Expresio erregularra
-  field_min_length: Luzera minimoa
-  field_max_length: Luzera maxioma
-  field_value: Balioa
-  field_category: Kategoria
-  field_title: Izenburua
-  field_project: Proiektua
-  field_issue: Zeregina
-  field_status: Egoera
-  field_notes: Oharrak
-  field_is_closed: Itxitako arazoa
-  field_is_default: Lehenetsitako balioa
-  field_tracker: Aztarnaria
-  field_subject: Gaia
-  field_due_date: Amaiera data
-  field_assigned_to: Esleituta
-  field_priority: Lehentasuna
-  field_fixed_version: Helburuko bertsioa
-  field_user: Erabiltzilea
-  field_role: Rola
-  field_homepage: Orri nagusia
-  field_is_public: Publikoa
-  field_parent: "Honen azpiproiektua:"
-  field_is_in_chlog: Zereginak aldaketa egunkarian ikusten dira
-  field_is_in_roadmap: Arazoak ibilbide-mapan erakutsi
-  field_login: Erabiltzaile izena
-  field_mail_notification: Eposta jakinarazpenak
-  field_admin: Kudeatzailea
-  field_last_login_on: Azken konexioa
-  field_language: Hizkuntza
-  field_effective_date: Data
-  field_password: Pasahitza
-  field_new_password: Pasahitz berria
-  field_password_confirmation: Berrespena
-  field_version: Bertsioa
-  field_type: Mota
-  field_host: Ostalaria
-  field_port: Portua
-  field_account: Kontua
-  field_base_dn: Base DN
-  field_attr_login: Erabiltzaile atributua
-  field_attr_firstname: Izena atributua
-  field_attr_lastname: Abizenak atributua
-  field_attr_mail: Eposta atributua
-  field_onthefly: Zuzeneko erabiltzaile sorrera
-  field_done_ratio: Egindako %
-  field_auth_source: Autentikazio modua
-  field_hide_mail: Nire eposta helbidea ezkutatu
-  field_comments: Iruzkina
-  field_url: URL
-  field_start_page: Hasierako orria
-  field_subproject: Azpiproiektua
-  field_hours: Ordu
-  field_activity: Jarduera
-  field_spent_on: Data
-  field_identifier: Identifikatzailea
-  field_is_filter: Iragazki moduan erabilita
-  field_issue_to: Erlazionatutako zereginak
-  field_delay: Atzerapena
-  field_assignable: Arazoak rol honetara esleitu daitezke
-  field_redirect_existing_links: Existitzen diren estelak berbideratu
-  field_estimated_hours: Estimatutako denbora
-  field_column_names: Zutabeak
-  field_time_zone: Ordu zonaldea
-  field_searchable: Bilagarria
-  field_default_value: Lehenetsitako balioa
-  field_comments_sorting: Iruzkinak erakutsi
-  field_parent_title: Orri gurasoa
-  field_editable: Editagarria
-  field_watcher: Behatzailea
-  field_identity_url: OpenID URLa
-  field_content: Edukia
-  field_group_by: Emaitzak honegatik taldekatu
-  field_sharing: Partekatzea
-
-  setting_app_title: Aplikazioaren izenburua
-  setting_app_subtitle: Aplikazioaren azpizenburua
-  setting_welcome_text: Ongietorriko testua
-  setting_default_language: Lehenetsitako hizkuntza
-  setting_login_required: Autentikazioa derrigorrezkoa
-  setting_self_registration: Norberak erregistratu
-  setting_attachment_max_size: Eranskinen tamaina max.
-  setting_issues_export_limit: Zereginen esportatze limitea
-  setting_mail_from: Igorlearen eposta helbidea
-  setting_bcc_recipients: Hartzaileak ezkutuko kopian (bcc)
-  setting_plain_text_mail: Testu soileko epostak (HTML-rik ez)
-  setting_host_name: Ostalari izena eta bidea
-  setting_text_formatting: Testu formatua
-  setting_wiki_compression: Wikiaren historia konprimitu
-  setting_feeds_limit: Jarioaren edukiera limitea
-  setting_default_projects_public: Proiektu berriak defektuz publikoak dira
-  setting_autofetch_changesets: Commit-ak automatikoki hartu
-  setting_sys_api_enabled: Biltegien kudeaketarako WS gaitu
-  setting_commit_ref_keywords: Erreferentzien gako-hitzak
-  setting_commit_fix_keywords: Konpontze gako-hitzak
-  setting_autologin: Saioa automatikoki hasi
-  setting_date_format: Data formatua
-  setting_time_format: Ordu formatua
-  setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
-  setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
-  setting_repositories_encodings: Biltegien kodeketak
-  setting_commit_logs_encoding: Commit-en mezuen kodetzea
-  setting_emails_footer: Eposten oina
-  setting_protocol: Protokoloa
-  setting_per_page_options: Orriko objektuen aukerak
-  setting_user_format: Erabiltzaileak erakusteko formatua
-  setting_activity_days_default: Proiektuen jardueran erakusteko egunak
-  setting_display_subprojects_issues: Azpiproiektuen zereginak proiektu nagusian erakutsi defektuz
-  setting_enabled_scm: Gaitutako IKKak
-  setting_mail_handler_body_delimiters: "Lerro hauteko baten ondoren epostak moztu"
-  setting_mail_handler_api_enabled: Sarrerako epostentzako WS gaitu
-  setting_mail_handler_api_key: API giltza
-  setting_sequential_project_identifiers: Proiektuen identifikadore sekuentzialak sortu
-  setting_gravatar_enabled: Erabili Gravatar erabiltzaile ikonoak
-  setting_gravatar_default: Lehenetsitako Gravatar irudia
-  setting_diff_max_lines_displayed: Erakutsiko diren diff lerro kopuru maximoa
-  setting_file_max_size_displayed: Barnean erakuzten diren testu fitxategien tamaina maximoa
-  setting_repository_log_display_limit: Egunkari fitxategian erakutsiko diren berrikuspen kopuru maximoa.
-  setting_openid: Baimendu OpenID saio hasiera eta erregistatzea
-  setting_password_min_length: Pasahitzen luzera minimoa
-  setting_new_project_user_role_id: Proiektu berriak sortzerakoan kudeatzaile ez diren erabiltzaileei esleitutako rola
-  setting_default_projects_modules: Proiektu berrientzako defektuz gaitutako moduluak
-  setting_issue_done_ratio: "Zereginen burututako tasa kalkulatzean erabili:"
-  setting_issue_done_ratio_issue_field: Zeregin eremua erabili
-  setting_issue_done_ratio_issue_status: Zeregin egoera erabili
-  setting_start_of_week: "Egutegiak noiz hasi:"
-  setting_rest_api_enabled: Gaitu REST web zerbitzua
-  
-  permission_add_project: Proiektua sortu
-  permission_add_subprojects: Azpiproiektuak sortu
-  permission_edit_project: Proiektua editatu
-  permission_select_project_modules: Proiektuaren moduluak hautatu
-  permission_manage_members: Kideak kudeatu
-  permission_manage_versions: Bertsioak kudeatu
-  permission_manage_categories: Arazoen kategoriak kudeatu
-  permission_view_issues: Zereginak ikusi
-  permission_add_issues: Zereginak gehitu
-  permission_edit_issues: Zereginak aldatu
-  permission_manage_issue_relations: Zereginen erlazioak kudeatu
-  permission_add_issue_notes: Oharrak gehitu
-  permission_edit_issue_notes: Oharrak aldatu
-  permission_edit_own_issue_notes: Nork bere oharrak aldatu
-  permission_move_issues: Zereginak mugitu
-  permission_delete_issues: Zereginak ezabatu
-  permission_manage_public_queries: Galdera publikoak kudeatu
-  permission_save_queries: Galderak gorde
-  permission_view_gantt: Gantt diagrama ikusi
-  permission_view_calendar: Egutegia ikusi
-  permission_view_issue_watchers: Behatzaileen zerrenda ikusi
-  permission_add_issue_watchers: Behatzaileak gehitu
-  permission_delete_issue_watchers: Behatzaileak ezabatu
-  permission_log_time: Igarotako denbora erregistratu
-  permission_view_time_entries: Igarotako denbora ikusi
-  permission_edit_time_entries: Denbora egunkariak editatu
-  permission_edit_own_time_entries: Nork bere denbora egunkariak editatu
-  permission_manage_news: Berriak kudeatu
-  permission_comment_news: Berrien iruzkinak egin
-  permission_manage_documents: Dokumentuak kudeatu
-  permission_view_documents: Dokumentuak ikusi
-  permission_manage_files: Fitxategiak kudeatu
-  permission_view_files: Fitxategiak ikusi
-  permission_manage_wiki: Wikia kudeatu
-  permission_rename_wiki_pages: Wiki orriak berrizendatu
-  permission_delete_wiki_pages: Wiki orriak ezabatu
-  permission_view_wiki_pages: Wikia ikusi
-  permission_view_wiki_edits: Wikiaren historia ikusi
-  permission_edit_wiki_pages: Wiki orriak editatu
-  permission_delete_wiki_pages_attachments: Eranskinak ezabatu
-  permission_protect_wiki_pages: Wiki orriak babestu
-  permission_manage_repository: Biltegiak kudeatu
-  permission_browse_repository: Biltegia arakatu
-  permission_view_changesets: Aldaketak ikusi
-  permission_commit_access: Commit atzipena
-  permission_manage_boards: Foroak kudeatu
-  permission_view_messages: Mezuak ikusi
-  permission_add_messages: Mezuak bidali
-  permission_edit_messages: Mezuak aldatu
-  permission_edit_own_messages: Nork bere mezuak aldatu
-  permission_delete_messages: Mezuak ezabatu
-  permission_delete_own_messages: Nork bere mezuak ezabatu
-  
-  project_module_issue_tracking: Zereginen jarraipena
-  project_module_time_tracking: Denbora jarraipena
-  project_module_news: Berriak
-  project_module_documents: Dokumentuak
-  project_module_files: Fitxategiak
-  project_module_wiki: Wiki
-  project_module_repository: Biltegia
-  project_module_boards: Foroak
-  
-  label_user: Erabiltzailea
-  label_user_plural: Erabiltzaileak
-  label_user_new: Erabiltzaile berria
-  label_user_anonymous: Ezezaguna
-  label_project: Proiektua
-  label_project_new: Proiektu berria
-  label_project_plural: Proiektuak
-  label_x_projects:
-    zero:  proiekturik ez
-    one:   proiektu bat
-    other: "{{count}} proiektu"
-  label_project_all: Proiektu guztiak
-  label_project_latest: Azken proiektuak
-  label_issue: Zeregina
-  label_issue_new: Zeregin berria
-  label_issue_plural: Zereginak
-  label_issue_view_all: Zeregin guztiak ikusi
-  label_issues_by: "Zereginak honengatik: {{value}}"
-  label_issue_added: Zeregina gehituta
-  label_issue_updated: Zeregina eguneratuta
-  label_document: Dokumentua
-  label_document_new: Dokumentu berria
-  label_document_plural: Dokumentuak
-  label_document_added: Dokumentua gehituta
-  label_role: Rola
-  label_role_plural: Rolak
-  label_role_new: Rol berria
-  label_role_and_permissions: Rolak eta baimenak
-  label_member: Kidea
-  label_member_new: Kide berria
-  label_member_plural: Kideak
-  label_tracker: Aztarnaria
-  label_tracker_plural: Aztarnariak
-  label_tracker_new: Aztarnari berria
-  label_workflow: Workflow
-  label_issue_status: Zeregin egoera
-  label_issue_status_plural: Zeregin egoerak
-  label_issue_status_new: Egoera berria
-  label_issue_category: Zeregin kategoria
-  label_issue_category_plural: Zeregin kategoriak
-  label_issue_category_new: Kategoria berria
-  label_custom_field: Eremu pertsonalizatua
-  label_custom_field_plural: Eremu pertsonalizatuak
-  label_custom_field_new: Eremu pertsonalizatu berria
-  label_enumerations: Enumerazioak
-  label_enumeration_new: Balio berria
-  label_information: Informazioa
-  label_information_plural: Informazioa
-  label_please_login: Saioa hasi mesedez
-  label_register: Erregistratu
-  label_login_with_open_id_option: edo OpenID-rekin saioa hasi
-  label_password_lost: Pasahitza galduta
-  label_home: Hasiera
-  label_my_page: Nire orria
-  label_my_account: Nire kontua
-  label_my_projects: Nire proiektuak
-  label_administration: Kudeaketa
-  label_login: Saioa hasi
-  label_logout: Saioa bukatu
-  label_help: Laguntza
-  label_reported_issues: Berri emandako zereginak
-  label_assigned_to_me_issues: Niri esleitutako arazoak
-  label_last_login: Azken konexioa
-  label_registered_on: Noiz erregistratuta
-  label_activity: Jarduerak
-  label_overall_activity: Jarduera guztiak
-  label_user_activity: "{{value}}-(r)en jarduerak"
-  label_new: Berria
-  label_logged_as: "Sartutako erabiltzailea:"
-  label_environment: Ingurune
-  label_authentication: Autentikazioa
-  label_auth_source: Autentikazio modua
-  label_auth_source_new: Autentikazio modu berria
-  label_auth_source_plural: Autentikazio moduak
-  label_subproject_plural: Azpiproiektuak
-  label_subproject_new: Azpiproiektu berria
-  label_and_its_subprojects: "{{value}} eta bere azpiproiektuak"
-  label_min_max_length: Luzera min - max
-  label_list: Zerrenda
-  label_date: Data
-  label_integer: Osokoa
-  label_float: Koma higikorrekoa
-  label_boolean: Boolearra
-  label_string: Testua
-  label_text: Testu luzea
-  label_attribute: Atributua
-  label_attribute_plural: Atributuak
-  label_download: "Deskarga {{count}}"
-  label_download_plural: "{{count}} Deskarga"
-  label_no_data: Ez dago erakusteko daturik
-  label_change_status: Egoera aldatu
-  label_history: Historikoa
-  label_attachment: Fitxategia
-  label_attachment_new: Fitxategi berria
-  label_attachment_delete: Fitxategia ezabatu
-  label_attachment_plural: Fitxategiak
-  label_file_added: Fitxategia gehituta
-  label_report: Berri ematea
-  label_report_plural: Berri emateak
-  label_news: Beria
-  label_news_new: Berria gehitu
-  label_news_plural: Berriak
-  label_news_latest: Azken berriak
-  label_news_view_all: Berri guztiak ikusi
-  label_news_added: Berria gehituta
-  label_change_log: Aldaketa egunkaria
-  label_settings: Ezarpenak
-  label_overview: Gainbegirada
-  label_version: Bertsioa
-  label_version_new: Bertsio berria
-  label_version_plural: Bertsioak
-  label_close_versions: Burututako bertsioak itxi
-  label_confirmation: Baieztapena
-  label_export_to: 'Eskuragarri baita:'
-  label_read: Irakurri...
-  label_public_projects: Proiektu publikoak
-  label_open_issues: irekita
-  label_open_issues_plural: irekiak
-  label_closed_issues: itxita
-  label_closed_issues_plural: itxiak
-  label_x_open_issues_abbr_on_total:
-    zero:  0 irekita / {{total}}
-    one:   1 irekita / {{total}}
-    other: "{{count}} irekiak / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 irekita
-    one:   1 irekita
-    other: "{{count}} irekiak"
-  label_x_closed_issues_abbr:
-    zero:  0 itxita
-    one:   1 itxita
-    other: "{{count}} itxiak"
-  label_total: Guztira
-  label_permissions: Baimenak
-  label_current_status: Uneko egoera
-  label_new_statuses_allowed: Baimendutako egoera berriak
-  label_all: guztiak
-  label_none: ezer
-  label_nobody: inor
-  label_next: Hurrengoa
-  label_previous: Aurrekoak
-  label_used_by: Erabilita
-  label_details: Xehetasunak
-  label_add_note: Oharra gehitu
-  label_per_page: Orriko
-  label_calendar: Egutegia
-  label_months_from: months from
-  label_gantt: Gantt
-  label_internal: Barnekoa
-  label_last_changes: "azken {{count}} aldaketak"
-  label_change_view_all: Aldaketa guztiak ikusi
-  label_personalize_page: Orri hau pertsonalizatu
-  label_comment: Iruzkin
-  label_comment_plural: Iruzkinak
-  label_x_comments:
-    zero: iruzkinik ez
-    one: iruzkin 1
-    other: "{{count}} iruzkin"
-  label_comment_add: Iruzkina gehitu
-  label_comment_added: Iruzkina gehituta
-  label_comment_delete: Iruzkinak ezabatu
-  label_query: Galdera pertsonalizatua
-  label_query_plural: Pertsonalizatutako galderak
-  label_query_new: Galdera berria
-  label_filter_add: Iragazkia gehitu
-  label_filter_plural: Iragazkiak
-  label_equals: da
-  label_not_equals: ez da
-  label_in_less_than: baino gutxiagotan
-  label_in_more_than: baino gehiagotan
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: hauetan
-  label_today: gaur
-  label_all_time: denbora guztia
-  label_yesterday: atzo
-  label_this_week: aste honetan
-  label_last_week: pasadan astean
-  label_last_n_days: "azken {{count}} egunetan"
-  label_this_month: hilabete hau
-  label_last_month: pasadan hilabetea
-  label_this_year: urte hau
-  label_date_range: Data tartea
-  label_less_than_ago: egun hauek baino gutxiago
-  label_more_than_ago: egun hauek baino gehiago
-  label_ago: orain dela
-  label_contains: dauka
-  label_not_contains: ez dauka
-  label_day_plural: egun
-  label_repository: Biltegia
-  label_repository_plural: Biltegiak
-  label_browse: Arakatu
-  label_modification: "aldaketa {{count}}"
-  label_modification_plural: "{{count}} aldaketa"
-  label_branch: Adarra
-  label_tag: Etiketa 
-  label_revision: Berrikuspena
-  label_revision_plural: Berrikuspenak
-  label_revision_id: "{{value}} berrikuspen"
-  label_associated_revisions: Elkartutako berrikuspenak
-  label_added: gehituta
-  label_modified: aldatuta
-  label_copied: kopiatuta
-  label_renamed: berrizendatuta
-  label_deleted: ezabatuta
-  label_latest_revision: Azken berrikuspena
-  label_latest_revision_plural: Azken berrikuspenak
-  label_view_revisions: Berrikuspenak ikusi
-  label_view_all_revisions: Berrikuspen guztiak ikusi
-  label_max_size: Tamaina maximoa
-  label_sort_highest: Goraino mugitu
-  label_sort_higher: Gora mugitu
-  label_sort_lower: Behera mugitu
-  label_sort_lowest: Beheraino mugitu
-  label_roadmap: Ibilbide-mapa
-  label_roadmap_due_in: "Epea: {{value}}"
-  label_roadmap_overdue: "{{value}} berandu"
-  label_roadmap_no_issues: Ez dago zereginik bertsio honetan
-  label_search: Bilatu
-  label_result_plural: Emaitzak
-  label_all_words: hitz guztiak
-  label_wiki: Wikia
-  label_wiki_edit: Wiki edizioa
-  label_wiki_edit_plural: Wiki edizioak
-  label_wiki_page: Wiki orria
-  label_wiki_page_plural: Wiki orriak
-  label_index_by_title: Izenburuaren araberako indizea
-  label_index_by_date: Dataren araberako indizea
-  label_current_version: Uneko bertsioa
-  label_preview: Aurreikusi
-  label_feed_plural: Jarioak
-  label_changes_details: Aldaketa guztien xehetasunak
-  label_issue_tracking: Zeregin jarraipena
-  label_spent_time: Igarotako denbora
-  label_f_hour: "ordu {{value}}"
-  label_f_hour_plural: "{{value}} ordu"
-  label_time_tracking: Denbora jarraipena
-  label_change_plural: Aldaketak
-  label_statistics: Estatistikak
-  label_commits_per_month: Commit-ak hilabeteka
-  label_commits_per_author: Commit-ak egileka
-  label_view_diff: Ezberdintasunak ikusi
-  label_diff_inline: barnean
-  label_diff_side_by_side: aldez alde
-  label_options: Aukerak
-  label_copy_workflow_from: Kopiatu workflow-a hemendik
-  label_permissions_report: Baimenen txostena
-  label_watched_issues: Behatutako zereginak
-  label_related_issues: Erlazionatutako zereginak
-  label_applied_status: Aplikatutako egoera
-  label_loading: Kargatzen...
-  label_relation_new: Erlazio berria
-  label_relation_delete: Erlazioa ezabatu
-  label_relates_to: erlazionatuta dago
-  label_duplicates: bikoizten du
-  label_duplicated_by: honek bikoiztuta
-  label_blocks: blokeatzen du
-  label_blocked_by: honek blokeatuta
-  label_precedes: aurretik doa
-  label_follows: jarraitzen du
-  label_end_to_start: bukaeratik hasierara
-  label_end_to_end: bukaeratik bukaerara
-  label_start_to_start: hasieratik hasierhasieratik bukaerara
-  label_start_to_end: hasieratik bukaerara
-  label_stay_logged_in: Saioa mantendu
-  label_disabled: ezgaituta
-  label_show_completed_versions: Bukatutako bertsioak ikusi
-  label_me: ni
-  label_board: Foroa
-  label_board_new: Foro berria
-  label_board_plural: Foroak
-  label_topic_plural: Gaiak
-  label_message_plural: Mezuak
-  label_message_last: Azken mezua
-  label_message_new: Mezu berria
-  label_message_posted: Mesua gehituta
-  label_reply_plural: Erantzunak
-  label_send_information: Erabiltzaileai kontuaren informazioa bidali
-  label_year: Urtea
-  label_month: Hilabetea
-  label_week: Astea
-  label_date_from: Nork
-  label_date_to: Nori
-  label_language_based: Erabiltzailearen hizkuntzaren arabera
-  label_sort_by: "Ordenazioa: {{value}}"
-  label_send_test_email: Frogako mezua bidali
-  label_feeds_access_key: RSS atzipen giltza
-  label_missing_feeds_access_key: RSS atzipen giltza falta da
-  label_feeds_access_key_created_on: "RSS atzipen giltza orain dela {{value}} sortuta"
-  label_module_plural: Moduluak
-  label_added_time_by: "{{author}}, orain dela {{age}} gehituta"
-  label_updated_time_by: "{{author}}, orain dela {{age}} eguneratuta"
-  label_updated_time: "Orain dela {{value}} eguneratuta"
-  label_jump_to_a_project: Joan proiektura...
-  label_file_plural: Fitxategiak
-  label_changeset_plural: Aldaketak
-  label_default_columns: Lehenetsitako zutabeak
-  label_no_change_option: (Aldaketarik ez)
-  label_bulk_edit_selected_issues: Hautatutako zereginak batera editatu
-  label_theme: Itxura
-  label_default: Lehenetsia
-  label_search_titles_only: Izenburuetan bakarrik bilatu
-  label_user_mail_option_all: "Nire proiektu guztietako gertakari guztientzat"
-  label_user_mail_option_selected: "Hautatutako proiektuetako edozein gertakarientzat..."
-  label_user_mail_no_self_notified: "Ez dut nik egiten ditudan aldeketen jakinarazpenik jaso nahi"
-  label_registration_activation_by_email: kontuak epostaz gaitu
-  label_registration_manual_activation: kontuak eskuz gaitu
-  label_registration_automatic_activation: kontuak automatikoki gaitu
-  label_display_per_page: "Orriko: {{value}}"
-  label_age: Adina
-  label_change_properties: Propietateak aldatu
-  label_general: Orokorra
-  label_more: Gehiago
-  label_scm: IKK
-  label_plugins: Pluginak
-  label_ldap_authentication: LDAP autentikazioa
-  label_downloads_abbr: Desk.
-  label_optional_description: Aukerako deskribapena
-  label_add_another_file: Beste fitxategia gehitu
-  label_preferences: Hobespenak
-  label_chronological_order: Orden kronologikoan
-  label_reverse_chronological_order: Alderantzizko orden kronologikoan
-  label_planning: Planifikazioa
-  label_incoming_emails: Sarrerako epostak
-  label_generate_key: Giltza sortu
-  label_issue_watchers: Behatzaileak
-  label_example: Adibidea
-  label_display: Bistaratzea
-  label_sort: Ordenatu
-  label_ascending: Gorantz
-  label_descending: Beherantz
-  label_date_from_to: "{{start}}-tik {{end}}-ra"
-  label_wiki_content_added: Wiki orria gehituta
-  label_wiki_content_updated: Wiki orria eguneratuta
-  label_group: Taldea
-  label_group_plural: Taldeak
-  label_group_new: Talde berria
-  label_time_entry_plural: Igarotako denbora
-  label_version_sharing_none: Ez partekatuta
-  label_version_sharing_descendants: Azpiproiektuekin
-  label_version_sharing_hierarchy: Proiektu Hierarkiarekin
-  label_version_sharing_tree: Proiektu zuhaitzarekin
-  label_version_sharing_system: Proiektu guztiekin
-  label_update_issue_done_ratios: Zereginen burututako erlazioa eguneratu
-  label_copy_source: Iturburua
-  label_copy_target: Helburua
-  label_copy_same_as_target: Helburuaren berdina
-  label_display_used_statuses_only: Aztarnari honetan erabiltzen diren egoerak bakarrik erakutsi
-  label_api_access_key: API atzipen giltza
-  label_missing_api_access_key: API atzipen giltza falta da
-  label_api_access_key_created_on: "API atzipen giltza sortuta orain dela {{value}}"
-  
-  button_login: Saioa hasi
-  button_submit: Bidali
-  button_save: Gorde
-  button_check_all: Guztiak markatu
-  button_uncheck_all: Guztiak desmarkatu
-  button_delete: Ezabatu
-  button_create: Sortu
-  button_create_and_continue: Sortu eta jarraitu
-  button_test: Frogatu
-  button_edit: Editatu
-  button_add: Gehitu
-  button_change: Aldatu
-  button_apply: Aplikatu
-  button_clear: Garbitu
-  button_lock: Blokeatu
-  button_unlock: Desblokeatu
-  button_download: Deskargatu
-  button_list: Zerrenda
-  button_view: Ikusi
-  button_move: Mugitu
-  button_move_and_follow: Mugitu eta jarraitu
-  button_back: Atzera
-  button_cancel: Ezeztatu
-  button_activate: Gahitu
-  button_sort: Ordenatu
-  button_log_time: Denbora apuntatu
-  button_rollback: Itzuli bertsio honetara
-  button_watch: Behatu
-  button_unwatch: Behatzen utzi
-  button_reply: Erantzun
-  button_archive: Artxibatu
-  button_unarchive: Desartxibatu
-  button_reset: Berrezarri
-  button_rename: Berrizendatu
-  button_change_password: Pasahitza aldatu
-  button_copy: Kopiatu
-  button_copy_and_follow: Kopiatu eta jarraitu
-  button_annotate: Anotatu
-  button_update: Eguneratu
-  button_configure: Konfiguratu
-  button_quote: Aipatu
-  button_duplicate: Bikoiztu
-  button_show: Ikusi
-  
-  status_active: gaituta
-  status_registered: izena emanda
-  status_locked: blokeatuta
-  
-  version_status_open: irekita
-  version_status_locked: blokeatuta
-  version_status_closed: itxita
-
-  field_active: Gaituta
-  
-  text_select_mail_notifications: Jakinarazpenak zein ekintzetarako bidaliko diren hautatu.
-  text_regexp_info: adib. ^[A-Z0-9]+$
-  text_min_max_length_info: 0k mugarik gabe esan nahi du
-  text_project_destroy_confirmation: Ziur zaude proiektu hau eta erlazionatutako datu guztiak ezabatu nahi dituzula?
-  text_subprojects_destroy_warning: "{{value}} azpiproiektuak ere ezabatuko dira."
-  text_workflow_edit: Hautatu rola eta aztarnaria workflow-a editatzeko
-  text_are_you_sure: Ziur zaude?
-  text_journal_changed: "{{label}} {{old}}-(e)tik {{new}}-(e)ra aldatuta"
-  text_journal_set_to: "{{label}}-k {{value}} balioa hartu du"
-  text_journal_deleted: "{{label}} ezabatuta ({{old}})"
-  text_journal_added: "{{label}} {{value}} gehituta"
-  text_tip_issue_begin_day: gaur hasten diren atazak
-  text_tip_issue_end_day: gaur bukatzen diren atazak
-  text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
-  text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
-  text_caracters_maximum: "{{count}} karaktere gehienez."
-  text_caracters_minimum: "Gutxienez {{count}} karaktereetako luzerakoa izan behar du."
-  text_length_between: "Luzera {{min}} eta {{max}} karaktereen artekoa."
-  text_tracker_no_workflow: Ez da workflow-rik definitu aztarnari honentzako
-  text_unallowed_characters: Debekatutako karaktereak
-  text_comma_separated: Balio anitz izan daitezke (komaz banatuta).
-  text_line_separated: Balio anitz izan daitezke (balio bakoitza lerro batean).
-  text_issues_ref_in_commit_messages: Commit-en mezuetan zereginak erlazionatu eta konpontzen
-  text_issue_added: "{{id}} zeregina {{author}}-(e)k jakinarazi du."
-  text_issue_updated: "{{id}} zeregina {{author}}-(e)k eguneratu du."
-  text_wiki_destroy_confirmation: Ziur zaude wiki hau eta bere eduki guztiak ezabatu nahi dituzula?
-  text_issue_category_destroy_question: "Zeregin batzuk ({{count}}) kategoria honetara esleituta daude. Zer egin nahi duzu?"
-  text_issue_category_destroy_assignments: Kategoria esleipenak kendu
-  text_issue_category_reassign_to: Zereginak kategoria honetara esleitu
-  text_user_mail_option: "Hautatu gabeko proiektuetan, behatzen edo parte hartzen duzun gauzei buruzko jakinarazpenak jasoko dituzu (adib. zu egile zaren edo esleituta dituzun zereginak)."
-  text_no_configuration_data: "Rolak, aztarnariak, zeregin egoerak eta workflow-ak ez dira oraindik konfiguratu.\nOso gomendagarria de lehenetsitako kkonfigurazioa kargatzea. Kargatu eta gero aldatu ahalko duzu."
-  text_load_default_configuration: Lehenetsitako konfigurazioa kargatu
-  text_status_changed_by_changeset: "{{value}} aldaketan aplikatuta."
-  text_issues_destroy_confirmation: 'Ziur zaude hautatutako zeregina(k) ezabatu nahi dituzula?'
-  text_select_project_modules: 'Hautatu proiektu honetan gaitu behar diren moduluak:'
-  text_default_administrator_account_changed: Lehenetsitako kudeatzaile kontua aldatuta
-  text_file_repository_writable: Eranskinen direktorioan idatz daiteke
-  text_plugin_assets_writable: Pluginen baliabideen direktorioan idatz daiteke
-  text_rmagick_available: RMagick eskuragarri (aukerazkoa)
-  text_destroy_time_entries_question: "{{hours}} orduei buruz berri eman zen zuk ezabatzera zoazen zereginean. Zer egin nahi duzu?"
-  text_destroy_time_entries: Ezabatu berri emandako orduak
-  text_assign_time_entries_to_project: Berri emandako orduak proiektura esleitu
-  text_reassign_time_entries: 'Berri emandako orduak zeregin honetara esleitu:'
-  text_user_wrote: "{{value}}-(e)k idatzi zuen:"
-  text_enumeration_destroy_question: "{{count}} objetu balio honetara esleituta daude."
-  text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
-  text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
-  text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
-  text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
-  text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
-  text_wiki_page_destroy_question: "Orri honek {{descendants}} orri seme eta ondorengo ditu. Zer egin nahi duzu?"
-  text_wiki_page_nullify_children: "Orri semeak erro orri moduan mantendu"
-  text_wiki_page_destroy_children: "Orri semeak eta beraien ondorengo guztiak ezabatu"
-  text_wiki_page_reassign_children: "Orri semeak orri guraso honetara esleitu"
-  text_own_membership_delete_confirmation: "Zure baimen batzuk (edo guztiak) kentzera zoaz eta baliteke horren ondoren proiektu hau ezin editatzea.\n Ziur zaude jarraitu nahi duzula?"
-  
-  default_role_manager: Kudeatzailea
-  default_role_developer: Garatzailea
-  default_role_reporter: Berriemailea
-  default_tracker_bug: Errorea
-  default_tracker_feature: Eginbidea
-  default_tracker_support: Laguntza
-  default_issue_status_new: Berria
-  default_issue_status_in_progress: Lanean
-  default_issue_status_resolved: Ebatzita
-  default_issue_status_feedback: Berrelikadura
-  default_issue_status_closed: Itxita
-  default_issue_status_rejected: Baztertua
-  default_doc_category_user: Erabiltzaile dokumentazioa
-  default_doc_category_tech: Dokumentazio teknikoa
-  default_priority_low: Baxua
-  default_priority_normal: Normala
-  default_priority_high: Altua
-  default_priority_urgent: Larria
-  default_priority_immediate: Berehalakoa
-  default_activity_design: Diseinua
-  default_activity_development: Garapena
-  
-  enumeration_issue_priorities: Zeregin lehentasunak
-  enumeration_doc_categories: Dokumentu kategoriak
-  enumeration_activities: Jarduerak (denbora kontrola))
-  enumeration_system_activity: Sistemako Jarduera
-  label_board_sticky: Itxaskorra
-  label_board_locked: Blokeatuta
-  permission_export_wiki_pages: Wiki orriak esportatu
-  setting_cache_formatted_text: Formatudun testua katxeatu
-  permission_manage_project_activities: Proiektuaren jarduerak kudeatu
-  error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
-  label_profile: Profila
-  permission_manage_subtasks: Azpiatazak kudeatu
-  field_parent_issue: Guraso ataza
-  label_subtask_plural: Azpiatazak
-  label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
-  error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
-  error_unable_to_connect: Ezin da konektatu ({{value}})
-  error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
-  error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# Redmine EU language
+# Author: Ales Zabala Alava (Shagi), <shagi@gisa-elkartea.org>
+# 2010-01-25
+# Distributed under the same terms as the Redmine itself.
+eu:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y/%m/%d"
+      short: "%b %d"
+      long: "%Y %B %d"
+      
+    day_names: [Igandea, Astelehena, Asteartea, Asteazkena, Osteguna, Ostirala, Larunbata]
+    abbr_day_names: [Ig., Al., Ar., Az., Og., Or., La.]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, Urtarrila, Otsaila, Martxoa, Apirila, Maiatza, Ekaina, Uztaila, Abuztua, Iraila, Urria, Azaroa, Abendua]
+    abbr_month_names: [~, Urt, Ots, Mar, Api, Mai, Eka, Uzt, Abu, Ira, Urr, Aza, Abe]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %H:%M"
+      time: "%H:%M"
+      short: "%b %d %H:%M"
+      long: "%Y %B %d %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "minutu erdi"
+      less_than_x_seconds:
+        one:   "segundu bat baino gutxiago"
+        other: "%{count} segundu baino gutxiago"
+      x_seconds:
+        one:   "segundu 1"
+        other: "%{count} segundu"
+      less_than_x_minutes:
+        one:   "minutu bat baino gutxiago"
+        other: "%{count} minutu baino gutxiago"
+      x_minutes:
+        one:   "minutu 1"
+        other: "%{count} minutu"
+      about_x_hours:
+        one:   "ordu 1 inguru"
+        other: "%{count} ordu inguru"
+      x_days:
+        one:   "egun 1"
+        other: "%{count} egun"
+      about_x_months:
+        one:   "hilabete 1 inguru"
+        other: "%{count} hilabete inguru"
+      x_months:
+        one:   "hilabete 1"
+        other: "%{count} hilabete"
+      about_x_years:
+        one:   "urte 1 inguru"
+        other: "%{count} urte inguru"
+      over_x_years:
+        one:   "urte 1 baino gehiago"
+        other: "%{count} urte baino gehiago"
+      almost_x_years:
+        one:   "ia urte 1"
+        other: "ia %{count} urte"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Byte"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "eta"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "ez dago zerrendan"
+        exclusion: "erreserbatuta dago"
+        invalid: "baliogabea da"
+        confirmation: "ez du berrespenarekin bat egiten"
+        accepted: "onartu behar da"
+        empty: "ezin da hutsik egon"
+        blank: "ezin da hutsik egon"
+        too_long: "luzeegia da (maximoa %{count} karaktere dira)"
+        too_short: "laburregia da (minimoa %{count} karaktere dira)"
+        wrong_length: "luzera ezegokia da (%{count} karakter izan beharko litzake)"
+        taken: "dagoeneko hartuta dago"
+        not_a_number: "ez da zenbaki bat"
+        not_a_date: "ez da baliozko data"
+        greater_than: "%{count} baino handiagoa izan behar du"
+        greater_than_or_equal_to: "%{count} edo handiagoa izan behar du"
+        equal_to: "%{count} izan behar du"
+        less_than: "%{count} baino gutxiago izan behar du"
+        less_than_or_equal_to: "%{count} edo gutxiago izan behar du"
+        odd: "bakoitia izan behar du"
+        even: "bikoitia izan behar du"
+        greater_than_start_date: "hasiera data baino handiagoa izan behar du"
+        not_same_project: "ez dago proiektu berdinean"
+        circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Hautatu mesedez
+  
+  general_text_No: 'Ez'
+  general_text_Yes: 'Bai'
+  general_text_no: 'ez'
+  general_text_yes: 'bai'
+  general_lang_name: 'Euskara'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Kontua ongi eguneratu da.
+  notice_account_invalid_creditentials: Erabiltzaile edo pasahitz ezegokia
+  notice_account_password_updated: Pasahitza ongi eguneratu da.
+  notice_account_wrong_password: Pasahitz ezegokia.
+  notice_account_register_done: Kontua ongi sortu da. Kontua gaitzeko klikatu epostan adierazi zaizun estekan.
+  notice_account_unknown_email: Erabiltzaile ezezaguna.
+  notice_can_t_change_password: Kontu honek kanpoko autentikazio bat erabiltzen du. Ezinezkoa da pasahitza aldatzea.
+  notice_account_lost_email_sent: Pasahitz berria aukeratzeko jarraibideak dituen eposta bat bidali zaizu.
+  notice_account_activated: Zure kontua gaituta dago. Orain saioa has dezakezu
+  notice_successful_create: Sortze arrakastatsua.
+  notice_successful_update: Eguneratze arrakastatsua.
+  notice_successful_delete: Ezabaketa arrakastatsua.
+  notice_successful_connection: Konexio arrakastatsua.
+  notice_file_not_found: Atzitu nahi duzun orria ez da exisitzen edo ezabatua izan da.
+  notice_locking_conflict: Beste erabiltzaile batek datuak eguneratu ditu.
+  notice_not_authorized: Ez duzu orri hau atzitzeko baimenik.
+  notice_email_sent: "%{value} helbidera eposta bat bidali da"
+  notice_email_error: "Errorea eposta bidaltzean (%{value})"
+  notice_feeds_access_key_reseted: Zure RSS atzipen giltza berrezarri da.
+  notice_api_access_key_reseted: Zure API atzipen giltza berrezarri da.
+  notice_failed_to_save_issues: "Hautatutako %{total} zereginetatik %{count} ezin izan dira konpondu: %{ids}."
+  notice_no_issue_selected: "Ez da zereginik hautatu! Mesedez, editatu nahi dituzun arazoak markatu."
+  notice_account_pending: "Zure kontua sortu da, orain kudeatzailearen onarpenaren zain dago."
+  notice_default_data_loaded: Lehenetsitako konfigurazioa ongi kargatu da.
+  notice_unable_delete_version: Ezin da bertsioa ezabatu.
+  notice_issue_done_ratios_updated: Burututako zereginen erlazioa eguneratu da.
+  
+  error_can_t_load_default_data: "Ezin izan da lehenetsitako konfigurazioa kargatu: %{value}"
+  error_scm_not_found: "Sarrera edo berrikuspena ez da biltegian topatu."
+  error_scm_command_failed: "Errorea gertatu da biltegia atzitzean: %{value}"
+  error_scm_annotate: "Sarrera ez da existitzen edo ezin da anotatu."
+  error_issue_not_found_in_project: 'Zeregina ez da topatu edo ez da proiektu honetakoa'
+  error_no_tracker_in_project: 'Proiektu honek ez du aztarnaririk esleituta. Mesedez egiaztatu Proiektuaren ezarpenak.'
+  error_no_default_issue_status: 'Zereginek ez dute lehenetsitako egoerarik.  Mesedez egiaztatu zure konfigurazioa ("Kudeaketa -> Arazoen egoerak" atalera joan).'
+  error_can_not_reopen_issue_on_closed_version: 'Itxitako bertsio batera esleitutako zereginak ezin dira berrireki'
+  error_can_not_archive_project: Proiektu hau ezin da artxibatu
+  error_issue_done_ratios_not_updated: "Burututako zereginen erlazioa ez da eguneratu."
+  error_workflow_copy_source: 'Mesedez hautatu iturburuko aztarnari edo rola'
+  error_workflow_copy_target: 'Mesedez hautatu helburuko aztarnari(ak) edo rola(k)'
+  
+  warning_attachments_not_saved: "%{count} fitxategi ezin izan d(ir)a gorde."
+  
+  mail_subject_lost_password: "Zure %{value} pasahitza"
+  mail_body_lost_password: 'Zure pasahitza aldatzeko hurrengo estekan klikatu:'
+  mail_subject_register: "Zure %{value} kontuaren gaitzea"
+  mail_body_register: 'Zure kontua gaitzeko hurrengo estekan klikatu:'
+  mail_body_account_information_external: "Zure %{value} kontua erabil dezakezu saioa hasteko."
+  mail_body_account_information: Zure kontuaren informazioa
+  mail_subject_account_activation_request: "%{value} kontu gaitzeko eskaera"
+  mail_body_account_activation_request: "Erabiltzaile berri bat (%{value}) erregistratu da. Kontua zure onarpenaren zain dago:"
+  mail_subject_reminder: "%{count} arazo hurrengo %{days} egunetan amaitzen d(ir)a"
+  mail_body_reminder: "Zuri esleituta dauden %{count} arazo hurrengo %{days} egunetan amaitzen d(ir)a:"
+  mail_subject_wiki_content_added: "'%{id}' wiki orria gehitu da"
+  mail_body_wiki_content_added: "%{author}-(e)k '%{id}' wiki orria gehitu du."
+  mail_subject_wiki_content_updated: "'%{id}' wiki orria eguneratu da"
+  mail_body_wiki_content_updated: "%{author}-(e)k '%{id}' wiki orria eguneratu du."
+  
+  gui_validation_error: akats 1
+  gui_validation_error_plural: "%{count} akats"
+  
+  field_name: Izena
+  field_description: Deskribapena
+  field_summary: Laburpena
+  field_is_required: Beharrezkoa
+  field_firstname: Izena
+  field_lastname: Abizenak
+  field_mail: Eposta
+  field_filename: Fitxategia
+  field_filesize: Tamaina
+  field_downloads: Deskargak
+  field_author: Egilea
+  field_created_on: Sortuta
+  field_updated_on: Eguneratuta
+  field_field_format: Formatua
+  field_is_for_all: Proiektu guztietarako
+  field_possible_values: Balio posibleak
+  field_regexp: Expresio erregularra
+  field_min_length: Luzera minimoa
+  field_max_length: Luzera maxioma
+  field_value: Balioa
+  field_category: Kategoria
+  field_title: Izenburua
+  field_project: Proiektua
+  field_issue: Zeregina
+  field_status: Egoera
+  field_notes: Oharrak
+  field_is_closed: Itxitako arazoa
+  field_is_default: Lehenetsitako balioa
+  field_tracker: Aztarnaria
+  field_subject: Gaia
+  field_due_date: Amaiera data
+  field_assigned_to: Esleituta
+  field_priority: Lehentasuna
+  field_fixed_version: Helburuko bertsioa
+  field_user: Erabiltzilea
+  field_role: Rola
+  field_homepage: Orri nagusia
+  field_is_public: Publikoa
+  field_parent: "Honen azpiproiektua:"
+  field_is_in_chlog: Zereginak aldaketa egunkarian ikusten dira
+  field_is_in_roadmap: Arazoak ibilbide-mapan erakutsi
+  field_login: Erabiltzaile izena
+  field_mail_notification: Eposta jakinarazpenak
+  field_admin: Kudeatzailea
+  field_last_login_on: Azken konexioa
+  field_language: Hizkuntza
+  field_effective_date: Data
+  field_password: Pasahitza
+  field_new_password: Pasahitz berria
+  field_password_confirmation: Berrespena
+  field_version: Bertsioa
+  field_type: Mota
+  field_host: Ostalaria
+  field_port: Portua
+  field_account: Kontua
+  field_base_dn: Base DN
+  field_attr_login: Erabiltzaile atributua
+  field_attr_firstname: Izena atributua
+  field_attr_lastname: Abizenak atributua
+  field_attr_mail: Eposta atributua
+  field_onthefly: Zuzeneko erabiltzaile sorrera
+  field_start_date: Hasiera
+  field_done_ratio: Egindako %
+  field_auth_source: Autentikazio modua
+  field_hide_mail: Nire eposta helbidea ezkutatu
+  field_comments: Iruzkina
+  field_url: URL
+  field_start_page: Hasierako orria
+  field_subproject: Azpiproiektua
+  field_hours: Ordu
+  field_activity: Jarduera
+  field_spent_on: Data
+  field_identifier: Identifikatzailea
+  field_is_filter: Iragazki moduan erabilita
+  field_issue_to: Erlazionatutako zereginak
+  field_delay: Atzerapena
+  field_assignable: Arazoak rol honetara esleitu daitezke
+  field_redirect_existing_links: Existitzen diren estelak berbideratu
+  field_estimated_hours: Estimatutako denbora
+  field_column_names: Zutabeak
+  field_time_zone: Ordu zonaldea
+  field_searchable: Bilagarria
+  field_default_value: Lehenetsitako balioa
+  field_comments_sorting: Iruzkinak erakutsi
+  field_parent_title: Orri gurasoa
+  field_editable: Editagarria
+  field_watcher: Behatzailea
+  field_identity_url: OpenID URLa
+  field_content: Edukia
+  field_group_by: Emaitzak honegatik taldekatu
+  field_sharing: Partekatzea
+
+  setting_app_title: Aplikazioaren izenburua
+  setting_app_subtitle: Aplikazioaren azpizenburua
+  setting_welcome_text: Ongietorriko testua
+  setting_default_language: Lehenetsitako hizkuntza
+  setting_login_required: Autentikazioa derrigorrezkoa
+  setting_self_registration: Norberak erregistratu
+  setting_attachment_max_size: Eranskinen tamaina max.
+  setting_issues_export_limit: Zereginen esportatze limitea
+  setting_mail_from: Igorlearen eposta helbidea
+  setting_bcc_recipients: Hartzaileak ezkutuko kopian (bcc)
+  setting_plain_text_mail: Testu soileko epostak (HTML-rik ez)
+  setting_host_name: Ostalari izena eta bidea
+  setting_text_formatting: Testu formatua
+  setting_wiki_compression: Wikiaren historia konprimitu
+  setting_feeds_limit: Jarioaren edukiera limitea
+  setting_default_projects_public: Proiektu berriak defektuz publikoak dira
+  setting_autofetch_changesets: Commit-ak automatikoki hartu
+  setting_sys_api_enabled: Biltegien kudeaketarako WS gaitu
+  setting_commit_ref_keywords: Erreferentzien gako-hitzak
+  setting_commit_fix_keywords: Konpontze gako-hitzak
+  setting_autologin: Saioa automatikoki hasi
+  setting_date_format: Data formatua
+  setting_time_format: Ordu formatua
+  setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
+  setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
+  setting_repositories_encodings: Biltegien kodeketak
+  setting_commit_logs_encoding: Commit-en mezuen kodetzea
+  setting_emails_footer: Eposten oina
+  setting_protocol: Protokoloa
+  setting_per_page_options: Orriko objektuen aukerak
+  setting_user_format: Erabiltzaileak erakusteko formatua
+  setting_activity_days_default: Proiektuen jardueran erakusteko egunak
+  setting_display_subprojects_issues: Azpiproiektuen zereginak proiektu nagusian erakutsi defektuz
+  setting_enabled_scm: Gaitutako IKKak
+  setting_mail_handler_body_delimiters: "Lerro hauteko baten ondoren epostak moztu"
+  setting_mail_handler_api_enabled: Sarrerako epostentzako WS gaitu
+  setting_mail_handler_api_key: API giltza
+  setting_sequential_project_identifiers: Proiektuen identifikadore sekuentzialak sortu
+  setting_gravatar_enabled: Erabili Gravatar erabiltzaile ikonoak
+  setting_gravatar_default: Lehenetsitako Gravatar irudia
+  setting_diff_max_lines_displayed: Erakutsiko diren diff lerro kopuru maximoa
+  setting_file_max_size_displayed: Barnean erakuzten diren testu fitxategien tamaina maximoa
+  setting_repository_log_display_limit: Egunkari fitxategian erakutsiko diren berrikuspen kopuru maximoa.
+  setting_openid: Baimendu OpenID saio hasiera eta erregistatzea
+  setting_password_min_length: Pasahitzen luzera minimoa
+  setting_new_project_user_role_id: Proiektu berriak sortzerakoan kudeatzaile ez diren erabiltzaileei esleitutako rola
+  setting_default_projects_modules: Proiektu berrientzako defektuz gaitutako moduluak
+  setting_issue_done_ratio: "Zereginen burututako tasa kalkulatzean erabili:"
+  setting_issue_done_ratio_issue_field: Zeregin eremua erabili
+  setting_issue_done_ratio_issue_status: Zeregin egoera erabili
+  setting_start_of_week: "Egutegiak noiz hasi:"
+  setting_rest_api_enabled: Gaitu REST web zerbitzua
+  
+  permission_add_project: Proiektua sortu
+  permission_add_subprojects: Azpiproiektuak sortu
+  permission_edit_project: Proiektua editatu
+  permission_select_project_modules: Proiektuaren moduluak hautatu
+  permission_manage_members: Kideak kudeatu
+  permission_manage_versions: Bertsioak kudeatu
+  permission_manage_categories: Arazoen kategoriak kudeatu
+  permission_view_issues: Zereginak ikusi
+  permission_add_issues: Zereginak gehitu
+  permission_edit_issues: Zereginak aldatu
+  permission_manage_issue_relations: Zereginen erlazioak kudeatu
+  permission_add_issue_notes: Oharrak gehitu
+  permission_edit_issue_notes: Oharrak aldatu
+  permission_edit_own_issue_notes: Nork bere oharrak aldatu
+  permission_move_issues: Zereginak mugitu
+  permission_delete_issues: Zereginak ezabatu
+  permission_manage_public_queries: Galdera publikoak kudeatu
+  permission_save_queries: Galderak gorde
+  permission_view_gantt: Gantt diagrama ikusi
+  permission_view_calendar: Egutegia ikusi
+  permission_view_issue_watchers: Behatzaileen zerrenda ikusi
+  permission_add_issue_watchers: Behatzaileak gehitu
+  permission_delete_issue_watchers: Behatzaileak ezabatu
+  permission_log_time: Igarotako denbora erregistratu
+  permission_view_time_entries: Igarotako denbora ikusi
+  permission_edit_time_entries: Denbora egunkariak editatu
+  permission_edit_own_time_entries: Nork bere denbora egunkariak editatu
+  permission_manage_news: Berriak kudeatu
+  permission_comment_news: Berrien iruzkinak egin
+  permission_manage_documents: Dokumentuak kudeatu
+  permission_view_documents: Dokumentuak ikusi
+  permission_manage_files: Fitxategiak kudeatu
+  permission_view_files: Fitxategiak ikusi
+  permission_manage_wiki: Wikia kudeatu
+  permission_rename_wiki_pages: Wiki orriak berrizendatu
+  permission_delete_wiki_pages: Wiki orriak ezabatu
+  permission_view_wiki_pages: Wikia ikusi
+  permission_view_wiki_edits: Wikiaren historia ikusi
+  permission_edit_wiki_pages: Wiki orriak editatu
+  permission_delete_wiki_pages_attachments: Eranskinak ezabatu
+  permission_protect_wiki_pages: Wiki orriak babestu
+  permission_manage_repository: Biltegiak kudeatu
+  permission_browse_repository: Biltegia arakatu
+  permission_view_changesets: Aldaketak ikusi
+  permission_commit_access: Commit atzipena
+  permission_manage_boards: Foroak kudeatu
+  permission_view_messages: Mezuak ikusi
+  permission_add_messages: Mezuak bidali
+  permission_edit_messages: Mezuak aldatu
+  permission_edit_own_messages: Nork bere mezuak aldatu
+  permission_delete_messages: Mezuak ezabatu
+  permission_delete_own_messages: Nork bere mezuak ezabatu
+  
+  project_module_issue_tracking: Zereginen jarraipena
+  project_module_time_tracking: Denbora jarraipena
+  project_module_news: Berriak
+  project_module_documents: Dokumentuak
+  project_module_files: Fitxategiak
+  project_module_wiki: Wiki
+  project_module_repository: Biltegia
+  project_module_boards: Foroak
+  
+  label_user: Erabiltzailea
+  label_user_plural: Erabiltzaileak
+  label_user_new: Erabiltzaile berria
+  label_user_anonymous: Ezezaguna
+  label_project: Proiektua
+  label_project_new: Proiektu berria
+  label_project_plural: Proiektuak
+  label_x_projects:
+    zero:  proiekturik ez
+    one:   proiektu bat
+    other: "%{count} proiektu"
+  label_project_all: Proiektu guztiak
+  label_project_latest: Azken proiektuak
+  label_issue: Zeregina
+  label_issue_new: Zeregin berria
+  label_issue_plural: Zereginak
+  label_issue_view_all: Zeregin guztiak ikusi
+  label_issues_by: "Zereginak honengatik: %{value}"
+  label_issue_added: Zeregina gehituta
+  label_issue_updated: Zeregina eguneratuta
+  label_document: Dokumentua
+  label_document_new: Dokumentu berria
+  label_document_plural: Dokumentuak
+  label_document_added: Dokumentua gehituta
+  label_role: Rola
+  label_role_plural: Rolak
+  label_role_new: Rol berria
+  label_role_and_permissions: Rolak eta baimenak
+  label_member: Kidea
+  label_member_new: Kide berria
+  label_member_plural: Kideak
+  label_tracker: Aztarnaria
+  label_tracker_plural: Aztarnariak
+  label_tracker_new: Aztarnari berria
+  label_workflow: Workflow
+  label_issue_status: Zeregin egoera
+  label_issue_status_plural: Zeregin egoerak
+  label_issue_status_new: Egoera berria
+  label_issue_category: Zeregin kategoria
+  label_issue_category_plural: Zeregin kategoriak
+  label_issue_category_new: Kategoria berria
+  label_custom_field: Eremu pertsonalizatua
+  label_custom_field_plural: Eremu pertsonalizatuak
+  label_custom_field_new: Eremu pertsonalizatu berria
+  label_enumerations: Enumerazioak
+  label_enumeration_new: Balio berria
+  label_information: Informazioa
+  label_information_plural: Informazioa
+  label_please_login: Saioa hasi mesedez
+  label_register: Erregistratu
+  label_login_with_open_id_option: edo OpenID-rekin saioa hasi
+  label_password_lost: Pasahitza galduta
+  label_home: Hasiera
+  label_my_page: Nire orria
+  label_my_account: Nire kontua
+  label_my_projects: Nire proiektuak
+  label_administration: Kudeaketa
+  label_login: Saioa hasi
+  label_logout: Saioa bukatu
+  label_help: Laguntza
+  label_reported_issues: Berri emandako zereginak
+  label_assigned_to_me_issues: Niri esleitutako arazoak
+  label_last_login: Azken konexioa
+  label_registered_on: Noiz erregistratuta
+  label_activity: Jarduerak
+  label_overall_activity: Jarduera guztiak
+  label_user_activity: "%{value}-(r)en jarduerak"
+  label_new: Berria
+  label_logged_as: "Sartutako erabiltzailea:"
+  label_environment: Ingurune
+  label_authentication: Autentikazioa
+  label_auth_source: Autentikazio modua
+  label_auth_source_new: Autentikazio modu berria
+  label_auth_source_plural: Autentikazio moduak
+  label_subproject_plural: Azpiproiektuak
+  label_subproject_new: Azpiproiektu berria
+  label_and_its_subprojects: "%{value} eta bere azpiproiektuak"
+  label_min_max_length: Luzera min - max
+  label_list: Zerrenda
+  label_date: Data
+  label_integer: Osokoa
+  label_float: Koma higikorrekoa
+  label_boolean: Boolearra
+  label_string: Testua
+  label_text: Testu luzea
+  label_attribute: Atributua
+  label_attribute_plural: Atributuak
+  label_download: "Deskarga %{count}"
+  label_download_plural: "%{count} Deskarga"
+  label_no_data: Ez dago erakusteko daturik
+  label_change_status: Egoera aldatu
+  label_history: Historikoa
+  label_attachment: Fitxategia
+  label_attachment_new: Fitxategi berria
+  label_attachment_delete: Fitxategia ezabatu
+  label_attachment_plural: Fitxategiak
+  label_file_added: Fitxategia gehituta
+  label_report: Berri ematea
+  label_report_plural: Berri emateak
+  label_news: Beria
+  label_news_new: Berria gehitu
+  label_news_plural: Berriak
+  label_news_latest: Azken berriak
+  label_news_view_all: Berri guztiak ikusi
+  label_news_added: Berria gehituta
+  label_change_log: Aldaketa egunkaria
+  label_settings: Ezarpenak
+  label_overview: Gainbegirada
+  label_version: Bertsioa
+  label_version_new: Bertsio berria
+  label_version_plural: Bertsioak
+  label_close_versions: Burututako bertsioak itxi
+  label_confirmation: Baieztapena
+  label_export_to: 'Eskuragarri baita:'
+  label_read: Irakurri...
+  label_public_projects: Proiektu publikoak
+  label_open_issues: irekita
+  label_open_issues_plural: irekiak
+  label_closed_issues: itxita
+  label_closed_issues_plural: itxiak
+  label_x_open_issues_abbr_on_total:
+    zero:  0 irekita / %{total}
+    one:   1 irekita / %{total}
+    other: "%{count} irekiak / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 irekita
+    one:   1 irekita
+    other: "%{count} irekiak"
+  label_x_closed_issues_abbr:
+    zero:  0 itxita
+    one:   1 itxita
+    other: "%{count} itxiak"
+  label_total: Guztira
+  label_permissions: Baimenak
+  label_current_status: Uneko egoera
+  label_new_statuses_allowed: Baimendutako egoera berriak
+  label_all: guztiak
+  label_none: ezer
+  label_nobody: inor
+  label_next: Hurrengoa
+  label_previous: Aurrekoak
+  label_used_by: Erabilita
+  label_details: Xehetasunak
+  label_add_note: Oharra gehitu
+  label_per_page: Orriko
+  label_calendar: Egutegia
+  label_months_from: months from
+  label_gantt: Gantt
+  label_internal: Barnekoa
+  label_last_changes: "azken %{count} aldaketak"
+  label_change_view_all: Aldaketa guztiak ikusi
+  label_personalize_page: Orri hau pertsonalizatu
+  label_comment: Iruzkin
+  label_comment_plural: Iruzkinak
+  label_x_comments:
+    zero: iruzkinik ez
+    one: iruzkin 1
+    other: "%{count} iruzkin"
+  label_comment_add: Iruzkina gehitu
+  label_comment_added: Iruzkina gehituta
+  label_comment_delete: Iruzkinak ezabatu
+  label_query: Galdera pertsonalizatua
+  label_query_plural: Pertsonalizatutako galderak
+  label_query_new: Galdera berria
+  label_filter_add: Iragazkia gehitu
+  label_filter_plural: Iragazkiak
+  label_equals: da
+  label_not_equals: ez da
+  label_in_less_than: baino gutxiagotan
+  label_in_more_than: baino gehiagotan
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: hauetan
+  label_today: gaur
+  label_all_time: denbora guztia
+  label_yesterday: atzo
+  label_this_week: aste honetan
+  label_last_week: pasadan astean
+  label_last_n_days: "azken %{count} egunetan"
+  label_this_month: hilabete hau
+  label_last_month: pasadan hilabetea
+  label_this_year: urte hau
+  label_date_range: Data tartea
+  label_less_than_ago: egun hauek baino gutxiago
+  label_more_than_ago: egun hauek baino gehiago
+  label_ago: orain dela
+  label_contains: dauka
+  label_not_contains: ez dauka
+  label_day_plural: egun
+  label_repository: Biltegia
+  label_repository_plural: Biltegiak
+  label_browse: Arakatu
+  label_modification: "aldaketa %{count}"
+  label_modification_plural: "%{count} aldaketa"
+  label_branch: Adarra
+  label_tag: Etiketa 
+  label_revision: Berrikuspena
+  label_revision_plural: Berrikuspenak
+  label_revision_id: "%{value} berrikuspen"
+  label_associated_revisions: Elkartutako berrikuspenak
+  label_added: gehituta
+  label_modified: aldatuta
+  label_copied: kopiatuta
+  label_renamed: berrizendatuta
+  label_deleted: ezabatuta
+  label_latest_revision: Azken berrikuspena
+  label_latest_revision_plural: Azken berrikuspenak
+  label_view_revisions: Berrikuspenak ikusi
+  label_view_all_revisions: Berrikuspen guztiak ikusi
+  label_max_size: Tamaina maximoa
+  label_sort_highest: Goraino mugitu
+  label_sort_higher: Gora mugitu
+  label_sort_lower: Behera mugitu
+  label_sort_lowest: Beheraino mugitu
+  label_roadmap: Ibilbide-mapa
+  label_roadmap_due_in: "Epea: %{value}"
+  label_roadmap_overdue: "%{value} berandu"
+  label_roadmap_no_issues: Ez dago zereginik bertsio honetan
+  label_search: Bilatu
+  label_result_plural: Emaitzak
+  label_all_words: hitz guztiak
+  label_wiki: Wikia
+  label_wiki_edit: Wiki edizioa
+  label_wiki_edit_plural: Wiki edizioak
+  label_wiki_page: Wiki orria
+  label_wiki_page_plural: Wiki orriak
+  label_index_by_title: Izenburuaren araberako indizea
+  label_index_by_date: Dataren araberako indizea
+  label_current_version: Uneko bertsioa
+  label_preview: Aurreikusi
+  label_feed_plural: Jarioak
+  label_changes_details: Aldaketa guztien xehetasunak
+  label_issue_tracking: Zeregin jarraipena
+  label_spent_time: Igarotako denbora
+  label_f_hour: "ordu %{value}"
+  label_f_hour_plural: "%{value} ordu"
+  label_time_tracking: Denbora jarraipena
+  label_change_plural: Aldaketak
+  label_statistics: Estatistikak
+  label_commits_per_month: Commit-ak hilabeteka
+  label_commits_per_author: Commit-ak egileka
+  label_view_diff: Ezberdintasunak ikusi
+  label_diff_inline: barnean
+  label_diff_side_by_side: aldez alde
+  label_options: Aukerak
+  label_copy_workflow_from: Kopiatu workflow-a hemendik
+  label_permissions_report: Baimenen txostena
+  label_watched_issues: Behatutako zereginak
+  label_related_issues: Erlazionatutako zereginak
+  label_applied_status: Aplikatutako egoera
+  label_loading: Kargatzen...
+  label_relation_new: Erlazio berria
+  label_relation_delete: Erlazioa ezabatu
+  label_relates_to: erlazionatuta dago
+  label_duplicates: bikoizten du
+  label_duplicated_by: honek bikoiztuta
+  label_blocks: blokeatzen du
+  label_blocked_by: honek blokeatuta
+  label_precedes: aurretik doa
+  label_follows: jarraitzen du
+  label_end_to_start: bukaeratik hasierara
+  label_end_to_end: bukaeratik bukaerara
+  label_start_to_start: hasieratik hasierhasieratik bukaerara
+  label_start_to_end: hasieratik bukaerara
+  label_stay_logged_in: Saioa mantendu
+  label_disabled: ezgaituta
+  label_show_completed_versions: Bukatutako bertsioak ikusi
+  label_me: ni
+  label_board: Foroa
+  label_board_new: Foro berria
+  label_board_plural: Foroak
+  label_topic_plural: Gaiak
+  label_message_plural: Mezuak
+  label_message_last: Azken mezua
+  label_message_new: Mezu berria
+  label_message_posted: Mesua gehituta
+  label_reply_plural: Erantzunak
+  label_send_information: Erabiltzaileai kontuaren informazioa bidali
+  label_year: Urtea
+  label_month: Hilabetea
+  label_week: Astea
+  label_date_from: Nork
+  label_date_to: Nori
+  label_language_based: Erabiltzailearen hizkuntzaren arabera
+  label_sort_by: "Ordenazioa: %{value}"
+  label_send_test_email: Frogako mezua bidali
+  label_feeds_access_key: RSS atzipen giltza
+  label_missing_feeds_access_key: RSS atzipen giltza falta da
+  label_feeds_access_key_created_on: "RSS atzipen giltza orain dela %{value} sortuta"
+  label_module_plural: Moduluak
+  label_added_time_by: "%{author}, orain dela %{age} gehituta"
+  label_updated_time_by: "%{author}, orain dela %{age} eguneratuta"
+  label_updated_time: "Orain dela %{value} eguneratuta"
+  label_jump_to_a_project: Joan proiektura...
+  label_file_plural: Fitxategiak
+  label_changeset_plural: Aldaketak
+  label_default_columns: Lehenetsitako zutabeak
+  label_no_change_option: (Aldaketarik ez)
+  label_bulk_edit_selected_issues: Hautatutako zereginak batera editatu
+  label_theme: Itxura
+  label_default: Lehenetsia
+  label_search_titles_only: Izenburuetan bakarrik bilatu
+  label_user_mail_option_all: "Nire proiektu guztietako gertakari guztientzat"
+  label_user_mail_option_selected: "Hautatutako proiektuetako edozein gertakarientzat..."
+  label_user_mail_no_self_notified: "Ez dut nik egiten ditudan aldeketen jakinarazpenik jaso nahi"
+  label_registration_activation_by_email: kontuak epostaz gaitu
+  label_registration_manual_activation: kontuak eskuz gaitu
+  label_registration_automatic_activation: kontuak automatikoki gaitu
+  label_display_per_page: "Orriko: %{value}"
+  label_age: Adina
+  label_change_properties: Propietateak aldatu
+  label_general: Orokorra
+  label_more: Gehiago
+  label_scm: IKK
+  label_plugins: Pluginak
+  label_ldap_authentication: LDAP autentikazioa
+  label_downloads_abbr: Desk.
+  label_optional_description: Aukerako deskribapena
+  label_add_another_file: Beste fitxategia gehitu
+  label_preferences: Hobespenak
+  label_chronological_order: Orden kronologikoan
+  label_reverse_chronological_order: Alderantzizko orden kronologikoan
+  label_planning: Planifikazioa
+  label_incoming_emails: Sarrerako epostak
+  label_generate_key: Giltza sortu
+  label_issue_watchers: Behatzaileak
+  label_example: Adibidea
+  label_display: Bistaratzea
+  label_sort: Ordenatu
+  label_ascending: Gorantz
+  label_descending: Beherantz
+  label_date_from_to: "%{start}-tik %{end}-ra"
+  label_wiki_content_added: Wiki orria gehituta
+  label_wiki_content_updated: Wiki orria eguneratuta
+  label_group: Taldea
+  label_group_plural: Taldeak
+  label_group_new: Talde berria
+  label_time_entry_plural: Igarotako denbora
+  label_version_sharing_none: Ez partekatuta
+  label_version_sharing_descendants: Azpiproiektuekin
+  label_version_sharing_hierarchy: Proiektu Hierarkiarekin
+  label_version_sharing_tree: Proiektu zuhaitzarekin
+  label_version_sharing_system: Proiektu guztiekin
+  label_update_issue_done_ratios: Zereginen burututako erlazioa eguneratu
+  label_copy_source: Iturburua
+  label_copy_target: Helburua
+  label_copy_same_as_target: Helburuaren berdina
+  label_display_used_statuses_only: Aztarnari honetan erabiltzen diren egoerak bakarrik erakutsi
+  label_api_access_key: API atzipen giltza
+  label_missing_api_access_key: API atzipen giltza falta da
+  label_api_access_key_created_on: "API atzipen giltza sortuta orain dela %{value}"
+  
+  button_login: Saioa hasi
+  button_submit: Bidali
+  button_save: Gorde
+  button_check_all: Guztiak markatu
+  button_uncheck_all: Guztiak desmarkatu
+  button_delete: Ezabatu
+  button_create: Sortu
+  button_create_and_continue: Sortu eta jarraitu
+  button_test: Frogatu
+  button_edit: Editatu
+  button_add: Gehitu
+  button_change: Aldatu
+  button_apply: Aplikatu
+  button_clear: Garbitu
+  button_lock: Blokeatu
+  button_unlock: Desblokeatu
+  button_download: Deskargatu
+  button_list: Zerrenda
+  button_view: Ikusi
+  button_move: Mugitu
+  button_move_and_follow: Mugitu eta jarraitu
+  button_back: Atzera
+  button_cancel: Ezeztatu
+  button_activate: Gahitu
+  button_sort: Ordenatu
+  button_log_time: Denbora apuntatu
+  button_rollback: Itzuli bertsio honetara
+  button_watch: Behatu
+  button_unwatch: Behatzen utzi
+  button_reply: Erantzun
+  button_archive: Artxibatu
+  button_unarchive: Desartxibatu
+  button_reset: Berrezarri
+  button_rename: Berrizendatu
+  button_change_password: Pasahitza aldatu
+  button_copy: Kopiatu
+  button_copy_and_follow: Kopiatu eta jarraitu
+  button_annotate: Anotatu
+  button_update: Eguneratu
+  button_configure: Konfiguratu
+  button_quote: Aipatu
+  button_duplicate: Bikoiztu
+  button_show: Ikusi
+  
+  status_active: gaituta
+  status_registered: izena emanda
+  status_locked: blokeatuta
+  
+  version_status_open: irekita
+  version_status_locked: blokeatuta
+  version_status_closed: itxita
+
+  field_active: Gaituta
+  
+  text_select_mail_notifications: Jakinarazpenak zein ekintzetarako bidaliko diren hautatu.
+  text_regexp_info: adib. ^[A-Z0-9]+$
+  text_min_max_length_info: 0k mugarik gabe esan nahi du
+  text_project_destroy_confirmation: Ziur zaude proiektu hau eta erlazionatutako datu guztiak ezabatu nahi dituzula?
+  text_subprojects_destroy_warning: "%{value} azpiproiektuak ere ezabatuko dira."
+  text_workflow_edit: Hautatu rola eta aztarnaria workflow-a editatzeko
+  text_are_you_sure: Ziur zaude?
+  text_journal_changed: "%{label} %{old}-(e)tik %{new}-(e)ra aldatuta"
+  text_journal_set_to: "%{label}-k %{value} balioa hartu du"
+  text_journal_deleted: "%{label} ezabatuta (%{old})"
+  text_journal_added: "%{label} %{value} gehituta"
+  text_tip_issue_begin_day: gaur hasten diren atazak
+  text_tip_issue_end_day: gaur bukatzen diren atazak
+  text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
+  text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
+  text_caracters_maximum: "%{count} karaktere gehienez."
+  text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
+  text_length_between: "Luzera %{min} eta %{max} karaktereen artekoa."
+  text_tracker_no_workflow: Ez da workflow-rik definitu aztarnari honentzako
+  text_unallowed_characters: Debekatutako karaktereak
+  text_comma_separated: Balio anitz izan daitezke (komaz banatuta).
+  text_line_separated: Balio anitz izan daitezke (balio bakoitza lerro batean).
+  text_issues_ref_in_commit_messages: Commit-en mezuetan zereginak erlazionatu eta konpontzen
+  text_issue_added: "%{id} zeregina %{author}-(e)k jakinarazi du."
+  text_issue_updated: "%{id} zeregina %{author}-(e)k eguneratu du."
+  text_wiki_destroy_confirmation: Ziur zaude wiki hau eta bere eduki guztiak ezabatu nahi dituzula?
+  text_issue_category_destroy_question: "Zeregin batzuk (%{count}) kategoria honetara esleituta daude. Zer egin nahi duzu?"
+  text_issue_category_destroy_assignments: Kategoria esleipenak kendu
+  text_issue_category_reassign_to: Zereginak kategoria honetara esleitu
+  text_user_mail_option: "Hautatu gabeko proiektuetan, behatzen edo parte hartzen duzun gauzei buruzko jakinarazpenak jasoko dituzu (adib. zu egile zaren edo esleituta dituzun zereginak)."
+  text_no_configuration_data: "Rolak, aztarnariak, zeregin egoerak eta workflow-ak ez dira oraindik konfiguratu.\nOso gomendagarria de lehenetsitako kkonfigurazioa kargatzea. Kargatu eta gero aldatu ahalko duzu."
+  text_load_default_configuration: Lehenetsitako konfigurazioa kargatu
+  text_status_changed_by_changeset: "%{value} aldaketan aplikatuta."
+  text_issues_destroy_confirmation: 'Ziur zaude hautatutako zeregina(k) ezabatu nahi dituzula?'
+  text_select_project_modules: 'Hautatu proiektu honetan gaitu behar diren moduluak:'
+  text_default_administrator_account_changed: Lehenetsitako kudeatzaile kontua aldatuta
+  text_file_repository_writable: Eranskinen direktorioan idatz daiteke
+  text_plugin_assets_writable: Pluginen baliabideen direktorioan idatz daiteke
+  text_rmagick_available: RMagick eskuragarri (aukerazkoa)
+  text_destroy_time_entries_question: "%{hours} orduei buruz berri eman zen zuk ezabatzera zoazen zereginean. Zer egin nahi duzu?"
+  text_destroy_time_entries: Ezabatu berri emandako orduak
+  text_assign_time_entries_to_project: Berri emandako orduak proiektura esleitu
+  text_reassign_time_entries: 'Berri emandako orduak zeregin honetara esleitu:'
+  text_user_wrote: "%{value}-(e)k idatzi zuen:"
+  text_enumeration_destroy_question: "%{count} objetu balio honetara esleituta daude."
+  text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
+  text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
+  text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
+  text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
+  text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
+  text_wiki_page_destroy_question: "Orri honek %{descendants} orri seme eta ondorengo ditu. Zer egin nahi duzu?"
+  text_wiki_page_nullify_children: "Orri semeak erro orri moduan mantendu"
+  text_wiki_page_destroy_children: "Orri semeak eta beraien ondorengo guztiak ezabatu"
+  text_wiki_page_reassign_children: "Orri semeak orri guraso honetara esleitu"
+  text_own_membership_delete_confirmation: "Zure baimen batzuk (edo guztiak) kentzera zoaz eta baliteke horren ondoren proiektu hau ezin editatzea.\n Ziur zaude jarraitu nahi duzula?"
+  
+  default_role_manager: Kudeatzailea
+  default_role_developer: Garatzailea
+  default_role_reporter: Berriemailea
+  default_tracker_bug: Errorea
+  default_tracker_feature: Eginbidea
+  default_tracker_support: Laguntza
+  default_issue_status_new: Berria
+  default_issue_status_in_progress: Lanean
+  default_issue_status_resolved: Ebatzita
+  default_issue_status_feedback: Berrelikadura
+  default_issue_status_closed: Itxita
+  default_issue_status_rejected: Baztertua
+  default_doc_category_user: Erabiltzaile dokumentazioa
+  default_doc_category_tech: Dokumentazio teknikoa
+  default_priority_low: Baxua
+  default_priority_normal: Normala
+  default_priority_high: Altua
+  default_priority_urgent: Larria
+  default_priority_immediate: Berehalakoa
+  default_activity_design: Diseinua
+  default_activity_development: Garapena
+  
+  enumeration_issue_priorities: Zeregin lehentasunak
+  enumeration_doc_categories: Dokumentu kategoriak
+  enumeration_activities: Jarduerak (denbora kontrola))
+  enumeration_system_activity: Sistemako Jarduera
+  label_board_sticky: Itxaskorra
+  label_board_locked: Blokeatuta
+  permission_export_wiki_pages: Wiki orriak esportatu
+  setting_cache_formatted_text: Formatudun testua katxeatu
+  permission_manage_project_activities: Proiektuaren jarduerak kudeatu
+  error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
+  label_profile: Profila
+  permission_manage_subtasks: Azpiatazak kudeatu
+  field_parent_issue: Guraso ataza
+  label_subtask_plural: Azpiatazak
+  label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
+  error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
+  error_unable_to_connect: Ezin da konektatu (%{value})
+  error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
+  error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/fi.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/fi.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -78,37 +78,37 @@
       half_a_minute: "puoli minuuttia"
       less_than_x_seconds:
         one:   "aiemmin kuin sekunti"
-        other: "aiemmin kuin {{count}} sekuntia"
+        other: "aiemmin kuin %{count} sekuntia"
       x_seconds:
         one:   "sekunti"
-        other: "{{count}} sekuntia"
+        other: "%{count} sekuntia"
       less_than_x_minutes:
         one:   "aiemmin kuin minuutti"
-        other: "aiemmin kuin {{count}} minuuttia"
+        other: "aiemmin kuin %{count} minuuttia"
       x_minutes:
         one:   "minuutti"
-        other: "{{count}} minuuttia"
+        other: "%{count} minuuttia"
       about_x_hours:
         one:   "noin tunti"
-        other: "noin {{count}} tuntia"
+        other: "noin %{count} tuntia"
       x_days:
         one:   "päivä"
-        other: "{{count}} päivää"
+        other: "%{count} päivää"
       about_x_months:
         one:   "noin kuukausi"
-        other: "noin {{count}} kuukautta"
+        other: "noin %{count} kuukautta"
       x_months:
         one:   "kuukausi"
-        other: "{{count}} kuukautta"
+        other: "%{count} kuukautta"
       about_x_years:
         one:   "vuosi"
-        other: "noin {{count}} vuotta"
+        other: "noin %{count} vuotta"
       over_x_years:
         one:   "yli vuosi"
-        other: "yli {{count}} vuotta"
+        other: "yli %{count} vuotta"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Vuosi"
       month:  "Kuukausi"
@@ -121,8 +121,8 @@
     errors:
       template:
         header:
-          one:    "1 virhe esti tämän {{model}} mallinteen tallentamisen"
-          other:  "{{count}} virhettä esti tämän {{model}} mallinteen tallentamisen"
+          one:    "1 virhe esti tämän %{model} mallinteen tallentamisen"
+          other:  "%{count} virhettä esti tämän %{model} mallinteen tallentamisen"
         body: "Seuraavat kentät aiheuttivat ongelmia:"
       messages:
         inclusion: "ei löydy listauksesta"
@@ -132,16 +132,16 @@
         accepted: "täytyy olla hyväksytty"
         empty: "ei voi olla tyhjä"
         blank: "ei voi olla sisällötön"
-        too_long: "on liian pitkä (maksimi on {{count}} merkkiä)"
-        too_short: "on liian lyhyt (minimi on {{count}} merkkiä)"
-        wrong_length: "on väärän pituinen (täytyy olla täsmälleen {{count}} merkkiä)"
+        too_long: "on liian pitkä (maksimi on %{count} merkkiä)"
+        too_short: "on liian lyhyt (minimi on %{count} merkkiä)"
+        wrong_length: "on väärän pituinen (täytyy olla täsmälleen %{count} merkkiä)"
         taken: "on jo käytössä"
         not_a_number: "ei ole numero"
-        greater_than: "täytyy olla suurempi kuin {{count}}"
-        greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin{{count}}"
-        equal_to: "täytyy olla yhtä suuri kuin {{count}}"
-        less_than: "täytyy olla pienempi kuin {{count}}"
-        less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin {{count}}"
+        greater_than: "täytyy olla suurempi kuin %{count}"
+        greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin%{count}"
+        equal_to: "täytyy olla yhtä suuri kuin %{count}"
+        less_than: "täytyy olla pienempi kuin %{count}"
+        less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin %{count}"
         odd: "täytyy olla pariton"
         even: "täytyy olla parillinen"
         greater_than_start_date: "tulee olla aloituspäivän jälkeinen"
@@ -178,29 +178,29 @@
   notice_file_not_found: Hakemaasi sivua ei löytynyt tai se on poistettu.
   notice_locking_conflict: Toinen käyttäjä on päivittänyt tiedot.
   notice_not_authorized: Sinulla ei ole oikeutta näyttää tätä sivua.
-  notice_email_sent: "Sähköposti on lähetty osoitteeseen {{value}}"
-  notice_email_error: "Sähköpostilähetyksessä tapahtui virhe ({{value}})"
+  notice_email_sent: "Sähköposti on lähetty osoitteeseen %{value}"
+  notice_email_error: "Sähköpostilähetyksessä tapahtui virhe (%{value})"
   notice_feeds_access_key_reseted: RSS salasana on nollaantunut.
-  notice_failed_to_save_issues: "{{count}} Tapahtum(an/ien) tallennus epäonnistui {{total}} valitut: {{ids}}."
+  notice_failed_to_save_issues: "%{count} Tapahtum(an/ien) tallennus epäonnistui %{total} valitut: %{ids}."
   notice_no_issue_selected: "Tapahtumia ei ole valittu! Valitse tapahtumat joita haluat muokata."
   notice_account_pending: "Tilisi on luotu ja odottaa ylläpitäjän hyväksyntää."
   notice_default_data_loaded: Vakioasetusten palautus onnistui.
   
-  error_can_t_load_default_data: "Vakioasetuksia ei voitu ladata: {{value}}"
+  error_can_t_load_default_data: "Vakioasetuksia ei voitu ladata: %{value}"
   error_scm_not_found: "Syötettä ja/tai versiota ei löydy tietovarastosta."
-  error_scm_command_failed: "Tietovarastoon pääsyssä tapahtui virhe: {{value}}"
+  error_scm_command_failed: "Tietovarastoon pääsyssä tapahtui virhe: %{value}"
   
-  mail_subject_lost_password: "Sinun {{value}} salasanasi"
+  mail_subject_lost_password: "Sinun %{value} salasanasi"
   mail_body_lost_password: 'Vaihtaaksesi salasanasi, napsauta seuraavaa linkkiä:'
-  mail_subject_register: "{{value}} tilin aktivointi"
+  mail_subject_register: "%{value} tilin aktivointi"
   mail_body_register: 'Aktivoidaksesi tilisi, napsauta seuraavaa linkkiä:'
-  mail_body_account_information_external: "Voit nyt käyttää {{value}} tiliäsi kirjautuaksesi järjestelmään."
+  mail_body_account_information_external: "Voit nyt käyttää %{value} tiliäsi kirjautuaksesi järjestelmään."
   mail_body_account_information: Sinun tilin tiedot
-  mail_subject_account_activation_request: "{{value}} tilin aktivointi pyyntö"
-  mail_body_account_activation_request: "Uusi käyttäjä ({{value}}) on rekisteröitynyt. Hänen tili odottaa hyväksyntääsi:"
+  mail_subject_account_activation_request: "%{value} tilin aktivointi pyyntö"
+  mail_body_account_activation_request: "Uusi käyttäjä (%{value}) on rekisteröitynyt. Hänen tili odottaa hyväksyntääsi:"
   
   gui_validation_error: 1 virhe
-  gui_validation_error_plural: "{{count}} virhettä"
+  gui_validation_error_plural: "%{count} virhettä"
   
   field_name: Nimi
   field_description: Kuvaus
@@ -262,6 +262,7 @@
   field_attr_lastname: Sukunimenmääre
   field_attr_mail: Sähköpostinmääre
   field_onthefly: Automaattinen käyttäjien luonti
+  field_start_date: Alku
   field_done_ratio: % Tehty
   field_auth_source: Varmennusmuoto
   field_hide_mail: Piiloita sähköpostiosoitteeni
@@ -321,14 +322,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Kaikki projektit
   label_project_latest: Uusimmat projektit
   label_issue: Tapahtuma
   label_issue_new: Uusi tapahtuma
   label_issue_plural: Tapahtumat
   label_issue_view_all: Näytä kaikki tapahtumat
-  label_issues_by: "Tapahtumat {{value}}"
+  label_issues_by: "Tapahtumat %{value}"
   label_document: Dokumentti
   label_document_new: Uusi dokumentti
   label_document_plural: Dokumentit
@@ -390,8 +391,8 @@
   label_text: Pitkä merkkijono
   label_attribute: Määre
   label_attribute_plural: Määreet
-  label_download: "{{count}} Lataus"
-  label_download_plural: "{{count}} Lataukset"
+  label_download: "%{count} Lataus"
+  label_download_plural: "%{count} Lataukset"
   label_no_data: Ei tietoa näytettäväksi
   label_change_status: Muutos tila
   label_history: Historia
@@ -420,17 +421,17 @@
   label_closed_issues: suljettu
   label_closed_issues_plural: suljettua
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Yhteensä
   label_permissions: Oikeudet
   label_current_status: Nykyinen tila
@@ -448,7 +449,7 @@
   label_months_from: kuukauden päässä
   label_gantt: Gantt
   label_internal: Sisäinen
-  label_last_changes: "viimeiset {{count}} muutokset"
+  label_last_changes: "viimeiset %{count} muutokset"
   label_change_view_all: Näytä kaikki muutokset
   label_personalize_page: Personoi tämä sivu
   label_comment: Kommentti
@@ -456,7 +457,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Lisää kommentti
   label_comment_added: Kommentti lisätty
   label_comment_delete: Poista kommentti
@@ -480,8 +481,8 @@
   label_repository: Tietovarasto
   label_repository_plural: Tietovarastot
   label_browse: Selaus
-  label_modification: "{{count}} muutos"
-  label_modification_plural: "{{count}} muutettu"
+  label_modification: "%{count} muutos"
+  label_modification_plural: "%{count} muutettu"
   label_revision: Versio
   label_revision_plural: Versiot
   label_added: lisätty
@@ -496,8 +497,8 @@
   label_sort_lower: Siirrä alas
   label_sort_lowest: Siirrä alimmaiseksi
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Määräaika {{value}}"
-  label_roadmap_overdue: "{{value}} myöhässä"
+  label_roadmap_due_in: "Määräaika %{value}"
+  label_roadmap_overdue: "%{value} myöhässä"
   label_roadmap_no_issues: Ei tapahtumia tälle versiolle
   label_search: Haku
   label_result_plural: Tulokset
@@ -515,8 +516,8 @@
   label_changes_details: Kaikkien muutosten yksityiskohdat
   label_issue_tracking: Tapahtumien seuranta
   label_spent_time: Käytetty aika
-  label_f_hour: "{{value}} tunti"
-  label_f_hour_plural: "{{value}} tuntia"
+  label_f_hour: "%{value} tunti"
+  label_f_hour_plural: "%{value} tuntia"
   label_time_tracking: Ajan seuranta
   label_change_plural: Muutokset
   label_statistics: Tilastot
@@ -561,12 +562,12 @@
   label_month: Kuukausi
   label_week: Viikko
   label_language_based: Pohjautuen käyttäjän kieleen
-  label_sort_by: "Lajittele {{value}}"
+  label_sort_by: "Lajittele %{value}"
   label_send_test_email: Lähetä testi sähköposti
-  label_feeds_access_key_created_on: "RSS salasana luotiin {{value}} sitten"
+  label_feeds_access_key_created_on: "RSS salasana luotiin %{value} sitten"
   label_module_plural: Moduulit
-  label_added_time_by: "Lisännyt {{author}} {{age}} sitten"
-  label_updated_time: "Päivitetty {{value}} sitten"
+  label_added_time_by: "Lisännyt %{author} %{age} sitten"
+  label_updated_time: "Päivitetty %{value} sitten"
   label_jump_to_a_project: Siirry projektiin...
   label_file_plural: Tiedostot
   label_changeset_plural: Muutosryhmät
@@ -582,7 +583,7 @@
   label_registration_activation_by_email: tilin aktivointi sähköpostitse
   label_registration_manual_activation: tilin aktivointi käsin
   label_registration_automatic_activation: tilin aktivointi automaattisesti
-  label_display_per_page: "Per sivu: {{value}}"
+  label_display_per_page: "Per sivu: %{value}"
   label_age: Ikä
   label_change_properties: Vaihda asetuksia
   label_general: Yleinen
@@ -638,17 +639,17 @@
   text_tip_issue_end_day: tehtävä joka loppuu tänä päivänä
   text_tip_issue_begin_end_day: tehtävä joka alkaa ja loppuu tänä päivänä
   text_project_identifier_info: 'Pienet kirjaimet (a-z), numerot ja viivat ovat sallittu.<br />Tallentamisen jälkeen tunnistetta ei voi muuttaa.'
-  text_caracters_maximum: "{{count}} merkkiä enintään."
-  text_caracters_minimum: "Täytyy olla vähintään {{count}} merkkiä pitkä."
-  text_length_between: "Pituus välillä {{min}} ja {{max}} merkkiä."
+  text_caracters_maximum: "%{count} merkkiä enintään."
+  text_caracters_minimum: "Täytyy olla vähintään %{count} merkkiä pitkä."
+  text_length_between: "Pituus välillä %{min} ja %{max} merkkiä."
   text_tracker_no_workflow: Työnkulkua ei määritelty tälle tapahtumalle
   text_unallowed_characters: Kiellettyjä merkkejä
   text_comma_separated: Useat arvot sallittu (pilkku eroteltuna).
   text_issues_ref_in_commit_messages: Liitän ja korjaan ongelmia syötetyssä viestissä
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Oletko varma että haluat poistaa tämän wiki:n ja kaikki sen sisältämän tiedon?
-  text_issue_category_destroy_question: "Jotkut tapahtumat ({{count}}) ovat nimetty tälle luokalle. Mitä haluat tehdä?"
+  text_issue_category_destroy_question: "Jotkut tapahtumat (%{count}) ovat nimetty tälle luokalle. Mitä haluat tehdä?"
   text_issue_category_destroy_assignments: Poista luokan tehtävät
   text_issue_category_reassign_to: Vaihda tapahtuma tähän luokkaan
   text_user_mail_option: "Valitsemattomille projekteille, saat vain muistutuksen asioista joita seuraat tai olet mukana (esim. tapahtumat joissa olet tekijä tai nimettynä)."
@@ -682,7 +683,7 @@
   enumeration_activities: Historia (ajan seuranta)
   label_associated_revisions: Liittyvät versiot
   setting_user_format: Käyttäjien esitysmuoto
-  text_status_changed_by_changeset: "Päivitetty muutosversioon {{value}}."
+  text_status_changed_by_changeset: "Päivitetty muutosversioon %{value}."
   text_issues_destroy_confirmation: 'Oletko varma että haluat poistaa valitut tapahtumat ?'
   label_more: Lisää
   label_issue_added: Tapahtuma lisätty
@@ -710,8 +711,8 @@
   label_downloads_abbr: D/L
   label_add_another_file: Lisää uusi tiedosto
   label_this_month: tässä kuussa
-  text_destroy_time_entries_question: "{{hours}} tuntia on raportoitu tapahtumasta jonka aiot poistaa. Mitä haluat tehdä ?"
-  label_last_n_days: "viimeiset {{count}} päivää"
+  text_destroy_time_entries_question: "%{hours} tuntia on raportoitu tapahtumasta jonka aiot poistaa. Mitä haluat tehdä ?"
+  label_last_n_days: "viimeiset %{count} päivää"
   label_all_time: koko ajalta
   error_issue_not_found_in_project: 'Tapahtumaa ei löytynyt tai se ei kuulu tähän projektiin'
   label_this_year: tänä vuonna
@@ -736,15 +737,15 @@
   label_overall_activity: Kokonaishistoria
   error_scm_annotate: "Merkintää ei ole tai siihen ei voi lisätä selityksiä."
   label_planning: Suunnittelu
-  text_subprojects_destroy_warning: "Tämän aliprojekti(t): {{value}} tullaan myös poistamaan."
-  label_and_its_subprojects: "{{value}} ja aliprojektit"
-  mail_body_reminder: "{{count}} sinulle nimettyä tapahtuma(a) erääntyy {{days}} päivä sisään:"
-  mail_subject_reminder: "{{count}} tapahtuma(a) erääntyy {{days}} lähipäivinä"
-  text_user_wrote: "{{value}} kirjoitti:"
+  text_subprojects_destroy_warning: "Tämän aliprojekti(t): %{value} tullaan myös poistamaan."
+  label_and_its_subprojects: "%{value} ja aliprojektit"
+  mail_body_reminder: "%{count} sinulle nimettyä tapahtuma(a) erääntyy %{days} päivä sisään:"
+  mail_subject_reminder: "%{count} tapahtuma(a) erääntyy %{days} lähipäivinä"
+  text_user_wrote: "%{value} kirjoitti:"
   label_duplicated_by: kopioinut
   setting_enabled_scm: Versionhallinta käytettävissä
   text_enumeration_category_reassign_to: 'Siirrä täksi arvoksi:'
-  text_enumeration_destroy_question: "{{count}} kohdetta on sijoitettu tälle arvolle."
+  text_enumeration_destroy_question: "%{count} kohdetta on sijoitettu tälle arvolle."
   label_incoming_emails: Saapuvat sähköpostiviestit
   label_generate_key: Luo avain
   setting_mail_handler_api_enabled: Ota käyttöön WS saapuville sähköposteille
@@ -810,12 +811,12 @@
   text_repository_usernames_mapping: "Valitse päivittääksesi Redmine käyttäjä jokaiseen käyttäjään joka löytyy tietovaraston lokista.\nKäyttäjät joilla on sama Redmine ja tietovaraston käyttäjänimi tai sähköpostiosoite, yhdistetään automaattisesti."
   permission_edit_own_messages: Muokkaa omia viestejä
   permission_delete_own_messages: Poista omia viestejä
-  label_user_activity: "Käyttäjän {{value}} historia"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "Käyttäjän %{value} historia"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -830,21 +831,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -852,14 +853,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -894,9 +895,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -923,12 +924,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -936,7 +937,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -947,8 +948,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/fr.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/fr.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -36,38 +36,38 @@
       less_than_x_seconds:
         zero:  "moins d'une seconde"
         one:   "moins d'une seconde"
-        other: "moins de {{count}} secondes"
+        other: "moins de %{count} secondes"
       x_seconds:
         one:   "1 seconde"
-        other: "{{count}} secondes"
+        other: "%{count} secondes"
       less_than_x_minutes:
         zero:  "moins d'une minute"
         one:   "moins d'une minute"
-        other: "moins de {{count}} minutes"
+        other: "moins de %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "environ une heure"
-        other: "environ {{count}} heures"
+        other: "environ %{count} heures"
       x_days:
         one:   "un jour"
-        other: "{{count}} jours"
+        other: "%{count} jours"
       about_x_months:
         one:   "environ un mois"
-        other: "environ {{count}} mois"
+        other: "environ %{count} mois"
       x_months:
         one:   "un mois"
-        other: "{{count}} mois"
+        other: "%{count} mois"
       about_x_years:
         one:   "environ un an"
-        other: "environ {{count}} ans"
+        other: "environ %{count} ans"
       over_x_years:
         one:   "plus d'un an"
-        other: "plus de {{count}} ans"
+        other: "plus de %{count} ans"
       almost_x_years:
         one:   "presqu'un an"
-        other: "presque {{count}} ans"
+        other: "presque %{count} ans"
     prompts:
       year:   "Année"
       month:  "Mois"
@@ -112,8 +112,8 @@
     errors:
       template:
         header: 
-          one: "Impossible d'enregistrer {{model}} : une erreur"
-          other: "Impossible d'enregistrer {{model}} : {{count}} erreurs."
+          one: "Impossible d'enregistrer %{model} : une erreur"
+          other: "Impossible d'enregistrer %{model} : %{count} erreurs."
         body: "Veuillez vérifier les champs suivants :"
       messages:
         inclusion: "n'est pas inclus(e) dans la liste"
@@ -123,16 +123,17 @@
         accepted: "doit être accepté(e)"
         empty: "doit être renseigné(e)"
         blank: "doit être renseigné(e)"
-        too_long: "est trop long (pas plus de {{count}} caractères)"
-        too_short: "est trop court (au moins {{count}} caractères)"
-        wrong_length: "ne fait pas la bonne longueur (doit comporter {{count}} caractères)"
+        too_long: "est trop long (pas plus de %{count} caractères)"
+        too_short: "est trop court (au moins %{count} caractères)"
+        wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
         taken: "est déjà utilisé"
         not_a_number: "n'est pas un nombre"
-        greater_than: "doit être supérieur à {{count}}"
-        greater_than_or_equal_to: "doit être supérieur ou égal à {{count}}"
-        equal_to: "doit être égal à {{count}}"
-        less_than: "doit être inférieur à {{count}}"
-        less_than_or_equal_to: "doit être inférieur ou égal à {{count}}"
+        not_a_date: "n'est pas une date valide"
+        greater_than: "doit être supérieur à %{count}"
+        greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
+        equal_to: "doit être égal à %{count}"
+        less_than: "doit être inférieur à %{count}"
+        less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
         odd: "doit être impair"
         even: "doit être pair"
         greater_than_start_date: "doit être postérieure à la date de début"
@@ -170,20 +171,21 @@
   notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
   notice_not_authorized: "Vous n'êtes pas autorisés à accéder à cette page."
   notice_not_authorized_archived_project: Le projet auquel vous tentez d'accéder a été archivé.
-  notice_email_sent: "Un email a été envoyé à {{value}}"
-  notice_email_error: "Erreur lors de l'envoi de l'email ({{value}})"
+  notice_email_sent: "Un email a été envoyé à %{value}"
+  notice_email_error: "Erreur lors de l'envoi de l'email (%{value})"
   notice_feeds_access_key_reseted: "Votre clé d'accès aux flux RSS a été réinitialisée."
-  notice_failed_to_save_issues: "{{count}} demande(s) sur les {{total}} sélectionnées n'ont pas pu être mise(s) à jour : {{ids}}."
+  notice_failed_to_save_issues: "%{count} demande(s) sur les %{total} sélectionnées n'ont pas pu être mise(s) à jour : %{ids}."
   notice_no_issue_selected: "Aucune demande sélectionnée ! Cochez les demandes que vous voulez mettre à jour."
   notice_account_pending: "Votre compte a été créé et attend l'approbation de l'administrateur."
   notice_default_data_loaded: Paramétrage par défaut chargé avec succès.
   notice_unable_delete_version: Impossible de supprimer cette version.
   notice_issue_done_ratios_updated: L'avancement des demandes a été mis à jour.
   notice_api_access_key_reseted: Votre clé d'accès API a été réinitialisée.
+  notice_gantt_chart_truncated: "Le diagramme a été tronqué car il excède le nombre maximal d'éléments pouvant être affichés (%{max})"
   
-  error_can_t_load_default_data: "Une erreur s'est produite lors du chargement du paramétrage : {{value}}"
+  error_can_t_load_default_data: "Une erreur s'est produite lors du chargement du paramétrage : %{value}"
   error_scm_not_found: "L'entrée et/ou la révision demandée n'existe pas dans le dépôt."
-  error_scm_command_failed: "Une erreur s'est produite lors de l'accès au dépôt : {{value}}"
+  error_scm_command_failed: "Une erreur s'est produite lors de l'accès au dépôt : %{value}"
   error_scm_annotate: "L'entrée n'existe pas ou ne peut pas être annotée."
   error_issue_not_found_in_project: "La demande n'existe pas ou n'appartient pas à ce projet"
   error_can_not_reopen_issue_on_closed_version: 'Une demande assignée à une version fermée ne peut pas être réouverte'
@@ -192,25 +194,25 @@
   error_workflow_copy_target: 'Veuillez sélectionner les trackers et rôles cibles'
   error_issue_done_ratios_not_updated: L'avancement des demandes n'a pas pu être mis à jour.
   
-  warning_attachments_not_saved: "{{count}} fichier(s) n'ont pas pu être sauvegardés."
+  warning_attachments_not_saved: "%{count} fichier(s) n'ont pas pu être sauvegardés."
   
-  mail_subject_lost_password: "Votre mot de passe {{value}}"
+  mail_subject_lost_password: "Votre mot de passe %{value}"
   mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
-  mail_subject_register: "Activation de votre compte {{value}}"
+  mail_subject_register: "Activation de votre compte %{value}"
   mail_body_register: 'Pour activer votre compte, cliquez sur le lien suivant :'
-  mail_body_account_information_external: "Vous pouvez utiliser votre compte {{value}} pour vous connecter."
+  mail_body_account_information_external: "Vous pouvez utiliser votre compte %{value} pour vous connecter."
   mail_body_account_information: Paramètres de connexion de votre compte
-  mail_subject_account_activation_request: "Demande d'activation d'un compte {{value}}"
-  mail_body_account_activation_request: "Un nouvel utilisateur ({{value}}) s'est inscrit. Son compte nécessite votre approbation :"
-  mail_subject_reminder: "{{count}} demande(s) arrivent à échéance ({{days}})"
-  mail_body_reminder: "{{count}} demande(s) qui vous sont assignées arrivent à échéance dans les {{days}} prochains jours :"
-  mail_subject_wiki_content_added: "Page wiki '{{id}}' ajoutée"
-  mail_body_wiki_content_added: "La page wiki '{{id}}' a été ajoutée par {{author}}."
-  mail_subject_wiki_content_updated: "Page wiki '{{id}}' mise à jour"
-  mail_body_wiki_content_updated: "La page wiki '{{id}}' a été mise à jour par {{author}}."
+  mail_subject_account_activation_request: "Demande d'activation d'un compte %{value}"
+  mail_body_account_activation_request: "Un nouvel utilisateur (%{value}) s'est inscrit. Son compte nécessite votre approbation :"
+  mail_subject_reminder: "%{count} demande(s) arrivent à échéance (%{days})"
+  mail_body_reminder: "%{count} demande(s) qui vous sont assignées arrivent à échéance dans les %{days} prochains jours :"
+  mail_subject_wiki_content_added: "Page wiki '%{id}' ajoutée"
+  mail_body_wiki_content_added: "La page wiki '%{id}' a été ajoutée par %{author}."
+  mail_subject_wiki_content_updated: "Page wiki '%{id}' mise à jour"
+  mail_body_wiki_content_updated: "La page wiki '%{id}' a été mise à jour par %{author}."
   
   gui_validation_error: 1 erreur
-  gui_validation_error_plural: "{{count}} erreurs"
+  gui_validation_error_plural: "%{count} erreurs"
   
   field_name: Nom
   field_description: Description
@@ -272,6 +274,7 @@
   field_attr_lastname: Attribut Nom
   field_attr_mail: Attribut Email
   field_onthefly: Création des utilisateurs à la volée
+  field_start_date: Début
   field_done_ratio: % réalisé
   field_auth_source: Mode d'authentification
   field_hide_mail: Cacher mon adresse mail
@@ -358,6 +361,9 @@
   setting_gravatar_default: Image Gravatar par défaut
   setting_start_of_week: Jour de début des calendriers
   setting_cache_formatted_text: Mettre en cache le texte formaté
+  setting_commit_logtime_enabled: Permettre la saisie de temps
+  setting_commit_logtime_activity_id: Activité pour le temps saisi
+  setting_gantt_items_limit: Nombre maximum d'éléments affichés sur le gantt
   
   permission_add_project: Créer un projet
   permission_add_subprojects: Créer des sous-projets
@@ -434,7 +440,7 @@
   label_x_projects:
     zero:  aucun projet
     one:   un projet
-    other: "{{count}} projets"
+    other: "%{count} projets"
   label_project_all: Tous les projets
   label_project_latest: Derniers projets
   label_issue: Demande
@@ -443,7 +449,7 @@
   label_issue_view_all: Voir toutes les demandes
   label_issue_added: Demande ajoutée
   label_issue_updated: Demande mise à jour
-  label_issues_by: "Demandes par {{value}}"
+  label_issues_by: "Demandes par %{value}"
   label_document: Document
   label_document_new: Nouveau document
   label_document_plural: Documents
@@ -491,7 +497,7 @@
   label_registered_on: "Inscrit le "
   label_activity: Activité
   label_overall_activity: Activité globale
-  label_user_activity: "Activité de {{value}}"
+  label_user_activity: "Activité de %{value}"
   label_new: Nouveau
   label_logged_as: Connecté en tant que
   label_environment: Environnement
@@ -501,7 +507,7 @@
   label_auth_source_plural: Modes d'authentification
   label_subproject_plural: Sous-projets
   label_subproject_new: Nouveau sous-projet
-  label_and_its_subprojects: "{{value}} et ses sous-projets"
+  label_and_its_subprojects: "%{value} et ses sous-projets"
   label_min_max_length: Longueurs mini - maxi
   label_list: Liste
   label_date: Date
@@ -512,8 +518,8 @@
   label_text: Texte long
   label_attribute: Attribut
   label_attribute_plural: Attributs
-  label_download: "{{count}} téléchargement"
-  label_download_plural: "{{count}} téléchargements"
+  label_download: "%{count} téléchargement"
+  label_download_plural: "%{count} téléchargements"
   label_no_data: Aucune donnée à afficher
   label_change_status: Changer le statut
   label_history: Historique
@@ -544,17 +550,17 @@
   label_closed_issues: fermé
   label_closed_issues_plural: fermés
   label_x_open_issues_abbr_on_total:
-    zero:  0 ouvert sur {{total}}
-    one:   1 ouvert sur {{total}}
-    other: "{{count}} ouverts sur {{total}}"
+    zero:  0 ouvert sur %{total}
+    one:   1 ouvert sur %{total}
+    other: "%{count} ouverts sur %{total}"
   label_x_open_issues_abbr:
     zero:  0 ouvert
     one:   1 ouvert
-    other: "{{count}} ouverts"
+    other: "%{count} ouverts"
   label_x_closed_issues_abbr:
     zero:  0 fermé
     one:   1 fermé
-    other: "{{count}} fermés"
+    other: "%{count} fermés"
   label_total: Total
   label_permissions: Permissions
   label_current_status: Statut actuel
@@ -572,7 +578,7 @@
   label_months_from: mois depuis
   label_gantt: Gantt
   label_internal: Interne
-  label_last_changes: "{{count}} derniers changements"
+  label_last_changes: "%{count} derniers changements"
   label_change_view_all: Voir tous les changements
   label_personalize_page: Personnaliser cette page
   label_comment: Commentaire
@@ -580,7 +586,7 @@
   label_x_comments:
     zero: aucun commentaire
     one: un commentaire
-    other: "{{count}} commentaires"
+    other: "%{count} commentaires"
   label_comment_add: Ajouter un commentaire
   label_comment_added: Commentaire ajouté
   label_comment_delete: Supprimer les commentaires
@@ -599,7 +605,7 @@
   label_yesterday: hier
   label_this_week: cette semaine
   label_last_week: la semaine dernière
-  label_last_n_days: "les {{count}} derniers jours"
+  label_last_n_days: "les %{count} derniers jours"
   label_this_month: ce mois-ci
   label_last_month: le mois dernier
   label_this_year: cette année
@@ -613,8 +619,8 @@
   label_repository: Dépôt
   label_repository_plural: Dépôts
   label_browse: Parcourir
-  label_modification: "{{count}} modification"
-  label_modification_plural: "{{count}} modifications"
+  label_modification: "%{count} modification"
+  label_modification_plural: "%{count} modifications"
   label_revision: "Révision "
   label_revision_plural: Révisions
   label_associated_revisions: Révisions associées
@@ -632,8 +638,8 @@
   label_sort_lower: Descendre
   label_sort_lowest: Descendre en dernier
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Échéance dans {{value}}"
-  label_roadmap_overdue: "En retard de {{value}}"
+  label_roadmap_due_in: "Échéance dans %{value}"
+  label_roadmap_overdue: "En retard de %{value}"
   label_roadmap_no_issues: Aucune demande pour cette version
   label_search: "Recherche "
   label_result_plural: Résultats
@@ -651,8 +657,8 @@
   label_changes_details: Détails de tous les changements
   label_issue_tracking: Suivi des demandes
   label_spent_time: Temps passé
-  label_f_hour: "{{value}} heure"
-  label_f_hour_plural: "{{value}} heures"
+  label_f_hour: "%{value} heure"
+  label_f_hour_plural: "%{value} heures"
   label_time_tracking: Suivi du temps
   label_change_plural: Changements
   label_statistics: Statistiques
@@ -701,13 +707,13 @@
   label_date_from: Du
   label_date_to: Au
   label_language_based: Basé sur la langue de l'utilisateur
-  label_sort_by: "Trier par {{value}}"
+  label_sort_by: "Trier par %{value}"
   label_send_test_email: Envoyer un email de test
-  label_feeds_access_key_created_on: "Clé d'accès RSS créée il y a {{value}}"
+  label_feeds_access_key_created_on: "Clé d'accès RSS créée il y a %{value}"
   label_module_plural: Modules
-  label_added_time_by: "Ajouté par {{author}} il y a {{age}}"
-  label_updated_time_by: "Mis à jour par {{author}} il y a {{age}}"
-  label_updated_time: "Mis à jour il y a {{value}}"
+  label_added_time_by: "Ajouté par %{author} il y a %{age}"
+  label_updated_time_by: "Mis à jour par %{author} il y a %{age}"
+  label_updated_time: "Mis à jour il y a %{value}"
   label_jump_to_a_project: Aller à un projet...
   label_file_plural: Fichiers
   label_changeset_plural: Révisions
@@ -723,7 +729,7 @@
   label_registration_activation_by_email: activation du compte par email
   label_registration_manual_activation: activation manuelle du compte
   label_registration_automatic_activation: activation automatique du compte
-  label_display_per_page: "Par page : {{value}}"
+  label_display_per_page: "Par page : %{value}"
   label_age: Âge
   label_change_properties: Changer les propriétés
   label_general: Général
@@ -746,7 +752,7 @@
   label_sort: Tri
   label_ascending: Croissant
   label_descending: Décroissant
-  label_date_from_to: Du {{start}} au {{end}}
+  label_date_from_to: Du %{start} au %{end}
   label_wiki_content_added: Page wiki ajoutée
   label_wiki_content_updated: Page wiki mise à jour
   label_group_plural: Groupes
@@ -764,12 +770,12 @@
   label_update_issue_done_ratios: Mettre à jour l'avancement des demandes
   label_display_used_statuses_only: N'afficher que les statuts utilisés dans ce tracker
   label_api_access_key: Clé d'accès API
-  label_api_access_key_created_on: Clé d'accès API créée il y a {{value}}
+  label_api_access_key_created_on: Clé d'accès API créée il y a %{value}
   label_feeds_access_key: Clé d'accès RSS
   label_missing_api_access_key: Clé d'accès API manquante
   label_missing_feeds_access_key: Clé d'accès RSS manquante
   label_close_versions: Fermer les versions terminées
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_profile: Profil
   label_subtask_plural: Sous-tâches
   label_project_copy_notifications: Envoyer les notifications durant la copie du projet
@@ -832,49 +838,50 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 pour aucune restriction
   text_project_destroy_confirmation: Êtes-vous sûr de vouloir supprimer ce projet et toutes ses données ?
-  text_subprojects_destroy_warning: "Ses sous-projets : {{value}} seront également supprimés."
+  text_subprojects_destroy_warning: "Ses sous-projets : %{value} seront également supprimés."
   text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
   text_are_you_sure: Êtes-vous sûr ?
   text_tip_issue_begin_day: tâche commençant ce jour
   text_tip_issue_end_day: tâche finissant ce jour
   text_tip_issue_begin_end_day: tâche commençant et finissant ce jour
   text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres et tirets sont autorisés.<br />Un fois sauvegardé, l''identifiant ne pourra plus être modifié.'
-  text_caracters_maximum: "{{count}} caractères maximum."
-  text_caracters_minimum: "{{count}} caractères minimum."
-  text_length_between: "Longueur comprise entre {{min}} et {{max}} caractères."
+  text_caracters_maximum: "%{count} caractères maximum."
+  text_caracters_minimum: "%{count} caractères minimum."
+  text_length_between: "Longueur comprise entre %{min} et %{max} caractères."
   text_tracker_no_workflow: Aucun worflow n'est défini pour ce tracker
   text_unallowed_characters: Caractères non autorisés
   text_comma_separated: Plusieurs valeurs possibles (séparées par des virgules).
   text_line_separated: Plusieurs valeurs possibles (une valeur par ligne).
   text_issues_ref_in_commit_messages: Référencement et résolution des demandes dans les commentaires de commits
-  text_issue_added: "La demande {{id}} a été soumise par {{author}}."
-  text_issue_updated: "La demande {{id}} a été mise à jour par {{author}}."
+  text_issue_added: "La demande %{id} a été soumise par %{author}."
+  text_issue_updated: "La demande %{id} a été mise à jour par %{author}."
   text_wiki_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce wiki et tout son contenu ?
-  text_issue_category_destroy_question: "{{count}} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
+  text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
   text_issue_category_destroy_assignments: N'affecter les demandes à aucune autre catégorie
   text_issue_category_reassign_to: Réaffecter les demandes à cette catégorie
   text_user_mail_option: "Pour les projets non sélectionnés, vous recevrez seulement des notifications pour ce que vous surveillez ou à quoi vous participez (exemple: demandes dont vous êtes l'auteur ou la personne assignée)."
   text_no_configuration_data: "Les rôles, trackers, statuts et le workflow ne sont pas encore paramétrés.\nIl est vivement recommandé de charger le paramétrage par defaut. Vous pourrez le modifier une fois chargé."
   text_load_default_configuration: Charger le paramétrage par défaut
-  text_status_changed_by_changeset: "Appliqué par commit {{value}}."
+  text_status_changed_by_changeset: "Appliqué par commit %{value}."
+  text_time_logged_by_changeset: "Appliqué par commit %{value}"
   text_issues_destroy_confirmation: 'Êtes-vous sûr de vouloir supprimer le(s) demandes(s) selectionnée(s) ?'
   text_select_project_modules: 'Sélectionner les modules à activer pour ce projet :'
   text_default_administrator_account_changed: Compte administrateur par défaut changé
   text_file_repository_writable: Répertoire de stockage des fichiers accessible en écriture
   text_plugin_assets_writable: Répertoire public des plugins accessible en écriture
   text_rmagick_available: Bibliothèque RMagick présente (optionnelle)
-  text_destroy_time_entries_question: "{{hours}} heures ont été enregistrées sur les demandes à supprimer. Que voulez-vous faire ?"
+  text_destroy_time_entries_question: "%{hours} heures ont été enregistrées sur les demandes à supprimer. Que voulez-vous faire ?"
   text_destroy_time_entries: Supprimer les heures
   text_assign_time_entries_to_project: Reporter les heures sur le projet
   text_reassign_time_entries: 'Reporter les heures sur cette demande:'
-  text_user_wrote: "{{value}} a écrit :"
-  text_enumeration_destroy_question: "Cette valeur est affectée à {{count}} objets."
+  text_user_wrote: "%{value} a écrit :"
+  text_enumeration_destroy_question: "Cette valeur est affectée à %{count} objets."
   text_enumeration_category_reassign_to: 'Réaffecter les objets à cette valeur:'
   text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/email.yml et redémarrez l'application pour les activer."
   text_repository_usernames_mapping: "Vous pouvez sélectionner ou modifier l'utilisateur Redmine associé à chaque nom d'utilisateur figurant dans l'historique du dépôt.\nLes utilisateurs avec le même identifiant ou la même adresse mail seront automatiquement associés."
   text_diff_truncated: '... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.'
   text_custom_field_possible_values_info: 'Une ligne par valeur'
-  text_wiki_page_destroy_question: "Cette page possède {{descendants}} sous-page(s) et descendante(s). Que voulez-vous faire ?"
+  text_wiki_page_destroy_question: "Cette page possède %{descendants} sous-page(s) et descendante(s). Que voulez-vous faire ?"
   text_wiki_page_nullify_children: "Conserver les sous-pages en tant que pages racines"
   text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
   text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
@@ -912,20 +919,20 @@
   label_branch: Branche
   error_no_tracker_in_project: "Aucun tracker n'est associé à ce projet. Vérifier la configuration du projet."
   error_no_default_issue_status: "Aucun statut de demande n'est défini par défaut. Vérifier votre configuration (Administration -> Statuts de demandes)."
-  text_journal_changed: "{{label}} changé de {{old}} à {{new}}"
-  text_journal_set_to: "{{label}} mis à {{value}}"
-  text_journal_deleted: "{{label}} {{old}} supprimé"
-  text_journal_added: "{{label}} {{value}} ajouté"
+  text_journal_changed: "%{label} changé de %{old} à %{new}"
+  text_journal_set_to: "%{label} mis à %{value}"
+  text_journal_deleted: "%{label} %{old} supprimé"
+  text_journal_added: "%{label} %{value} ajouté"
   enumeration_system_activity: Activité système
   label_board_sticky: Sticky
   label_board_locked: Verrouillé
   error_unable_delete_issue_status: Impossible de supprimer le statut de demande
   error_can_not_delete_custom_field: Impossible de supprimer le champ personnalisé
-  error_unable_to_connect: Connexion impossible ({{value}})
+  error_unable_to_connect: Connexion impossible (%{value})
   error_can_not_remove_role: Ce rôle est utilisé et ne peut pas être supprimé.
   error_can_not_delete_tracker: Ce tracker contient des demandes et ne peut pas être supprimé.
   field_principal: Principal
-  notice_failed_to_save_members: "Erreur lors de la sauvegarde des membres: {{errors}}."
+  notice_failed_to_save_members: "Erreur lors de la sauvegarde des membres: %{errors}."
   text_zoom_out: Zoom arrière
   text_zoom_in: Zoom avant
   notice_unable_delete_time_entry: Impossible de supprimer le temps passé.
@@ -933,7 +940,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendrier
-  button_edit_associated_wikipage: "Modifier la page wiki associée: {{page_title}}"
+  button_edit_associated_wikipage: "Modifier la page wiki associée: %{page_title}"
   text_are_you_sure_with_children: Supprimer la demande et toutes ses sous-demandes ?
   field_text: Champ texte
   label_user_mail_option_only_owner: Seulement pour ce que j'ai créé
@@ -943,5 +950,4 @@
   label_user_mail_option_none: Aucune notification
   field_member_of_group: Groupe de l'assigné
   field_assigned_to_role: Rôle de l'assigné
-  field_start_date: Start date
   setting_emails_header: Emails header
--- a/config/locales/.svn/text-base/gl.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/gl.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -74,41 +74,41 @@
         zero: 'menos dun segundo'
         one: '1 segundo'
         few: 'poucos segundos'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
       x_seconds:
         one: '1 segundo'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
       less_than_x_minutes:
         zero: 'menos dun minuto'
         one: '1 minuto'
-        other: '{{count}} minutos'
+        other: '%{count} minutos'
       x_minutes:
         one: '1 minuto'
-        other: '{{count}} minuto'
+        other: '%{count} minuto'
       about_x_hours:
         one: 'aproximadamente unha hora'
-        other: '{{count}} horas'
+        other: '%{count} horas'
       x_days:
         one: '1 día'
-        other: '{{count}} días'
+        other: '%{count} días'
       x_weeks:
         one: '1 semana'
-        other: '{{count}} semanas'
+        other: '%{count} semanas'
       about_x_months:
         one: 'aproximadamente 1 mes'
-        other: '{{count}} meses'
+        other: '%{count} meses'
       x_months:
         one: '1 mes'
-        other: '{{count}} meses'
+        other: '%{count} meses'
       about_x_years:
         one: 'aproximadamente 1 ano'
-        other: '{{count}} anos'
+        other: '%{count} anos'
       over_x_years:
         one: 'máis dun ano'
-        other: '{{count}} anos'
+        other: '%{count} anos'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
       now: 'agora'
       today: 'hoxe'
       tomorrow: 'mañá'
@@ -124,8 +124,8 @@
     errors:
       template:
         header:
-          one: "1 erro evitou que se poidese gardar o {{model}}"
-          other: "{{count}} erros evitaron que se poidese gardar o {{model}}"
+          one: "1 erro evitou que se poidese gardar o %{model}"
+          other: "%{count} erros evitaron que se poidese gardar o %{model}"
         body: "Atopáronse os seguintes problemas:"
       messages:
         inclusion: "non está incluido na lista"
@@ -135,16 +135,16 @@
         accepted: "debe ser aceptado"
         empty: "non pode estar valeiro"
         blank: "non pode estar en blanco"
-        too_long: "é demasiado longo (non máis de {{count}} carácteres)"
-        too_short: "é demasiado curto (non menos de {{count}} carácteres)"
-        wrong_length: "non ten a lonxitude correcta (debe ser de {{count}} carácteres)"
+        too_long: "é demasiado longo (non máis de %{count} carácteres)"
+        too_short: "é demasiado curto (non menos de %{count} carácteres)"
+        wrong_length: "non ten a lonxitude correcta (debe ser de %{count} carácteres)"
         taken: "non está dispoñible"
         not_a_number: "non é un número"
-        greater_than: "debe ser maior que {{count}}"
-        greater_than_or_equal_to: "debe ser maior ou igual que {{count}}"
-        equal_to: "debe ser igual a {{count}}"
-        less_than: "debe ser menor que {{count}}"
-        less_than_or_equal_to: "debe ser menor ou igual que {{count}}"
+        greater_than: "debe ser maior que %{count}"
+        greater_than_or_equal_to: "debe ser maior ou igual que %{count}"
+        equal_to: "debe ser igual a %{count}"
+        less_than: "debe ser menor que %{count}"
+        less_than_or_equal_to: "debe ser menor ou igual que %{count}"
         odd: "debe ser par"
         even: "debe ser impar"
         greater_than_start_date: "debe ser posterior á data de comezo"
@@ -216,10 +216,10 @@
   enumeration_activities: Actividades (tempo dedicado)
   enumeration_doc_categories: Categorías do documento
   enumeration_issue_priorities: Prioridade das peticións
-  error_can_t_load_default_data: "Non se puido cargar a configuración por defecto: {{value}}"
+  error_can_t_load_default_data: "Non se puido cargar a configuración por defecto: %{value}"
   error_issue_not_found_in_project: 'A petición non se atopa ou non está asociada a este proxecto'
   error_scm_annotate: "Non existe a entrada ou non se puido anotar"
-  error_scm_command_failed: "Aconteceu un erro ao acceder ó repositorio: {{value}}"
+  error_scm_command_failed: "Aconteceu un erro ao acceder ó repositorio: %{value}"
   error_scm_not_found: "A entrada e/ou revisión non existe no repositorio."
   field_account: Conta
   field_activity: Actividade
@@ -290,6 +290,7 @@
   field_role: Perfil
   field_searchable: Incluír nas búsquedas
   field_spent_on: Data
+  field_start_date: Data de inicio
   field_start_page: Páxina principal
   field_status: Estado
   field_subject: Tema
@@ -315,19 +316,19 @@
   general_text_no: 'non'
   general_text_yes: 'si'
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
   label_activity: Actividade
   label_add_another_file: Engadir outro arquivo
   label_add_note: Engadir unha nota
   label_added: engadido
-  label_added_time_by: "Engadido por {{author}} fai {{age}}"
+  label_added_time_by: "Engadido por %{author} fai %{age}"
   label_administration: Administración
   label_age: Idade
   label_ago: fai
   label_all: todos
   label_all_time: todo o tempo
   label_all_words: Tódalas palabras
-  label_and_its_subprojects: "{{value}} e proxectos secundarios"
+  label_and_its_subprojects: "%{value} e proxectos secundarios"
   label_applied_status: Aplicar estado
   label_assigned_to_me_issues: Peticións asignadas a min
   label_associated_revisions: Revisións asociadas
@@ -360,17 +361,17 @@
   label_closed_issues: pechada
   label_closed_issues_plural: pechadas
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Comentario
   label_comment_add: Engadir un comentario
   label_comment_added: Comentario engadido
@@ -379,7 +380,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Commits por autor
   label_commits_per_month: Commits por mes
   label_confirmation: Confirmación
@@ -403,13 +404,13 @@
   label_diff_inline: en liña
   label_diff_side_by_side: cara a cara
   label_disabled: deshabilitado
-  label_display_per_page: "Por páxina: {{value}}"
+  label_display_per_page: "Por páxina: %{value}"
   label_document: Documento
   label_document_added: Documento engadido
   label_document_new: Novo documento
   label_document_plural: Documentos
-  label_download: "{{count}} Descarga"
-  label_download_plural: "{{count}} Descargas"
+  label_download: "%{count} Descarga"
+  label_download_plural: "%{count} Descargas"
   label_downloads_abbr: D/L
   label_duplicated_by: duplicada por
   label_duplicates: duplicada de
@@ -421,10 +422,10 @@
   label_equals: igual
   label_example: Exemplo
   label_export_to: 'Exportar a:'
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "Clave de acceso por RSS creada fai {{value}}"
+  label_feeds_access_key_created_on: "Clave de acceso por RSS creada fai %{value}"
   label_file_added: Arquivo engadido
   label_file_plural: Arquivos
   label_filter_add: Engadir o filtro
@@ -461,13 +462,13 @@
   label_issue_updated: Petición actualizada
   label_issue_view_all: Ver tódalas peticións
   label_issue_watchers: Seguidores
-  label_issues_by: "Peticións por {{value}}"
+  label_issues_by: "Peticións por %{value}"
   label_jump_to_a_project: Ir ao proxecto...
   label_language_based: Baseado no idioma
-  label_last_changes: "últimos {{count}} cambios"
+  label_last_changes: "últimos %{count} cambios"
   label_last_login: Última conexión
   label_last_month: último mes
-  label_last_n_days: "últimos {{count}} días"
+  label_last_n_days: "últimos %{count} días"
   label_last_week: última semana
   label_latest_revision: Última revisión
   label_latest_revision_plural: Últimas revisións
@@ -488,8 +489,8 @@
   label_message_plural: Mensaxes
   label_message_posted: Mensaxe engadida
   label_min_max_length: Lonxitude mín - máx
-  label_modification: "{{count}} modificación"
-  label_modification_plural: "{{count}} modificacións"
+  label_modification: "%{count} modificación"
+  label_modification_plural: "%{count} modificacións"
   label_modified: modificado
   label_module_plural: Módulos
   label_month: Mes
@@ -540,7 +541,7 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_public_projects: Proxectos públicos
   label_query: Consulta personalizada
   label_query_new: Nova consulta
@@ -567,9 +568,9 @@
   label_revision: Revisión
   label_revision_plural: Revisións
   label_roadmap: Planificación
-  label_roadmap_due_in: "Remata en {{value}}"
+  label_roadmap_due_in: "Remata en %{value}"
   label_roadmap_no_issues: Non hai peticións para esta versión
-  label_roadmap_overdue: "{{value}} tarde"
+  label_roadmap_overdue: "%{value} tarde"
   label_role: Perfil
   label_role_and_permissions: Perfiles e permisos
   label_role_new: Novo perfil
@@ -581,7 +582,7 @@
   label_send_test_email: Enviar un correo de proba
   label_settings: Configuración
   label_show_completed_versions: Mostra as versións rematadas
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_sort_higher: Subir
   label_sort_highest: Primeiro
   label_sort_lower: Baixar
@@ -605,11 +606,11 @@
   label_tracker: Tipo
   label_tracker_new: Novo tipo
   label_tracker_plural: Tipos de peticións
-  label_updated_time: "Actualizado fai {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} fai {{age}}"
+  label_updated_time: "Actualizado fai %{value}"
+  label_updated_time_by: "Actualizado por %{author} fai %{age}"
   label_used_by: Utilizado por
   label_user: Usuario
-  label_user_activity: "Actividade de {{value}}"
+  label_user_activity: "Actividade de %{value}"
   label_user_mail_no_self_notified: "Non quero ser avisado de cambios feitos por min"
   label_user_mail_option_all: "Para calquera evento en tódolos proxectos"
   label_user_mail_option_selected: "Para calquera evento dos proxectos seleccionados..."
@@ -630,16 +631,16 @@
   label_workflow: Fluxo de traballo
   label_year: Ano
   label_yesterday: onte
-  mail_body_account_activation_request: "Inscribiuse un novo usuario ({{value}}). A conta está pendente de aprobación:"
+  mail_body_account_activation_request: "Inscribiuse un novo usuario (%{value}). A conta está pendente de aprobación:"
   mail_body_account_information: Información sobre a súa conta
-  mail_body_account_information_external: "Pode usar a súa conta {{value}} para conectarse."
+  mail_body_account_information_external: "Pode usar a súa conta %{value} para conectarse."
   mail_body_lost_password: 'Para cambiar o seu contrasinal, faga clic no seguinte enlace:'
   mail_body_register: 'Para activar a súa conta, faga clic no seguinte enlace:'
-  mail_body_reminder: "{{count}} petición(s) asignadas a ti rematan nos próximos {{days}} días:"
-  mail_subject_account_activation_request: "Petición de activación de conta {{value}}"
-  mail_subject_lost_password: "O teu contrasinal de {{value}}"
-  mail_subject_register: "Activación da conta de {{value}}"
-  mail_subject_reminder: "{{count}} petición(s) rematarán nos próximos {{days}} días"
+  mail_body_reminder: "%{count} petición(s) asignadas a ti rematan nos próximos %{days} días:"
+  mail_subject_account_activation_request: "Petición de activación de conta %{value}"
+  mail_subject_lost_password: "O teu contrasinal de %{value}"
+  mail_subject_register: "Activación da conta de %{value}"
+  mail_subject_reminder: "%{count} petición(s) rematarán nos próximos %{days} días"
   notice_account_activated: A súa conta foi activada. Xa pode conectarse.
   notice_account_invalid_creditentials: Usuario ou contrasinal inválido.
   notice_account_lost_email_sent: Enviouse un correo con instrucións para elixir un novo contrasinal.
@@ -651,9 +652,9 @@
   notice_account_wrong_password: Contrasinal incorrecto.
   notice_can_t_change_password: Esta conta utiliza unha fonte de autenticación externa. Non é posible cambiar o contrasinal.
   notice_default_data_loaded: Configuración por defecto cargada correctamente.
-  notice_email_error: "Ocorreu un error enviando o correo ({{value}})"
-  notice_email_sent: "Enviouse un correo a {{value}}"
-  notice_failed_to_save_issues: "Imposible gravar %s petición(s) en {{count}} seleccionado: {{ids}}."
+  notice_email_error: "Ocorreu un error enviando o correo (%{value})"
+  notice_email_sent: "Enviouse un correo a %{value}"
+  notice_failed_to_save_issues: "Imposible gravar %s petición(s) en %{count} seleccionado: %{ids}."
   notice_feeds_access_key_reseted: A súa clave de acceso para RSS reiniciouse.
   notice_file_not_found: A páxina á que tenta acceder non existe.
   notice_locking_conflict: Os datos modificáronse por outro usuario.
@@ -764,25 +765,25 @@
   status_registered: rexistrado
   text_are_you_sure: ¿Está seguro?
   text_assign_time_entries_to_project: Asignar as horas ó proxecto
-  text_caracters_maximum: "{{count}} caracteres como máximo."
-  text_caracters_minimum: "{{count}} caracteres como mínimo"
+  text_caracters_maximum: "%{count} caracteres como máximo."
+  text_caracters_minimum: "%{count} caracteres como mínimo"
   text_comma_separated: Múltiples valores permitidos (separados por coma).
   text_default_administrator_account_changed: Conta de administrador por defecto modificada
   text_destroy_time_entries: Borrar as horas
-  text_destroy_time_entries_question: Existen {{hours}} horas asignadas á petición que quere borrar. ¿Que quere facer ?
+  text_destroy_time_entries_question: Existen %{hours} horas asignadas á petición que quere borrar. ¿Que quere facer ?
   text_diff_truncated: '... Diferencia truncada por exceder o máximo tamaño visualizable.'
   text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/email.yml e reinicie a aplicación para activar os cambios."
   text_enumeration_category_reassign_to: 'Reasignar ó seguinte valor:'
-  text_enumeration_destroy_question: "{{count}} obxectos con este valor asignado."
+  text_enumeration_destroy_question: "%{count} obxectos con este valor asignado."
   text_file_repository_writable: Pódese escribir no repositorio
-  text_issue_added: "Petición {{id}} engadida por {{author}}."
+  text_issue_added: "Petición %{id} engadida por %{author}."
   text_issue_category_destroy_assignments: Deixar as peticións sen categoría
-  text_issue_category_destroy_question: "Algunhas peticións ({{count}}) están asignadas a esta categoría. ¿Que desexa facer?"
+  text_issue_category_destroy_question: "Algunhas peticións (%{count}) están asignadas a esta categoría. ¿Que desexa facer?"
   text_issue_category_reassign_to: Reasignar as peticións á categoría
-  text_issue_updated: "A petición {{id}} actualizouse por {{author}}."
+  text_issue_updated: "A petición %{id} actualizouse por %{author}."
   text_issues_destroy_confirmation: '¿Seguro que quere borrar as peticións seleccionadas?'
   text_issues_ref_in_commit_messages: Referencia e petición de corrección nas mensaxes
-  text_length_between: "Lonxitude entre {{min}} e {{max}} caracteres."
+  text_length_between: "Lonxitude entre %{min} e %{max} caracteres."
   text_load_default_configuration: Cargar a configuración por defecto
   text_min_max_length_info: 0 para ningunha restrición
   text_no_configuration_data: "Inda non se configuraron perfiles, nin tipos, estados e fluxo de traballo asociado a peticións. Recoméndase encarecidamente cargar a configuración por defecto. Unha vez cargada, poderá modificala."
@@ -794,18 +795,18 @@
   text_rmagick_available: RMagick dispoñible (opcional)
   text_select_mail_notifications: Seleccionar os eventos a notificar
   text_select_project_modules: 'Seleccione os módulos a activar para este proxecto:'
-  text_status_changed_by_changeset: "Aplicado nos cambios {{value}}"
-  text_subprojects_destroy_warning: "Os proxectos secundarios: {{value}} tamén se eliminarán"
+  text_status_changed_by_changeset: "Aplicado nos cambios %{value}"
+  text_subprojects_destroy_warning: "Os proxectos secundarios: %{value} tamén se eliminarán"
   text_tip_issue_begin_day: tarefa que comeza este día
   text_tip_issue_begin_end_day: tarefa que comeza e remata este día
   text_tip_issue_end_day: tarefa que remata este día
   text_tracker_no_workflow: Non hai ningún fluxo de traballo definido para este tipo de petición
   text_unallowed_characters: Caracteres non permitidos
   text_user_mail_option: "Dos proxectos non seleccionados, só recibirá notificacións sobre elementos monitorizados ou elementos nos que estea involucrado (por exemplo, peticións das que vostede sexa autor ou asignadas a vostede)."
-  text_user_wrote: "{{value}} escribiu:"
+  text_user_wrote: "%{value} escribiu:"
   text_wiki_destroy_confirmation: ¿Seguro que quere borrar o wiki e todo o seu contido?
   text_workflow_edit: Seleccionar un fluxo de traballo para actualizar
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   field_editable: Editable
   text_plugin_assets_writable: Plugin assets directory writable
   label_display: Display
@@ -821,21 +822,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -843,14 +844,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -885,9 +886,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -914,12 +915,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -927,7 +928,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -938,8 +939,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/he.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/he.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -38,38 +38,38 @@
       less_than_x_seconds:
         zero: 'פחות משניה'
         one: 'פחות משניה'
-        other: 'פחות מ־{{count}} שניות'
+        other: 'פחות מ־%{count} שניות'
       x_seconds:
         one: 'שניה ×חת'
-        other: '{{count}} שניות'
+        other: '%{count} שניות'
       less_than_x_minutes:
         zero: 'פחות מדקה ×חת'
         one: 'פחות מדקה ×חת'
-        other: 'פחות מ־{{count}} דקות'
+        other: 'פחות מ־%{count} דקות'
       x_minutes:
         one: 'דקה ×חת'
-        other: '{{count}} דקות'
+        other: '%{count} דקות'
       about_x_hours:
         one: 'בערך שעה ×חת'
-        other: 'בערך {{count}} שעות'
+        other: 'בערך %{count} שעות'
       x_days:
         one: '×™×•× ×חד'
-        other: '{{count}} ימי×'
+        other: '%{count} ימי×'
       about_x_months:
         one: 'בערך חודש ×חד'
-        other: 'בערך {{count}} חודשי×'
+        other: 'בערך %{count} חודשי×'
       x_months:
         one: 'חודש ×חד'
-        other: '{{count}} חודשי×'
+        other: '%{count} חודשי×'
       about_x_years:
         one: 'בערך שנה ×חת'
-        other: 'בערך {{count}} שני×'
+        other: 'בערך %{count} שני×'
       over_x_years:
         one: 'מעל שנה ×חת'
-        other: 'מעל {{count}} שני×'
+        other: 'מעל %{count} שני×'
       almost_x_years:
         one:   "כמעט שנה"
-        other: "כמעט {{count}} שני×"
+        other: "כמעט %{count} שני×"
 
   number:
     format:
@@ -100,6 +100,10 @@
 
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "×œ× × ×›×œ×œ ברשימה"
         exclusion: "×œ× ×–×ž×™×Ÿ"
@@ -108,16 +112,16 @@
         accepted: "חייב ב×ישור"
         empty: "חייב להכלל"
         blank: "חייב להכלל"
-        too_long: "×רוך מדי (×œ× ×™×•×ª×¨ מ־{{count}} תוי×)"
-        too_short: "קצר מדי (×œ× ×™×•×ª×¨ מ־{{count}} תוי×)"
-        wrong_length: "×œ× ×‘×ורך הנכון (חייב להיות {{count}} תוי×)"
+        too_long: "×רוך מדי (×œ× ×™×•×ª×¨ מ־%{count} תוי×)"
+        too_short: "קצר מדי (×œ× ×™×•×ª×¨ מ־%{count} תוי×)"
+        wrong_length: "×œ× ×‘×ורך הנכון (חייב להיות %{count} תוי×)"
         taken: "×œ× ×–×ž×™×Ÿ"
         not_a_number: "×”×•× ×œ× ×ž×¡×¤×¨"
-        greater_than: "חייב להיות גדול מ־{{count}}"
-        greater_than_or_equal_to: "חייב להיות גדול ×ו שווה ל־{{count}}"
-        equal_to: "חייב להיות שווה ל־{{count}}"
-        less_than: "חייב להיות קטן מ־{{count}}"
-        less_than_or_equal_to: "חייב להיות קטן ×ו שווה ל־{{count}}"
+        greater_than: "חייב להיות גדול מ־%{count}"
+        greater_than_or_equal_to: "חייב להיות גדול ×ו שווה ל־%{count}"
+        equal_to: "חייב להיות שווה ל־%{count}"
+        less_than: "חייב להיות קטן מ־%{count}"
+        less_than_or_equal_to: "חייב להיות קטן ×ו שווה ל־%{count}"
         odd: "חייב להיות ××™ זוגי"
         even: "חייב להיות זוגי"
         greater_than_start_date: "חייב להיות מ×וחר יותר מת×ריך ההתחלה"
@@ -155,12 +159,12 @@
   notice_locking_conflict: המידע עודכן על ידי משתמש ×חר.
   notice_not_authorized: ×ינך מורשה לר×ות דף ×–×”.
   notice_not_authorized_archived_project: הפרויקט ש×תה מנסה לגשת ×ליו × ×ž×¦× ×‘×רכיון.
-  notice_email_sent: "דו×ל נשלח לכתובת {{value}}"
-  notice_email_error: "×רעה שגי××” בעת שליחת הדו×ל ({{value}})"
+  notice_email_sent: "דו×ל נשלח לכתובת %{value}"
+  notice_email_error: "×רעה שגי××” בעת שליחת הדו×ל (%{value})"
   notice_feeds_access_key_reseted: מפתח ×”Ö¾RSS שלך ×ופס.
   notice_api_access_key_reseted: מפתח הגישה שלך ל־API ×ופס.
-  notice_failed_to_save_issues: "נכשרת בשמירת {{count}} נוש×\×™× ×‘ {{total}} נבחרו: {{ids}}."
-  notice_failed_to_save_members: "כשלון בשמירת חבר(×™×): {{errors}}."
+  notice_failed_to_save_issues: "נכשרת בשמירת %{count} נוש×\×™× ×‘ %{total} נבחרו: %{ids}."
+  notice_failed_to_save_members: "כשלון בשמירת חבר(×™×): %{errors}."
   notice_no_issue_selected: "×œ× × ×‘×—×¨ ××£ נוש×! בחר בבקשה ×ת הנוש××™× ×©×‘×¨×¦×•× ×š לערוך."
   notice_account_pending: "החשבון שלך נוצר ועתה מחכה ל×ישור מנהל המערכת."
   notice_default_data_loaded: ×פשרויות ברירת מחדל מופעלות.
@@ -168,9 +172,9 @@
   notice_unable_delete_time_entry: ×œ× × ×™×ª×Ÿ למחוק רשומת זמן.
   notice_issue_done_ratios_updated: ×חוזי התקדמות ×œ× ×•×©× ×¢×•×“×›× ×•.
 
-  error_can_t_load_default_data: "×פשרויות ברירת המחדל ×œ× ×”×¦×œ×™×—×• להיטען: {{value}}"
+  error_can_t_load_default_data: "×פשרויות ברירת המחדל ×œ× ×”×¦×œ×™×—×• להיטען: %{value}"
   error_scm_not_found: כניסה ו\×ו מהדורה ××™× × ×§×™×™×ž×™× ×‘×ž×גר.
-  error_scm_command_failed: "×רעה שגי××” בעת ניסון גישה למ×גר: {{value}}"
+  error_scm_command_failed: "×רעה שגי××” בעת ניסון גישה למ×גר: %{value}"
   error_scm_annotate: "הכניסה ×œ× ×§×™×™×ž×ª ×ו ×©×œ× × ×™×ª×Ÿ לת×ר ×ותה."
   error_issue_not_found_in_project: 'הנוש××™× ×œ× × ×ž×¦×ו ×ו ××™× × ×©×™×›×™× ×œ×¤×¨×•×™×§×˜'
   error_no_tracker_in_project: ×œ× ×”×•×’×“×¨ סיווג לפרויקט ×–×”. × × ×‘×“×•×§ ×ת הגדרות הפרויקט.
@@ -184,26 +188,26 @@
   error_workflow_copy_source: × × ×‘×—×¨ סיווג ×ו תפקיד מקור
   error_workflow_copy_target: × × ×‘×—×¨ תפקיד(×™×) וסיווג(×™×)
   error_unable_delete_issue_status: ×œ× × ×™×ª×Ÿ למחוק מצב נוש×
-  error_unable_to_connect: ×œ× × ×™×ª×Ÿ להתחבר ({{value}})
-  warning_attachments_not_saved: "כשלון בשמירת {{count}} קבצי×."
+  error_unable_to_connect: ×œ× × ×™×ª×Ÿ להתחבר (%{value})
+  warning_attachments_not_saved: "כשלון בשמירת %{count} קבצי×."
 
-  mail_subject_lost_password: "סיסמת ה־{{value}} שלך"
+  mail_subject_lost_password: "סיסמת ה־%{value} שלך"
   mail_body_lost_password: 'לשינו סיסמת ×”Ö¾Redmine שלך, לחץ על הקישור הב×:'
-  mail_subject_register: "הפעלת חשבון {{value}}"
+  mail_subject_register: "הפעלת חשבון %{value}"
   mail_body_register: 'להפעלת חשבון ×”Ö¾Redmine שלך, לחץ על הקישור הב×:'
-  mail_body_account_information_external: "×תה יכול להשתמש בחשבון {{value}} כדי להתחבר"
+  mail_body_account_information_external: "×תה יכול להשתמש בחשבון %{value} כדי להתחבר"
   mail_body_account_information: פרטי החשבון שלך
-  mail_subject_account_activation_request: "בקשת הפעלה לחשבון {{value}}"
-  mail_body_account_activation_request: "משתמש חדש ({{value}}) נרש×. החשבון שלו מחכה ל×ישור שלך:"
-  mail_subject_reminder: "{{count}} נוש××™× ×ž×™×•×¢×“×™× ×œ×”×’×©×” ×‘×™×ž×™× ×”×§×¨×•×‘×™× ({{days}})"
-  mail_body_reminder: "{{count}} נוש××™× ×©×ž×™×•×¢×“×™× ×ליך ×ž×™×•×¢×“×™× ×œ×”×’×©×” בתוך {{days}} ימי×:"
-  mail_subject_wiki_content_added: "דף ×”Ö¾wiki â€'{{id}}' נוסף"
-  mail_body_wiki_content_added: דף ×”Ö¾wiki â€'{{id}}' נוסף ×¢"×™ {{author}}.
-  mail_subject_wiki_content_updated: "דף ×”Ö¾wiki â€'{{id}}' עודכן"
-  mail_body_wiki_content_updated: דף ×”Ö¾wiki â€'{{id}}' עודכן ×¢"×™ {{author}}.
+  mail_subject_account_activation_request: "בקשת הפעלה לחשבון %{value}"
+  mail_body_account_activation_request: "משתמש חדש (%{value}) נרש×. החשבון שלו מחכה ל×ישור שלך:"
+  mail_subject_reminder: "%{count} נוש××™× ×ž×™×•×¢×“×™× ×œ×”×’×©×” ×‘×™×ž×™× ×”×§×¨×•×‘×™× (%{days})"
+  mail_body_reminder: "%{count} נוש××™× ×©×ž×™×•×¢×“×™× ×ליך ×ž×™×•×¢×“×™× ×œ×”×’×©×” בתוך %{days} ימי×:"
+  mail_subject_wiki_content_added: "דף ×”Ö¾wiki â€'%{id}' נוסף"
+  mail_body_wiki_content_added: דף ×”Ö¾wiki â€'%{id}' נוסף ×¢"×™ %{author}.
+  mail_subject_wiki_content_updated: "דף ×”Ö¾wiki â€'%{id}' עודכן"
+  mail_body_wiki_content_updated: דף ×”Ö¾wiki â€'%{id}' עודכן ×¢"×™ %{author}.
 
   gui_validation_error: שגי××” 1
-  gui_validation_error_plural: "{{count}} שגי×ות"
+  gui_validation_error_plural: "%{count} שגי×ות"
 
   field_name: ש×
   field_description: תי×ור
@@ -266,6 +270,7 @@
   field_attr_lastname: תכונת ×©× ×ž×©×¤×—×”
   field_attr_mail: תכונת דו×"ל
   field_onthefly: יצירת ×ž×©×ª×ž×©×™× ×–×¨×™×–×”
+  field_start_date: ת×ריך התחלה
   field_done_ratio: % גמור
   field_auth_source: מקור הזדהות
   field_hide_mail: ×”×—×‘× ×ת כתובת הדו×"ל שלי
@@ -431,14 +436,14 @@
   label_x_projects:
     zero:  ×œ×œ× ×¤×¨×•×™×§×˜×™×
     one:   פרויקט ×חד
-    other: "{{count}} פרויקטי×"
+    other: "%{count} פרויקטי×"
   label_project_all: כל הפרויקטי×
   label_project_latest: ×”×¤×¨×•×™×§×˜×™× ×”×—×“×©×™× ×‘×™×•×ª×¨
   label_issue: נוש×
   label_issue_new: × ×•×©× ×—×“×©
   label_issue_plural: נוש××™×
   label_issue_view_all: צפה בכל הנוש××™×
-  label_issues_by: "נוש××™× ×œ×¤×™ {{value}}"
+  label_issues_by: "נוש××™× ×œ×¤×™ %{value}"
   label_issue_added: × ×•×©× × ×•×¡×£
   label_issue_updated: × ×•×©× ×¢×•×“×›×Ÿ
   label_document: מסמך
@@ -488,7 +493,7 @@
   label_registered_on: × ×¨×©× ×‘×ª×ריך
   label_activity: פעילות
   label_overall_activity: פעילות כוללת
-  label_user_activity: "הפעילות של {{value}}"
+  label_user_activity: "הפעילות של %{value}"
   label_new: חדש
   label_logged_as: מחובר כ
   label_environment: סביבה
@@ -498,7 +503,7 @@
   label_auth_source_plural: מקורות הזדהות
   label_subproject_plural: תת־פרויקטי×
   label_subproject_new: תת־פרויקט חדש
-  label_and_its_subprojects: "{{value}} וכל ×ª×ª×™Ö¾×”×¤×¨×•×™×§×˜×™× ×©×œ×•"
+  label_and_its_subprojects: "%{value} וכל ×ª×ª×™Ö¾×”×¤×¨×•×™×§×˜×™× ×©×œ×•"
   label_min_max_length: ×ורך מינימ×לי - מקסימ×לי
   label_list: רשימה
   label_date: ת×ריך
@@ -509,8 +514,8 @@
   label_text: טקסט ×רוך
   label_attribute: תכונה
   label_attribute_plural: תכונות
-  label_download: "הורדה {{count}}"
-  label_download_plural: "{{count}} הורדות"
+  label_download: "הורדה %{count}"
+  label_download_plural: "%{count} הורדות"
   label_no_data: ×ין מידע להציג
   label_change_status: שנה מצב
   label_history: היסטוריה
@@ -542,17 +547,17 @@
   label_closed_issues: סגור
   label_closed_issues_plural: סגורי×
   label_x_open_issues_abbr_on_total:
-    zero:  0 ×¤×ª×•×—×™× / {{total}}
-    one:   1 פתוח / {{total}}
-    other: "{{count}} ×¤×ª×•×—×™× / {{total}}"
+    zero:  0 ×¤×ª×•×—×™× / %{total}
+    one:   1 פתוח / %{total}
+    other: "%{count} ×¤×ª×•×—×™× / %{total}"
   label_x_open_issues_abbr:
     zero:  0 פתוחי×
     one:   1 פתוח
-    other: "{{count}} פתוחי×"
+    other: "%{count} פתוחי×"
   label_x_closed_issues_abbr:
     zero:  0 סגורי×
     one:   1 סגור
-    other: "{{count}} סגורי×"
+    other: "%{count} סגורי×"
   label_total: סה"כ
   label_permissions: הרש×ות
   label_current_status: מצב נוכחי
@@ -570,7 +575,7 @@
   label_months_from: ×—×•×“×©×™× ×ž
   label_gantt: ×’×נט
   label_internal: פנימי
-  label_last_changes: "{{count}} ×©×™× ×•×™× ×חרוני×"
+  label_last_changes: "%{count} ×©×™× ×•×™× ×חרוני×"
   label_change_view_all: צפה בכל השינוי×
   label_personalize_page: הת×× ×ישית דף ×–×”
   label_comment: תגובה
@@ -578,7 +583,7 @@
   label_x_comments:
     zero: ×ין הערות
     one: הערה ×חת
-    other: "{{count}} הערות"
+    other: "%{count} הערות"
   label_comment_add: הוסף תגובה
   label_comment_added: תגובה נוספה
   label_comment_delete: מחק תגובות
@@ -599,7 +604,7 @@
   label_yesterday: ×תמול
   label_this_week: השבוע
   label_last_week: השבוע שעבר
-  label_last_n_days: "ב־{{count}} ×™×ž×™× ×חרוני×"
+  label_last_n_days: "ב־%{count} ×™×ž×™× ×חרוני×"
   label_this_month: החודש
   label_last_month: חודש שעבר
   label_this_year: השנה
@@ -613,13 +618,13 @@
   label_repository: מ×גר
   label_repository_plural: מ×גרי×
   label_browse: סייר
-  label_modification: "שינוי {{count}}"
-  label_modification_plural: "{{count}} שינויי×"
+  label_modification: "שינוי %{count}"
+  label_modification_plural: "%{count} שינויי×"
   label_branch: ×¢× ×£
   label_tag: סימון
   label_revision: מהדורה
   label_revision_plural: מהדורות
-  label_revision_id: מהדורה {{value}}
+  label_revision_id: מהדורה %{value}
   label_associated_revisions: מהדורות קשורות
   label_added: נוסף
   label_modified: שונה
@@ -636,8 +641,8 @@
   label_sort_lower: הזז למטה
   label_sort_lowest: הזז לתחתית
   label_roadmap: מפת הדרכי×
-  label_roadmap_due_in: "נגמר בעוד {{value}}"
-  label_roadmap_overdue: "{{value}} מ×חר"
+  label_roadmap_due_in: "נגמר בעוד %{value}"
+  label_roadmap_overdue: "%{value} מ×חר"
   label_roadmap_no_issues: ×ין נוש××™× ×œ×’×™×¨×¡×” זו
   label_search: חפש
   label_result_plural: תוצ×ות
@@ -656,8 +661,8 @@
   label_issue_tracking: מעקב ×חר נוש××™×
   label_spent_time: זמן שהושקע
   label_overall_spent_time: זמן שהושקע סה"כ
-  label_f_hour: "{{value}} שעה"
-  label_f_hour_plural: "{{value}} שעות"
+  label_f_hour: "%{value} שעה"
+  label_f_hour_plural: "%{value} שעות"
   label_time_tracking: מעקב זמני×
   label_change_plural: שינויי×
   label_statistics: סטטיסטיקות
@@ -708,15 +713,15 @@
   label_date_from: מת×ריך
   label_date_to: עד
   label_language_based: מבוסס שפה
-  label_sort_by: "מיין לפי {{value}}"
+  label_sort_by: "מיין לפי %{value}"
   label_send_test_email: שלח דו×"ל בדיקה
   label_feeds_access_key: מפתח גישה ל־RSS
   label_missing_feeds_access_key: חסר מפתח גישה ל־RSS
-  label_feeds_access_key_created_on: "מפתח הזנת RSS נוצר לפני{{value}}"
+  label_feeds_access_key_created_on: "מפתח הזנת RSS נוצר לפני%{value}"
   label_module_plural: מודולי×
-  label_added_time_by: 'נוסף ע"י {{author}} לפני {{age}}'
-  label_updated_time_by: 'עודכן ע"י {{author}} לפני {{age}}'
-  label_updated_time: "עודכן לפני {{value}} "
+  label_added_time_by: 'נוסף ע"י %{author} לפני %{age}'
+  label_updated_time_by: 'עודכן ע"י %{author} לפני %{age}'
+  label_updated_time: "עודכן לפני %{value} "
   label_jump_to_a_project: קפוץ לפרויקט...
   label_file_plural: קבצי×
   label_changeset_plural: סדרות שינויי×
@@ -735,7 +740,7 @@
   label_registration_activation_by_email: הפעל חשבון ב×מצעות דו×"ל
   label_registration_manual_activation: הפעלת חשבון ידנית
   label_registration_automatic_activation: הפעלת חשבון ×וטומטית
-  label_display_per_page: "בכל דף: {{value}} תוצ×ות"
+  label_display_per_page: "בכל דף: %{value} תוצ×ות"
   label_age: גיל
   label_change_properties: שנה מ×פייני×
   label_general: כללי
@@ -758,7 +763,7 @@
   label_sort: מיון
   label_ascending: בסדר עולה
   label_descending: בסדר יורד
-  label_date_from_to: 'מת×ריך {{start}} ועד ת×ריך {{end}}'
+  label_date_from_to: 'מת×ריך %{start} ועד ת×ריך %{end}'
   label_wiki_content_added: נוסף דף ל־wiki
   label_wiki_content_updated: דף wiki עודכן
   label_group: קבוצה
@@ -777,7 +782,7 @@
   label_display_used_statuses_only: הצג רק ×ת ×”×ž×¦×‘×™× ×‘×©×™×ž×•×© לסיווג ×–×”
   label_api_access_key: מפתח גישה ל־API
   label_missing_api_access_key: חסר מפתח גישה ל־API
-  label_api_access_key_created_on: 'מפתח גישה ל־API נוצר לפני {{value}}'
+  label_api_access_key_created_on: 'מפתח גישה ל־API נוצר לפני %{value}'
   label_profile: פרופיל
   label_subtask_plural: תתי־משימות
   label_project_copy_notifications: שלח התר×ות דו×ר במהלך העתקת הפרויקט
@@ -792,7 +797,7 @@
   button_create_and_continue: צור ופתח חדש
   button_test: בדוק
   button_edit: ערוך
-  button_edit_associated_wikipage: "ערוך דף wiki מקושר: {{page_title}}"
+  button_edit_associated_wikipage: "ערוך דף wiki מקושר: %{page_title}"
   button_add: הוסף
   button_change: שנה
   button_apply: החל
@@ -841,54 +846,54 @@
   text_regexp_info: כגון. ^[A-Z0-9]+$
   text_min_max_length_info: 0 משמעו ×œ×œ× ×”×’×‘×œ×•×ª
   text_project_destroy_confirmation: ×”×× ×תה בטוח שברצונך למחוק ×ת הפרויקט ו×ת כל המידע הקשור ×ליו?
-  text_subprojects_destroy_warning: "תת־הפרויקט\×™×: {{value}} ימחקו ×’× ×›×Ÿ."
+  text_subprojects_destroy_warning: "תת־הפרויקט\×™×: %{value} ימחקו ×’× ×›×Ÿ."
   text_workflow_edit: בחר תפקיד וסיווג כדי לערוך ×ת זרימת העבודה
   text_are_you_sure: ×”×× ×תה בטוח?
   text_are_you_sure_with_children: ×”×× ×œ×ž×—×•×§ ×ת ×”× ×•×©× ×•×ת כל בניו?
-  text_journal_changed: "{{label}} השתנה מ{{old}} ל{{new}}"
-  text_journal_set_to: "{{label}} נקבע ל{{value}}"
-  text_journal_deleted: "{{label}} נמחק ({{old}})"
-  text_journal_added: "{{label}} {{value}} נוסף"
+  text_journal_changed: "%{label} השתנה מ%{old} ל%{new}"
+  text_journal_set_to: "%{label} נקבע ל%{value}"
+  text_journal_deleted: "%{label} נמחק (%{old})"
+  text_journal_added: "%{label} %{value} נוסף"
   text_tip_issue_begin_day: מטלה המתחילה היו×
   text_tip_issue_end_day: מטלה המסתיימת היו×
   text_tip_issue_begin_end_day: מטלה המתחילה ומסתיימת היו×
   text_project_identifier_info: '×ותיות לטיניות (a-z), ×ž×¡×¤×¨×™× ×•×ž×§×¤×™×.<br />ברגע שנשמר, ×œ× × ×™×ª×Ÿ לשנות ×ת המזהה.'
-  text_caracters_maximum: "×ž×§×¡×™×ž×•× {{count}} תווי×."
-  text_caracters_minimum: "חייב להיות לפחות ב×ורך של {{count}} תווי×."
-  text_length_between: "×ורך בין {{min}} ל {{max}} תווי×."
+  text_caracters_maximum: "×ž×§×¡×™×ž×•× %{count} תווי×."
+  text_caracters_minimum: "חייב להיות לפחות ב×ורך של %{count} תווי×."
+  text_length_between: "×ורך בין %{min} ל %{max} תווי×."
   text_tracker_no_workflow: זרימת עבודה ×œ× ×”×•×’×“×¨×” עבור סיווג ×–×”
   text_unallowed_characters: ×ª×•×•×™× ×œ× ×ž×•×¨×©×™×
   text_comma_separated: הכנסת ×¢×¨×›×™× ×ž×¨×•×‘×™× ×ž×•×ª×¨×ª (×ž×•×¤×¨×“×™× ×‘×¤×¡×™×§×™×).
   text_line_separated: ניתן להזין מספר ×¢×¨×›×™× (שורה ×חת לכל ערך).
   text_issues_ref_in_commit_messages: קישור ×•×ª×™×§×•× × ×•×©××™× ×‘×”×•×“×¢×•×ª הפקדה
-  text_issue_added: "×”× ×•×©× {{id}} דווח (בידי {{author}})."
-  text_issue_updated: "×”× ×•×©× {{id}} עודכן (בידי {{author}})."
+  text_issue_added: "×”× ×•×©× %{id} דווח (בידי %{author})."
+  text_issue_updated: "×”× ×•×©× %{id} עודכן (בידי %{author})."
   text_wiki_destroy_confirmation: ×”×× ×תה בטוח שברצונך למחוק ×ת ×”WIKI ×”×–×” ו×ת כל תוכנו?
-  text_issue_category_destroy_question: "כמה נוש××™× ({{count}}) ×ž×•×¦×‘×™× ×œ×§×˜×’×•×¨×™×” הזו. מה ברצונך לעשות?"
+  text_issue_category_destroy_question: "כמה נוש××™× (%{count}) ×ž×•×¦×‘×™× ×œ×§×˜×’×•×¨×™×” הזו. מה ברצונך לעשות?"
   text_issue_category_destroy_assignments: הסר הצבת קטגוריה
   text_issue_category_reassign_to: הצב מחדש ×ת הקטגוריה לנוש××™×
   text_user_mail_option: "×‘×¤×¨×•×™×§×˜×™× ×©×œ× ×‘×—×¨×ª, ×תה רק תקבל התרעות על ש×תה צופה ×ו קשור ××œ×™×”× (לדוגמ×:נוש××™× ×©×תה היוצר ×©×œ×”× ×ו ×חר××™ עליה×)."
   text_no_configuration_data: "×œ× ×”×•×’×“×¨×” תצורה עבור תפקידי×, סיווגי×, מצבי × ×•×©× ×•×–×¨×™×ž×ª עבודה.\nמומלץ מ×ד לטעון ×ת תצורת ברירת המחדל. תוכל לשנותה מ×וחר יותר."
   text_load_default_configuration: טען ×ת ×פשרויות ברירת המחדל
-  text_status_changed_by_changeset: "הוחל בסדרת ×”×©×™× ×•×™×™× {{value}}."
+  text_status_changed_by_changeset: "הוחל בסדרת ×”×©×™× ×•×™×™× %{value}."
   text_issues_destroy_confirmation: '×”×× ×תה בטוח שברצונך למחוק ×ת הנוש×\×™×?'
   text_select_project_modules: 'בחר ×ž×•×“×•×œ×™× ×œ×”×—×™×œ על פרויקט ×–×”:'
   text_default_administrator_account_changed: מנהל המערכת ברירת המחדל שונה
   text_file_repository_writable: מ×גר ×”×§×‘×¦×™× × ×™×ª×Ÿ לכתיבה
   text_plugin_assets_writable: ספרית נכסי ×ª×•×¡×¤×™× × ×™×ª× ×ª לכתיבה
   text_rmagick_available: RMagick זמין (רשות)
-  text_destroy_time_entries_question: "{{hours}} שעות דווחו על הנוש××™× ×©×תה עומד למחוק. מה ברצונך לעשות?"
+  text_destroy_time_entries_question: "%{hours} שעות דווחו על הנוש××™× ×©×תה עומד למחוק. מה ברצונך לעשות?"
   text_destroy_time_entries: מחק שעות שדווחו
   text_assign_time_entries_to_project: הצב שעות שדווחו לפרויקט הזה
   text_reassign_time_entries: 'הצב מחדש שעות שדווחו לפרויקט הזה:'
-  text_user_wrote: "{{value}} כתב:"
-  text_enumeration_destroy_question: "{{count}} ××•×‘×™×§×˜×™× ×ž×•×¦×‘×™× ×œ×¢×¨×š ×–×”."
+  text_user_wrote: "%{value} כתב:"
+  text_enumeration_destroy_question: "%{count} ××•×‘×™×§×˜×™× ×ž×•×¦×‘×™× ×œ×¢×¨×š ×–×”."
   text_enumeration_category_reassign_to: 'הצב מחדש לערך הזה:'
   text_email_delivery_not_configured: '×œ× × ×§×‘×¢×” תצורה לשליחת דו×ר, וההתר×ות כבויות.\nקבע ×ת תצורת שרת ×”Ö¾SMTP בקובץ /etc/redmine/&lt;instance&gt;/email.yml והתחל ×ת ×”×פליקציה מחדש ×¢"מ ל×פשר ×ות×.'
   text_repository_usernames_mapping: "בחר ×ו עדכן ×ת משתמש Redmine הממופה לכל ×©× ×ž×©×ª×ž×© ביומן המ×גר.\n×ž×©×ª×ž×©×™× ×‘×¢×œ×™ ×©× ×ו כתובת דו×ר ×–×”×” ב־Redmine ובמ×גר ×ž×ž×•×¤×™× ×‘×ופן ×וטומטי."
   text_diff_truncated: '... ×”×©×™× ×•×™×™× ×¢×•×‘×¨×™× ×ת מספר השורות המירבי לתצוגה, ולכן ×”× ×§×•×¦×¦×•.'
   text_custom_field_possible_values_info: שורה ×חת לכל ערך
-  text_wiki_page_destroy_question: לדף ×–×” יש {{descendants}} ×“×¤×™× ×‘× ×™× ×•×ª×œ×•×™×™×. מה ברצונך לעשות?
+  text_wiki_page_destroy_question: לדף ×–×” יש %{descendants} ×“×¤×™× ×‘× ×™× ×•×ª×œ×•×™×™×. מה ברצונך לעשות?
   text_wiki_page_nullify_children: הש×ר ×“×¤×™× ×‘× ×™× ×›×“×¤×™× ×¨×שיי×
   text_wiki_page_destroy_children: מחק ×ת ×”×“×¤×™× ×”×‘× ×™× ×•×ת כל ×”×ª×œ×•×™×™× ×‘×”×
   text_wiki_page_reassign_children: הצב מחדש ×“×¤×™× ×‘× ×™× ×œ×“×£ ×”×ב הנוכחי
@@ -927,8 +932,12 @@
   label_user_mail_option_none: No events
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/hr.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/hr.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -35,34 +35,34 @@
       half_a_minute: "pola minute"
       less_than_x_seconds:
         one:   "manje od sekunde"
-        other: "manje od {{count}} sekundi"
+        other: "manje od %{count} sekundi"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekundi"
+        other: "%{count} sekundi"
       less_than_x_minutes:
         one:   "manje od minute"
-        other: "manje od {{count}} minuta"
+        other: "manje od %{count} minuta"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minuta"
+        other: "%{count} minuta"
       about_x_hours:
         one:   "oko sat vremena"
-        other: "oko {{count}} sati"
+        other: "oko %{count} sati"
       x_days:
         one:   "1 dan"
-        other: "{{count}} dana"
+        other: "%{count} dana"
       about_x_months:
         one:   "oko 1 mjesec"
-        other: "oko {{count}} mjeseci"
+        other: "oko %{count} mjeseci"
       x_months:
         one:   "mjesec"
-        other: "{{count}} mjeseci"
+        other: "%{count} mjeseci"
       about_x_years:
         one:   "1 godina"
-        other: "{{count}} godina"
+        other: "%{count} godina"
       over_x_years:
         one:   "preko 1 godine"
-        other: "preko {{count}} godina"
+        other: "preko %{count} godina"
 
   number:
     format:
@@ -93,6 +93,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nije ukljuceno u listu"
         exclusion: "je rezervirano"
@@ -101,17 +105,17 @@
         accepted: "mora biti prihvaćen"
         empty: "ne može biti prazno"
         blank: "ne može biti razmaka"
-        too_long: "je predug (maximum is {{count}} characters)"
-        too_short: "je prekratak (minimum is {{count}} characters)"
-        wrong_length: "je pogrešne dužine (should be {{count}} characters)"
+        too_long: "je predug (maximum is %{count} characters)"
+        too_short: "je prekratak (minimum is %{count} characters)"
+        wrong_length: "je pogrešne dužine (should be %{count} characters)"
         taken: "već je zauzeto"
         not_a_number: "nije broj"
         not_a_date: "nije ispravan datum"
-        greater_than: "mora biti veći od {{count}}"
-        greater_than_or_equal_to: "mora biti veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora bit manji ili jednak{{count}}"
+        greater_than: "mora biti veći od %{count}"
+        greater_than_or_equal_to: "mora biti veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora bit manji ili jednak%{count}"
         odd: "mora biti neparan"
         even: "mora biti paran"
         greater_than_start_date: "mora biti veci nego pocetni datum"
@@ -148,20 +152,20 @@
   notice_file_not_found: Stranica kojoj ste pokušali pristupiti ne postoji ili je uklonjena.
   notice_locking_conflict: Podataci su ažurirani od strane drugog korisnika.
   notice_not_authorized: Niste ovlašteni za pristup ovoj stranici. 
-  notice_email_sent: E-mail je poslan {{value}}"
-  notice_email_error: Dogodila se pogreška tijekom slanja E-maila ({{value}})"
+  notice_email_sent: E-mail je poslan %{value}"
+  notice_email_error: Dogodila se pogreška tijekom slanja E-maila (%{value})"
   notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
   notice_api_access_key_reseted: Vaš API pristup je resetovan.
-  notice_failed_to_save_issues: "Neuspjelo spremanje {{count}} predmeta na {{total}} odabrane: {{ids}}."
+  notice_failed_to_save_issues: "Neuspjelo spremanje %{count} predmeta na %{total} odabrane: %{ids}."
   notice_no_issue_selected: "Niti jedan predmet nije odabran! Molim, odaberite predmete koje želite urediti."
   notice_account_pending: "VaÅ¡ korisnicki raÄun je otvoren, Äeka odobrenje administratora."
   notice_default_data_loaded: Konfiguracija je uspjeÅ¡no uÄitana.
   notice_unable_delete_version: Nije moguće izbrisati verziju.
   notice_issue_done_ratios_updated: Issue done ratios updated.
   
-  error_can_t_load_default_data: "Zadanu konfiguracija nije uÄitana: {{value}}"
+  error_can_t_load_default_data: "Zadanu konfiguracija nije uÄitana: %{value}"
   error_scm_not_found: "Unos i/ili revizija nije pronađen."
-  error_scm_command_failed: "Dogodila se pogreška prilikom pokušaja pristupa: {{value}}"
+  error_scm_command_failed: "Dogodila se pogreška prilikom pokušaja pristupa: %{value}"
   error_scm_annotate: "Ne postoji ili ne može biti obilježen."
   error_issue_not_found_in_project: 'Nije pronađen ili ne pripada u ovaj projekt'
   error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
@@ -172,25 +176,25 @@
   error_workflow_copy_source: 'Please select a source tracker or role'
   error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
     
-  warning_attachments_not_saved: "{{count}} Datoteka/e nije mogla biti spremljena."
+  warning_attachments_not_saved: "%{count} Datoteka/e nije mogla biti spremljena."
   
-  mail_subject_lost_password: "Vaša {{value}} zaporka"
+  mail_subject_lost_password: "Vaša %{value} zaporka"
   mail_body_lost_password: 'Kako biste promijenili Vašu zaporku slijedite poveznicu:'
-  mail_subject_register: "Aktivacija korisniÄog raÄuna {{value}}"
+  mail_subject_register: "Aktivacija korisniÄog raÄuna %{value}"
   mail_body_register: 'Da biste aktivirali svoj raÄun, kliknite na sljedeci link:'
-  mail_body_account_information_external: "Možete koristiti vaÅ¡ raÄun {{value}} za prijavu."
+  mail_body_account_information_external: "Možete koristiti vaÅ¡ raÄun %{value} za prijavu."
   mail_body_account_information: VaÅ¡i korisniÄki podaci
-  mail_subject_account_activation_request: "{{value}} predmet za aktivaciju korisniÄkog raÄuna"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) je registriran. Njegov korisniÄki raÄun Äeka vaÅ¡e odobrenje:"
-  mail_subject_reminder: "{{count}} predmet(a) dospijeva sljedećih {{days}} dana"
-  mail_body_reminder: "{{count}} vama dodijeljen(ih) predmet(a) dospijeva u sljedećih {{days}} dana:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
+  mail_subject_account_activation_request: "%{value} predmet za aktivaciju korisniÄkog raÄuna"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) je registriran. Njegov korisniÄki raÄun Äeka vaÅ¡e odobrenje:"
+  mail_subject_reminder: "%{count} predmet(a) dospijeva sljedećih %{days} dana"
+  mail_body_reminder: "%{count} vama dodijeljen(ih) predmet(a) dospijeva u sljedećih %{days} dana:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
   
   gui_validation_error: 1 pogreška
-  gui_validation_error_plural: "{{count}} pogrešaka"
+  gui_validation_error_plural: "%{count} pogrešaka"
    
   field_name: Ime
   field_description: Opis
@@ -253,6 +257,7 @@
   field_attr_lastname: Atribut prezimena
   field_attr_mail: Atribut e-pošte
   field_onthefly: "Izrada korisnika \"u hodu\""
+  field_start_date: Pocetak
   field_done_ratio: % UÄinjeno
   field_auth_source: Vrsta prijavljivanja
   field_hide_mail: Sakrij moju adresu e-pošte
@@ -407,14 +412,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Svi Projekti
   label_project_latest: Najnoviji projekt
   label_issue: Predmet
   label_issue_new: Novi predmet
   label_issue_plural: Predmeti
   label_issue_view_all: Pregled svih predmeta
-  label_issues_by: "Predmeti od {{value}}"
+  label_issues_by: "Predmeti od %{value}"
   label_issue_added: Predmet dodan
   label_issue_updated: Predmet promijenjen
   label_document: Dokument
@@ -463,7 +468,7 @@
   label_registered_on: Registrirano
   label_activity: Aktivnosti
   label_overall_activity: Aktivnosti
-  label_user_activity: "{{value}} ova/ina aktivnost"
+  label_user_activity: "%{value} ova/ina aktivnost"
   label_new: Novi
   label_logged_as: Prijavljeni ste kao
   label_environment: Okolina
@@ -473,7 +478,7 @@
   label_auth_source_plural: NaÄini prijavljivanja
   label_subproject_plural: Potprojekti
   label_subproject_new: Novi potprojekt
-  label_and_its_subprojects: "{{value}} i njegovi potprojekti"
+  label_and_its_subprojects: "%{value} i njegovi potprojekti"
   label_min_max_length: Min - Maks  veliÄina
   label_list: Liste
   label_date: Datum
@@ -484,8 +489,8 @@
   label_text: Long text
   label_attribute: Atribut
   label_attribute_plural: Atributi
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nema podataka za prikaz
   label_change_status: Promjena statusa
   label_history: Povijest
@@ -517,17 +522,17 @@
   label_closed_issues: Zatvoren
   label_closed_issues_plural: Zatvoreno
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Ukupno
   label_permissions: Dozvole
   label_current_status: Trenutni status
@@ -545,7 +550,7 @@
   label_months_from: Mjeseci od
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "Posljednjih {{count}} promjena"
+  label_last_changes: "Posljednjih %{count} promjena"
   label_change_view_all: Prikaz svih promjena
   label_personalize_page: Prilagodite ovu stranicu
   label_comment: Komentar
@@ -553,7 +558,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar dodan
   label_comment_delete: Brisanje komentara
@@ -574,7 +579,7 @@
   label_yesterday: juÄer
   label_this_week: ovog tjedna
   label_last_week: prošlog tjedna
-  label_last_n_days: "zadnjih {{count}} dana"
+  label_last_n_days: "zadnjih %{count} dana"
   label_this_month: ovog mjeseca
   label_last_month: prošlog mjeseca
   label_this_year: ove godine
@@ -588,13 +593,13 @@
   label_repository: Skladište
   label_repository_plural: Skladišta
   label_browse: Pregled
-  label_modification: "{{count}} promjena"
-  label_modification_plural: "{{count}} promjena"
+  label_modification: "%{count} promjena"
+  label_modification_plural: "%{count} promjena"
   label_branch: Branch
   label_tag: Tag 
   label_revision: Revizija
   label_revision_plural: Revizije
-  label_revision_id: "Revision {{value}}" 
+  label_revision_id: "Revision %{value}" 
   label_associated_revisions: Dodijeljene revizije
   label_added: dodano
   label_modified: promijenjen
@@ -611,8 +616,8 @@
   label_sort_lower: Premjesti prema dolje
   label_sort_lowest: Premjesti na dno
   label_roadmap: Putokaz
-  label_roadmap_due_in: "Završava se za {{value}}"
-  label_roadmap_overdue: "{{value}} kasni"
+  label_roadmap_due_in: "Završava se za %{value}"
+  label_roadmap_overdue: "%{value} kasni"
   label_roadmap_no_issues: Nema predmeta za ovu verziju
   label_search: Traži
   label_result_plural: Rezultati
@@ -630,8 +635,8 @@
   label_changes_details: Detalji svih promjena
   label_issue_tracking: Praćenje predmeta
   label_spent_time: Utrošeno vrijeme
-  label_f_hour: "{{value}} sata"
-  label_f_hour_plural: "{{value}} sati"
+  label_f_hour: "%{value} sata"
+  label_f_hour_plural: "%{value} sati"
   label_time_tracking: Praćenje vremena
   label_change_plural: Promjene
   label_statistics: Statistika
@@ -680,15 +685,15 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Zasnovano na jeziku
-  label_sort_by: "Uredi po {{value}}"
+  label_sort_by: "Uredi po %{value}"
   label_send_test_email: Pošalji testno E-pismo
   label_feeds_access_key: RSS access key
   label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS kljuc za pristup je napravljen prije {{value}}"  
+  label_feeds_access_key_created_on: "RSS kljuc za pristup je napravljen prije %{value}"  
   label_module_plural: Moduli
-  label_added_time_by: "Promijenio {{author}} prije {{age}}"
-  label_updated_time_by: "Dodao/la {{author}} prije {{age}}"
-  label_updated_time: "Promijenjeno prije {{value}}"
+  label_added_time_by: "Promijenio %{author} prije %{age}"
+  label_updated_time_by: "Dodao/la %{author} prije %{age}"
+  label_updated_time: "Promijenjeno prije %{value}"
   label_jump_to_a_project: Prebaci se na projekt...
   label_file_plural: Datoteke
   label_changeset_plural: Promjene
@@ -704,7 +709,7 @@
   label_registration_activation_by_email: aktivacija putem e-pošte
   label_registration_manual_activation: ruÄna aktivacija
   label_registration_automatic_activation: automatska aktivacija
-  label_display_per_page: "Po stranici: {{value}}"
+  label_display_per_page: "Po stranici: %{value}"
   label_age: Starost
   label_change_properties: Promijeni svojstva
   label_general: Općenito
@@ -727,7 +732,7 @@
   label_sort: Sort
   label_ascending: Ascending
   label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_wiki_content_added: Wiki page added
   label_wiki_content_updated: Wiki page updated
   label_group: Group
@@ -746,7 +751,7 @@
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   label_api_access_key: API access key
   label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
+  label_api_access_key_created_on: "API access key created %{value} ago"
   
   button_login: Prijavi
   button_submit: Pošalji
@@ -806,54 +811,54 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 znaÄi bez ograniÄenja
   text_project_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj projekt i sve njegove podatke?
-  text_subprojects_destroy_warning: "Njegov(i) potprojekt(i): {{value}} će također biti obrisan."
+  text_subprojects_destroy_warning: "Njegov(i) potprojekt(i): %{value} će također biti obrisan."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Da li ste sigurni?
-  text_journal_changed: "{{label}} promijenjen iz {{old}} u {{new}}"
-  text_journal_set_to: "{{label}} postavi na {{value}}"
-  text_journal_deleted: "{{label}} izbrisano ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"  
+  text_journal_changed: "%{label} promijenjen iz %{old} u %{new}"
+  text_journal_set_to: "%{label} postavi na %{value}"
+  text_journal_deleted: "%{label} izbrisano (%{old})"
+  text_journal_added: "%{label} %{value} added"  
   text_tip_issue_begin_day: Zadaci koji poÄinju ovog dana
   text_tip_issue_end_day: zadaci koji se završavaju ovog dana
   text_tip_issue_begin_end_day: Zadaci koji poÄinju i zavrÅ¡avaju se ovog dana
   text_project_identifier_info: 'mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Jednom snimljen identifikator se ne može mijenjati!'
-  text_caracters_maximum: "Najviše {{count}} znakova."
-  text_caracters_minimum: "Mora biti dugaÄko najmanje {{count}} znakova."
-  text_length_between: "Dužina izmedu {{min}} i {{max}} znakova."
+  text_caracters_maximum: "Najviše %{count} znakova."
+  text_caracters_minimum: "Mora biti dugaÄko najmanje %{count} znakova."
+  text_length_between: "Dužina izmedu %{min} i %{max} znakova."
   text_tracker_no_workflow: Tijek rada nije definiran za ovaj tracker
   text_unallowed_characters: Nedozvoljeni znakovi
   text_comma_separated: Višestruke vrijednosti su dozvoljene (razdvojene zarezom).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
   text_tracker_no_workflow: No workflow defined for this tracker
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Predmet {{id}} je prijavljen (prijavio {{author}})."
-  text_issue_updated: "Predmet {{id}} je promijenjen {{author}})."
+  text_issue_added: "Predmet %{id} je prijavljen (prijavio %{author})."
+  text_issue_updated: "Predmet %{id} je promijenjen %{author})."
   text_wiki_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj wiki i njegov sadržaj?
-  text_issue_category_destroy_question: "Neke predmeti ({{count}}) su dodijeljeni ovoj kategoriji. Što želite uraditi?"
+  text_issue_category_destroy_question: "Neke predmeti (%{count}) su dodijeljeni ovoj kategoriji. Što želite uraditi?"
   text_issue_category_destroy_assignments: Ukloni dodjeljivanje kategorija
   text_issue_category_reassign_to: Ponovo dodijeli predmete ovoj kategoriji
   text_user_mail_option: "Za neizabrane projekte, primit ćete obavjesti samo o stvarima koje pratite ili u kojima sudjelujete (npr. predmete koje ste vi napravili ili koje su vama dodjeljeni)."
   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." 
   text_load_default_configuration: UÄitaj poÄetnu konfiguraciju
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Jeste li sigurni da želite obrisati izabrani/e predmet(e)?'
   text_select_project_modules: 'Odaberite module koji će biti omogućeni za ovaj projekt:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: Dozvoljeno pisanje u direktorij za privitke
   text_plugin_assets_writable: Plugin assets directory writable
   text_rmagick_available: RMagick dostupan (nije obavezno)
-  text_destroy_time_entries_question: "{{hours}} sati je prijavljeno za predmete koje želite obrisati. Å to ćete uÄiniti?"
+  text_destroy_time_entries_question: "%{hours} sati je prijavljeno za predmete koje želite obrisati. Å to ćete uÄiniti?"
   text_destroy_time_entries: Obriši prijavljene sate
   text_assign_time_entries_to_project: Pridruži prijavljene sate projektu
   text_reassign_time_entries: 'Premjesti prijavljene sate ovom predmetu:'
-  text_user_wrote: "{{value}} je napisao/la:"
-  text_enumeration_destroy_question: "{{count}} objekata je pridruženo toj vrijednosti."
+  text_user_wrote: "%{value} je napisao/la:"
+  text_enumeration_destroy_question: "%{count} objekata je pridruženo toj vrijednosti."
   text_enumeration_category_reassign_to: 'Premjesti ih ovoj vrijednosti:'
   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."
   text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   text_diff_truncated: '... Ovaj diff je odrezan zato Å¡to prelazi maksimalnu veliÄinu koja može biti prikazana.'
   text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
   text_wiki_page_nullify_children: "Keep child pages as root pages"
   text_wiki_page_destroy_children: "Delete child pages and all their descendants"
   text_wiki_page_reassign_children: "Reassign child pages to this parent page"
@@ -905,12 +910,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -918,7 +923,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -929,8 +934,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/hu.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/hu.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -33,38 +33,38 @@
       less_than_x_seconds:
 #        zero: 'kevesebb, mint 1 másodperc'
         one: 'kevesebb, mint 1 másodperc'
-        other: 'kevesebb, mint {{count}} másodperc'
+        other: 'kevesebb, mint %{count} másodperc'
       x_seconds:
         one: '1 másodperc'
-        other: '{{count}} másodperc'
+        other: '%{count} másodperc'
       less_than_x_minutes:
 #        zero: 'kevesebb, mint 1 perc'
         one: 'kevesebb, mint 1 perc'
-        other: 'kevesebb, mint {{count}} perc'
+        other: 'kevesebb, mint %{count} perc'
       x_minutes:
         one: '1 perc'
-        other: '{{count}} perc'
+        other: '%{count} perc'
       about_x_hours:
         one: 'majdnem 1 óra'
-        other: 'majdnem {{count}} óra'
+        other: 'majdnem %{count} óra'
       x_days:
         one: '1 nap'
-        other: '{{count}} nap'
+        other: '%{count} nap'
       about_x_months:
         one: 'majdnem 1 hónap'
-        other: 'majdnem {{count}} hónap'
+        other: 'majdnem %{count} hónap'
       x_months:
         one: '1 hónap'
-        other: '{{count}} hónap'
+        other: '%{count} hónap'
       about_x_years:
         one: 'majdnem 1 év'
-        other: 'majdnem {{count}} év'
+        other: 'majdnem %{count} év'
       over_x_years:
         one: 'több, mint 1 év'
-        other: 'több, mint {{count}} év'
+        other: 'több, mint %{count} év'
       almost_x_years:
         one:   "közel 1 év"
-        other: "közel {{count}} év"
+        other: "közel %{count} év"
     prompts:
       year:   "Év"
       month:  "Hónap"
@@ -117,8 +117,8 @@
     errors:
       template:
         header:
-          one: "1 hiba miatt nem menthető a következő: {{model}}"
-          other: "{{count}} hiba miatt nem menthető a következő: {{model}}"
+          one: "1 hiba miatt nem menthető a következő: %{model}"
+          other: "%{count} hiba miatt nem menthető a következő: %{model}"
         body: "Problémás mezők:"
       messages:
         inclusion: "nincs a listában"
@@ -128,16 +128,16 @@
         accepted: "nincs elfogadva"
         empty: "nincs megadva"
         blank: "nincs megadva"
-        too_long: "túl hosszú (nem lehet több {{count}} karakternél)"
-        too_short: "túl rövid (legalább {{count}} karakter kell legyen)"
-        wrong_length: "nem megfelelő hosszúságú ({{count}} karakter szükséges)"
+        too_long: "túl hosszú (nem lehet több %{count} karakternél)"
+        too_short: "túl rövid (legalább %{count} karakter kell legyen)"
+        wrong_length: "nem megfelelő hosszúságú (%{count} karakter szükséges)"
         taken: "már foglalt"
         not_a_number: "nem szám"
-        greater_than: "nagyobb kell legyen, mint {{count}}"
-        greater_than_or_equal_to: "legalább {{count}} kell legyen"
-        equal_to: "pontosan {{count}} kell legyen"
-        less_than: "kevesebb, mint {{count}} kell legyen"
-        less_than_or_equal_to: "legfeljebb {{count}} lehet"
+        greater_than: "nagyobb kell legyen, mint %{count}"
+        greater_than_or_equal_to: "legalább %{count} kell legyen"
+        equal_to: "pontosan %{count} kell legyen"
+        less_than: "kevesebb, mint %{count} kell legyen"
+        less_than_or_equal_to: "legfeljebb %{count} lehet"
         odd: "páratlan kell legyen"
         even: "páros kell legyen"
         greater_than_start_date: "nagyobbnak kell lennie, mint az indítás dátuma"
@@ -174,17 +174,17 @@
   notice_file_not_found: Az oldal, amit meg szeretne nézni nem található, vagy átkerült egy másik helyre.
   notice_locking_conflict: Az adatot egy másik felhasználó idő közben módosította.
   notice_not_authorized: Nincs hozzáférési engedélye ehhez az oldalhoz.
-  notice_email_sent: "Egy e-mail üzenetet küldtünk a következő címre {{value}}"
-  notice_email_error: "Hiba történt a levél küldése közben ({{value}})"
+  notice_email_sent: "Egy e-mail üzenetet küldtünk a következő címre %{value}"
+  notice_email_error: "Hiba történt a levél küldése közben (%{value})"
   notice_feeds_access_key_reseted: Az RSS hozzáférési kulcsát újra generáltuk.
-  notice_failed_to_save_issues: "Nem sikerült a {{count}} feladat(ok) mentése a {{total}} -ban kiválasztva: {{ids}}."
+  notice_failed_to_save_issues: "Nem sikerült a %{count} feladat(ok) mentése a %{total} -ban kiválasztva: %{ids}."
   notice_no_issue_selected: "Nincs feladat kiválasztva! Kérem jelölje meg melyik feladatot szeretné szerkeszteni!"
   notice_account_pending: "A fiókja létrejött, és adminisztrátori jóváhagyásra vár."
   notice_default_data_loaded: Az alapértelmezett konfiguráció betöltése sikeresen megtörtént.
   
-  error_can_t_load_default_data: "Az alapértelmezett konfiguráció betöltése nem lehetséges: {{value}}"
+  error_can_t_load_default_data: "Az alapértelmezett konfiguráció betöltése nem lehetséges: %{value}"
   error_scm_not_found: "A bejegyzés, vagy revízió nem található a tárolóban."
-  error_scm_command_failed: "A tároló elérése közben hiba lépett fel: {{value}}"
+  error_scm_command_failed: "A tároló elérése közben hiba lépett fel: %{value}"
   error_scm_annotate: "A bejegyzés nem létezik, vagy nics jegyzetekkel ellátva."
   error_issue_not_found_in_project: 'A feladat nem található, vagy nem ehhez a projekthez tartozik'
   
@@ -192,13 +192,13 @@
   mail_body_lost_password: 'A Redmine jelszó megváltoztatásához, kattintson a következő linkre:'
   mail_subject_register: Redmine azonosító aktiválása
   mail_body_register: 'A Redmine azonosítója aktiválásához, kattintson a következő linkre:'
-  mail_body_account_information_external: "A {{value}} azonosító használatával bejelentkezhet a Redmine-ba."
+  mail_body_account_information_external: "A %{value} azonosító használatával bejelentkezhet a Redmine-ba."
   mail_body_account_information: Az Ön Redmine azonosítójának információi
   mail_subject_account_activation_request: Redmine azonosító aktiválási kérelem
-  mail_body_account_activation_request: "Egy új felhasználó ({{value}}) regisztrált, azonosítója jóváhasgyásra várakozik:"
+  mail_body_account_activation_request: "Egy új felhasználó (%{value}) regisztrált, azonosítója jóváhasgyásra várakozik:"
   
   gui_validation_error: 1 hiba
-  gui_validation_error_plural: "{{count}} hiba"
+  gui_validation_error_plural: "%{count} hiba"
   
   field_name: Név
   field_description: Leírás
@@ -260,6 +260,7 @@
   field_attr_lastname: Vezetéknév
   field_attr_mail: E-mail
   field_onthefly: On-the-fly felhasználó létrehozás
+  field_start_date: Kezdés dátuma
   field_done_ratio: Elkészült (%)
   field_auth_source: Azonosítási mód
   field_hide_mail: Rejtse el az e-mail címem
@@ -334,14 +335,14 @@
   label_x_projects:
     zero:  nincsenek projektek
     one:   1 projekt
-    other: "{{count}} projekt"
+    other: "%{count} projekt"
   label_project_all: Az összes projekt
   label_project_latest: Legutóbbi projektek
   label_issue: Feladat
   label_issue_new: Új feladat
   label_issue_plural: Feladatok
   label_issue_view_all: Minden feladat
-  label_issues_by: "{{value}} feladatai"
+  label_issues_by: "%{value} feladatai"
   label_issue_added: Feladat hozzáadva
   label_issue_updated: Feladat frissítve
   label_document: Dokumentum
@@ -397,7 +398,7 @@
   label_auth_source_new: Új azonosítási mód
   label_auth_source_plural: Azonosítási módok
   label_subproject_plural: Alprojektek
-  label_and_its_subprojects: "{{value}} és alprojektjei"
+  label_and_its_subprojects: "%{value} és alprojektjei"
   label_min_max_length: Min - Max hossz
   label_list: Lista
   label_date: Dátum
@@ -408,8 +409,8 @@
   label_text: Hosszú szöveg
   label_attribute: Tulajdonság
   label_attribute_plural: Tulajdonságok
-  label_download: "{{count}} Letöltés"
-  label_download_plural: "{{count}} Letöltés"
+  label_download: "%{count} Letöltés"
+  label_download_plural: "%{count} Letöltés"
   label_no_data: Nincs megjeleníthető adat
   label_change_status: Státusz módosítása
   label_history: Történet
@@ -440,17 +441,17 @@
   label_closed_issues: lezárt
   label_closed_issues_plural: lezárt
   label_x_open_issues_abbr_on_total:
-    zero:  nyitott 0 / {{total}}
-    one:   nyitott 1 / {{total}}
-    other: "nyitott {{count}} / {{total}}"
+    zero:  nyitott 0 / %{total}
+    one:   nyitott 1 / %{total}
+    other: "nyitott %{count} / %{total}"
   label_x_open_issues_abbr:
     zero:  0 nyitott
     one:   1 nyitott
-    other: "{{count}} nyitott"
+    other: "%{count} nyitott"
   label_x_closed_issues_abbr:
     zero:  0 lezárt
     one:   1 lezárt
-    other: "{{count}} lezárt"
+    other: "%{count} lezárt"
   label_total: Összesen
   label_permissions: Jogosultságok
   label_current_status: Jelenlegi státusz
@@ -468,7 +469,7 @@
   label_months_from: hónap, kezdve
   label_gantt: Gantt
   label_internal: Belső
-  label_last_changes: "utolsó {{count}} változás"
+  label_last_changes: "utolsó %{count} változás"
   label_change_view_all: Minden változás megtekintése
   label_personalize_page: Az oldal testreszabása
   label_comment: Megjegyzés
@@ -476,7 +477,7 @@
   label_x_comments:
     zero: nincs megjegyzés
     one: 1 megjegyzés
-    other: "{{count}} megjegyzés"
+    other: "%{count} megjegyzés"
   label_comment_add: Megjegyzés hozzáadása
   label_comment_added: Megjegyzés hozzáadva
   label_comment_delete: Megjegyzések törlése
@@ -495,7 +496,7 @@
   label_yesterday: tegnap
   label_this_week: aktuális hét
   label_last_week: múlt hét
-  label_last_n_days: "az elmúlt {{count}} nap"
+  label_last_n_days: "az elmúlt %{count} nap"
   label_this_month: aktuális hónap
   label_last_month: múlt hónap
   label_this_year: aktuális év
@@ -509,8 +510,8 @@
   label_repository: Tároló
   label_repository_plural: Tárolók
   label_browse: Tallóz
-  label_modification: "{{count}} változás"
-  label_modification_plural: "{{count}} változás"
+  label_modification: "%{count} változás"
+  label_modification_plural: "%{count} változás"
   label_revision: Revízió
   label_revision_plural: Revíziók
   label_associated_revisions: Kapcsolt revíziók
@@ -526,8 +527,8 @@
   label_sort_lower: Eggyel lejjebb
   label_sort_lowest: Az aljára
   label_roadmap: Életút
-  label_roadmap_due_in: "Elkészültéig várhatóan még {{value}}"
-  label_roadmap_overdue: "{{value}} késésben"
+  label_roadmap_due_in: "Elkészültéig várhatóan még %{value}"
+  label_roadmap_overdue: "%{value} késésben"
   label_roadmap_no_issues: Nincsenek feladatok ehhez a verzióhoz
   label_search: Keresés
   label_result_plural: Találatok
@@ -545,8 +546,8 @@
   label_changes_details: Változások részletei
   label_issue_tracking: Feladat követés
   label_spent_time: Ráfordított idő
-  label_f_hour: "{{value}} óra"
-  label_f_hour_plural: "{{value}} óra"
+  label_f_hour: "%{value} óra"
+  label_f_hour_plural: "%{value} óra"
   label_time_tracking: Idő rögzítés
   label_change_plural: Változások
   label_statistics: Statisztikák
@@ -594,12 +595,12 @@
   label_date_from: 'Kezdet:'
   label_date_to: 'Vége:'
   label_language_based: A felhasználó nyelve alapján
-  label_sort_by: "{{value}} szerint rendezve"
+  label_sort_by: "%{value} szerint rendezve"
   label_send_test_email: Teszt e-mail küldése
-  label_feeds_access_key_created_on: "RSS hozzáférési kulcs létrehozva ennyivel ezelőtt: {{value}}"
+  label_feeds_access_key_created_on: "RSS hozzáférési kulcs létrehozva ennyivel ezelőtt: %{value}"
   label_module_plural: Modulok
-  label_added_time_by: "{{author}} adta hozzá ennyivel ezelőtt: {{age}}"
-  label_updated_time: "Utolsó módosítás ennyivel ezelőtt: {{value}}"
+  label_added_time_by: "%{author} adta hozzá ennyivel ezelőtt: %{age}"
+  label_updated_time: "Utolsó módosítás ennyivel ezelőtt: %{value}"
   label_jump_to_a_project: Ugrás projekthez...
   label_file_plural: Fájlok
   label_changeset_plural: Changesets
@@ -615,7 +616,7 @@
   label_registration_activation_by_email: Fiók aktiválása e-mailben
   label_registration_manual_activation: Manuális fiók aktiválás
   label_registration_automatic_activation: Automatikus fiók aktiválás
-  label_display_per_page: "Oldalanként: {{value}}"
+  label_display_per_page: "Oldalanként: %{value}"
   label_age: Kor
   label_change_properties: Tulajdonságok változtatása
   label_general: Ãltalános
@@ -677,36 +678,36 @@
   text_regexp_info: pl. ^[A-Z0-9]+$
   text_min_max_length_info: 0 = nincs korlátozás
   text_project_destroy_confirmation: Biztosan törölni szeretné a projektet és vele együtt minden kapcsolódó adatot ?
-  text_subprojects_destroy_warning: "Az alprojekt(ek): {{value}} szintén törlésre kerülnek."
+  text_subprojects_destroy_warning: "Az alprojekt(ek): %{value} szintén törlésre kerülnek."
   text_workflow_edit: Válasszon egy szerepkört, és egy feladat típust a workflow szerkesztéséhez
   text_are_you_sure: Biztos benne ?
   text_tip_issue_begin_day: a feladat ezen a napon kezdődik
   text_tip_issue_end_day: a feladat ezen a napon ér véget
   text_tip_issue_begin_end_day: a feladat ezen a napon kezdődik és ér véget
   text_project_identifier_info: 'Kis betűk (a-z), számok és kötőjel megengedett.<br />Mentés után az azonosítót megváltoztatni nem lehet.'
-  text_caracters_maximum: "maximum {{count}} karakter."
-  text_caracters_minimum: "Legkevesebb {{count}} karakter hosszúnek kell lennie."
-  text_length_between: "Legalább {{min}} és legfeljebb {{max}} hosszú karakter."
+  text_caracters_maximum: "maximum %{count} karakter."
+  text_caracters_minimum: "Legkevesebb %{count} karakter hosszúnek kell lennie."
+  text_length_between: "Legalább %{min} és legfeljebb %{max} hosszú karakter."
   text_tracker_no_workflow: Nincs workflow definiálva ehhez a feladat típushoz
   text_unallowed_characters: Tiltott karakterek
   text_comma_separated: Több érték megengedett (vesszővel elválasztva)
   text_issues_ref_in_commit_messages: Hivatkozás feladatokra, feladatok javítása a commit üzenetekben
-  text_issue_added: "A feladatot {{id}} bejelentette: {{author}}."
-  text_issue_updated: "A feladatot {{id}} módosította: {{author}}."
+  text_issue_added: "A feladatot %{id} bejelentette: %{author}."
+  text_issue_updated: "A feladatot %{id} módosította: %{author}."
   text_wiki_destroy_confirmation: Biztosan törölni szeretné ezt a wiki-t minden tartalmával együtt ?
-  text_issue_category_destroy_question: "Néhány feladat ({{count}}) hozzá van rendelve ehhez a kategóriához. Mit szeretne tenni ?"
+  text_issue_category_destroy_question: "Néhány feladat (%{count}) hozzá van rendelve ehhez a kategóriához. Mit szeretne tenni ?"
   text_issue_category_destroy_assignments: Kategória hozzárendelés megszűntetése
   text_issue_category_reassign_to: Feladatok újra hozzárendelése másik kategóriához
   text_user_mail_option: "A nem kiválasztott projektekről csak akkor kap értesítést, ha figyelést kér rá, vagy részt vesz benne (pl. Ön a létrehozó, vagy a hozzárendelő)"
   text_no_configuration_data: "Szerepkörök, feladat típusok, feladat státuszok, és workflow adatok még nincsenek konfigurálva.\nErősen ajánlott, az alapértelmezett konfiguráció betöltése, és utána módosíthatja azt."
   text_load_default_configuration: Alapértelmezett konfiguráció betöltése
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Biztos benne, hogy törölni szeretné a kijelölt feladato(ka)t ?'
   text_select_project_modules: 'Válassza ki az engedélyezett modulokat ehhez a projekthez:'
   text_default_administrator_account_changed: Alapértelmezett adminisztrátor fiók megváltoztatva
   text_file_repository_writable: Fájl tároló írható
   text_rmagick_available: RMagick elérhető (opcionális)
-  text_destroy_time_entries_question: "{{hours}} órányi munka van rögzítve a feladatokon, amiket törölni szeretne. Mit szeretne tenni ?"
+  text_destroy_time_entries_question: "%{hours} órányi munka van rögzítve a feladatokon, amiket törölni szeretne. Mit szeretne tenni ?"
   text_destroy_time_entries: A rögzített órák törlése
   text_assign_time_entries_to_project: A rögzített órák hozzárendelése a projekthez
   text_reassign_time_entries: 'A rögzített órák újra hozzárendelése másik feladathoz:'
@@ -736,13 +737,13 @@
   enumeration_issue_priorities: Feladat prioritások
   enumeration_doc_categories: Dokumentum kategóriák
   enumeration_activities: Tevékenységek (idő rögzítés)
-  mail_body_reminder: "{{count}} neked kiosztott feladat határidős az elkövetkező {{days}} napban:"
-  mail_subject_reminder: "{{count}} feladat határidős az elkövetkező {{days}} napokban"
-  text_user_wrote: "{{value}} írta:"
+  mail_body_reminder: "%{count} neked kiosztott feladat határidős az elkövetkező %{days} napban:"
+  mail_subject_reminder: "%{count} feladat határidős az elkövetkező %{days} napokban"
+  text_user_wrote: "%{value} írta:"
   label_duplicated_by: duplikálta
   setting_enabled_scm: Forráskódkezelő (SCM) engedélyezése
   text_enumeration_category_reassign_to: 'Újra hozzárendelés ehhez:'
-  text_enumeration_destroy_question: "{{count}} objektum van hozzárendelve ehhez az értékhez."
+  text_enumeration_destroy_question: "%{count} objektum van hozzárendelve ehhez az értékhez."
   label_incoming_emails: Beérkezett levelek
   label_generate_key: Kulcs generálása
   setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez
@@ -808,12 +809,12 @@
   text_repository_usernames_mapping: "Ãllítsd be a felhasználó összerendeléseket a Redmine, és a tároló logban található felhasználók között.\nAz azonos felhasználó nevek összerendelése automatikusan megtörténik."
   permission_edit_own_messages: Saját üzenetek szerkesztése
   permission_delete_own_messages: Saját üzenetek törlése
-  label_user_activity: "{{value}} tevékenységei"
-  label_updated_time_by: "Módosította {{author}} ennyivel ezelőtt: {{age}}"
+  label_user_activity: "%{value} tevékenységei"
+  label_updated_time_by: "Módosította %{author} ennyivel ezelőtt: %{age}"
   text_diff_truncated: '... A diff fájl vége nem jelenik meg, mert hosszab, mint a megjeleníthető sorok száma.'
   setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
   text_plugin_assets_writable: Plugin eszközök könyvtár írható
-  warning_attachments_not_saved: "{{count}} fájl mentése nem sikerült."
+  warning_attachments_not_saved: "%{count} fájl mentése nem sikerült."
   button_create_and_continue: Létrehozás és folytatás
   text_custom_field_possible_values_info: 'Értékenként egy sor'
   label_display: Megjelenés
@@ -828,21 +829,21 @@
   label_descending: Csökkenő
   label_sort: Rendezés
   label_ascending: Növekvő
-  label_date_from_to: "{{start}} -tól {{end}} -ig"
+  label_date_from_to: "%{start} -tól %{end} -ig"
   label_greater_or_equal: ">="
   label_less_or_equal: "<="
-  text_wiki_page_destroy_question: Ennek az oldalnak {{descendants}} gyermek-, és leszármazott oldala van. Mit szeretne tenni?
+  text_wiki_page_destroy_question: Ennek az oldalnak %{descendants} gyermek-, és leszármazott oldala van. Mit szeretne tenni?
   text_wiki_page_reassign_children: Az aloldalak hozzárendelése ehhez a szülő oldalhoz
   text_wiki_page_nullify_children: Az aloldalak megtartása, mint főoldalak
   text_wiki_page_destroy_children: Minden aloldal és leszármazottjának törlése
   setting_password_min_length: Minimum jelszó hosszúság
   field_group_by: Szerint csoportosítva
-  mail_subject_wiki_content_updated: "'{{id}}' wiki oldal frissítve"
+  mail_subject_wiki_content_updated: "'%{id}' wiki oldal frissítve"
   label_wiki_content_added: Wiki oldal hozzáadva
-  mail_subject_wiki_content_added: "Új wiki oldal: '{{id}}'"
-  mail_body_wiki_content_added: A '{{id}}' wiki oldalt {{author}} hozta létre.
+  mail_subject_wiki_content_added: "Új wiki oldal: '%{id}'"
+  mail_body_wiki_content_added: A '%{id}' wiki oldalt %{author} hozta létre.
   label_wiki_content_updated: Wiki oldal frissítve
-  mail_body_wiki_content_updated: A '{{id}}' wiki oldalt {{author}} frissítette.
+  mail_body_wiki_content_updated: A '%{id}' wiki oldalt %{author} frissítette.
   permission_add_project: Projekt létrehozása
   setting_new_project_user_role_id: Projekt létrehozási jog nem adminisztrátor felhasználóknak
   label_view_all_revisions: Minden revízió megtekintése
@@ -850,14 +851,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nincs feladat típus hozzárendelve ehhez a projekthez. Kérem ellenőrizze a projekt beállításait.
   error_no_default_issue_status: Nincs alapértelmezett feladat státusz beállítva. Kérem ellenőrizze a beállításokat (Itt találja "Adminisztráció -> Feladat státuszok").
-  text_journal_changed: "{{label}} változott erről: {{old}} erre: {{new}}"
-  text_journal_set_to: "{{label}} új értéke: {{value}}"
-  text_journal_deleted: "{{label}} törölve ({{old}})"
+  text_journal_changed: "%{label} változott erről: %{old} erre: %{new}"
+  text_journal_set_to: "%{label} új értéke: %{value}"
+  text_journal_deleted: "%{label} törölve (%{old})"
   label_group_plural: Csoportok
   label_group: Csoport
   label_group_new: Új csoport
   label_time_entry_plural: Rögzített idő
-  text_journal_added: "{{label}} {{value}} hozzáadva"
+  text_journal_added: "%{label} %{value} hozzáadva"
   field_active: Aktív
   enumeration_system_activity: Rendszer Tevékenység
   permission_delete_issue_watchers: Megfigyelők törlése
@@ -892,9 +893,9 @@
   setting_start_of_week: A hét első napja
   permission_view_issues: Feladatok megtekintése
   label_display_used_statuses_only: Csak olyan feladat státuszok megjelenítése, amit ez a feladat típus használ
-  label_revision_id: Revízió {{value}}
+  label_revision_id: Revízió %{value}
   label_api_access_key: API hozzáférési kulcs
-  label_api_access_key_created_on: API hozzáférési kulcs létrehozva {{value}} ezelőtt
+  label_api_access_key_created_on: API hozzáférési kulcs létrehozva %{value} ezelőtt
   label_feeds_access_key: RSS hozzáférési kulcs
   notice_api_access_key_reseted: Az API hozzáférési kulcsa újragenerálva.
   setting_rest_api_enabled: REST web service engedélyezése
@@ -917,7 +918,7 @@
   error_can_not_delete_custom_field: Nem lehet törölni az egyéni mezőt
   permission_manage_subtasks: Alfeladatok kezelése
   label_profile: Profil
-  error_unable_to_connect: Nem lehet csatlakozni ({{value}})
+  error_unable_to_connect: Nem lehet csatlakozni (%{value})
   error_can_not_remove_role: Ez a szerepkör használatban van és ezért nem törölhető-
   field_parent_issue: Szülő feladat
   error_unable_delete_issue_status: Nem lehet törölni a feladat állapotát
@@ -926,7 +927,7 @@
   label_project_copy_notifications: Küldjön e-mail értesítéseket projektmásolás közben.
   field_principal: Felelős
   label_my_page_block: Saját kezdőlap-blokk
-  notice_failed_to_save_members: "Nem sikerült menteni a tago(ka)t: {{errors}}."
+  notice_failed_to_save_members: "Nem sikerült menteni a tago(ka)t: %{errors}."
   text_zoom_out: Kicsinyít
   text_zoom_in: Nagyít
   notice_unable_delete_time_entry: Az időrögzítés nem törölhető
@@ -934,7 +935,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -945,8 +946,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/id.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/id.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -30,37 +30,37 @@
       half_a_minute: "setengah menit"
       less_than_x_seconds:
         one:   "kurang dari sedetik"
-        other: "kurang dari {{count}} detik"
+        other: "kurang dari %{count} detik"
       x_seconds:
         one:   "sedetik"
-        other: "{{count}} detik"
+        other: "%{count} detik"
       less_than_x_minutes:
         one:   "kurang dari semenit"
-        other: "kurang dari {{count}} menit"
+        other: "kurang dari %{count} menit"
       x_minutes:
         one:   "semenit"
-        other: "{{count}} menit"
+        other: "%{count} menit"
       about_x_hours:
         one:   "sekitar sejam"
-        other: "sekitar {{count}} jam"
+        other: "sekitar %{count} jam"
       x_days:
         one:   "sehari"
-        other: "{{count}} hari"
+        other: "%{count} hari"
       about_x_months:
         one:   "sekitar sebulan"
-        other: "sekitar {{count}} bulan"
+        other: "sekitar %{count} bulan"
       x_months:
         one:   "sebulan"
-        other: "{{count}} bulan"
+        other: "%{count} bulan"
       about_x_years:
         one:   "sekitar setahun"
-        other: "sekitar {{count}} tahun"
+        other: "sekitar %{count} tahun"
       over_x_years:
         one:   "lebih dari setahun"
-        other: "lebih dari {{count}} tahun"
+        other: "lebih dari %{count} tahun"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "tidak termasuk dalam daftar"
         exclusion: "sudah dicadangkan"
@@ -103,17 +107,17 @@
         accepted: "harus disetujui"
         empty: "tidak boleh kosong"
         blank: "tidak boleh kosong"
-        too_long: "terlalu panjang (maksimum {{count}} karakter)"
-        too_short: "terlalu pendek (minimum {{count}} karakter)"
-        wrong_length: "panjangnya salah (seharusnya {{count}} karakter)"
+        too_long: "terlalu panjang (maksimum %{count} karakter)"
+        too_short: "terlalu pendek (minimum %{count} karakter)"
+        wrong_length: "panjangnya salah (seharusnya %{count} karakter)"
         taken: "sudah diambil"
         not_a_number: "bukan angka"
         not_a_date: "bukan tanggal"
-        greater_than: "harus lebih besar dari {{count}}"
-        greater_than_or_equal_to: "harus lebih besar atau sama dengan {{count}}"
-        equal_to: "harus sama dengan {{count}}"
-        less_than: "harus kurang dari {{count}}"
-        less_than_or_equal_to: "harus kurang atau sama dengan {{count}}"
+        greater_than: "harus lebih besar dari %{count}"
+        greater_than_or_equal_to: "harus lebih besar atau sama dengan %{count}"
+        equal_to: "harus sama dengan %{count}"
+        less_than: "harus kurang dari %{count}"
+        less_than_or_equal_to: "harus kurang atau sama dengan %{count}"
         odd: "harus ganjil"
         even: "harus genap"
         greater_than_start_date: "harus lebih besar dari tanggal mulai"
@@ -150,18 +154,18 @@
   notice_file_not_found: Berkas yang anda buka tidak ada atau sudah dihapus.
   notice_locking_conflict: Data sudah diubah oleh pengguna lain.
   notice_not_authorized: Anda tidak memiliki akses ke halaman ini.
-  notice_email_sent: "Email sudah dikirim ke {{value}}"
-  notice_email_error: "Terjadi kesalahan pada saat pengiriman email ({{value}})"
+  notice_email_sent: "Email sudah dikirim ke %{value}"
+  notice_email_error: "Terjadi kesalahan pada saat pengiriman email (%{value})"
   notice_feeds_access_key_reseted: RSS access key anda sudah direset.
-  notice_failed_to_save_issues: "Gagal menyimpan {{count}} masalah dari {{total}} yang dipilih: {{ids}}."
+  notice_failed_to_save_issues: "Gagal menyimpan %{count} masalah dari %{total} yang dipilih: %{ids}."
   notice_no_issue_selected: "Tidak ada masalah yang dipilih! Silakan pilih masalah yang akan anda sunting."
   notice_account_pending: "Akun anda sudah dibuat dan sekarang sedang menunggu persetujuan administrator."
   notice_default_data_loaded: Konfigurasi default sudah berhasil dimuat.
   notice_unable_delete_version: Tidak bisa menghapus versi.
   
-  error_can_t_load_default_data: "Konfigurasi default tidak bisa dimuat: {{value}}"
+  error_can_t_load_default_data: "Konfigurasi default tidak bisa dimuat: %{value}"
   error_scm_not_found: "Entri atau revisi tidak terdapat pada repositori."
-  error_scm_command_failed: "Terjadi kesalahan pada saat mengakses repositori: {{value}}"
+  error_scm_command_failed: "Terjadi kesalahan pada saat mengakses repositori: %{value}"
   error_scm_annotate: "Entri tidak ada, atau tidak dapat di anotasi."
   error_issue_not_found_in_project: 'Masalah tidak ada atau tidak tergabung dalam proyek ini.'
   error_no_tracker_in_project: 'Tidak ada pelacak yang diasosiasikan pada proyek ini. Silakan pilih Pengaturan Proyek.'
@@ -169,25 +173,25 @@
   error_can_not_reopen_issue_on_closed_version: 'Masalah yang ditujukan pada versi tertutup tidak bisa dibuka kembali'
   error_can_not_archive_project: Proyek ini tidak bisa diarsipkan
   
-  warning_attachments_not_saved: "{{count}} berkas tidak bisa disimpan."
+  warning_attachments_not_saved: "%{count} berkas tidak bisa disimpan."
   
-  mail_subject_lost_password: "Kata sandi {{value}} anda"
+  mail_subject_lost_password: "Kata sandi %{value} anda"
   mail_body_lost_password: 'Untuk mengubah kata sandi anda, klik tautan berikut::'
-  mail_subject_register: "Aktivasi akun {{value}} anda"
+  mail_subject_register: "Aktivasi akun %{value} anda"
   mail_body_register: 'Untuk mengaktifkan akun anda, klik tautan berikut:'
-  mail_body_account_information_external: "Anda dapat menggunakan akun {{value}} anda untuk login."
+  mail_body_account_information_external: "Anda dapat menggunakan akun %{value} anda untuk login."
   mail_body_account_information: Informasi akun anda
-  mail_subject_account_activation_request: "Permintaan aktivasi akun {{value}} "
-  mail_body_account_activation_request: "Pengguna baru ({{value}}) sudan didaftarkan. Akun tersebut menunggu persetujuan anda:"
-  mail_subject_reminder: "{{count}} masalah harus selesai pada hari berikutnya ({{days}})"
-  mail_body_reminder: "{{count}} masalah yang ditugaskan pada anda harus selesai dalam {{days}} hari kedepan:"
-  mail_subject_wiki_content_added: "'{{id}}' halaman wiki sudah ditambahkan"
-  mail_body_wiki_content_added: "The '{{id}}' halaman wiki sudah ditambahkan oleh {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' halaman wiki sudah diperbarui"
-  mail_body_wiki_content_updated: "The '{{id}}' halaman wiki sudah diperbarui oleh {{author}}."
+  mail_subject_account_activation_request: "Permintaan aktivasi akun %{value} "
+  mail_body_account_activation_request: "Pengguna baru (%{value}) sudan didaftarkan. Akun tersebut menunggu persetujuan anda:"
+  mail_subject_reminder: "%{count} masalah harus selesai pada hari berikutnya (%{days})"
+  mail_body_reminder: "%{count} masalah yang ditugaskan pada anda harus selesai dalam %{days} hari kedepan:"
+  mail_subject_wiki_content_added: "'%{id}' halaman wiki sudah ditambahkan"
+  mail_body_wiki_content_added: "The '%{id}' halaman wiki sudah ditambahkan oleh %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' halaman wiki sudah diperbarui"
+  mail_body_wiki_content_updated: "The '%{id}' halaman wiki sudah diperbarui oleh %{author}."
   
   gui_validation_error: 1 kesalahan
-  gui_validation_error_plural: "{{count}} kesalahan"
+  gui_validation_error_plural: "%{count} kesalahan"
 
   
   field_name: Nama
@@ -251,6 +255,7 @@
   field_attr_lastname: Atribut nama belakang
   field_attr_mail: Atribut email
   field_onthefly: Pembuatan pengguna seketika
+  field_start_date: Mulai
   field_done_ratio: % Selesai
   field_auth_source: Mode otentikasi
   field_hide_mail: Sembunyikan email saya
@@ -398,14 +403,14 @@
   label_x_projects:
     zero:  tidak ada proyek 
     one:   1 proyek 
-    other: "{{count}} proyek"
+    other: "%{count} proyek"
   label_project_all: Semua Proyek 
   label_project_latest: Proyek terakhir
   label_issue: Masalah
   label_issue_new: Masalah baru
   label_issue_plural: Masalah
   label_issue_view_all: tampilkan semua masalah
-  label_issues_by: "Masalah ditambahkan oleh {{value}}"
+  label_issues_by: "Masalah ditambahkan oleh %{value}"
   label_issue_added: Masalah ditambahan
   label_issue_updated: Masalah diperbarui
   label_document: Dokumen
@@ -454,7 +459,7 @@
   label_registered_on: Terdaftar pada
   label_activity: Kegiatan
   label_overall_activity: Kegiatan umum
-  label_user_activity: "kegiatan {{value}}"
+  label_user_activity: "kegiatan %{value}"
   label_new: Baru
   label_logged_as: Login sebagai
   label_environment: Lingkungan
@@ -463,7 +468,7 @@
   label_auth_source_new: Mode otentikasi baru
   label_auth_source_plural: Mode Otentikasi
   label_subproject_plural: Subproyek
-  label_and_its_subprojects: "{{value}} dan subproyeknya"
+  label_and_its_subprojects: "%{value} dan subproyeknya"
   label_min_max_length: Panjang Min - Maks
   label_list: Daftar
   label_date: Tanggal
@@ -474,8 +479,8 @@
   label_text: Long text
   label_attribute: Atribut
   label_attribute_plural: Atribut
-  label_download: "{{count}} Unduhan"
-  label_download_plural: "{{count}} Unduhan"
+  label_download: "%{count} Unduhan"
+  label_download_plural: "%{count} Unduhan"
   label_no_data: Tidak ada data untuk ditampilkan
   label_change_status: Status perubahan
   label_history: Riwayat
@@ -507,17 +512,17 @@
   label_closed_issues: selesai
   label_closed_issues_plural: selesai
   label_x_open_issues_abbr_on_total:
-    zero:  0 belum selesai / {{total}}
-    one:   1 belum selesai / {{total}}
-    other: "{{count}} terbuka / {{total}}"
+    zero:  0 belum selesai / %{total}
+    one:   1 belum selesai / %{total}
+    other: "%{count} terbuka / %{total}"
   label_x_open_issues_abbr:
     zero:  0 belum selesai
     one:   1 belum selesai
-    other: "{{count}} belum selesai"
+    other: "%{count} belum selesai"
   label_x_closed_issues_abbr:
     zero:  0 selesai
     one:   1 selesai
-    other: "{{count}} selesai"
+    other: "%{count} selesai"
   label_total: Total
   label_permissions: Perijinan
   label_current_status: Status sekarang
@@ -535,7 +540,7 @@
   label_months_from: dari bulan
   label_gantt: Gantt
   label_internal: Internal
-  label_last_changes: "{{count}} perubahan terakhir"
+  label_last_changes: "%{count} perubahan terakhir"
   label_change_view_all: Tampilkan semua perubahan
   label_personalize_page: Personalkan halaman ini
   label_comment: Komentar
@@ -543,7 +548,7 @@
   label_x_comments:
     zero: tak ada komentar
     one: 1 komentar
-    other: "{{count}} komentar"
+    other: "%{count} komentar"
   label_comment_add: Tambahkan komentar
   label_comment_added: Komentar ditambahkan
   label_comment_delete: Hapus komentar
@@ -564,7 +569,7 @@
   label_yesterday: kemarin
   label_this_week: minggu ini
   label_last_week: minggu lalu
-  label_last_n_days: "{{count}} hari terakhir"
+  label_last_n_days: "%{count} hari terakhir"
   label_this_month: bulan ini
   label_last_month: bulan lalu
   label_this_year: this year
@@ -578,8 +583,8 @@
   label_repository: Repositori
   label_repository_plural: Repositori
   label_browse: Jelajah
-  label_modification: "{{count}} perubahan"
-  label_modification_plural: "{{count}} perubahan"
+  label_modification: "%{count} perubahan"
+  label_modification_plural: "%{count} perubahan"
   label_branch: Cabang
   label_tag: Tag 
   label_revision: Revisi
@@ -600,8 +605,8 @@
   label_sort_lower: Ke bawah
   label_sort_lowest: Ke paling bawah
   label_roadmap: Rencana kerja
-  label_roadmap_due_in: "Harus selesai dalam {{value}}"
-  label_roadmap_overdue: "{{value}} terlambat"
+  label_roadmap_due_in: "Harus selesai dalam %{value}"
+  label_roadmap_overdue: "%{value} terlambat"
   label_roadmap_no_issues: Tak ada masalah pada versi ini
   label_search: Cari
   label_result_plural: Hasil
@@ -619,8 +624,8 @@
   label_changes_details: Rincian semua perubahan
   label_issue_tracking: Pelacak masalah
   label_spent_time: Waktu terpakai
-  label_f_hour: "{{value}} jam"
-  label_f_hour_plural: "{{value}} jam"
+  label_f_hour: "%{value} jam"
+  label_f_hour_plural: "%{value} jam"
   label_time_tracking: Pelacak waktu
   label_change_plural: Perubahan
   label_statistics: Statistik
@@ -669,13 +674,13 @@
   label_date_from: Dari
   label_date_to: Sampai
   label_language_based: Berdasarkan bahasa pengguna
-  label_sort_by: "Urut berdasarkan {{value}}"
+  label_sort_by: "Urut berdasarkan %{value}"
   label_send_test_email: Kirim email percobaan
-  label_feeds_access_key_created_on: "RSS access key dibuat {{value}} yang lalu"
+  label_feeds_access_key_created_on: "RSS access key dibuat %{value} yang lalu"
   label_module_plural: Modul
-  label_added_time_by: "Ditambahkan oleh {{author}} {{age}} yang lalu"
-  label_updated_time_by: "Diperbarui oleh {{author}} {{age}} yang lalu"
-  label_updated_time: "Diperbarui oleh {{value}} yang lalu"
+  label_added_time_by: "Ditambahkan oleh %{author} %{age} yang lalu"
+  label_updated_time_by: "Diperbarui oleh %{author} %{age} yang lalu"
+  label_updated_time: "Diperbarui oleh %{value} yang lalu"
   label_jump_to_a_project: Pilih proyek...
   label_file_plural: Berkas
   label_changeset_plural: Set perubahan
@@ -693,7 +698,7 @@
   label_registration_activation_by_email: aktivasi akun melalui email
   label_registration_manual_activation: aktivasi akun secara manual
   label_registration_automatic_activation: aktivasi akun secara otomatis
-  label_display_per_page: "Per halaman: {{value}}"
+  label_display_per_page: "Per halaman: %{value}"
   label_age: Umur
   label_change_properties: Rincian perubahan
   label_general: Umum
@@ -716,7 +721,7 @@
   label_sort: Urut
   label_ascending: Menaik
   label_descending: Menurun
-  label_date_from_to: Dari {{start}} sampai {{end}}
+  label_date_from_to: Dari %{start} sampai %{end}
   label_wiki_content_added: Halaman wiki ditambahkan
   label_wiki_content_updated: Halaman wiki diperbarui
   label_group: Kelompok
@@ -787,52 +792,52 @@
   text_regexp_info: mis. ^[A-Z0-9]+$
   text_min_max_length_info: 0 berarti tidak ada pembatasan
   text_project_destroy_confirmation: Apakah anda benar-benar akan menghapus proyek ini beserta data terkait ?
-  text_subprojects_destroy_warning: "Subproyek: {{value}} juga akan dihapus."
+  text_subprojects_destroy_warning: "Subproyek: %{value} juga akan dihapus."
   text_workflow_edit: Pilih peran dan pelacak untuk menyunting alur kerja
   text_are_you_sure: Anda yakin ?
-  text_journal_changed: "{{label}} berubah dari {{old}} menjadi {{new}}"
-  text_journal_set_to: "{{label}} di set ke {{value}}"
-  text_journal_deleted: "{{label}} dihapus ({{old}})"
-  text_journal_added: "{{label}} {{value}} ditambahkan"
+  text_journal_changed: "%{label} berubah dari %{old} menjadi %{new}"
+  text_journal_set_to: "%{label} di set ke %{value}"
+  text_journal_deleted: "%{label} dihapus (%{old})"
+  text_journal_added: "%{label} %{value} ditambahkan"
   text_tip_issue_begin_day: tugas dimulai hari itu
   text_tip_issue_end_day: tugas berakhir hari itu
   text_tip_issue_begin_end_day: tugas dimulai dan berakhir hari itu
   text_project_identifier_info: 'Yang diijinkan hanya huruf kecil (a-z), angka dan tanda minus.<br />Sekali disimpan, pengenal tidak bisa diubah.'
-  text_caracters_maximum: "maximum {{count}} karakter."
-  text_caracters_minimum: "Setidaknya harus sepanjang {{count}} karakter."
-  text_length_between: "Panjang diantara {{min}} dan {{max}} karakter."
+  text_caracters_maximum: "maximum %{count} karakter."
+  text_caracters_minimum: "Setidaknya harus sepanjang %{count} karakter."
+  text_length_between: "Panjang diantara %{min} dan %{max} karakter."
   text_tracker_no_workflow: Tidak ada alur kerja untuk pelacak ini
   text_unallowed_characters: Karakter tidak diperbolehkan
   text_comma_separated: Beberapa nilai diperbolehkan (dipisahkan koma).
   text_issues_ref_in_commit_messages: Mereferensikan dan membetulkan masalah pada pesan komit
-  text_issue_added: "Masalah {{id}} sudah dilaporkan oleh {{author}}."
-  text_issue_updated: "Masalah {{id}} sudah diperbarui oleh {{author}}."
+  text_issue_added: "Masalah %{id} sudah dilaporkan oleh %{author}."
+  text_issue_updated: "Masalah %{id} sudah diperbarui oleh %{author}."
   text_wiki_destroy_confirmation: Apakah anda benar-benar akan menghapus wiki ini beserta semua isinya ?
-  text_issue_category_destroy_question: "Beberapa masalah ({{count}}) ditugaskan pada kategori ini. Apa yang anda lakukan ?"
+  text_issue_category_destroy_question: "Beberapa masalah (%{count}) ditugaskan pada kategori ini. Apa yang anda lakukan ?"
   text_issue_category_destroy_assignments: Hapus kategori penugasan
   text_issue_category_reassign_to: Tugaskan kembali masalah untuk kategori ini
   text_user_mail_option: "Untuk proyek yang tidak dipilih, anda hanya akan menerima notifikasi hal-hal yang anda pantau atau anda terlibat di dalamnya (misalnya masalah yang anda tulis atau ditugaskan pada anda)."
   text_no_configuration_data: "Peran, pelacak, status masalah dan alur kerja belum dikonfigur.\nSangat disarankan untuk memuat konfigurasi default. Anda akan bisa mengubahnya setelah konfigurasi dimuat."
   text_load_default_configuration: Muat konfigurasi default
-  text_status_changed_by_changeset: "Diterapkan di set perubahan {{value}}."
+  text_status_changed_by_changeset: "Diterapkan di set perubahan %{value}."
   text_issues_destroy_confirmation: 'Apakah anda yakin untuk menghapus masalah terpilih ?'
   text_select_project_modules: 'Pilih modul untuk diaktifkan pada proyek ini:'
   text_default_administrator_account_changed: Akun administrator default sudah berubah
   text_file_repository_writable: Direktori yang bisa ditulisi untuk lampiran
   text_plugin_assets_writable: Direktori yang bisa ditulisi untuk plugin asset
   text_rmagick_available: RMagick tersedia (optional)
-  text_destroy_time_entries_question: "{{hours}} jam sudah dilaporkan pada masalah yang akan anda hapus. Apa yang akan anda lakukan ?"
+  text_destroy_time_entries_question: "%{hours} jam sudah dilaporkan pada masalah yang akan anda hapus. Apa yang akan anda lakukan ?"
   text_destroy_time_entries: Hapus jam yang terlapor
   text_assign_time_entries_to_project: Tugaskan jam terlapor pada proyek
   text_reassign_time_entries: 'Tugaskan kembali jam terlapor pada masalah ini:'
-  text_user_wrote: "{{value}} menulis:"
-  text_enumeration_destroy_question: "{{count}} obyek ditugaskan untuk nilai ini."
+  text_user_wrote: "%{value} menulis:"
+  text_enumeration_destroy_question: "%{count} obyek ditugaskan untuk nilai ini."
   text_enumeration_category_reassign_to: 'Tugaskan kembali untuk nilai ini:'
   text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/email.yml dan restart kembali aplikasi untuk mengaktifkan."
   text_repository_usernames_mapping: "Pilih atau perbarui pengguna Redmine yang terpetakan ke setiap nama pengguna yang ditemukan di log repositori.\nPengguna dengan nama pengguna dan repositori atau email yang sama  secara otomasit akan dipetakan."
   text_diff_truncated: '... Perbedaan terpotong karena melebihi batas maksimum yang bisa ditampilkan.'
   text_custom_field_possible_values_info: 'Satu baris untuk setiap nilai'
-  text_wiki_page_destroy_question: "Halaman ini mempunyai {{descendants}} halaman anak dan turunannya. Apa yang akan anda lakukan ?"
+  text_wiki_page_destroy_question: "Halaman ini mempunyai %{descendants} halaman anak dan turunannya. Apa yang akan anda lakukan ?"
   text_wiki_page_nullify_children: "Biarkan halaman anak sebagai halaman teratas (root)"
   text_wiki_page_destroy_children: "Hapus halaman anak dan semua turunannya"
   text_wiki_page_reassign_children: "Tujukan halaman anak ke halaman induk yang ini"
@@ -868,13 +873,13 @@
   setting_issue_done_ratio: Calculate the issue done ratio with
   label_api_access_key: API access key
   text_line_separated: Multiple values allowed (one line for each value).
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   permission_view_issues: View Issues
   setting_issue_done_ratio_issue_status: Use the issue status
   error_issue_done_ratios_not_updated: Issue done ratios not updated.
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   error_workflow_copy_target: Please select target tracker(s) and role(s)
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -906,12 +911,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -919,7 +924,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -930,8 +935,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/it.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/it.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,6 +1,7 @@
 # Italian translations for Ruby on Rails 
 # by Claudio Poli (masterkain@gmail.com)
 # by Diego Pierotto (ita.translations@tiscali.it)
+# by Emidio Stani (emidiostani@gmail.com)
 
 it:
   direction: ltr
@@ -37,37 +38,37 @@
       half_a_minute: "mezzo minuto"
       less_than_x_seconds:
         one:  "meno di un secondo"
-        other: "meno di {{count}} secondi"
+        other: "meno di %{count} secondi"
       x_seconds:
         one:  "1 secondo"
-        other: "{{count}} secondi"
+        other: "%{count} secondi"
       less_than_x_minutes:
         one:  "meno di un minuto"
-        other: "meno di {{count}} minuti"
+        other: "meno di %{count} minuti"
       x_minutes:
         one:  "1 minuto"
-        other: "{{count}} minuti"
+        other: "%{count} minuti"
       about_x_hours:
         one:  "circa un'ora"
-        other: "circa {{count}} ore"
+        other: "circa %{count} ore"
       x_days:
         one:  "1 giorno"
-        other: "{{count}} giorni"
+        other: "%{count} giorni"
       about_x_months:
         one:  "circa un mese"
-        other: "circa {{count}} mesi"
+        other: "circa %{count} mesi"
       x_months:
         one:  "1 mese"
-        other: "{{count}} mesi"
+        other: "%{count} mesi"
       about_x_years:
         one:  "circa un anno"
-        other: "circa {{count}} anni"
+        other: "circa %{count} anni"
       over_x_years:
         one:  "oltre un anno"
-        other: "oltre {{count}} anni"
+        other: "oltre %{count} anni"
       almost_x_years:
         one:   "quasi 1 anno"
-        other: "quasi {{count}} anni"
+        other: "quasi %{count} anni"
       
   number:
     format:
@@ -100,8 +101,8 @@
     errors:
       template:
         header: 
-          one: "Non posso salvare questo {{model}}: 1 errore"
-          other: "Non posso salvare questo {{model}}: {{count}} errori."
+          one: "Non posso salvare questo %{model}: 1 errore"
+          other: "Non posso salvare questo %{model}: %{count} errori."
         body: "Per favore ricontrolla i seguenti campi:"
       messages:
         inclusion: "non è incluso nella lista"
@@ -111,22 +112,22 @@
         accepted: "deve essere accettata"
         empty: "non può essere vuoto"
         blank: "non può essere lasciato in bianco"
-        too_long: "è troppo lungo (il massimo è {{count}} lettere)"
-        too_short: "è troppo corto (il minimo è {{count}} lettere)"
-        wrong_length: "è della lunghezza sbagliata (deve essere di {{count}} lettere)"
+        too_long: "è troppo lungo (il massimo è %{count} lettere)"
+        too_short: "è troppo corto (il minimo è %{count} lettere)"
+        wrong_length: "è della lunghezza sbagliata (deve essere di %{count} lettere)"
         taken: "è già in uso"
         not_a_number: "non è un numero"
-        greater_than: "deve essere superiore a {{count}}"
-        greater_than_or_equal_to: "deve essere superiore o uguale a {{count}}"
-        equal_to: "deve essere uguale a {{count}}"
-        less_than: "deve essere meno di {{count}}"
-        less_than_or_equal_to: "deve essere meno o uguale a {{count}}"
+        greater_than: "deve essere superiore a %{count}"
+        greater_than_or_equal_to: "deve essere superiore o uguale a %{count}"
+        equal_to: "deve essere uguale a %{count}"
+        less_than: "deve essere meno di %{count}"
+        less_than_or_equal_to: "deve essere meno o uguale a %{count}"
         odd: "deve essere dispari"
         even: "deve essere pari"
         greater_than_start_date: "deve essere maggiore della data di partenza"
         not_same_project: "non appartiene allo stesso progetto"
         circular_dependency: "Questa relazione creerebbe una dipendenza circolare"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+        cant_link_an_issue_with_a_descendant: "Una segnalazione non può essere collegata a una delle sue discendenti"
 
   actionview_instancetag_blank_option: Scegli
   
@@ -141,11 +142,11 @@
   general_pdf_encoding: ISO-8859-1
   general_first_day_of_week: '1'
   
-  notice_account_updated: L'utente è stata aggiornato.
+  notice_account_updated: L'utente è stato aggiornato.
   notice_account_invalid_creditentials: Nome utente o password non validi.
   notice_account_password_updated: La password è stata aggiornata.
   notice_account_wrong_password: Password errata
-  notice_account_register_done: L'utente è stata creato.
+  notice_account_register_done: L'utente è stato creato.
   notice_account_unknown_email: Utente sconosciuto.
   notice_can_t_change_password: Questo utente utilizza un metodo di autenticazione esterno. Impossibile cambiare la password.
   notice_account_lost_email_sent: Ti è stata spedita una email con le istruzioni per cambiare la password.
@@ -157,20 +158,20 @@
   notice_file_not_found: La pagina desiderata non esiste o è stata rimossa.
   notice_locking_conflict: Le informazioni sono state modificate da un altro utente.
   notice_not_authorized: Non sei autorizzato ad accedere a questa pagina.
-  notice_email_sent: "Una email è stata spedita a {{value}}"
-  notice_email_error: "Si è verificato un errore durante l'invio di una email ({{value}})"
+  notice_email_sent: "Una email è stata spedita a %{value}"
+  notice_email_error: "Si è verificato un errore durante l'invio di una email (%{value})"
   notice_feeds_access_key_reseted: La tua chiave di accesso RSS è stata reimpostata.
   
   error_scm_not_found: "La risorsa e/o la versione non esistono nel repository."
-  error_scm_command_failed: "Si è verificato un errore durante l'accesso al repository: {{value}}"
+  error_scm_command_failed: "Si è verificato un errore durante l'accesso al repository: %{value}"
   
-  mail_subject_lost_password: "Password {{value}}"
+  mail_subject_lost_password: "Password %{value}"
   mail_body_lost_password: 'Per cambiare la password, usa il seguente collegamento:'
-  mail_subject_register: "Attivazione utente {{value}}"
+  mail_subject_register: "Attivazione utente %{value}"
   mail_body_register: "Per attivare l'utente, usa il seguente collegamento:"
   
   gui_validation_error: 1 errore
-  gui_validation_error_plural: "{{count}} errori"
+  gui_validation_error_plural: "%{count} errori"
   
   field_name: Nome
   field_description: Descrizione
@@ -232,6 +233,7 @@
   field_attr_lastname: Attributo cognome
   field_attr_mail: Attributo email
   field_onthefly: Creazione utente "al volo"
+  field_start_date: Inizio
   field_done_ratio: % completato
   field_auth_source: Modalità di autenticazione
   field_hide_mail: Nascondi il mio indirizzo email
@@ -281,7 +283,7 @@
   label_x_projects:
     zero:  nessun progetto
     one:   1 progetto
-    other: "{{count}} progetti"
+    other: "%{count} progetti"
   label_project_all: Tutti i progetti
   label_project_latest: Ultimi progetti registrati
   label_issue: Segnalazione
@@ -348,8 +350,8 @@
   label_text: Testo esteso
   label_attribute: Attributo
   label_attribute_plural: Attributi
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Download"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Download"
   label_no_data: Nessun dato disponibile
   label_change_status: Cambia stato
   label_history: Cronologia
@@ -378,17 +380,17 @@
   label_closed_issues: chiusa
   label_closed_issues_plural: chiuse
   label_x_open_issues_abbr_on_total:
-    zero:  0 aperte / {{total}}
-    one:   1 aperta / {{total}}
-    other: "{{count}} aperte / {{total}}"
+    zero:  0 aperte / %{total}
+    one:   1 aperta / %{total}
+    other: "%{count} aperte / %{total}"
   label_x_open_issues_abbr:
     zero:  0 aperte
     one:   1 aperta
-    other: "{{count}} aperte"
+    other: "%{count} aperte"
   label_x_closed_issues_abbr:
     zero:  0 chiuse
     one:   1 chiusa
-    other: "{{count}} chiuse"
+    other: "%{count} chiuse"
   label_total: Totale
   label_permissions: Permessi
   label_current_status: Stato attuale
@@ -405,7 +407,7 @@
   label_months_from: mesi da
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "ultime {{count}} modifiche"
+  label_last_changes: "ultime %{count} modifiche"
   label_change_view_all: Tutte le modifiche
   label_personalize_page: Personalizza la pagina
   label_comment: Commento
@@ -413,7 +415,7 @@
   label_x_comments:
     zero: nessun commento
     one: 1 commento
-    other: "{{count}} commenti"
+    other: "%{count} commenti"
   label_comment_add: Aggiungi un commento
   label_comment_added: Commento aggiunto
   label_comment_delete: Elimina commenti
@@ -437,8 +439,8 @@
   label_day_plural: giorni
   label_repository: Repository
   label_browse: Sfoglia
-  label_modification: "{{count}} modifica"
-  label_modification_plural: "{{count}} modifiche"
+  label_modification: "%{count} modifica"
+  label_modification_plural: "%{count} modifiche"
   label_revision: Versione
   label_revision_plural: Versioni
   label_added: aggiunto
@@ -453,15 +455,15 @@
   label_sort_lower: Giù
   label_sort_lowest: Sposta in fondo
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Da ultimare in {{value}}"
-  label_roadmap_overdue: "{{value}} di ritardo"
+  label_roadmap_due_in: "Da ultimare in %{value}"
+  label_roadmap_overdue: "%{value} di ritardo"
   label_roadmap_no_issues: Nessuna segnalazione per questa versione
   label_search: Ricerca
   label_result_plural: Risultati
   label_all_words: Tutte le parole
   label_wiki: Wiki
   label_wiki_edit: Modifica wiki
-  label_wiki_edit_plural: Modfiche wiki
+  label_wiki_edit_plural: Modifiche wiki
   label_wiki_page: Pagina Wiki
   label_wiki_page_plural: Pagine wiki
   label_index_by_title: Ordina per titolo
@@ -472,8 +474,8 @@
   label_changes_details: Particolari di tutti i cambiamenti
   label_issue_tracking: Tracking delle segnalazioni
   label_spent_time: Tempo impiegato
-  label_f_hour: "{{value}} ora"
-  label_f_hour_plural: "{{value}} ore"
+  label_f_hour: "%{value} ora"
+  label_f_hour_plural: "%{value} ore"
   label_time_tracking: Tracking del tempo
   label_change_plural: Modifiche
   label_statistics: Statistiche
@@ -520,12 +522,12 @@
   label_date_from: Da
   label_date_to: A
   label_language_based: Basato sul linguaggio
-  label_sort_by: "Ordina per {{value}}"
+  label_sort_by: "Ordina per %{value}"
   label_send_test_email: Invia una email di prova
-  label_feeds_access_key_created_on: "chiave di accesso RSS creata {{value}} fa"
+  label_feeds_access_key_created_on: "chiave di accesso RSS creata %{value} fa"
   label_module_plural: Moduli
-  label_added_time_by: "Aggiunto da {{author}} {{age}} fa"
-  label_updated_time: "Aggiornato {{value}} fa"
+  label_added_time_by: "Aggiunto da %{author} %{age} fa"
+  label_updated_time: "Aggiornato %{value} fa"
   label_jump_to_a_project: Vai al progetto...
   
   button_login: Entra
@@ -575,16 +577,16 @@
   text_tip_issue_end_day: attività che terminano in questa giornata
   text_tip_issue_begin_end_day: attività che iniziano e terminano in questa giornata
   text_project_identifier_info: "Lettere minuscole (a-z), numeri e trattini permessi.<br />Una volta salvato, l'identificativo non può essere modificato."
-  text_caracters_maximum: "massimo {{count}} caratteri."
-  text_length_between: "Lunghezza compresa tra {{min}} e {{max}} caratteri."
+  text_caracters_maximum: "massimo %{count} caratteri."
+  text_length_between: "Lunghezza compresa tra %{min} e %{max} caratteri."
   text_tracker_no_workflow: Nessun workflow definito per questo tracker
   text_unallowed_characters: Caratteri non permessi
   text_comma_separated: Valori multipli permessi (separati da virgole).
   text_issues_ref_in_commit_messages: Segnalazioni di riferimento e chiusura nei messaggi di commit
-  text_issue_added: "E' stata segnalata l'anomalia {{id}} da {{author}}."
-  text_issue_updated: "L'anomalia {{id}} è stata aggiornata da {{author}}."
+  text_issue_added: "E' stata segnalata l'anomalia %{id} da %{author}."
+  text_issue_updated: "L'anomalia %{id} è stata aggiornata da %{author}."
   text_wiki_destroy_confirmation: Sicuro di voler eliminare questo wiki e tutti i suoi contenuti?
-  text_issue_category_destroy_question: "Alcune segnalazioni ({{count}}) risultano assegnate a questa categoria. Cosa vuoi fare ?"
+  text_issue_category_destroy_question: "Alcune segnalazioni (%{count}) risultano assegnate a questa categoria. Cosa vuoi fare ?"
   text_issue_category_destroy_assignments: Rimuovi le assegnazioni a questa categoria
   text_issue_category_reassign_to: Riassegna segnalazioni a questa categoria
   
@@ -622,7 +624,7 @@
   notice_no_issue_selected: "Nessuna segnalazione selezionata! Seleziona le segnalazioni che intendi modificare."
   label_bulk_edit_selected_issues: Modifica massiva delle segnalazioni selezionate
   label_no_change_option: (Nessuna modifica)
-  notice_failed_to_save_issues: "Impossibile salvare {{count}} segnalazioni su {{total}} selezionate: {{ids}}."
+  notice_failed_to_save_issues: "Impossibile salvare %{count} segnalazioni su %{total} selezionate: %{ids}."
   label_theme: Tema
   label_default: Predefinito
   label_search_titles_only: Cerca solo nei titoli
@@ -634,37 +636,37 @@
   setting_emails_footer: Piè di pagina email
   label_float: Decimale
   button_copy: Copia
-  mail_body_account_information_external: "Puoi utilizzare il tuo account {{value}} per accedere al sistema."
+  mail_body_account_information_external: "Puoi utilizzare il tuo account %{value} per accedere al sistema."
   mail_body_account_information: Le informazioni riguardanti il tuo account
   setting_protocol: Protocollo
   label_user_mail_no_self_notified: "Non voglio notifiche riguardanti modifiche da me apportate"
   setting_time_format: Formato ora
   label_registration_activation_by_email: attivazione account via email
-  mail_subject_account_activation_request: "{{value}} richiesta attivazione account"
-  mail_body_account_activation_request: "Un nuovo utente ({{value}}) ha effettuato la registrazione. Il suo account è in attesa di abilitazione da parte tua:"
+  mail_subject_account_activation_request: "%{value} richiesta attivazione account"
+  mail_body_account_activation_request: "Un nuovo utente (%{value}) ha effettuato la registrazione. Il suo account è in attesa di abilitazione da parte tua:"
   label_registration_automatic_activation: attivazione account automatica
   label_registration_manual_activation: attivazione account manuale
   notice_account_pending: "Il tuo account è stato creato ed è in attesa di attivazione da parte dell'amministratore."
   field_time_zone: Fuso orario
-  text_caracters_minimum: "Deve essere lungo almeno {{count}} caratteri."
+  text_caracters_minimum: "Deve essere lungo almeno %{count} caratteri."
   setting_bcc_recipients: Destinatari in copia nascosta (bcc)
   button_annotate: Annota
-  label_issues_by: "Segnalazioni di {{value}}"
+  label_issues_by: "Segnalazioni di %{value}"
   field_searchable: Ricercabile
-  label_display_per_page: "Per pagina: {{value}}"
+  label_display_per_page: "Per pagina: %{value}"
   setting_per_page_options: Opzioni oggetti per pagina
   label_age: Età
   notice_default_data_loaded: Configurazione predefinita caricata con successo.
   text_load_default_configuration: Carica la configurazione predefinita
   text_no_configuration_data: "Ruoli, tracker, stati delle segnalazioni e workflow non sono stati ancora configurati.\nE' vivamente consigliato caricare la configurazione predefinita. Potrai modificarla una volta caricata."
-  error_can_t_load_default_data: "Non è stato possibile caricare la configurazione predefinita : {{value}}"
+  error_can_t_load_default_data: "Non è stato possibile caricare la configurazione predefinita : %{value}"
   button_update: Aggiorna
   label_change_properties: Modifica le proprietà
   label_general: Generale
   label_repository_plural: Repository
   label_associated_revisions: Revisioni associate
   setting_user_format: Formato visualizzazione utenti
-  text_status_changed_by_changeset: "Applicata nel changeset {{value}}."
+  text_status_changed_by_changeset: "Applicata nel changeset %{value}."
   label_more: Altro
   text_issues_destroy_confirmation: 'Sei sicuro di voler eliminare le segnalazioni selezionate?'
   label_scm: SCM
@@ -691,7 +693,7 @@
   label_ldap_authentication: Autenticazione LDAP
   label_downloads_abbr: D/L
   label_this_month: questo mese
-  label_last_n_days: "ultimi {{count}} giorni"
+  label_last_n_days: "ultimi %{count} giorni"
   label_all_time: sempre
   label_this_year: quest'anno
   label_date_range: Intervallo di date
@@ -700,7 +702,7 @@
   label_last_month: ultimo mese
   label_add_another_file: Aggiungi un altro file
   label_optional_description: Descrizione opzionale
-  text_destroy_time_entries_question: "{{hours}} ore risultano spese sulle segnalazioni che stai per eliminare. Cosa vuoi fare ?"
+  text_destroy_time_entries_question: "%{hours} ore risultano spese sulle segnalazioni che stai per eliminare. Cosa vuoi fare ?"
   error_issue_not_found_in_project: 'La segnalazione non è stata trovata o non appartiene al progetto'
   text_assign_time_entries_to_project: Assegna le ore segnalate al progetto
   text_destroy_time_entries: Elimina le ore segnalate
@@ -715,15 +717,15 @@
   setting_default_projects_public: I nuovi progetti sono pubblici in modo predefinito
   error_scm_annotate: "L'oggetto non esiste o non può essere annotato."
   label_planning: Pianificazione
-  text_subprojects_destroy_warning: "Anche i suoi sottoprogetti: {{value}} verranno eliminati."
-  label_and_its_subprojects: "{{value}} ed i suoi sottoprogetti"
-  mail_body_reminder: "{{count}} segnalazioni che ti sono state assegnate scadranno nei prossimi {{days}} giorni:"
-  mail_subject_reminder: "{{count}} segnalazioni in scadenza nei prossimi {{days}} giorni"
-  text_user_wrote: "{{value}} ha scritto:"
+  text_subprojects_destroy_warning: "Anche i suoi sottoprogetti: %{value} verranno eliminati."
+  label_and_its_subprojects: "%{value} ed i suoi sottoprogetti"
+  mail_body_reminder: "%{count} segnalazioni che ti sono state assegnate scadranno nei prossimi %{days} giorni:"
+  mail_subject_reminder: "%{count} segnalazioni in scadenza nei prossimi %{days} giorni"
+  text_user_wrote: "%{value} ha scritto:"
   label_duplicated_by: duplicato da
   setting_enabled_scm: SCM abilitato
   text_enumeration_category_reassign_to: 'Riassegnale a questo valore:'
-  text_enumeration_destroy_question: "{{count}} oggetti hanno un assegnamento su questo valore."
+  text_enumeration_destroy_question: "%{count} oggetti hanno un assegnamento su questo valore."
   label_incoming_emails: Email in arrivo
   label_generate_key: Genera una chiave
   setting_mail_handler_api_enabled: Abilita WS per le email in arrivo
@@ -789,12 +791,12 @@
   text_repository_usernames_mapping: "Seleziona per aggiornare la corrispondenza tra gli utenti Redmine e quelli presenti nel log del repository.\nGli utenti Redmine e repository con lo stesso note utente o email sono mappati automaticamente."
   permission_edit_own_messages: Modifica propri messaggi
   permission_delete_own_messages: Elimina propri messaggi
-  label_user_activity: "attività di {{value}}"
-  label_updated_time_by: "Aggiornato da {{author}} {{age}} fa"
+  label_user_activity: "attività di %{value}"
+  label_updated_time_by: "Aggiornato da %{author} %{age} fa"
   text_diff_truncated: '... Le differenze sono state troncate perchè superano il limite massimo visualizzabile.'
   setting_diff_max_lines_displayed: Limite massimo di differenze (linee) mostrate
   text_plugin_assets_writable: Directory attività dei plugins scrivibile
-  warning_attachments_not_saved: "{{count}} file non possono essere salvati."
+  warning_attachments_not_saved: "%{count} file non possono essere salvati."
   button_create_and_continue: Crea e continua
   text_custom_field_possible_values_info: 'Un valore per ogni riga'
   label_display: Mostra
@@ -809,21 +811,21 @@
   label_descending: Discendente
   label_sort: Ordina
   label_ascending: Ascendente
-  label_date_from_to: Da {{start}} a {{end}}
+  label_date_from_to: Da %{start} a %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Questa pagina ha {{descendants}} pagine figlie. Cosa ne vuoi fare?
+  text_wiki_page_destroy_question: Questa pagina ha %{descendants} pagine figlie. Cosa ne vuoi fare?
   text_wiki_page_reassign_children: Riassegna le pagine figlie al padre di questa pagina
   text_wiki_page_nullify_children: Mantieni le pagine figlie come pagine radice
   text_wiki_page_destroy_children: Elimina le pagine figlie e tutta la discendenza
   setting_password_min_length: Lunghezza minima password
   field_group_by: Raggruppa risultati per
-  mail_subject_wiki_content_updated: "La pagina wiki '{{id}}' è stata aggiornata"
+  mail_subject_wiki_content_updated: "La pagina wiki '%{id}' è stata aggiornata"
   label_wiki_content_added: Aggiunta pagina al wiki
-  mail_subject_wiki_content_added: "La pagina '{{id}}' è stata aggiunta al wiki"
-  mail_body_wiki_content_added: La pagina '{{id}}' è stata aggiunta al wiki da {{author}}.
+  mail_subject_wiki_content_added: "La pagina '%{id}' è stata aggiunta al wiki"
+  mail_body_wiki_content_added: La pagina '%{id}' è stata aggiunta al wiki da %{author}.
   label_wiki_content_updated: Aggiornata pagina wiki
-  mail_body_wiki_content_updated: La pagina '{{id}}' wiki è stata aggiornata da{{author}}.
+  mail_body_wiki_content_updated: La pagina '%{id}' wiki è stata aggiornata da%{author}.
   permission_add_project: Crea progetto
   setting_new_project_user_role_id: Ruolo assegnato agli utenti non amministratori che creano un progetto
   label_view_all_revisions: Mostra tutte le revisioni
@@ -831,14 +833,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nessun tracker è associato a questo progetto. Per favore verifica le impostazioni del Progetto.
   error_no_default_issue_status: Nessuno stato predefinito delle segnalazioni è configurato. Per favore verifica le impostazioni (Vai in "Amministrazione -> Stati segnalazioni").
-  text_journal_changed: "{{label}} modificata da {{old}} a {{new}}"
-  text_journal_set_to: "{{label}} impostata a {{value}}"
-  text_journal_deleted: "{{label}} eliminata ({{old}})"
+  text_journal_changed: "%{label} modificata da %{old} a %{new}"
+  text_journal_set_to: "%{label} impostata a %{value}"
+  text_journal_deleted: "%{label} eliminata (%{old})"
   label_group_plural: Gruppi
   label_group: Gruppo
   label_group_new: Nuovo gruppo
   label_time_entry_plural: Tempo impiegato
-  text_journal_added: "{{value}} {{label}} aggiunto"
+  text_journal_added: "%{value} %{label} aggiunto"
   field_active: Attivo
   enumeration_system_activity: Attività di sistema
   permission_delete_issue_watchers: Elimina osservatori
@@ -873,9 +875,9 @@
   setting_start_of_week: Avvia calendari il
   permission_view_issues: Mostra segnalazioni
   label_display_used_statuses_only: Mostra solo stati che vengono usati per questo tracker
-  label_revision_id: Revisione {{value}}
+  label_revision_id: Revisione %{value}
   label_api_access_key: Chiave di accesso API
-  label_api_access_key_created_on: Chiave di accesso API creata {{value}} fa
+  label_api_access_key_created_on: Chiave di accesso API creata %{value} fa
   label_feeds_access_key: Chiave di accesso RSS
   notice_api_access_key_reseted: La chiave di accesso API è stata reimpostata.
   setting_rest_api_enabled: Abilita il servizio web REST
@@ -902,32 +904,36 @@
   label_subtask_plural: Sottoattività
   label_project_copy_notifications: Invia notifiche email durante la copia del progetto
   error_can_not_delete_custom_field: Impossibile eliminare il campo personalizzato
-  error_unable_to_connect: Impossibile connettersi ({{value}})
+  error_unable_to_connect: Impossibile connettersi (%{value})
   error_can_not_remove_role: Questo ruolo è in uso e non può essere eliminato.
   error_can_not_delete_tracker: Questo tracker contiene segnalazioni e non può essere eliminato.
   field_principal: Principale
   label_my_page_block: La mia pagina di blocco
-  notice_failed_to_save_members: "Impossibile salvare il membro(i): {{errors}}."
+  notice_failed_to_save_members: "Impossibile salvare il membro(i): %{errors}."
   text_zoom_out: Riduci ingrandimento
   text_zoom_in: Aumenta ingrandimento
   notice_unable_delete_time_entry: Impossibile eliminare il valore time log.
   label_overall_spent_time: Totale tempo impiegato
-  field_time_entries: Log time
+  field_time_entries: Tempo di collegamento
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  project_module_calendar: Calendario
+  button_edit_associated_wikipage: "Modifica la pagina wiki associata: %{page_title}"
+  text_are_you_sure_with_children: Eliminare la segnalazione e tutte le discendenti?
+  field_text: Campo di testo
+  label_user_mail_option_only_owner: Solo se io sono il proprietario
+  setting_default_notification_option: Opzione di notifica predefinita
+  label_user_mail_option_only_my_events: Solo se sono un osservatore o sono coinvolto
+  label_user_mail_option_only_assigned: Solo quando mi assegnano attività
+  label_user_mail_option_none: Nessun evento
+  field_member_of_group: Gruppo dell'assegnatario
+  field_assigned_to_role: Ruolo dell'assegnatario
+  notice_not_authorized_archived_project: Il progetto a cui stai accedendo è stato archiviato.
+  label_principal_search: "Cerca utente o gruppo:"
+  label_user_search: "Cerca utente:"
+  field_visible: Visibile
+  setting_emails_header: Intestazione email
+  setting_commit_logtime_activity_id: Attività per il tempo di collegamento
+  text_time_logged_by_changeset: Usato nel changeset %{value}.
+  setting_commit_logtime_enabled: Abilita registrazione del tempo di collegamento
+  notice_gantt_chart_truncated: Il grafico è stato troncato perchè eccede il numero di oggetti (%{max}) da visualizzare
+  setting_gantt_items_limit: Massimo numero di oggetti da visualizzare sul diagramma di gantt
--- a/config/locales/.svn/text-base/ja.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/ja.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -36,37 +36,37 @@
       half_a_minute: "30ç§’å‰å¾Œ"
       less_than_x_seconds:
         one:   "1秒以内"
-        other: "{{count}}秒以内"
+        other: "%{count}秒以内"
       x_seconds:
         one:   "1ç§’"
-        other: "{{count}}ç§’"
+        other: "%{count}ç§’"
       less_than_x_minutes:
         one:   "1分以内"
-        other: "{{count}}分以内"
+        other: "%{count}分以内"
       x_minutes:
         one:   "1分"
-        other: "{{count}}分"
+        other: "%{count}分"
       about_x_hours:
         one:   "約1時間"
-        other: "約{{count}}時間"
+        other: "約%{count}時間"
       x_days:
         one:   "1æ—¥"
-        other: "{{count}}æ—¥"
+        other: "%{count}æ—¥"
       about_x_months:
         one:   "約1ヶ月"
-        other: "約{{count}}ヶ月"
+        other: "約%{count}ヶ月"
       x_months:
         one:   "1ヶ月"
-        other: "{{count}}ヶ月"
+        other: "%{count}ヶ月"
       about_x_years:
         one:   "ç´„1å¹´"
-        other: "ç´„{{count}}å¹´"
+        other: "ç´„%{count}å¹´"
       over_x_years:
         one:   "1年以上"
-        other: "{{count}}年以上"
+        other: "%{count}年以上"
       almost_x_years:
         one:   "ã»ã¼1å¹´"
-        other: "ã»ã¼{{count}}å¹´"
+        other: "ã»ã¼%{count}å¹´"
 
   number:
     format:
@@ -116,8 +116,8 @@
     errors:
       template:
         header:
-          one:   "{{model}} ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-          other: "{{model}} ã« {{count}} ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+          one:   "%{model} ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+          other: "%{model} ã« %{count} ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
         body: "次ã®é …目を確èªã—ã¦ãã ã•ã„。"
 
       messages:
@@ -128,17 +128,17 @@
         accepted: "ã‚’å—諾ã—ã¦ãã ã•ã„。"
         empty: "を入力ã—ã¦ãã ã•ã„。"
         blank: "を入力ã—ã¦ãã ã•ã„。"
-        too_long: "ã¯{{count}}文字以内ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
-        too_short: "ã¯{{count}}文字以上ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
-        wrong_length: "ã¯{{count}}文字ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        too_long: "ã¯%{count}文字以内ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        too_short: "ã¯%{count}文字以上ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        wrong_length: "ã¯%{count}文字ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
         taken: "ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚"
         not_a_number: "ã¯æ•°å€¤ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
         not_a_date: "ã¯æ—¥ä»˜ã‚’入力ã—ã¦ãã ã•ã„。"
-        greater_than: "ã¯{{count}}より大ãã„値ã«ã—ã¦ãã ã•ã„。"
-        greater_than_or_equal_to: "ã¯{{count}}以上ã®å€¤ã«ã—ã¦ãã ã•ã„。"
-        equal_to: "ã¯{{count}}ã«ã—ã¦ãã ã•ã„。"
-        less_than: "ã¯{{count}}よりå°ã•ã„値ã«ã—ã¦ãã ã•ã„。"
-        less_than_or_equal_to: "ã¯{{count}}以下ã®å€¤ã«ã—ã¦ãã ã•ã„。"
+        greater_than: "ã¯%{count}より大ãã„値ã«ã—ã¦ãã ã•ã„。"
+        greater_than_or_equal_to: "ã¯%{count}以上ã®å€¤ã«ã—ã¦ãã ã•ã„。"
+        equal_to: "ã¯%{count}ã«ã—ã¦ãã ã•ã„。"
+        less_than: "ã¯%{count}よりå°ã•ã„値ã«ã—ã¦ãã ã•ã„。"
+        less_than_or_equal_to: "ã¯%{count}以下ã®å€¤ã«ã—ã¦ãã ã•ã„。"
         odd: "ã¯å¥‡æ•°ã«ã—ã¦ãã ã•ã„。"
         even: "ã¯å¶æ•°ã«ã—ã¦ãã ã•ã„。"
         greater_than_start_date: "を開始日より後ã«ã—ã¦ãã ã•ã„"
@@ -176,29 +176,30 @@
   notice_locking_conflict: 別ã®ãƒ¦ãƒ¼ã‚¶ãŒãƒ‡ãƒ¼ã‚¿ã‚’æ›´æ–°ã—ã¦ã„ã¾ã™ã€‚
   notice_not_authorized: ã“ã®ãƒšãƒ¼ã‚¸ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯èªè¨¼ãŒå¿…è¦ã§ã™ã€‚
   notice_not_authorized_archived_project: ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã¯æ›¸åº«ã«ä¿å­˜ã•れã¦ã„ã¾ã™ã€‚
-  notice_email_sent: "{{value}} å®›ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚"
-  notice_email_error: "メールé€ä¿¡ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠({{value}})"
+  notice_email_sent: "%{value} å®›ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚"
+  notice_email_error: "メールé€ä¿¡ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(%{value})"
   notice_feeds_access_key_reseted: RSSã‚¢ã‚¯ã‚»ã‚¹ã‚­ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã—ãŸã€‚
   notice_api_access_key_reseted: APIã‚¢ã‚¯ã‚»ã‚¹ã‚­ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã—ãŸã€‚
-  notice_failed_to_save_issues: "{{total}}ä»¶ã®ã†ã¡{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ: {{ids}}."
-  notice_failed_to_save_members: "メンãƒãƒ¼ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ: {{errors}}."
+  notice_failed_to_save_issues: "%{total}ä»¶ã®ã†ã¡%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{ids}."
+  notice_failed_to_save_members: "メンãƒãƒ¼ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ: %{errors}."
   notice_no_issue_selected: "ãƒã‚±ãƒƒãƒˆãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“! 更新対象ã®ãƒã‚±ãƒƒãƒˆã‚’é¸æŠžã—ã¦ãã ã•ã„。"
   notice_account_pending: アカウントã¯ä½œæˆæ¸ˆã¿ã§ã€ç®¡ç†è€…ã®æ‰¿èªå¾…ã¡ã§ã™ã€‚
   notice_default_data_loaded: デフォルト設定をロードã—ã¾ã—ãŸã€‚
   notice_unable_delete_version: ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’削除ã§ãã¾ã›ã‚“
   notice_unable_delete_time_entry: 作業時間を削除ã§ãã¾ã›ã‚“
   notice_issue_done_ratios_updated: ãƒã‚±ãƒƒãƒˆã®é€²æ—ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚
+  notice_gantt_chart_truncated: ガントãƒãƒ£ãƒ¼ãƒˆã¯ã€æœ€å¤§è¡¨ç¤ºé …目数(%{max})ã‚’è¶…ãˆãŸãŸãŸã‚切りæ¨ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚
   
-  error_can_t_load_default_data: "デフォルト設定ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: {{value}}"
+  error_can_t_load_default_data: "デフォルト設定ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{value}"
   error_scm_not_found: リãƒã‚¸ãƒˆãƒªã«ã€ã‚¨ãƒ³ãƒˆãƒª/リビジョンãŒå­˜åœ¨ã—ã¾ã›ã‚“。
-  error_scm_command_failed: "リãƒã‚¸ãƒˆãƒªã¸ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¦ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã—ãŸ: {{value}}"
+  error_scm_command_failed: "リãƒã‚¸ãƒˆãƒªã¸ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¦ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã—ãŸ: %{value}"
   error_scm_annotate: "エントリãŒå­˜åœ¨ã—ãªã„ã€ã‚‚ã—ãã¯ã‚¢ãƒŽãƒ†ãƒ¼ãƒˆã§ãã¾ã›ã‚“。"
   error_issue_not_found_in_project: 'ãƒã‚±ãƒƒãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã€ã‚‚ã—ãã¯ã“ã®ãƒ—ロジェクトã«å±žã—ã¦ã„ã¾ã›ã‚“'
   error_unable_delete_issue_status: "ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
   error_no_tracker_in_project: 'ã“ã®ãƒ—ロジェクトã«ã¯ãƒˆãƒ©ãƒƒã‚«ãƒ¼ãŒç™»éŒ²ã•れã¦ã„ã¾ã›ã‚“。プロジェクト設定を確èªã—ã¦ãã ã•ã„。'
   error_no_default_issue_status: 'デフォルトã®ãƒã‚±ãƒƒãƒˆã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“。設定を確èªã—ã¦ãã ã•ã„(管ç†â†’ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ï¼‰ã€‚'
   error_can_not_delete_custom_field: 'カスタムフィールドを削除ã§ãã¾ã›ã‚“。'
-  error_unable_to_connect: "接続ã§ãã¾ã›ã‚“。 ({{value}})"
+  error_unable_to_connect: "接続ã§ãã¾ã›ã‚“。 (%{value})"
   error_can_not_remove_role: 'ã“ã®ãƒ­ãƒ¼ãƒ«ã¯ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚削除ã§ãã¾ã›ã‚“。'
   error_can_not_reopen_issue_on_closed_version: '終了ã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã²ã‚‚付ã‘ã•れãŸãƒã‚±ãƒƒãƒˆã®å†ã‚ªãƒ¼ãƒ—ンã¯ã§ãã¾ã›ã‚“。'
   error_can_not_archive_project: ã“ã®ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã¯æ›¸åº«ã«ä¿å­˜ã§ãã¾ã›ã‚“
@@ -207,25 +208,25 @@
   error_workflow_copy_target: 'コピー先ã¨ãªã‚‹ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã¨ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„'
   error_can_not_delete_tracker: 'ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã¯ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚削除ã§ãã¾ã›ã‚“。'
   
-  warning_attachments_not_saved: "{{count}}å€‹ã®æ·»ä»˜ãƒ•ァイルãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
+  warning_attachments_not_saved: "%{count}å€‹ã®æ·»ä»˜ãƒ•ァイルãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
   
-  mail_subject_lost_password: "{{value}} パスワードå†ç™ºè¡Œ"
+  mail_subject_lost_password: "%{value} パスワードå†ç™ºè¡Œ"
   mail_body_lost_password: 'パスワードを変更ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ãƒªãƒ³ã‚¯ã‚’クリックã—ã¦ãã ã•ã„:'
-  mail_subject_register: "{{value}} アカウント登録ã®ç¢ºèª"
+  mail_subject_register: "%{value} アカウント登録ã®ç¢ºèª"
   mail_body_register: 'アカウント登録を完了ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’クリックã—ã¦ãã ã•ã„:'
-  mail_body_account_information_external: "{{value}} アカウントを使ã£ã¦ã«ãƒ­ã‚°ã‚¤ãƒ³ã§ãã¾ã™ã€‚"
+  mail_body_account_information_external: "%{value} アカウントを使ã£ã¦ã«ãƒ­ã‚°ã‚¤ãƒ³ã§ãã¾ã™ã€‚"
   mail_body_account_information: アカウント情報
-  mail_subject_account_activation_request: "{{value}} ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æ‰¿èªè¦æ±‚"
-  mail_body_account_activation_request: "æ–°ã—ã„ユーザ {{value}} ãŒç™»éŒ²ã•れã¾ã—ãŸã€‚ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ã‚ãªãŸã®æ‰¿èªå¾…ã¡ã§ã™ï¼š"
-  mail_subject_reminder: "{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ{{days}}日以内ã«åˆ°æ¥ã—ã¾ã™"
-  mail_body_reminder: "{{count}}ä»¶ã®æ‹…当ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ{{days}}日以内ã«åˆ°æ¥ã—ã¾ã™:"
-  mail_subject_wiki_content_added: "Wikiページ {{id}} ãŒè¿½åŠ ã•れã¾ã—ãŸ"
-  mail_body_wiki_content_added: "{{author}} ã«ã‚ˆã£ã¦Wikiページ {{id}} ãŒè¿½åŠ ã•れã¾ã—ãŸã€‚"
-  mail_subject_wiki_content_updated: "Wikiページ {{id}} ãŒæ›´æ–°ã•れã¾ã—ãŸ"
-  mail_body_wiki_content_updated: "{{author}} ã«ã‚ˆã£ã¦Wikiページ {{id}} ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚"
+  mail_subject_account_activation_request: "%{value} ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æ‰¿èªè¦æ±‚"
+  mail_body_account_activation_request: "æ–°ã—ã„ユーザ %{value} ãŒç™»éŒ²ã•れã¾ã—ãŸã€‚ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ã‚ãªãŸã®æ‰¿èªå¾…ã¡ã§ã™ï¼š"
+  mail_subject_reminder: "%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ%{days}日以内ã«åˆ°æ¥ã—ã¾ã™"
+  mail_body_reminder: "%{count}ä»¶ã®æ‹…当ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ%{days}日以内ã«åˆ°æ¥ã—ã¾ã™:"
+  mail_subject_wiki_content_added: "Wikiページ %{id} ãŒè¿½åŠ ã•れã¾ã—ãŸ"
+  mail_body_wiki_content_added: "%{author} ã«ã‚ˆã£ã¦Wikiページ %{id} ãŒè¿½åŠ ã•れã¾ã—ãŸã€‚"
+  mail_subject_wiki_content_updated: "Wikiページ %{id} ãŒæ›´æ–°ã•れã¾ã—ãŸ"
+  mail_body_wiki_content_updated: "%{author} ã«ã‚ˆã£ã¦Wikiページ %{id} ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚"
   
   gui_validation_error: 1ä»¶ã®ã‚¨ãƒ©ãƒ¼
-  gui_validation_error_plural: "{{count}}ä»¶ã®ã‚¨ãƒ©ãƒ¼"
+  gui_validation_error_plural: "%{count}ä»¶ã®ã‚¨ãƒ©ãƒ¼"
   
   field_name: åç§°
   field_description: 説明
@@ -288,6 +289,7 @@
   field_attr_lastname: 苗字属性
   field_attr_mail: メール属性
   field_onthefly: ã‚ã‚ã›ã¦ãƒ¦ãƒ¼ã‚¶ã‚’作æˆ
+  field_start_date: é–‹å§‹æ—¥
   field_done_ratio: é€²æ— %
   field_auth_source: èªè¨¼æ–¹å¼
   field_hide_mail: メールアドレスを隠ã™
@@ -322,6 +324,7 @@
   field_member_of_group: 担当者ã®ã‚°ãƒ«ãƒ¼ãƒ—
   field_assigned_to_role: 担当者ã®ãƒ­ãƒ¼ãƒ«
   field_text: テキスト
+  field_visible: 表示
   
   setting_app_title: アプリケーションã®ã‚¿ã‚¤ãƒˆãƒ«
   setting_app_subtitle: アプリケーションã®ã‚µãƒ–タイトル
@@ -351,6 +354,7 @@
   setting_issue_list_default_columns: ãƒã‚±ãƒƒãƒˆã®ä¸€è¦§ã§è¡¨ç¤ºã™ã‚‹é …ç›®
   setting_repositories_encodings: リãƒã‚¸ãƒˆãƒªã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
   setting_commit_logs_encoding: コミットメッセージã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
+  setting_emails_header: メールã®ãƒ˜ãƒƒãƒ€
   setting_emails_footer: メールã®ãƒ•ッタ
   setting_protocol: プロトコル
   setting_per_page_options: ページ毎ã®è¡¨ç¤ºä»¶æ•°
@@ -377,6 +381,9 @@
   setting_start_of_week: 週ã®é–‹å§‹æ›œæ—¥
   setting_rest_api_enabled: RESTã«ã‚ˆã‚‹Webサービスを有効ã«ã™ã‚‹
   setting_default_notification_option: デフォルトã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã‚ªãƒ—ション
+  setting_commit_logtime_enabled: コミット時ã«ä½œæ¥­æ™‚間を記録ã™ã‚‹
+  setting_commit_logtime_activity_id: 作業時間ã®ä½œæ¥­åˆ†é¡ž
+  setting_gantt_items_limit: ガントãƒãƒ£ãƒ¼ãƒˆæœ€å¤§è¡¨ç¤ºé …目数
   
   permission_add_project: プロジェクトã®è¿½åŠ 
   permission_add_subprojects: サブプロジェクトã®è¿½åŠ 
@@ -456,14 +463,14 @@
   label_x_projects:
     zero:  プロジェクトã¯ã‚りã¾ã›ã‚“
     one:   1プロジェクト
-    other: "{{count}}プロジェクト"
+    other: "%{count}プロジェクト"
   label_project_all: 全プロジェクト
   label_project_latest: 最近ã®ãƒ—ロジェクト
   label_issue: ãƒã‚±ãƒƒãƒˆ
   label_issue_new: æ–°ã—ã„ãƒã‚±ãƒƒãƒˆ
   label_issue_plural: ãƒã‚±ãƒƒãƒˆ
   label_issue_view_all: å…¨ã¦ã®ãƒã‚±ãƒƒãƒˆã‚’見る
-  label_issues_by: "{{value}} 別ã®ãƒã‚±ãƒƒãƒˆ"
+  label_issues_by: "%{value} 別ã®ãƒã‚±ãƒƒãƒˆ"
   label_issue_added: ãƒã‚±ãƒƒãƒˆãŒè¿½åŠ ã•れã¾ã—ãŸ
   label_issue_updated: ãƒã‚±ãƒƒãƒˆãŒæ›´æ–°ã•れã¾ã—ãŸ
   label_document: 文書
@@ -513,7 +520,7 @@
   label_registered_on: 登録日
   label_activity: 活動
   label_overall_activity: å…¨ã¦ã®æ´»å‹•
-  label_user_activity: "{{value}} ã®æ´»å‹•"
+  label_user_activity: "%{value} ã®æ´»å‹•"
   label_new: æ–°ã—ã作æˆ
   label_logged_as: ログイン中:
   label_environment: 環境
@@ -523,7 +530,7 @@
   label_auth_source_plural: èªè¨¼æ–¹å¼
   label_subproject_plural: サブプロジェクト
   label_subproject_new: æ–°ã—ã„サブプロジェクト
-  label_and_its_subprojects: "{{value}} ã¨ã‚µãƒ–プロジェクト"
+  label_and_its_subprojects: "%{value} ã¨ã‚µãƒ–プロジェクト"
   label_min_max_length: 最å°å€¤ - 最大値ã®é•·ã•
   label_list: リストã‹ã‚‰é¸æŠž
   label_date: 日付
@@ -534,8 +541,8 @@
   label_text: é•·ã„テキスト
   label_attribute: 属性
   label_attribute_plural: 属性
-  label_download: "{{count}}ダウンロード"
-  label_download_plural: "{{count}}ダウンロード"
+  label_download: "%{count}ダウンロード"
+  label_download_plural: "%{count}ダウンロード"
   label_no_data: 表示ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã›ã‚“
   label_change_status: ステータスã®å¤‰æ›´
   label_history: 履歴
@@ -567,17 +574,17 @@
   label_closed_issues: 完了
   label_closed_issues_plural: 完了
   label_x_open_issues_abbr_on_total:
-    zero:  0件未完了 / 全{{total}}件
-    one:   1件未完了 / 全{{total}}件
-    other: "{{count}}件未完了 / 全{{total}}件"
+    zero:  0件未完了 / 全%{total}件
+    one:   1件未完了 / 全%{total}件
+    other: "%{count}件未完了 / 全%{total}件"
   label_x_open_issues_abbr:
     zero:  0件未完了
     one:   1件未完了
-    other: "{{count}}件未完了"
+    other: "%{count}件未完了"
   label_x_closed_issues_abbr:
     zero:  0件完了
     one:   1件完了
-    other: "{{count}}件完了"
+    other: "%{count}件完了"
   label_total: åˆè¨ˆ
   label_permissions: 権é™
   label_current_status: ç¾åœ¨ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹
@@ -595,7 +602,7 @@
   label_months_from: ヶ月分
   label_gantt: ガントãƒãƒ£ãƒ¼ãƒˆ
   label_internal: 内部
-  label_last_changes: "最新ã®å¤‰æ›´ {{count}}ä»¶"
+  label_last_changes: "最新ã®å¤‰æ›´ %{count}ä»¶"
   label_change_view_all: å…¨ã¦ã®å¤‰æ›´ã‚’見る
   label_personalize_page: ã“ã®ãƒšãƒ¼ã‚¸ã‚’パーソナライズã™ã‚‹
   label_comment: コメント
@@ -603,7 +610,7 @@
   label_x_comments:
     zero: コメントãŒã‚りã¾ã›ã‚“
     one: 1コメント
-    other: "{{count}}コメント"
+    other: "%{count}コメント"
   label_comment_add: コメント追加
   label_comment_added: 追加ã•れãŸã‚³ãƒ¡ãƒ³ãƒˆ
   label_comment_delete: コメント削除
@@ -624,7 +631,7 @@
   label_yesterday: 昨日
   label_this_week: ã“ã®é€±
   label_last_week: 先週
-  label_last_n_days: "最後ã®{{count}}日間"
+  label_last_n_days: "最後ã®%{count}日間"
   label_this_month: 今月
   label_last_month: 先月
   label_this_year: 今年
@@ -638,13 +645,13 @@
   label_repository: リãƒã‚¸ãƒˆãƒª
   label_repository_plural: リãƒã‚¸ãƒˆãƒª
   label_browse: ブラウズ
-  label_modification: "{{count}}点ã®å¤‰æ›´"
-  label_modification_plural: "{{count}}点ã®å¤‰æ›´"
+  label_modification: "%{count}点ã®å¤‰æ›´"
+  label_modification_plural: "%{count}点ã®å¤‰æ›´"
   label_branch: ブランãƒ
   label_tag: ã‚¿ã‚°
   label_revision: リビジョン
   label_revision_plural: リビジョン
-  label_revision_id: リビジョン {{value}}
+  label_revision_id: リビジョン %{value}
   label_associated_revisions: 関係ã—ã¦ã„るリビジョン
   label_added: 追加
   label_modified: 変更
@@ -661,8 +668,8 @@
   label_sort_lower: 下ã¸
   label_sort_lowest: 一番下ã¸
   label_roadmap: ロードマップ
-  label_roadmap_due_in: "期日ã¾ã§ {{value}}"
-  label_roadmap_overdue: "{{value}} é…れ"
+  label_roadmap_due_in: "期日ã¾ã§ %{value}"
+  label_roadmap_overdue: "%{value} é…れ"
   label_roadmap_no_issues: ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é–¢ã™ã‚‹ãƒã‚±ãƒƒãƒˆã¯ã‚りã¾ã›ã‚“
   label_search: 検索
   label_result_plural: çµæžœ
@@ -681,8 +688,8 @@
   label_issue_tracking: ãƒã‚±ãƒƒãƒˆãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°
   label_spent_time: 作業時間ã®è¨˜éŒ²
   label_overall_spent_time: å…¨ã¦ã®ä½œæ¥­æ™‚é–“ã®è¨˜éŒ²
-  label_f_hour: "{{value}}時間"
-  label_f_hour_plural: "{{value}}時間"
+  label_f_hour: "%{value}時間"
+  label_f_hour_plural: "%{value}時間"
   label_time_tracking: 時間トラッキング
   label_change_plural: 変更
   label_statistics: 統計
@@ -733,15 +740,15 @@
   label_date_from: "日付指定: "
   label_date_to: ã‹ã‚‰
   label_language_based: 既定ã®è¨€èªžã®è¨­å®šã«å¾“ã†
-  label_sort_by: "ä¸¦ã³æ›¿ãˆ {{value}}"
+  label_sort_by: "ä¸¦ã³æ›¿ãˆ %{value}"
   label_send_test_email: テストメールをé€ä¿¡
   label_feeds_access_key: RSSアクセスキー
   label_missing_feeds_access_key: RSSアクセスキーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
-  label_feeds_access_key_created_on: "RSSアクセスキーã¯{{value}}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
+  label_feeds_access_key_created_on: "RSSアクセスキーã¯%{value}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
   label_module_plural: モジュール
-  label_added_time_by: "{{author}} ãŒ{{age}}å‰ã«è¿½åŠ "
-  label_updated_time_by: "{{author}} ãŒ{{age}}å‰ã«æ›´æ–°"
-  label_updated_time: "{{value}}å‰ã«æ›´æ–°"
+  label_added_time_by: "%{author} ãŒ%{age}å‰ã«è¿½åŠ "
+  label_updated_time_by: "%{author} ãŒ%{age}å‰ã«æ›´æ–°"
+  label_updated_time: "%{value}å‰ã«æ›´æ–°"
   label_jump_to_a_project: プロジェクトã¸ç§»å‹•...
   label_file_plural: ファイル
   label_changeset_plural: 更新履歴
@@ -761,7 +768,7 @@
   label_registration_activation_by_email: メールã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
   label_registration_manual_activation: 手動ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
   label_registration_automatic_activation: 自動ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
-  label_display_per_page: "1ページã«: {{value}}"
+  label_display_per_page: "1ページã«: %{value}"
   label_age: å¹´é½¢
   label_change_properties: プロパティã®å¤‰æ›´
   label_general: 全般
@@ -784,7 +791,7 @@
   label_sort: ソートæ¡ä»¶
   label_ascending: 昇順
   label_descending: é™é †
-  label_date_from_to: "{{start}}ã‹ã‚‰{{end}}ã¾ã§"
+  label_date_from_to: "%{start}ã‹ã‚‰%{end}ã¾ã§"
   label_wiki_content_added: WikiページãŒè¿½åŠ ã•れã¾ã—ãŸ
   label_wiki_content_updated: Wikiãƒšãƒ¼ã‚¸ãŒæ›´æ–°ã•れã¾ã—ãŸ
   label_group: グループ
@@ -803,9 +810,11 @@
   label_display_used_statuses_only: ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã§ä½¿ã‚れã¦ã„るステータスã®ã¿è¡¨ç¤ºã™ã‚‹
   label_api_access_key: APIアクセスキー
   label_missing_api_access_key: APIアクセスキーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
-  label_api_access_key_created_on: "APIアクセスキーã¯{{value}}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
+  label_api_access_key_created_on: "APIアクセスキーã¯%{value}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
   label_subtask_plural: å­ãƒã‚±ãƒƒãƒˆ
   label_project_copy_notifications: コピーã—ãŸãƒã‚±ãƒƒãƒˆã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã‚’é€ä¿¡ã™ã‚‹
+  label_principal_search: "ユーザã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢:"
+  label_user_search: "ãƒ¦ãƒ¼ã‚¶ã®æ¤œç´¢:"
   
   button_login: ログイン
   button_submit: 変更
@@ -817,7 +826,7 @@
   button_create_and_continue: 連続作æˆ
   button_test: テスト
   button_edit: 編集
-  button_edit_associated_wikipage: "関連ã™ã‚‹Wikiページを編集: {{page_title}}"
+  button_edit_associated_wikipage: "関連ã™ã‚‹Wikiページを編集: %{page_title}"
   button_add: 追加
   button_change: 変更
   button_apply: é©ç”¨
@@ -866,54 +875,55 @@
   text_regexp_info: 例) ^[A-Z0-9]+$
   text_min_max_length_info: 0ã ã¨ç„¡åˆ¶é™ã«ãªã‚Šã¾ã™
   text_project_destroy_confirmation: 本当ã«ã“ã®ãƒ—ロジェクトã¨é–¢é€£ãƒ‡ãƒ¼ã‚¿ã‚’削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
-  text_subprojects_destroy_warning: "サブプロジェクト {{value}} も削除ã•れã¾ã™ã€‚"
+  text_subprojects_destroy_warning: "サブプロジェクト %{value} も削除ã•れã¾ã™ã€‚"
   text_workflow_edit: ワークフローを編集ã™ã‚‹ãƒ­ãƒ¼ãƒ«ã¨ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã‚’é¸ã‚“ã§ãã ã•ã„
   text_are_you_sure: よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
   text_are_you_sure_with_children: ãƒã‚±ãƒƒãƒˆã¨ãã®å­ãƒã‚±ãƒƒãƒˆå…¨ã¦ã‚’削除ã—ã¾ã™ã‹?
-  text_journal_changed: "{{label}} ã‚’ {{old}} ã‹ã‚‰ {{new}} ã«å¤‰æ›´"
-  text_journal_set_to: "{{label}} ã‚’ {{value}} ã«ã‚»ãƒƒãƒˆ"
-  text_journal_deleted: "{{label}} を削除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} を追加"
+  text_journal_changed: "%{label} ã‚’ %{old} ã‹ã‚‰ %{new} ã«å¤‰æ›´"
+  text_journal_set_to: "%{label} ã‚’ %{value} ã«ã‚»ãƒƒãƒˆ"
+  text_journal_deleted: "%{label} を削除 (%{old})"
+  text_journal_added: "%{label} %{value} を追加"
   text_tip_issue_begin_day: ã“ã®æ—¥ã«é–‹å§‹ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_tip_issue_end_day: ã“ã®æ—¥ã«çµ‚了ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_tip_issue_begin_end_day: ã“ã®æ—¥ã®ã†ã¡ã«é–‹å§‹ã—ã¦çµ‚了ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_project_identifier_info: 'è‹±å°æ–‡å­—(a-z)ã¨æ•°å­—ã¨ãƒ€ãƒƒã‚·ãƒ¥(-)ãŒä½¿ãˆã¾ã™ã€‚<br />一度ä¿å­˜ã™ã‚‹ã¨ã€è­˜åˆ¥å­ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。'
-  text_caracters_maximum: "最大{{count}}文字ã§ã™ã€‚"
-  text_caracters_minimum: "最低{{count}}文字ã®é•·ã•ãŒå¿…è¦ã§ã™"
-  text_length_between: "é•·ã•ã¯{{min}}ã‹ã‚‰{{max}}文字ã¾ã§ã§ã™ã€‚"
+  text_caracters_maximum: "最大%{count}文字ã§ã™ã€‚"
+  text_caracters_minimum: "最低%{count}文字ã®é•·ã•ãŒå¿…è¦ã§ã™"
+  text_length_between: "é•·ã•ã¯%{min}ã‹ã‚‰%{max}文字ã¾ã§ã§ã™ã€‚"
   text_tracker_no_workflow: ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã«ãƒ¯ãƒ¼ã‚¯ãƒ•ローãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“
   text_unallowed_characters: æ¬¡ã®æ–‡å­—ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“
   text_comma_separated: (カンマã§åŒºåˆ‡ã‚‹ã“ã¨ã§)複数ã®å€¤ã‚’設定ã§ãã¾ã™ã€‚
   text_line_separated: (1行ã”ã¨ã«æ›¸ãã“ã¨ã§)複数ã®å€¤ã‚’設定ã§ãã¾ã™ã€‚
   text_issues_ref_in_commit_messages: コミットメッセージ内ã§ãƒã‚±ãƒƒãƒˆã®å‚ç…§/修正
-  text_issue_added: "ãƒã‚±ãƒƒãƒˆ {{id}} ㌠{{author}} ã«ã‚ˆã£ã¦å ±å‘Šã•れã¾ã—ãŸã€‚"
-  text_issue_updated: "ãƒã‚±ãƒƒãƒˆ {{id}} ㌠{{author}} ã«ã‚ˆã£ã¦æ›´æ–°ã•れã¾ã—ãŸã€‚"
+  text_issue_added: "ãƒã‚±ãƒƒãƒˆ %{id} ㌠%{author} ã«ã‚ˆã£ã¦å ±å‘Šã•れã¾ã—ãŸã€‚"
+  text_issue_updated: "ãƒã‚±ãƒƒãƒˆ %{id} ㌠%{author} ã«ã‚ˆã£ã¦æ›´æ–°ã•れã¾ã—ãŸã€‚"
   text_wiki_destroy_confirmation: 本当ã«ã“ã®wikiã¨ãã®å†…容ã®å…¨ã¦ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ
-  text_issue_category_destroy_question: "{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒã“ã®ã‚«ãƒ†ã‚´ãƒªã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
+  text_issue_category_destroy_question: "%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒã“ã®ã‚«ãƒ†ã‚´ãƒªã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
   text_issue_category_destroy_assignments: カテゴリã®å‰²ã‚Šå½“ã¦ã‚’削除ã™ã‚‹
   text_issue_category_reassign_to: ãƒã‚±ãƒƒãƒˆã‚’ã“ã®ã‚«ãƒ†ã‚´ãƒªã«å†å‰²ã‚Šå½“ã¦ã™ã‚‹
   text_user_mail_option: "æœªé¸æŠžã®ãƒ—ロジェクトã§ã¯ã€ã‚¦ã‚©ãƒƒãƒã¾ãŸã¯é–¢ä¿‚ã—ã¦ã„る事柄(例: 自分ãŒå ±å‘Šè€…ã‚‚ã—ãã¯æ‹…当者ã§ã‚ã‚‹ãƒã‚±ãƒƒãƒˆ)ã®ã¿ãƒ¡ãƒ¼ãƒ«ãŒé€ä¿¡ã•れã¾ã™ã€‚"
   text_no_configuration_data: "ロールã€ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã€ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã€ãƒ¯ãƒ¼ã‚¯ãƒ•ローãŒã¾ã è¨­å®šã•れã¦ã„ã¾ã›ã‚“。\nデフォルト設定ã®ãƒ­ãƒ¼ãƒ‰ã‚’å¼·ããŠå‹§ã‚ã—ã¾ã™ã€‚ロードã—ãŸå¾Œã€ãれを修正ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
   text_load_default_configuration: デフォルト設定をロード
-  text_status_changed_by_changeset: "更新履歴 {{value}} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
+  text_status_changed_by_changeset: "更新履歴 %{value} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
+  text_time_logged_by_changeset: "更新履歴 %{value} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
   text_issues_destroy_confirmation: '本当ã«é¸æŠžã—ãŸãƒã‚±ãƒƒãƒˆã‚’削除ã—ã¾ã™ã‹ï¼Ÿ'
   text_select_project_modules: 'ã“ã®ãƒ—ロジェクトã§ä½¿ç”¨ã™ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„:'
   text_default_administrator_account_changed: デフォルト管ç†ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒå¤‰æ›´æ¸ˆ
   text_file_repository_writable: ファイルリãƒã‚¸ãƒˆãƒªã«æ›¸ãè¾¼ã¿å¯èƒ½
   text_plugin_assets_writable: Plugin assetsãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ›¸ãè¾¼ã¿å¯èƒ½
   text_rmagick_available: RMagickãŒä½¿ç”¨å¯èƒ½ (オプション)
-  text_destroy_time_entries_question: ã“ã®ãƒã‚±ãƒƒãƒˆã®{{hours}}時間分ã®ä½œæ¥­è¨˜éŒ²ã®æ‰±ã„ã‚’é¸æŠžã—ã¦ãã ã•ã„。
+  text_destroy_time_entries_question: ã“ã®ãƒã‚±ãƒƒãƒˆã®%{hours}時間分ã®ä½œæ¥­è¨˜éŒ²ã®æ‰±ã„ã‚’é¸æŠžã—ã¦ãã ã•ã„。
   text_destroy_time_entries: 記録ã•れãŸä½œæ¥­æ™‚é–“ã‚’å«ã‚ã¦å‰Šé™¤
   text_assign_time_entries_to_project: 記録ã•れãŸä½œæ¥­æ™‚間をプロジェクト自体ã«å‰²ã‚Šå½“ã¦
   text_reassign_time_entries: '記録ã•れãŸä½œæ¥­æ™‚é–“ã‚’ã“ã®ãƒã‚±ãƒƒãƒˆã«å†å‰²ã‚Šå½“ã¦ï¼š'
-  text_user_wrote: "{{value}} ã¯æ›¸ãã¾ã—ãŸ:"
-  text_enumeration_destroy_question: "{{count}}個ã®ã‚ªãƒ–ジェクトãŒã“ã®å€¤ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
+  text_user_wrote: "%{value} ã¯æ›¸ãã¾ã—ãŸ:"
+  text_enumeration_destroy_question: "%{count}個ã®ã‚ªãƒ–ジェクトãŒã“ã®å€¤ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
   text_enumeration_category_reassign_to: '次ã®å€¤ã«å‰²ã‚Šå½“ã¦ç›´ã™:'
   text_email_delivery_not_configured: "メールをé€ä¿¡ã™ã‚‹ãŸã‚ã«å¿…è¦ãªè¨­å®šãŒè¡Œã‚れã¦ã„ãªã„ãŸã‚ã€ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。\nconfig/email.ymlã§SMTPサーãƒã®è¨­å®šã‚’行ã„ã€ã‚¢ãƒ—リケーションをå†èµ·å‹•ã—ã¦ãã ã•ã„。"
   text_repository_usernames_mapping: "リãƒã‚¸ãƒˆãƒªã®ãƒ­ã‚°ã‹ã‚‰æ¤œå‡ºã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼åã‚’ã©ã®Redmineユーザーã«é–¢é€£ã¥ã‘ã‚‹ã®ã‹é¸æŠžã—ã¦ãã ã•ã„。\nログ上ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒRedmineã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¨ä¸€è‡´ã™ã‚‹å ´åˆã¯è‡ªå‹•çš„ã«é–¢é€£ã¥ã‘られã¾ã™ã€‚"
   text_diff_truncated: '... 差分ã®è¡Œæ•°ãŒè¡¨ç¤ºå¯èƒ½ãªä¸Šé™ã‚’è¶…ãˆã¾ã—ãŸã€‚è¶…éŽåˆ†ã¯è¡¨ç¤ºã—ã¾ã›ã‚“。'
   text_custom_field_possible_values_info: 'é¸æŠžè‚¢ã®å€¤ã¯1行ã«1個ãšã¤è¨˜è¿°ã—ã¦ãã ã•ã„。'
-  text_wiki_page_destroy_question: "ã“ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«{{descendants}}ページã®å­å­«ãƒšãƒ¼ã‚¸ãŒã‚りã¾ã™ã€‚"
+  text_wiki_page_destroy_question: "ã“ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«%{descendants}ページã®å­å­«ãƒšãƒ¼ã‚¸ãŒã‚りã¾ã™ã€‚"
   text_wiki_page_nullify_children: "å­ãƒšãƒ¼ã‚¸ã‚’メインページé…下ã«ç§»å‹•ã™ã‚‹"
   text_wiki_page_destroy_children: "é…下ã®å­å­«ãƒšãƒ¼ã‚¸ã‚‚削除ã™ã‚‹"
   text_wiki_page_reassign_children: "å­ãƒšãƒ¼ã‚¸ã‚’次ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«ç§»å‹•ã™ã‚‹"
@@ -947,8 +957,3 @@
   enumeration_doc_categories: 文書カテゴリ
   enumeration_activities: 作業分類 (時間トラッキング)
   enumeration_system_activity: システム作業分類
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
--- a/config/locales/.svn/text-base/ko.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/ko.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -37,37 +37,37 @@
       half_a_minute: "30ì´ˆ"
       less_than_x_seconds:
         one:   "ì¼ì´ˆ ì´í•˜"
-        other: "{{count}}ì´ˆ ì´í•˜"
+        other: "%{count}ì´ˆ ì´í•˜"
       x_seconds:
         one:   "ì¼ì´ˆ"
-        other: "{{count}}ì´ˆ"
+        other: "%{count}ì´ˆ"
       less_than_x_minutes:
         one:   "ì¼ë¶„ ì´í•˜"
-        other: "{{count}}ë¶„ ì´í•˜"
+        other: "%{count}ë¶„ ì´í•˜"
       x_minutes:
         one:   "ì¼ë¶„"
-        other: "{{count}}ë¶„"
+        other: "%{count}ë¶„"
       about_x_hours:
         one:   "약 한시간"
-        other: "약 {{count}}시간"
+        other: "약 %{count}시간"
       x_days:
         one:   "하루"
-        other: "{{count}}ì¼"
+        other: "%{count}ì¼"
       about_x_months:
         one:   "약 한달"
-        other: "약 {{count}}달"
+        other: "약 %{count}달"
       x_months:
         one:   "한달"
-        other: "{{count}}달"
+        other: "%{count}달"
       about_x_years:
         one:   "약 ì¼ë…„"
-        other: "약 {{count}}년"
+        other: "약 %{count}년"
       over_x_years:
         one:   "ì¼ë…„ ì´ìƒ"
-        other: "{{count}}ë…„ ì´ìƒ"
+        other: "%{count}ë…„ ì´ìƒ"
       almost_x_years:
         one:   "약 1년"
-        other: "약 {{count}}년"
+        other: "약 %{count}년"
     prompts:
       year:   "ë…„"
       month:  "ì›”"
@@ -145,8 +145,8 @@
     errors:
       template:
         header:
-          one:    "í•œê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ {{model}}ì„(를) 저장하지 않았습니다."
-          other:  "{{count}}ê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ {{model}}ì„(를) 저장하지 않았습니다."
+          one:    "í•œê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ %{model}ì„(를) 저장하지 않았습니다."
+          other:  "%{count}ê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ %{model}ì„(를) 저장하지 않았습니다."
         # The variable :count is also available
         body: "ë‹¤ìŒ í•­ëª©ì— ë¬¸ì œê°€ 발견했습니다:"
 
@@ -158,16 +158,16 @@
         accepted: "ì€ ì¸ì •ë˜ì–´ì•¼ 합니다"
         empty: "ì€ ê¸¸ì´ê°€ 0ì´ì–´ì„œëŠ” 안ë©ë‹ˆë‹¤."
         blank: "ì€ ë¹ˆ ê°’ì´ì–´ì„œëŠ” 안 ë©ë‹ˆë‹¤"
-        too_long: "ì€ ë„ˆë¬´ ê¹ë‹ˆë‹¤ (최대 {{count}}ìž ê¹Œì§€)"
-        too_short: "ì€ ë„ˆë¬´ 짧습니다 (최소 {{count}}ìž ê¹Œì§€)"
-        wrong_length: "ì€ ê¸¸ì´ê°€ 틀렸습니다 ({{count}}ìžì´ì–´ì•¼ 합니다.)"
+        too_long: "ì€ ë„ˆë¬´ ê¹ë‹ˆë‹¤ (최대 %{count}ìž ê¹Œì§€)"
+        too_short: "ì€ ë„ˆë¬´ 짧습니다 (최소 %{count}ìž ê¹Œì§€)"
+        wrong_length: "ì€ ê¸¸ì´ê°€ 틀렸습니다 (%{count}ìžì´ì–´ì•¼ 합니다.)"
         taken: "ì€ ì´ë¯¸ ì„ íƒëœ ê²ë‹ˆë‹¤"
         not_a_number: "ì€ ìˆ«ìžê°€ 아닙니다"
-        greater_than: "ì€ {{count}}보다 커야 합니다."
-        greater_than_or_equal_to: "ì€ {{count}}보다 í¬ê±°ë‚˜ 같아야 합니다"
-        equal_to: "ì€ {{count}}(와)ê³¼ 같아야 합니다"
-        less_than: "ì€ {{count}}보다 작어야 합니다"
-        less_than_or_equal_to: "ì€ {{count}}ê³¼ 같거나 ì´í•˜ì„ 요구합니다"
+        greater_than: "ì€ %{count}보다 커야 합니다."
+        greater_than_or_equal_to: "ì€ %{count}보다 í¬ê±°ë‚˜ 같아야 합니다"
+        equal_to: "ì€ %{count}(와)ê³¼ 같아야 합니다"
+        less_than: "ì€ %{count}보다 작어야 합니다"
+        less_than_or_equal_to: "ì€ %{count}ê³¼ 같거나 ì´í•˜ì„ 요구합니다"
         odd: "ì€ í™€ìˆ˜ì—¬ì•¼ 합니다"
         even: "ì€ ì§ìˆ˜ì—¬ì•¼ 합니다"
         greater_than_start_date: "는 시작날짜보다 커야 합니다"
@@ -204,40 +204,40 @@
   notice_file_not_found: 요청하신 페ì´ì§€ëŠ” ì‚­ì œë˜ì—ˆê±°ë‚˜ 옮겨졌습니다.
   notice_locking_conflict: 다른 사용ìžì— ì˜í•´ì„œ ë°ì´í„°ê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤.
   notice_not_authorized: ì´ íŽ˜ì´ì§€ì— 접근할 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.
-  notice_email_sent: "{{value}}님ì—게 ë©”ì¼ì´ 발송ë˜ì—ˆìŠµë‹ˆë‹¤."
-  notice_email_error: "ë©”ì¼ì„ 전송하는 ê³¼ì •ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ({{value}})"
+  notice_email_sent: "%{value}님ì—게 ë©”ì¼ì´ 발송ë˜ì—ˆìŠµë‹ˆë‹¤."
+  notice_email_error: "ë©”ì¼ì„ 전송하는 ê³¼ì •ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. (%{value})"
   notice_feeds_access_key_reseted: RSSì— ì ‘ê·¼ê°€ëŠ¥í•œ 열쇠(key)ê°€ ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
-  notice_failed_to_save_issues: "ì €ìž¥ì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤: 실패 {{count}}(ì„ íƒ {{total}}): {{ids}}."
+  notice_failed_to_save_issues: "ì €ìž¥ì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤: 실패 %{count}(ì„ íƒ %{total}): %{ids}."
   notice_no_issue_selected: "ì¼ê°ì´ ì„ íƒë˜ì§€ 않았습니다. 수정하기 ì›í•˜ëŠ” ì¼ê°ì„ ì„ íƒí•˜ì„¸ìš”"
   notice_account_pending: "ê³„ì •ì´ ë§Œë“¤ì–´ì¡Œìœ¼ë©° ê´€ë¦¬ìž ìŠ¹ì¸ ëŒ€ê¸°ì¤‘ìž…ë‹ˆë‹¤."
   notice_default_data_loaded: ê¸°ë³¸ê°’ì„ ì„±ê³µì ìœ¼ë¡œ ì½ì–´ë“¤ì˜€ìŠµë‹ˆë‹¤.
   notice_unable_delete_version: 삭제할 수 없는 버전입니다.
   
-  error_can_t_load_default_data: "ê¸°ë³¸ê°’ì„ ì½ì–´ë“¤ì¼ 수 없습니다.: {{value}}"
+  error_can_t_load_default_data: "ê¸°ë³¸ê°’ì„ ì½ì–´ë“¤ì¼ 수 없습니다.: %{value}"
   error_scm_not_found: 항목ì´ë‚˜ ë¦¬ë¹„ì ¼ì´ ì €ìž¥ì†Œì— ì¡´ìž¬í•˜ì§€ 않습니다.
-  error_scm_command_failed: "ì €ìž¥ì†Œì— ì ‘ê·¼í•˜ëŠ” ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤.: {{value}}"
+  error_scm_command_failed: "ì €ìž¥ì†Œì— ì ‘ê·¼í•˜ëŠ” ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤.: %{value}"
   error_scm_annotate: "í•­ëª©ì´ ì—†ê±°ë‚˜ 행별 ì´ë ¥ì„ ë³¼ 수 없습니다."
   error_issue_not_found_in_project: 'ì¼ê°ì´ 없거나 ì´ í”„ë¡œì íŠ¸ì˜ ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤.'
 
-  warning_attachments_not_saved: "{{count}}ê°œ 파ì¼ì„ 저장할 수 없습니다."
+  warning_attachments_not_saved: "%{count}ê°œ 파ì¼ì„ 저장할 수 없습니다."
   
-  mail_subject_lost_password: "{{value}} 비밀번호"
+  mail_subject_lost_password: "%{value} 비밀번호"
   mail_body_lost_password: '비밀번호를 변경하려면 ë‹¤ìŒ ë§í¬ë¥¼ í´ë¦­í•˜ì„¸ìš”.'
-  mail_subject_register: "{{value}} 계정 활성화"
+  mail_subject_register: "%{value} 계정 활성화"
   mail_body_register: 'ê³„ì •ì„ í™œì„±í™”í•˜ë ¤ë©´ ë§í¬ë¥¼ í´ë¦­í•˜ì„¸ìš”.:'
-  mail_body_account_information_external: "로그ì¸í•  때 {{value}} ê³„ì •ì„ ì‚¬ìš©í•˜ì‹¤ 수 있습니다."
+  mail_body_account_information_external: "로그ì¸í•  때 %{value} ê³„ì •ì„ ì‚¬ìš©í•˜ì‹¤ 수 있습니다."
   mail_body_account_information: 계정 정보
-  mail_subject_account_activation_request: "{{value}} 계정 활성화 요청"
-  mail_body_account_activation_request: "새 사용ìž({{value}})ê°€ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤. 관리ìžë‹˜ì˜ 승ì¸ì„ 기다리고 있습니다.:"
-  mail_body_reminder: "ë‹¹ì‹ ì´ ë§¡ê³  있는 ì¼ê° {{count}}ê°œì˜ ì™„ë£Œ ê¸°í•œì´ {{days}}ì¼ í›„ 입니다."
-  mail_subject_reminder: "ë‚´ì¼ì´ ë§Œê¸°ì¸ ì¼ê° {{count}}ê°œ ({{days}})"
-  mail_subject_wiki_content_added: "위키페ì´ì§€ '{{id}}'ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
-  mail_subject_wiki_content_updated: "'위키페ì´ì§€ {{id}}'ì´(ê°€) 수정ë˜ì—ˆìŠµë‹ˆë‹¤."
-  mail_body_wiki_content_added: "{{author}}ì´(ê°€) 위키페ì´ì§€ '{{id}}'ì„(를) 추가하였습니다."
-  mail_body_wiki_content_updated: "{{author}}ì´(ê°€) 위키페ì´ì§€ '{{id}}'ì„(를) 수정하였습니다."
+  mail_subject_account_activation_request: "%{value} 계정 활성화 요청"
+  mail_body_account_activation_request: "새 사용ìž(%{value})ê°€ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤. 관리ìžë‹˜ì˜ 승ì¸ì„ 기다리고 있습니다.:"
+  mail_body_reminder: "ë‹¹ì‹ ì´ ë§¡ê³  있는 ì¼ê° %{count}ê°œì˜ ì™„ë£Œ ê¸°í•œì´ %{days}ì¼ í›„ 입니다."
+  mail_subject_reminder: "ë‚´ì¼ì´ ë§Œê¸°ì¸ ì¼ê° %{count}ê°œ (%{days})"
+  mail_subject_wiki_content_added: "위키페ì´ì§€ '%{id}'ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
+  mail_subject_wiki_content_updated: "'위키페ì´ì§€ %{id}'ì´(ê°€) 수정ë˜ì—ˆìŠµë‹ˆë‹¤."
+  mail_body_wiki_content_added: "%{author}ì´(ê°€) 위키페ì´ì§€ '%{id}'ì„(를) 추가하였습니다."
+  mail_body_wiki_content_updated: "%{author}ì´(ê°€) 위키페ì´ì§€ '%{id}'ì„(를) 수정하였습니다."
   
   gui_validation_error: ì—러
-  gui_validation_error_plural: "{{count}}ê°œ ì—러"
+  gui_validation_error_plural: "%{count}ê°œ ì—러"
   
   field_name: ì´ë¦„
   field_description: 설명
@@ -299,6 +299,7 @@
   field_attr_lastname: 성 ì†ì„±
   field_attr_mail: ë©”ì¼ ì†ì„±
   field_onthefly: ë™ì  ì‚¬ìš©ìž ìƒì„±
+  field_start_date: 시작시간
   field_done_ratio: ì§„ì²™ë„
   field_auth_source: ì¸ì¦ 공급ìž
   field_hide_mail: ë©”ì¼ ì£¼ì†Œ 숨기기
@@ -441,14 +442,14 @@
   label_x_projects:
     zero:  ì—†ìŒ
     one:   "한 프로ì íЏ"
-    other: "{{count}}ê°œ 프로ì íЏ"
+    other: "%{count}ê°œ 프로ì íЏ"
   label_project_all: 모든 프로ì íЏ
   label_project_latest: 최근 프로ì íЏ
   label_issue: ì¼ê°
   label_issue_new: 새 ì¼ê°ë§Œë“¤ê¸°
   label_issue_plural: ì¼ê°
   label_issue_view_all: 모든 ì¼ê° 보기
-  label_issues_by: "{{value}}별 ì¼ê°"
+  label_issues_by: "%{value}별 ì¼ê°"
   label_issue_added: ì¼ê° 추가
   label_issue_updated: ì¼ê° 수정
   label_document: 문서
@@ -497,7 +498,7 @@
   label_registered_on: 등ë¡ì‹œê°
   label_activity: 작업내역
   label_overall_activity: 전체 작업내역
-  label_user_activity: "{{value}}ì˜ ìž‘ì—…ë‚´ì—­"
+  label_user_activity: "%{value}ì˜ ìž‘ì—…ë‚´ì—­"
   label_new: 새로 만들기
   label_logged_as: '로그ì¸ê³„ì •:'
   label_environment: 환경
@@ -506,7 +507,7 @@
   label_auth_source_new: 새 ì¸ì¦ 공급ìž
   label_auth_source_plural: ì¸ì¦ 공급ìž
   label_subproject_plural: 하위 프로ì íЏ
-  label_and_its_subprojects: "{{value}}와 하위 프로ì íŠ¸ë“¤"
+  label_and_its_subprojects: "%{value}와 하위 프로ì íŠ¸ë“¤"
   label_min_max_length: 최소 - 최대 길ì´
   label_list: 목ë¡
   label_date: 날짜
@@ -517,8 +518,8 @@
   label_text: í…스트
   label_attribute: ì†ì„±
   label_attribute_plural: ì†ì„±
-  label_download: "{{count}}회 다운로드"
-  label_download_plural: "{{count}}회 다운로드"
+  label_download: "%{count}회 다운로드"
+  label_download_plural: "%{count}회 다운로드"
   label_no_data: 표시할 ë°ì´í„°ê°€ 없습니다.
   label_change_status: ìƒíƒœ 변경
   label_history: ì´ë ¥
@@ -549,17 +550,17 @@
   label_closed_issues: 완료ë¨
   label_closed_issues_plural: 완료ë¨
   label_x_open_issues_abbr_on_total:
-    zero:  "ì´ {{total}} ê±´ ëª¨ë‘ ì™„ë£Œ"
-    one:   "한 ê±´ ì§„í–‰ 중 / ì´ {{total}} ê±´ 중 "
-    other: "{{count}} ê±´ ì§„í–‰ 중 / ì´ {{total}} ê±´"
+    zero:  "ì´ %{total} ê±´ ëª¨ë‘ ì™„ë£Œ"
+    one:   "한 ê±´ ì§„í–‰ 중 / ì´ %{total} ê±´ 중 "
+    other: "%{count} ê±´ ì§„í–‰ 중 / ì´ %{total} ê±´"
   label_x_open_issues_abbr:
     zero:  ëª¨ë‘ ì™„ë£Œ
     one:   한 건 진행 중
-    other: "{{count}} 건 진행 중"
+    other: "%{count} 건 진행 중"
   label_x_closed_issues_abbr:
     zero:  ëª¨ë‘ ë¯¸ì™„ë£Œ
     one:   한 건 완료
-    other: "{{count}} 건 완료"
+    other: "%{count} 건 완료"
   label_total: 합계
   label_permissions: 권한
   label_current_status: ì¼ê° ìƒíƒœ
@@ -577,7 +578,7 @@
   label_months_from: 개월 ë™ì•ˆ | 다ìŒë¶€í„° 
   label_gantt: Gantt 챠트
   label_internal: ë‚´ë¶€
-  label_last_changes: "최근 {{count}}ê°œì˜ ë³€ê²½ì‚¬í•­"
+  label_last_changes: "최근 %{count}ê°œì˜ ë³€ê²½ì‚¬í•­"
   label_change_view_all: 모든 변경 내역 보기
   label_personalize_page: 입맛대로 구성하기
   label_comment: 댓글
@@ -585,7 +586,7 @@
   label_x_comments:
     zero: 댓글 ì—†ìŒ
     one: 한 ê°œì˜ ëŒ“ê¸€
-    other: "{{count}} ê°œì˜ ëŒ“ê¸€"
+    other: "%{count} ê°œì˜ ëŒ“ê¸€"
   label_comment_add: 댓글 추가
   label_comment_added: ëŒ“ê¸€ì´ ì¶”ê°€ë˜ì—ˆìŠµë‹ˆë‹¤.
   label_comment_delete: 댓글 삭제
@@ -606,7 +607,7 @@
   label_yesterday: 어제
   label_this_week: ì´ë²ˆì£¼
   label_last_week: 지난 주
-  label_last_n_days: "지난 {{count}} ì¼"
+  label_last_n_days: "지난 %{count} ì¼"
   label_this_month: ì´ë²ˆ 달
   label_last_month: 지난 달
   label_this_year: 올해
@@ -620,8 +621,8 @@
   label_repository: 저장소
   label_repository_plural: 저장소
   label_browse: 저장소 둘러보기
-  label_modification: "{{count}} 변경"
-  label_modification_plural: "{{count}} 변경"
+  label_modification: "%{count} 변경"
+  label_modification_plural: "%{count} 변경"
   label_revision: 개정íŒ
   label_revision_plural: 개정íŒ
   label_associated_revisions: ê´€ë ¨ëœ ê°œì •íŒë“¤
@@ -639,8 +640,8 @@
   label_sort_lower: 아래로
   label_sort_lowest: 맨 아래로
   label_roadmap: 로드맵
-  label_roadmap_due_in: "기한  {{value}}"
-  label_roadmap_overdue: "{{value}} 지연"
+  label_roadmap_due_in: "기한  %{value}"
+  label_roadmap_overdue: "%{value} 지연"
   label_roadmap_no_issues: ì´ ë²„ì „ì— í•´ë‹¹í•˜ëŠ” ì¼ê° ì—†ìŒ
   label_search: 검색
   label_result_plural: ê²°ê³¼
@@ -658,8 +659,8 @@
   label_changes_details: 모든 ìƒì„¸ 변경 ë‚´ì—­
   label_issue_tracking: ì¼ê° ì¶”ì 
   label_spent_time: 소요 시간
-  label_f_hour: "{{value}} 시간"
-  label_f_hour_plural: "{{value}} 시간"
+  label_f_hour: "%{value} 시간"
+  label_f_hour_plural: "%{value} 시간"
   label_time_tracking: 시간추ì 
   label_change_plural: 변경사항들
   label_statistics: 통계
@@ -708,13 +709,13 @@
   label_date_from: '기간:'
   label_date_to: ' ~ '
   label_language_based: ì–¸ì–´ì„¤ì •ì— ë”°ë¦„
-  label_sort_by: "{{value}}(으)로 정렬"
+  label_sort_by: "%{value}(으)로 정렬"
   label_send_test_email: 테스트 ë©”ì¼ ë³´ë‚´ê¸°
-  label_feeds_access_key_created_on: "피드 ì ‘ê·¼ 키가 {{value}} ì´ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤."
+  label_feeds_access_key_created_on: "피드 ì ‘ê·¼ 키가 %{value} ì´ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤."
   label_module_plural: 모듈
-  label_added_time_by: "{{author}}ì´(ê°€) {{age}} ì „ì— ì¶”ê°€í•¨"
-  label_updated_time_by: "{{author}}ì´(ê°€) {{age}} ì „ì— ë³€ê²½"
-  label_updated_time: "{{value}} ì „ì— ìˆ˜ì •ë¨"
+  label_added_time_by: "%{author}ì´(ê°€) %{age} ì „ì— ì¶”ê°€í•¨"
+  label_updated_time_by: "%{author}ì´(ê°€) %{age} ì „ì— ë³€ê²½"
+  label_updated_time: "%{value} ì „ì— ìˆ˜ì •ë¨"
   label_jump_to_a_project: 프로ì íЏ 바로가기
   label_file_plural: 파ì¼
   label_changeset_plural: 변경묶ìŒ
@@ -730,7 +731,7 @@
   label_registration_activation_by_email: ë©”ì¼ë¡œ ê³„ì •ì„ í™œì„±í™”í•˜ê¸°
   label_registration_automatic_activation: ìžë™ 계정 활성화
   label_registration_manual_activation: ìˆ˜ë™ ê³„ì • 활성화
-  label_display_per_page: "페ì´ì§€ë‹¹ 줄수: {{value}}"
+  label_display_per_page: "페ì´ì§€ë‹¹ 줄수: %{value}"
   label_age: 마지막 수정ì¼
   label_change_properties: ì†ì„± 변경
   label_general: ì¼ë°˜
@@ -753,7 +754,7 @@
   label_sort: ì •ë ¬
   label_ascending: 오름차순
   label_descending: 내림차순
-  label_date_from_to: "{{start}}부터 {{end}}까지"
+  label_date_from_to: "%{start}부터 %{end}까지"
   label_wiki_content_added: 위키페ì´ì§€ 추가
   label_wiki_content_updated: 위키페ì´ì§€ 수정
 
@@ -805,48 +806,48 @@
   text_regexp_info: 예) ^[A-Z0-9]+$
   text_min_max_length_info: 0 는 ì œí•œì´ ì—†ìŒì„ ì˜ë¯¸í•¨
   text_project_destroy_confirmation: ì´ í”„ë¡œì íŠ¸ë¥¼ 삭제하고 모든 ë°ì´í„°ë¥¼ 지우시겠습니까?
-  text_subprojects_destroy_warning: "하위 프로ì íЏ({{value}})ì´(ê°€) ìžë™ìœ¼ë¡œ 지워질 것입니다."
+  text_subprojects_destroy_warning: "하위 프로ì íЏ(%{value})ì´(ê°€) ìžë™ìœ¼ë¡œ 지워질 것입니다."
   text_workflow_edit: 업무í름 수정하려면 ì—­í• ê³¼ ì¼ê°ìœ í˜•ì„ ì„ íƒí•˜ì„¸ìš”.
   text_are_you_sure: ê³„ì† ì§„í–‰ 하시겠습니까?
   text_tip_issue_begin_day: 오늘 시작하는 업무(task)
   text_tip_issue_end_day: 오늘 종료하는 업무(task)
   text_tip_issue_begin_end_day: 오늘 시작하고 종료하는 업무(task)
   text_project_identifier_info: 'ì˜ë¬¸ 소문ìž(a-z) ë° ìˆ«ìž, 대쉬(-) 가능.<br />저장ëœí›„ì—는 ì‹ë³„ìž ë³€ê²½ 불가능.'
-  text_caracters_maximum: "최대 {{count}} ê¸€ìž ê°€ëŠ¥"
-  text_caracters_minimum: "최소한 {{count}} ê¸€ìž ì´ìƒì´ì–´ì•¼ 합니다."
-  text_length_between: "{{min}} ì—서 {{max}} 글ìž"
+  text_caracters_maximum: "최대 %{count} ê¸€ìž ê°€ëŠ¥"
+  text_caracters_minimum: "최소한 %{count} ê¸€ìž ì´ìƒì´ì–´ì•¼ 합니다."
+  text_length_between: "%{min} ì—서 %{max} 글ìž"
   text_tracker_no_workflow: ì´ ì¼ê° 유형ì—는 업무íë¦„ì´ ì •ì˜ë˜ì§€ 않았습니다.
   text_unallowed_characters: 허용ë˜ì§€ 않는 문ìžì—´
   text_comma_separated: "구분ìž','를 ì´ìš©í•´ì„œ 여러 ê°œì˜ ê°’ì„ ìž…ë ¥í•  수 있습니다."
   text_issues_ref_in_commit_messages: 제출 메시지ì—서 ì¼ê°ì„ 참조하거나 해결하기
-  text_issue_added: "{{author}}ì´(ê°€) ì¼ê° {{id}}ì„(를) 보고하였습니다."
-  text_issue_updated: "{{author}}ì´(ê°€) ì¼ê° {{id}}ì„(를) 수정하였습니다."
+  text_issue_added: "%{author}ì´(ê°€) ì¼ê° %{id}ì„(를) 보고하였습니다."
+  text_issue_updated: "%{author}ì´(ê°€) ì¼ê° %{id}ì„(를) 수정하였습니다."
   text_wiki_destroy_confirmation: ì´ ìœ„í‚¤ì™€ 모든 ë‚´ìš©ì„ ì§€ìš°ì‹œê² ìŠµë‹ˆê¹Œ?
-  text_issue_category_destroy_question: "ì¼ë¶€ ì¼ê°ë“¤({{count}}ê°œ)ì´ ì´ ë²”ì£¼ì— ì§€ì •ë˜ì–´ 있습니다. 어떻게 하시겠습니까?"
+  text_issue_category_destroy_question: "ì¼ë¶€ ì¼ê°ë“¤(%{count}ê°œ)ì´ ì´ ë²”ì£¼ì— ì§€ì •ë˜ì–´ 있습니다. 어떻게 하시겠습니까?"
   text_issue_category_destroy_assignments: 범주 지정 지우기
   text_issue_category_reassign_to: ì¼ê°ì„ ì´ ë²”ì£¼ì— ë‹¤ì‹œ 지정하기
   text_user_mail_option: "ì„ íƒí•˜ì§€ ì•Šì€ í”„ë¡œì íЏì—서ë„, 지켜보는 중ì´ê±°ë‚˜ ì†í•´ìžˆëŠ” 사항(ì¼ê°ì„ 발행했거나 í• ë‹¹ëœ ê²½ìš°)ì´ ìžˆìœ¼ë©´ 알림메ì¼ì„ 받게 ë©ë‹ˆë‹¤."
   text_no_configuration_data: "ì—­í• , ì¼ê° 유형, ì¼ê° ìƒíƒœë“¤ê³¼ 업무íë¦„ì´ ì•„ì§ ì„¤ì •ë˜ì§€ 않았습니다.\n기본 ì„¤ì •ì„ ì½ì–´ë“¤ì´ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤. ì½ì–´ë“¤ì¸ í›„ì— ìˆ˜ì •í•  수 있습니다."
   text_load_default_configuration: 기본 ì„¤ì •ì„ ì½ì–´ë“¤ì´ê¸°
-  text_status_changed_by_changeset: "ë³€ê²½ë¬¶ìŒ {{value}}ì— ì˜í•˜ì—¬ 변경ë¨"
+  text_status_changed_by_changeset: "ë³€ê²½ë¬¶ìŒ %{value}ì— ì˜í•˜ì—¬ 변경ë¨"
   text_issues_destroy_confirmation: 'ì„ íƒí•œ ì¼ê°ì„ ì •ë§ë¡œ 삭제하시겠습니까?'
   text_select_project_modules: 'ì´ í”„ë¡œì íЏì—서 활성화시킬 ëª¨ë“ˆì„ ì„ íƒí•˜ì„¸ìš”:'
   text_default_administrator_account_changed: 기본 ê´€ë¦¬ìž ê³„ì •ì´ ë³€ê²½
   text_file_repository_writable: íŒŒì¼ ì €ìž¥ì†Œ 쓰기 가능
   text_plugin_assets_writable: í”ŒëŸ¬ê·¸ì¸ ì „ìš© 디렉토리가 쓰기 가능
   text_rmagick_available: RMagick 사용 가능 (ì„ íƒì )
-  text_destroy_time_entries_question: 삭제하려는 ì¼ê°ì— {{hours}} ì‹œê°„ì´ ë³´ê³ ë˜ì–´ 있습니다. 어떻게 하시겠습니까?
+  text_destroy_time_entries_question: 삭제하려는 ì¼ê°ì— %{hours} ì‹œê°„ì´ ë³´ê³ ë˜ì–´ 있습니다. 어떻게 하시겠습니까?
   text_destroy_time_entries: ë³´ê³ ëœ ì‹œê°„ì„ ì‚­ì œí•˜ê¸°
   text_assign_time_entries_to_project: ë³´ê³ ëœ ì‹œê°„ì„ í”„ë¡œì íŠ¸ì— í• ë‹¹í•˜ê¸°
   text_reassign_time_entries: 'ì´ ì•Œë¦¼ì— ë³´ê³ ëœ ì‹œê°„ì„ ìž¬í• ë‹¹í•˜ê¸°:'
-  text_user_wrote: "{{value}}ì˜ ë§ê¸€:"
+  text_user_wrote: "%{value}ì˜ ë§ê¸€:"
   text_enumeration_category_reassign_to: '새로운 ê°’ì„ ì„¤ì •:'
-  text_enumeration_destroy_question: "{{count}} ê°œì˜ ì¼ê°ì´ ì´ ê°’ì„ ì‚¬ìš©í•˜ê³  있습니다."
+  text_enumeration_destroy_question: "%{count} ê°œì˜ ì¼ê°ì´ ì´ ê°’ì„ ì‚¬ìš©í•˜ê³  있습니다."
   text_email_delivery_not_configured: "ì´ë©”ì¼ ì „ë‹¬ì´ ì„¤ì •ë˜ì§€ 않았습니다. 그래서 ì•Œë¦¼ì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤.\n SMTP서버를 config/email.ymlì—서 설정하고 어플리케ì´ì…˜ì„ 다시 시작하십시오. 그러면 ë™ìž‘합니다."
   text_repository_usernames_mapping: "저장소 로그ì—서 ë°œê²¬ëœ ê° ì‚¬ìš©ìžì— ë ˆë“œë§ˆì¸ ì‚¬ìš©ìžë¥¼ ì—…ë°ì´íŠ¸í• ë•Œ ì„ íƒí•©ë‹ˆë‹¤.\n레드마ì¸ê³¼ ì €ìž¥ì†Œì˜ ì´ë¦„ì´ë‚˜ ì´ë©”ì¼ì´ ê°™ì€ ì‚¬ìš©ìžê°€ ìžë™ìœ¼ë¡œ ì—°ê²°ë©ë‹ˆë‹¤."
   text_diff_truncated: '... ì´ ì°¨ì´ì ì€ 표시할 수 있는 최대 줄수를 초과해서 ì´ ì°¨ì´ì ì€ 잘렸습니다.'
   text_custom_field_possible_values_info: 'ê° ê°’ 당 한 줄'
-  text_wiki_page_destroy_question: ì´ íŽ˜ì´ì§€ëŠ” {{descendants}} ê°œì˜ í•˜ìœ„ 페ì´ì§€ì™€ 관련 ë‚´ìš©ì´ ìžˆìŠµë‹ˆë‹¤. ì´ ë‚´ìš©ì„ ì–´ë–»ê²Œ 하시겠습니까?
+  text_wiki_page_destroy_question: ì´ íŽ˜ì´ì§€ëŠ” %{descendants} ê°œì˜ í•˜ìœ„ 페ì´ì§€ì™€ 관련 ë‚´ìš©ì´ ìžˆìŠµë‹ˆë‹¤. ì´ ë‚´ìš©ì„ ì–´ë–»ê²Œ 하시겠습니까?
   text_wiki_page_nullify_children: 하위 페ì´ì§€ë¥¼ 최ìƒìœ„ 페ì´ì§€ 아래로 지정
   text_wiki_page_destroy_children: 모든 하위 페ì´ì§€ì™€ 관련 ë‚´ìš©ì„ ì‚­ì œ
   text_wiki_page_reassign_children: 하위 페ì´ì§€ë¥¼ ì´ íŽ˜ì´ì§€ 아래로 지정
@@ -883,14 +884,14 @@
   label_branch: 분기(分å²)저장소
   error_no_tracker_in_project: 사용할 수 있ë„ë¡ ì„¤ì •ëœ ì¼ê° ìœ í˜•ì´ ì—†ìŠµë‹ˆë‹¤. 프로ì íЏ ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤.
   error_no_default_issue_status: '기본 ìƒíƒœê°€ ì •í•´ì ¸ 있지 않습니다. ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤. (주 ë©”ë‰´ì˜ "관리" -> "ì¼ê° ìƒíƒœ")'
-  text_journal_changed: "{{label}}ì„(를) {{old}}ì—서 {{new}}(으)로 변경ë˜ì—ˆìŠµë‹ˆë‹¤."
-  text_journal_set_to: "{{label}}ì„(를) {{value}}(으)로 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
-  text_journal_deleted: "{{label}} ê°’ì´ ì§€ì›Œì¡ŒìŠµë‹ˆë‹¤. ({{old}})"
+  text_journal_changed: "%{label}ì„(를) %{old}ì—서 %{new}(으)로 변경ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_set_to: "%{label}ì„(를) %{value}(으)로 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_deleted: "%{label} ê°’ì´ ì§€ì›Œì¡ŒìŠµë‹ˆë‹¤. (%{old})"
   label_group_plural: 그룹
   label_group: 그룹
   label_group_new: 새 그룹
   label_time_entry_plural: 작업시간
-  text_journal_added: "{{label}}ì— {{value}}ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_added: "%{label}ì— %{value}ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
   field_active: 사용중
   enumeration_system_activity: 시스템 작업
   permission_delete_issue_watchers: ì¼ê°ì§€í‚´ì´ 지우기
@@ -925,9 +926,9 @@
   setting_start_of_week: 달력 시작 ìš”ì¼
   permission_view_issues: ì¼ê° 보기
   label_display_used_statuses_only: ì´ ì¼ê°ìœ í˜•ì—서 사용ë˜ëŠ” ìƒíƒœë§Œ 보여주기
-  label_revision_id: ê°œì •íŒ {{value}}
+  label_revision_id: ê°œì •íŒ %{value}
   label_api_access_key: API 접근키
-  label_api_access_key_created_on: API 접근키가 {{value}} ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
+  label_api_access_key_created_on: API 접근키가 %{value} ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
   label_feeds_access_key: RSS 접근키
   notice_api_access_key_reseted: API 접근키가 초기화ë˜ì—ˆìŠµë‹ˆë‹¤.
   setting_rest_api_enabled: REST 웹서비스 활성화
@@ -954,12 +955,12 @@
   label_subtask_plural: 하위 ì¼ê°
   label_project_copy_notifications: 프로ì íЏ 복사 ì¤‘ì— ì´ë©”ì¼ ì•Œë¦¼ 보내기
   error_can_not_delete_custom_field: ì‚¬ìš©ìž ì •ì˜ í•„ë“œë¥¼ 삭제할 수 없습니다.
-  error_unable_to_connect: 연결할 수 없습니다(({{value}})
+  error_unable_to_connect: 연결할 수 없습니다((%{value})
   error_can_not_remove_role: ì´ ì—­í• ì€ í˜„ìž¬ 사용 중ì´ì´ì„œ 삭제할 수 없습니다.
-  error_can_not_delete_tracker: ì´ ìœ í˜•ì˜ ì¼ê°ë“¤ì´ 있ì—서 삭제할 수 없습니다.
+  error_can_not_delete_tracker: ì´ ìœ í˜•ì˜ ì¼ê°ë“¤ì´ 있어서 삭제할 수 없습니다.
   field_principal: ì‹ ì›
   label_my_page_block: ë‚´ 페ì´ì§€ 출력화면
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "%{errors}:구성ì›ì„ 저장 중 실패하였습니다"
   text_zoom_out: ë” ìž‘ê²Œ
   text_zoom_in: ë” í¬ê²Œ
   notice_unable_delete_time_entry: 시간 ê¸°ë¡ í•­ëª©ì„ ì‚­ì œí•  수 없습니다.
@@ -967,19 +968,23 @@
   field_time_entries: 기ë¡ëœ 시간
   project_module_gantt: Gantt 챠트
   project_module_calendar: 달력
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  button_edit_associated_wikipage: "ì—°ê´€ëœ ìœ„í‚¤ 페ì´ì§€ %{page_title} 수정"
+  text_are_you_sure_with_children: ì¼ê°ê³¼ 모든 하위 ì¼ê°ë“¤ì„ 삭제하시겠습니까?
+  field_text: í…스트 ì˜ì—­
+  label_user_mail_option_only_owner: ë‚´ê°€ ì €ìžì¸ 사항만
+  setting_default_notification_option: 기본 알림 옵션
+  label_user_mail_option_only_my_events: ë‚´ê°€ 지켜보거나 ì†í•´ìžˆëŠ” 사항만
+  label_user_mail_option_only_assigned: ë‚´ì—게 í• ë‹¹ëœ ì‚¬í•­ë§Œ
+  label_user_mail_option_none: 알림 ì—†ìŒ
+  field_member_of_group: í• ë‹¹ëœ ì‚¬ëžŒì˜ ê·¸ë£¹
+  field_assigned_to_role: í• ë‹¹ëœ ì‚¬ëžŒì˜ ì—­í• 
+  notice_not_authorized_archived_project: 접근하려는 프로ì íŠ¸ëŠ” ì´ë¯¸ 잠금보관ë˜ì–´ 있습니다.
+  label_principal_search: "ì‚¬ìš©ìž ë° ê·¸ë£¹ 찾기:"
+  label_user_search: "ì‚¬ìš©ìž ì°¾ê¸°::"
+  field_visible: ë³´ì´ê¸°
+  setting_emails_header: ì´ë©”ì¼ í—¤ë”
+  setting_commit_logtime_activity_id: 기ë¡ëœ ì‹œê°„ì— ì ìš©í•  작업분류
+  text_time_logged_by_changeset: "ë³€ê²½ë¬¶ìŒ %{value}ì—서 ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤."
+  setting_commit_logtime_enabled: 커밋 시ì ì— 작업 시간 ê¸°ë¡ í™œì„±í™”
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/lt.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/lt.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -37,42 +37,42 @@
     distance_in_words:
       half_a_minute: "pusÄ— minutÄ—s"
       less_than_x_seconds:
-        one:   "mažiau nei {{count}} sekundė"
-        few:   "mažiau nei {{count}} sekundžių"
-        many:  "mažiau nei {{count}} sekundžių"
-        other: "mažiau nei {{count}} sekundės"
+        one:   "mažiau nei %{count} sekundė"
+        few:   "mažiau nei %{count} sekundžių"
+        many:  "mažiau nei %{count} sekundžių"
+        other: "mažiau nei %{count} sekundės"
       x_seconds:
-        one:   "{{count}} sekundÄ—"
-        few:   "{{count}} sekundžių"
-        many:  "{{count}} sekundžių"
-        other: "{{count}} sekundÄ—s"
+        one:   "%{count} sekundÄ—"
+        few:   "%{count} sekundžių"
+        many:  "%{count} sekundžių"
+        other: "%{count} sekundÄ—s"
       less_than_x_minutes:
         one:   "mažiau nei minutė"
-        other: "mažiau nei {{count}} minutės"
+        other: "mažiau nei %{count} minutės"
       x_minutes:
         one:   "1 minutÄ—"
-        other: "{{count}} minutÄ—s"
+        other: "%{count} minutÄ—s"
       about_x_hours:
         one:   "apie 1 valanda"
-        other: "apie {{count}} valandų"
+        other: "apie %{count} valandų"
       x_days:
         one:   "1 diena"
-        other: "{{count}} dienų"
+        other: "%{count} dienų"
       about_x_months:
         one:   "apie 1 mÄ—nuo"
-        other: "apie {{count}} mÄ—nesiai"
+        other: "apie %{count} mÄ—nesiai"
       x_months:
         one:   "1 mÄ—nuo"
-        other: "{{count}} mÄ—nesiai"
+        other: "%{count} mÄ—nesiai"
       about_x_years:
         one:   "apie 1 metai"
-        other: "apie {{count}} metų"
+        other: "apie %{count} metų"
       over_x_years:
         one:   "virš 1 metų"
-        other: "virš {{count}} metų"
+        other: "virš %{count} metų"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Metai"
       month:  "MÄ—nuo"
@@ -137,10 +137,10 @@
     errors:
       template:
         header:
-          one:    "Išsaugant objektą {{model}} rasta {{count}} klaida"
-          few:    "Išsaugant objektą {{model}} rasta {{count}} klaidų"
-          many:   "Išsaugant objektą {{model}} rasta {{count}} klaidų"
-          other:  "Išsaugant objektą {{model}} rastos {{count}} klaidos"
+          one:    "Išsaugant objektą %{model} rasta %{count} klaida"
+          few:    "Išsaugant objektą %{model} rasta %{count} klaidų"
+          many:   "Išsaugant objektą %{model} rasta %{count} klaidų"
+          other:  "Išsaugant objektą %{model} rastos %{count} klaidos"
         body: "Šiuose laukuose yra klaidų:"
 
       messages:
@@ -152,28 +152,28 @@
         empty: "negali bÅ«ti tuÅ¡Äias"
         blank: "negali bÅ«ti tuÅ¡Äias"
         too_long:
-          one:   "per ilgas (daugiausiai {{count}} simbolius)"
-          few:   "per ilgas (daugiausiai {{count}} simboliu)"
-          many:  "per ilgas (daugiausiai {{count}} simboliu)"
-          other: "per ilgas (daugiausiai {{count}} simboliai)"
+          one:   "per ilgas (daugiausiai %{count} simbolius)"
+          few:   "per ilgas (daugiausiai %{count} simboliu)"
+          many:  "per ilgas (daugiausiai %{count} simboliu)"
+          other: "per ilgas (daugiausiai %{count} simboliai)"
         too_short:
-          one:   "per trumpas (mažiausiai {{count}} simbolius)"
-          few:   "per trumpas (mažiausiai {{count}} simboliu)"
-          many:  "per trumpas (mažiausiai {{count}} simboliu)"
-          other: "per trumpas (mažiausiai {{count}} simboliai)"
+          one:   "per trumpas (mažiausiai %{count} simbolius)"
+          few:   "per trumpas (mažiausiai %{count} simboliu)"
+          many:  "per trumpas (mažiausiai %{count} simboliu)"
+          other: "per trumpas (mažiausiai %{count} simboliai)"
         wrong_length:
-          one:   "neteisingo ilgio (turi būti lygiai {{count}} simbolius)"
-          few:   "neteisingo ilgio (turi būti lygiai {{count}} simboliu)"
-          many:  "neteisingo ilgio (turi būti lygiai {{count}} simboliu)"
-          other: "neteisingo ilgio (turi būti lygiai {{count}} simboliai)"
+          one:   "neteisingo ilgio (turi būti lygiai %{count} simbolius)"
+          few:   "neteisingo ilgio (turi būti lygiai %{count} simboliu)"
+          many:  "neteisingo ilgio (turi būti lygiai %{count} simboliu)"
+          other: "neteisingo ilgio (turi būti lygiai %{count} simboliai)"
         taken: "jau užimtas"
         not_a_number: "ne skaiÄius"
         not_a_date: "is not a valid date"
-        greater_than: "turi būti didesnis už {{count}}"
-        greater_than_or_equal_to: "turi būti didesnis arba lygus {{count}}"
-        equal_to: "turi būti lygus {{count}}"
-        less_than: "turi būti mažesnis už {{count}}"
-        less_than_or_equal_to: "turi būti mažesnis arba lygus {{count}}"
+        greater_than: "turi būti didesnis už %{count}"
+        greater_than_or_equal_to: "turi būti didesnis arba lygus %{count}"
+        equal_to: "turi būti lygus %{count}"
+        less_than: "turi būti mažesnis už %{count}"
+        less_than_or_equal_to: "turi būti mažesnis arba lygus %{count}"
         odd: "turi būti nelyginis"
         even: "turi būti lyginis"
         greater_than_start_date: "turi būti didesnė negu pradžios data"
@@ -210,18 +210,18 @@
   notice_file_not_found: Puslapis, į kurį ketinate įeiti, neegzistuoja arba yra pašalintas.
   notice_locking_conflict: Duomenys atnaujinti kito vartotojo.
   notice_not_authorized: Jūs neturite teisių gauti prieigą prie šio puslapio.
-  notice_email_sent: "Laiškas išsiųstas {{value}}"
-  notice_email_error: "Laiško siuntimo metu įvyko klaida ({{value}})"
+  notice_email_sent: "Laiškas išsiųstas %{value}"
+  notice_email_error: "Laiško siuntimo metu įvyko klaida (%{value})"
   notice_feeds_access_key_reseted: Jūsų RSS raktas buvo atnaujintas.
-  notice_failed_to_save_issues: "Nepavyko išsaugoti {{count}} problemos(ų) iš {{total}} pasirinkto: {{ids}}."
+  notice_failed_to_save_issues: "Nepavyko išsaugoti %{count} problemos(ų) iš %{total} pasirinkto: %{ids}."
   notice_no_issue_selected: "Nepasirinkta nė viena problema! Prašom pažymėti problemą, kurią norite redaguoti."
   notice_account_pending: "Jūsų paskyra buvo sukurta ir dabar laukiama administratoriaus patvirtinimo."
   notice_default_data_loaded: Numatytoji konfiguracija sėkmingai užkrauta.
   notice_unable_delete_version: Neįmanoma panaikinti versiją
   
-  error_can_t_load_default_data: "Numatytoji konfiguracija negali būti užkrauta: {{value}}"
+  error_can_t_load_default_data: "Numatytoji konfiguracija negali būti užkrauta: %{value}"
   error_scm_not_found: "Duomenys ir/ar pakeitimai saugykloje(repozitorojoje) neegzistuoja."
-  error_scm_command_failed: "Įvyko klaida jungiantis prie saugyklos: {{value}}"
+  error_scm_command_failed: "Įvyko klaida jungiantis prie saugyklos: %{value}"
   error_scm_annotate: "Įrašas neegzistuoja arba negalima jo atvaizduoti."
   error_issue_not_found_in_project: 'Darbas nerastas arba nesurištas su šiuo projektu'
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
@@ -229,25 +229,25 @@
   error_can_not_reopen_issue_on_closed_version: Uždarytai versijai priskirtas darbas negali būti atnaujintas.
   error_can_not_archive_project: Å io projekto negalima suarchyvuoti
 
-  warning_attachments_not_saved: "{{count}} byla(ų) negali būti išsaugota."
+  warning_attachments_not_saved: "%{count} byla(ų) negali būti išsaugota."
 
-  mail_subject_lost_password: "Jūsų {{value}} slaptažodis"
+  mail_subject_lost_password: "Jūsų %{value} slaptažodis"
   mail_body_lost_password: 'Norėdami pakeisti slaptažodį, spauskite nuorodą:'
-  mail_subject_register: "Jūsų {{value}} paskyros aktyvavimas"
+  mail_subject_register: "Jūsų %{value} paskyros aktyvavimas"
   mail_body_register: 'NorÄ—dami aktyvuoti paskyrÄ…, spauskite nuorodÄ…:'
-  mail_body_account_information_external: "Jūs galite naudoti Jūsų {{value}} paskyrą, norėdami prisijungti."
+  mail_body_account_information_external: "Jūs galite naudoti Jūsų %{value} paskyrą, norėdami prisijungti."
   mail_body_account_information: Informacija apie Jūsų paskyrą
-  mail_subject_account_activation_request: "{{value}} paskyros aktyvavimo prašymas"
-  mail_body_account_activation_request: "Užsiregistravo naujas vartotojas ({{value}}). Jo paskyra laukia jūsų patvirtinimo:"
-  mail_subject_reminder: "{{count}} darbas(ai) po kelių {{days}} dienų"
-  mail_body_reminder: "{{count}} darbas(ai), kurie yra jums priskirti, baigiasi po {{days}} dienų(os):"
-  mail_subject_wiki_content_added: "'{{id}}' pridÄ—tas wiki puslapis"
-  mail_body_wiki_content_added: "The '{{id}}' wiki puslapi pridÄ—jo {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' atnaujintas wiki puslapis"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki puslapį atnaujino {{author}}."
+  mail_subject_account_activation_request: "%{value} paskyros aktyvavimo prašymas"
+  mail_body_account_activation_request: "Užsiregistravo naujas vartotojas (%{value}). Jo paskyra laukia jūsų patvirtinimo:"
+  mail_subject_reminder: "%{count} darbas(ai) po kelių %{days} dienų"
+  mail_body_reminder: "%{count} darbas(ai), kurie yra jums priskirti, baigiasi po %{days} dienų(os):"
+  mail_subject_wiki_content_added: "'%{id}' pridÄ—tas wiki puslapis"
+  mail_body_wiki_content_added: "The '%{id}' wiki puslapi pridÄ—jo %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' atnaujintas wiki puslapis"
+  mail_body_wiki_content_updated: "The '%{id}' wiki puslapį atnaujino %{author}."
 
   gui_validation_error: 1 klaida
-  gui_validation_error_plural: "{{count}} klaidų(os)"
+  gui_validation_error_plural: "%{count} klaidų(os)"
   
   field_name: Pavadinimas
   field_description: Aprašas
@@ -310,6 +310,7 @@
   field_attr_lastname: PavardÄ—s priskiria
   field_attr_mail: Elektroninio pašto požymis
   field_onthefly: Automatinis vartotojų registravimas
+  field_start_date: PradÄ—ti
   field_done_ratio: % atlikta
   field_auth_source: Autentiškumo nustatymo būdas
   field_hide_mail: Paslėpkite mano elektroninio pašto adresą
@@ -458,14 +459,14 @@
   label_x_projects:
     zero:  nėra projektų
     one:   1 projektas
-    other: "{{count}} projektų"
+    other: "%{count} projektų"
   label_project_all: Visi Projektai
   label_project_latest: Paskutiniai projektai
   label_issue: Darbas
   label_issue_new: Naujas darbas
   label_issue_plural: Darbai
   label_issue_view_all: Peržiūrėti visus darbus
-  label_issues_by: "Darbai pagal {{value}}"
+  label_issues_by: "Darbai pagal %{value}"
   label_issue_added: Darbas pridÄ—tas
   label_issue_updated: Darbas atnaujintas
   label_document: Dokumentas
@@ -513,7 +514,7 @@
   label_registered_on: Užregistruota
   label_activity: Veikla
   label_overall_activity: Visa veikla
-  label_user_activity: "{{value}}o veiksmai"
+  label_user_activity: "%{value}o veiksmai"
   label_new: Naujas
   label_logged_as: Prisijungęs kaip
   label_environment: Aplinka
@@ -522,7 +523,7 @@
   label_auth_source_new: Naujas autentiškumo nustatymo būdas
   label_auth_source_plural: Autentiškumo nustatymo būdai
   label_subproject_plural: Subprojektai
-  label_and_its_subprojects: "{{value}} projektas ir jo subprojektai"
+  label_and_its_subprojects: "%{value} projektas ir jo subprojektai"
   label_min_max_length: Min - Maks ilgis
   label_list: Sąrašas
   label_date: Data
@@ -533,8 +534,8 @@
   label_text: Ilgas tekstas
   label_attribute: Požymis
   label_attribute_plural: Požymiai
-  label_download: "{{count}} persiuntimas"
-  label_download_plural: "{{count}} persiuntimai"
+  label_download: "%{count} persiuntimas"
+  label_download_plural: "%{count} persiuntimai"
   label_no_data: NÄ—ra kÄ… atvaizduoti
   label_change_status: Pakeitimo būsena
   label_history: Istorija
@@ -566,17 +567,17 @@
   label_closed_issues: uždaryta
   label_closed_issues_plural: uždaryti
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 uždarytu
     one:   1 uždarytas
-    other: "{{count}} uždarytu"
+    other: "%{count} uždarytu"
   label_total: Bendra suma
   label_permissions: Leidimai
   label_current_status: Einamoji būsena
@@ -594,7 +595,7 @@
   label_months_from: mÄ—nesiai nuo
   label_gantt: Gantt
   label_internal: Vidinis
-  label_last_changes: "paskutiniai {{count}}, pokyÄiai"
+  label_last_changes: "paskutiniai %{count}, pokyÄiai"
   label_change_view_all: Peržiūrėti visus pakeitimus
   label_personalize_page: Suasmeninti šį puslapį
   label_comment: Komentaras
@@ -602,7 +603,7 @@
   label_x_comments:
     zero: nėra komentarų
     one: 1 komentaras
-    other: "{{count}} komentarų"
+    other: "%{count} komentarų"
   label_comment_add: PridÄ—kite komentarÄ…
   label_comment_added: Komentaras pridÄ—tas
   label_comment_delete: Pašalinkite komentarus
@@ -621,7 +622,7 @@
   label_yesterday: vakar
   label_this_week: šią savaitę
   label_last_week: paskutinÄ— savaitÄ—
-  label_last_n_days: "paskutinių {{count}} dienų"
+  label_last_n_days: "paskutinių %{count} dienų"
   label_this_month: šis menuo
   label_last_month: paskutinis menuo
   label_this_year: šiemet
@@ -635,8 +636,8 @@
   label_repository: Saugykla
   label_repository_plural: Saugyklos
   label_browse: Naršyti
-  label_modification: "{{count}} pakeitimas"
-  label_modification_plural: "{{count}} pakeitimai"
+  label_modification: "%{count} pakeitimas"
+  label_modification_plural: "%{count} pakeitimai"
   label_revision: Revizija
   label_revision_plural: Revizijos
   label_associated_revisions: susijusios revizijos
@@ -654,8 +655,8 @@
   label_sort_lower: Perkelti žemyn
   label_sort_lowest: Perkelti į apaÄiÄ…
   label_roadmap: Veiklos grafikas
-  label_roadmap_due_in: "Baigiasi po {{value}}"
-  label_roadmap_overdue: "{{value}} vÄ—luojama"
+  label_roadmap_due_in: "Baigiasi po %{value}"
+  label_roadmap_overdue: "%{value} vÄ—luojama"
   label_roadmap_no_issues: Jokio darbo šiai versijai nėra
   label_search: Ieškoti
   label_result_plural: Rezultatai
@@ -673,8 +674,8 @@
   label_changes_details: Visų pakeitimų detalės
   label_issue_tracking: Darbų sekimas
   label_spent_time: Dirbtas laikas
-  label_f_hour: "{{value}} valanda"
-  label_f_hour_plural: "{{value}} valandų"
+  label_f_hour: "%{value} valanda"
+  label_f_hour_plural: "%{value} valandų"
   label_time_tracking: Laiko sekimas
   label_change_plural: Pakeitimai
   label_statistics: Statistika
@@ -723,13 +724,13 @@
   label_date_from: Nuo
   label_date_to: Iki
   label_language_based: Pagrįsta vartotojo kalba
-  label_sort_by: "Rūšiuoti pagal {{value}}"
+  label_sort_by: "Rūšiuoti pagal %{value}"
   label_send_test_email: Nusiųsti bandomąjį elektroninį laišką
-  label_feeds_access_key_created_on: "RSS prieigos raktas sukurtas prieš {{value}}"
+  label_feeds_access_key_created_on: "RSS prieigos raktas sukurtas prieš %{value}"
   label_module_plural: Moduliai
-  label_added_time_by: "Pridėjo {{author}} prieš {{age}}"
-  label_updated_time_by: "Atnaujino {{author}} {{age}} atgal"
-  label_updated_time: "Atnaujinta prieš {{value}}"
+  label_added_time_by: "Pridėjo %{author} prieš %{age}"
+  label_updated_time_by: "Atnaujino %{author} %{age} atgal"
+  label_updated_time: "Atnaujinta prieš %{value}"
   label_jump_to_a_project: Šuolis į projektą...
   label_file_plural: Bylos
   label_changeset_plural: Changesets
@@ -745,7 +746,7 @@
   label_registration_activation_by_email: "paskyros aktyvacija per e-paštą"
   label_registration_manual_activation: "rankinÄ— paskyros aktyvacija"
   label_registration_automatic_activation: "automatinÄ— paskyros aktyvacija"
-  label_display_per_page: "{{value}} įrašų puslapyje"
+  label_display_per_page: "%{value} įrašų puslapyje"
   label_age: Amžius
   label_change_properties: Pakeisti nustatymus
   label_general: Bendri
@@ -769,7 +770,7 @@
   label_descending: Descending
   label_sort: Rūšiuoti
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
   label_wiki_content_added: Wiki puslapis pridÄ—tas
@@ -843,52 +844,52 @@
   text_regexp_info: pvz. ^[A-Z0-9]+$
   text_min_max_length_info: 0 reiškia jokių apribojimų
   text_project_destroy_confirmation: Ar esate įsitikinęs, kad jūs norite pašalinti šį projektą ir visus susijusius duomenis?
-  text_subprojects_destroy_warning: "Šis(ie) subprojektas(ai): {{value}} taip pat bus ištrintas(i)."
+  text_subprojects_destroy_warning: "Šis(ie) subprojektas(ai): %{value} taip pat bus ištrintas(i)."
   text_workflow_edit: Išrinkite vaidmenį ir pėdsekį, kad redaguotumėte darbų eigą
   text_are_you_sure: Ar esate įsitikinęs?
-  text_journal_changed: "{{label}} pakeista iš {{old}} į {{new}}"
-  text_journal_set_to: "{{label}} pakeista į {{value}}"
-  text_journal_deleted: "{{label}} ištrintas ({{old}})"
-  text_journal_added: "{{label}} {{value}} pridÄ—tas"
+  text_journal_changed: "%{label} pakeista iš %{old} į %{new}"
+  text_journal_set_to: "%{label} pakeista į %{value}"
+  text_journal_deleted: "%{label} ištrintas (%{old})"
+  text_journal_added: "%{label} %{value} pridÄ—tas"
   text_tip_issue_begin_day: užduotis, prasidedanti šią dieną
   text_tip_issue_end_day: užduotis, pasibaigianti šią dieną
   text_tip_issue_begin_end_day: užduotis, prasidedanti ir pasibaigianti šią dieną
   text_project_identifier_info: 'Mažosios raidÄ—s (a-z), skaiÄiai ir brÅ«kÅ¡niai galimi.<br/>IÅ¡saugojus, identifikuotojas negali bÅ«ti keiÄiamas.'
-  text_caracters_maximum: "{{count}} simbolių maksimumas."
-  text_caracters_minimum: "Turi būti mažiausiai {{count}} simbolių ilgio."
-  text_length_between: "Ilgis tarp {{min}} ir {{max}} simbolių."
+  text_caracters_maximum: "%{count} simbolių maksimumas."
+  text_caracters_minimum: "Turi būti mažiausiai %{count} simbolių ilgio."
+  text_length_between: "Ilgis tarp %{min} ir %{max} simbolių."
   text_tracker_no_workflow: Jokia darbų eiga neapibrėžta šiam pėdsekiui
   text_unallowed_characters: Neleistini simboliai
   text_comma_separated: Leistinos kelios reikšmės (atskirtos kableliu).
   text_issues_ref_in_commit_messages: Darbų pavedimų(commit) nurodymas ir fiksavimas  pranešimuose
-  text_issue_added: "Darbas {{id}} buvo praneštas (by {{author}})."
-  text_issue_updated: "Darbas {{id}} buvo atnaujintas (by {{author}})."
+  text_issue_added: "Darbas %{id} buvo praneštas (by %{author})."
+  text_issue_updated: "Darbas %{id} buvo atnaujintas (by %{author})."
   text_wiki_destroy_confirmation: Ar esate įsitikinęs, kad jūs norite pašalinti wiki ir visą jos turinį?
-  text_issue_category_destroy_question: "Kai kurie darbai ({{count}}) yra paskirti šiai kategorijai. Ką jūs norite daryti?"
+  text_issue_category_destroy_question: "Kai kurie darbai (%{count}) yra paskirti šiai kategorijai. Ką jūs norite daryti?"
   text_issue_category_destroy_assignments: Pašalinti kategorijos užduotis
   text_issue_category_reassign_to: Iš naujo priskirti darbus šiai kategorijai
   text_user_mail_option: "neišrinktiems projektams, jūs tiktai gausite pranešimus apie įvykius, kuriuos jūs stebite, arba į kuriuos esate įtrauktas (pvz. darbai, jūs esate autorius ar įgaliotinis)."
   text_no_configuration_data: "Vaidmenys, pėdsekiai, darbų būsenos ir darbų eiga dar nebuvo konfigūruoti.\nGriežtai rekomenduojam užkrauti numatytąją(default)konfiguraciją. Užkrovus, galėsite ją modifikuoti."
   text_load_default_configuration: Užkrauti numatytąj konfiguraciją
-  text_status_changed_by_changeset: "Pakeista {{value}} revizijoje."
+  text_status_changed_by_changeset: "Pakeista %{value} revizijoje."
   text_issues_destroy_confirmation: 'Ar jūs tikrai norite sunaikinti pažymėtą(us) darbą(us)?'
   text_select_project_modules: 'Parinkite modulius, kuriuos norite naudoti šiame projekte:'
   text_default_administrator_account_changed: Administratoriaus numatyta paskyra pakeista
   text_file_repository_writable: Ä® rinkmenu saugyklÄ… galima saugoti (RW)
   text_plugin_assets_writable: Įskiepių 'assets' katalogas įrašomas
   text_rmagick_available: RMagick pasiekiamas (pasirinktinai)
-  text_destroy_time_entries_question: Naikinamam darbui priskirta {{hours}} valandų. Ką jūs noryte su jomis daryti?
+  text_destroy_time_entries_question: Naikinamam darbui priskirta %{hours} valandų. Ką jūs noryte su jomis daryti?
   text_destroy_time_entries: Ištrinti paskelbtas valandas
   text_assign_time_entries_to_project: Priskirti valandas prie projekto
   text_reassign_time_entries: 'Priskirti paskelbtas valandas šiam darbui:'
-  text_user_wrote: "{{value}} parašė:"
-  text_enumeration_destroy_question: "{{count}} objektai priskirti šiai reikšmei."
+  text_user_wrote: "%{value} parašė:"
+  text_enumeration_destroy_question: "%{count} objektai priskirti šiai reikšmei."
   text_enumeration_category_reassign_to: 'Priskirti juos šiai reikšmei:'
   text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/email.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
   text_repository_usernames_mapping: "Parinkite  ar atnaujinkite Redmine vartotojo vardą kiekvienam saugyklos vardui, kuris paminėtas saugyklos log'e.\nVartotojai, turintys tą patį Redmine ir saugyklos vardą ar el.paštą automatiškai surišti."
   text_diff_truncated: "... Å is diff'as nukarpytas, nes jis virÅ¡ijo maksimalų rodomÄ… eiluÄių skaiÄių."
   text_custom_field_possible_values_info: 'Po vieną eilutę kiekvienai reikšmei'
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Priskirkite iš naujo 'child' puslapius šiam puslapiui
   text_wiki_page_nullify_children: Laikyti child puslapius as root puslapius
   text_wiki_page_destroy_children: Pašalinti child puslapius ir jų sekinius
@@ -933,9 +934,9 @@
   label_update_issue_done_ratios: Update issue done ratios
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -962,12 +963,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -975,7 +976,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -986,8 +987,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/lv.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/lv.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,924 +1,933 @@
-# translated by Dzintars Bergs (dzintars.bergs@gmail.com)
-
-lv:
-  direction: ltr
-  date:
-    formats:
-      default: "%d.%m.%Y"
-      short: "%d %b"
-      long: "%d %B %Y"
-      
-    day_names: [Svētdiena, Pirmdiena, Otrdiena, Trešdiena, Ceturtdiena, Piektdiena, Sestdiena]
-    abbr_day_names: [Sv, Pr, Ot, Tr, Ct, Pk, St]
-      
-    month_names: [~, JanvÄris, FebruÄris, Marts, AprÄ«lis , Maijs, JÅ«nijs, JÅ«lijs, Augusts, Septembris, Oktobris, Novembris, Decembris]
-    abbr_month_names: [~, Jan, Feb, Mar, Apr, Mai, Jūn, Jūl, Aug, Sep, Okt, Nov, Dec]
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%a, %d %b %Y, %H:%M:%S %z"
-      time: "%H:%M"
-      short: "%d %b, %H:%M"
-      long: "%B %d, %Y %H:%M"
-    am: "rÄ«tÄ"
-    pm: "vakarÄ"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "pus minūte"
-      less_than_x_seconds:
-        one:   "mazÄk kÄ 1 sekunde"
-        other: "mazÄk kÄ {{count}} sekundes"
-      x_seconds:
-        one:   "1 sekunde"
-        other: "{{count}} sekundes"
-      less_than_x_minutes:
-        one:   "mazÄk kÄ minÅ«te"
-        other: "mazÄk kÄ {{count}} minÅ«tes"
-      x_minutes:
-        one:   "1 minūte"
-        other: "{{count}} minūtes"
-      about_x_hours:
-        one:   "aptuveni 1 stunda"
-        other: "aptuveni {{count}} stundas"
-      x_days:
-        one:   "1 diena"
-        other: "{{count}} dienas"
-      about_x_months:
-        one:   "aptuveni 1 mēnesis"
-        other: "aptuveni {{count}} mēneši"
-      x_months:
-        one:   "1 mēnesis"
-        other: "{{count}} mēneši"
-      about_x_years:
-        one:   "aptuveni 1 gads"
-        other: "aptuveni {{count}} gadi"
-      over_x_years:
-        one:   "ilgÄk par 1 gadu"
-        other: "ilgÄk par {{count}} gadiem"
-      almost_x_years:
-        one:   "gandrīz 1 gadu"
-        other: "gandrīz {{count}} gadus"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: " "
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Baits"
-            other: "Baiti"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-  support:
-    array:
-      sentence_connector: "un"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "nav iekļauts sarakstÄ"
-        exclusion: "ir rezervēts"
-        invalid: "nederīgs"
-        confirmation: "apstiprinÄjums nesakrÄ«t"
-        accepted: "jÄbÅ«t akceptÄ“tam"
-        empty: "nevar būt tukšs"
-        blank: "nevar būt neaizpildīts"
-        too_long: "ir pÄrÄk gara(Å¡) (maksimÄlais garums ir {{count}} simboli)"
-        too_short: "ir pÄrÄk Ä«sa(s) (minimÄlais garums ir {{count}} simboli)"
-        wrong_length: "ir nepareiza garuma (vajadzētu būt {{count}} simboli)"
-        taken: "eksistē"
-        not_a_number: "nav skaitlis"
-        not_a_date: "nav derīgs datums"
-        greater_than: "jÄbÅ«t lielÄkam par {{count}}"
-        greater_than_or_equal_to: "jÄbÅ«t lielÄkam vai vienÄdam ar {{count}}"
-        equal_to: "jÄbÅ«t vienÄdam ar {{count}}"
-        less_than: "jÄbÅ«t mazÄkam kÄ {{count}}"
-        less_than_or_equal_to: "jÄbÅ«t mazÄkam vai vienÄdam ar {{count}}"
-        odd: "jÄatšķirÄs"
-        even: "jÄsakrÄ«t"
-        greater_than_start_date: "jÄbÅ«t vÄ“lÄkam par sÄkuma datumu"
-        not_same_project: "nepieder pie tÄ paÅ¡a projekta"
-        circular_dependency: "Å Ä« relÄcija radÄ«tu ciklisku atkarÄ«bu"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Izvēlieties
-  
-  general_text_No: 'NÄ“'
-  general_text_Yes: 'JÄ'
-  general_text_no: 'nē'
-  general_text_yes: 'jÄ'
-  general_lang_name: 'Latvian (Latviešu)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Konts tika atjaunots veiksmīgi.
-  notice_account_invalid_creditentials: Nepareizs lietotÄja vÄrds vai parole.
-  notice_account_password_updated: Parole tika veiksmīgi atjaunota.
-  notice_account_wrong_password: Nepareiza parole
-  notice_account_register_done: Konts veiksmīgi izveidots. Lai aktivizētu kontu, spiediet uz saites, kas Jums tika nosūtīta.
-  notice_account_unknown_email: NezinÄms lietotÄjs
-  notice_can_t_change_password: Å is konts izmanto ÄrÄ“ju pilnvaroÅ¡anas avotu. Nav iespÄ“jams nomainÄ«t paroli.
-  notice_account_lost_email_sent: Jums tika nosÅ«tÄ«ts e-pasts ar instrukcijÄm, kÄ izveidot jaunu paroli.
-  notice_account_activated: Jūsu konts ir aktivizēts. Varat pieslēgties sistēmai.
-  notice_successful_create: Veiksmīga izveide.
-  notice_successful_update: Veiksmīga atjaunošana.
-  notice_successful_delete: Veiksmīga dzēšana.
-  notice_successful_connection: Veiksmīgs savienojums.
-  notice_file_not_found: Lapa, ko JÅ«s mēģinÄt atvÄ“rt, neeksistÄ“ vai ir pÄrvietota.
-  notice_locking_conflict: Datus ir atjaunojis cits lietotÄjs.
-  notice_not_authorized: Jums nav tiesību piekļūt šai lapai.
-  notice_email_sent: "E-pasts tika nosūtīts uz {{value}}"
-  notice_email_error: "Kļūda sūtot e-pastu ({{value}})"
-  notice_feeds_access_key_reseted: JÅ«su RSS pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
-  notice_api_access_key_reseted: JÅ«su API pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
-  notice_failed_to_save_issues: "NeizdevÄs saglabÄt {{count}} uzdevumu(us) no {{total}} izvÄ“lÄ“ti: {{ids}}."
-  notice_no_issue_selected: "Nav izvēlēts uzdevums! Lūdzu, atzīmējiet uzdevumus, kurus vēlaties rediģēt!"
-  notice_account_pending: "JÅ«su konts tika izveidots un Å¡obrÄ«d gaida administratora apstiprinÄjumu."
-  notice_default_data_loaded: NoklusÄ“tÄ konfigurÄcija tika veiksmÄ«gi ielÄdÄ“ta.
-  notice_unable_delete_version: NeizdevÄs dzÄ“st versiju.
-  notice_issue_done_ratios_updated: Uzdevuma izpildes koeficients atjaunots.
-  
-  error_can_t_load_default_data: "Nevar ielÄdÄ“t noklusÄ“tos konfigurÄcijas datus: {{value}}"
-  error_scm_not_found: "Ieraksts vai versija nebija repozitorijÄ."
-  error_scm_command_failed: "Mēģinot piekļūt repozitorijam, notika kļūda: {{value}}"
-  error_scm_annotate: "Ieraksts neeksistē vai tam nevar tikt pievienots paskaidrojums."
-  error_issue_not_found_in_project: 'Uzdevums netika atrasts vai nepieder šim projektam.'
-  error_no_tracker_in_project: 'Neviens trakeris nav saistÄ«ts ar Å¡o projektu. PÄrbaudiet projekta iestatÄ«jumus.'
-  error_no_default_issue_status: 'Nav definÄ“ts uzdevuma noklusÄ“tais statuss. PÄrbaudiet konfigurÄciju (Ejat uz: "AdministrÄcija -> Uzdevumu statusi")!'
-  error_can_not_reopen_issue_on_closed_version: 'Nevar pievienot atsauksmi uzdevumam, kas saistīts ar slēgtu versiju.'
-  error_can_not_archive_project: Šis projekts nevar tikt arhivēts
-  error_issue_done_ratios_not_updated: "Uzdevuma izpildes koeficients nav atjaunots."
-  error_workflow_copy_source: 'Lūdzu izvēlieties avota trakeri vai lomu'
-  error_workflow_copy_target: 'Lūdzu izvēlēties mērķa trakeri(us) un lomu(as)'
-  
-  warning_attachments_not_saved: "{{count}} datnes netika saglabÄtas."
-  
-  mail_subject_lost_password: "Jūsu {{value}} parole"
-  mail_body_lost_password: 'Lai mainītu paroli, spiediet uz šīs saites:'
-  mail_subject_register: "JÅ«su {{value}} konta aktivizÄcija"
-  mail_body_register: 'Lai izveidotu kontu, spiediet uz šīs saites:'
-  mail_body_account_information_external: "Varat izmantot Jūsu {{value}} kontu, lai pieslēgtos."
-  mail_body_account_information: JÅ«su konta informÄcija
-  mail_subject_account_activation_request: "{{value}} konta aktivizÄcijas pieprasÄ«jums"
-  mail_body_account_activation_request: "Jauns lietotÄjs ({{value}}) ir reÄ£istrÄ“ts. LietotÄja konts gaida JÅ«su apstiprinÄjumu:"
-  mail_subject_reminder: "{{count}} uzdevums(i) sagaidÄms(i) tuvÄkajÄs {{days}} dienÄs"
-  mail_body_reminder: "{{count}} uzdevums(i), kurÅ¡(i) ir nozÄ«mÄ“ts(i) Jums, sagaidÄms(i) tuvÄkajÄs {{days}} dienÄs:"
-  mail_subject_wiki_content_added: "'{{id}}' Wiki lapa pievienota"
-  mail_body_wiki_content_added: "The '{{id}}' Wiki lapu pievienojis {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki lapa atjaunota"
-  mail_body_wiki_content_updated: "The '{{id}}' Wiki lapu atjaunojis {{author}}."
-  
-  gui_validation_error: 1 kļūda
-  gui_validation_error_plural: "{{count}} kļūdas"
-  
-  field_name: Nosaukums
-  field_description: Apraksts
-  field_summary: Kopsavilkums
-  field_is_required: Nepieciešams
-  field_firstname: VÄrds
-  field_lastname: UzvÄrds
-  field_mail: "E-pasts"
-  field_filename: Datne
-  field_filesize: Izmērs
-  field_downloads: LejupielÄdes
-  field_author: Autors
-  field_created_on: Izveidots
-  field_updated_on: Atjaunots
-  field_field_format: FormÄts
-  field_is_for_all: Visiem projektiem
-  field_possible_values: IespÄ“jamÄs vÄ“rtÄ«bas
-  field_regexp: RegulÄrÄ izteiksme
-  field_min_length: MinimÄlais garums
-  field_max_length: MaksimÄlais garums
-  field_value: Vērtība
-  field_category: Kategorija
-  field_title: Nosaukums
-  field_project: Projekts
-  field_issue: Uzdevums
-  field_status: Statuss
-  field_notes: Piezīmes
-  field_is_closed: Uzdevums slēgts
-  field_is_default: NoklusÄ“tÄ vÄ“rtÄ«ba
-  field_tracker: Trakeris
-  field_subject: Temats
-  field_due_date: SagaidÄmais datums
-  field_assigned_to: Piešķirts
-  field_priority: PrioritÄte
-  field_fixed_version: Mērķa versija
-  field_user: LietotÄjs
-  field_role: Loma
-  field_homepage: Vietne
-  field_is_public: Publisks
-  field_parent: Apakšprojekts projektam
-  field_is_in_roadmap: CeļvedÄ« parÄdÄ«tie uzdevumi
-  field_login: Pieslēgties
-  field_mail_notification: "E-pasta paziņojumi"
-  field_admin: Administrators
-  field_last_login_on: Pēdējo reizi pieslēdzies
-  field_language: Valoda
-  field_effective_date: Datums
-  field_password: Parole
-  field_new_password: JanÄ parole
-  field_password_confirmation: Paroles apstiprinÄjums
-  field_version: Versija
-  field_type: Tips
-  field_host: Hosts
-  field_port: Ports
-  field_account: Konts
-  field_base_dn: Base DN
-  field_attr_login: PieslÄ“gÅ¡anÄs atribÅ«ts
-  field_attr_firstname: VÄrda atribÅ«ts
-  field_attr_lastname: UzvÄrda atribÅ«ts
-  field_attr_mail: "E-pasta atribūts"
-  field_onthefly: "LietotÄja izveidoÅ¡ana on-the-fly"
-  field_done_ratio: % padarīti
-  field_auth_source: Pilnvarošanas režīms
-  field_hide_mail: "Paslēpt manu e-pasta adresi"
-  field_comments: KomentÄrs
-  field_url: URL
-  field_start_page: SÄkuma lapa
-  field_subproject: Apakšprojekts
-  field_hours: Stundas
-  field_activity: AktivitÄte
-  field_spent_on: Datums
-  field_identifier: Identifikators
-  field_is_filter: Izmantots kÄ filtrs
-  field_issue_to: Saistīts uzdevums
-  field_delay: Kavējums
-  field_assignable: Uzdevums var tikt piesaistīts šai lomai
-  field_redirect_existing_links: PÄradresÄ“t eksistÄ“joÅ¡Äs saites
-  field_estimated_hours: Paredzētais laiks
-  field_column_names: Kolonnas
-  field_time_zone: Laika zona
-  field_searchable: Meklējams
-  field_default_value: NoklusÄ“tÄ vÄ“rtÄ«ba
-  field_comments_sorting: RÄdÄ«t komentÄrus
-  field_parent_title: VecÄka lapa
-  field_editable: Rediģējams
-  field_watcher: VÄ“rotÄjs
-  field_identity_url: OpenID URL
-  field_content: Saturs
-  field_group_by: GrupÄ“t rezultÄtus pÄ“c
-  field_sharing: Koplietošana
-  
-  setting_app_title: Programmas nosaukums
-  setting_app_subtitle: Programmas apakš-nosaukums
-  setting_welcome_text: Sveiciena teksts
-  setting_default_language: NoklusÄ“tÄ valoda
-  setting_login_required: Nepieciešama pilnvarošana
-  setting_self_registration: PaÅ¡reÄ£istrēšanÄs
-  setting_attachment_max_size: Pielikuma maksimÄlais izmÄ“rs
-  setting_issues_export_limit: Uzdevumu eksporta ierobežojums
-  setting_mail_from: "E-pasta adrese informÄcijas nosÅ«tīšanai"
-  setting_bcc_recipients: "SaņēmÄ“ju adreses neparÄdÄ«sies citu saņēmÄ“ju vÄ“stulÄ“s (bcc)"
-  setting_plain_text_mail: "VÄ“stule brÄ«vÄ tekstÄ (bez HTML)"
-  setting_host_name: Hosta nosaukums un piekļuves ceļš
-  setting_text_formatting: Teksta formatēšana
-  setting_wiki_compression: Wiki vēstures saspiešana
-  setting_feeds_limit: Barotnes satura ierobežojums
-  setting_default_projects_public: Jaunie projekti noklusēti ir publiski pieejami
-  setting_autofetch_changesets: "AutomÄtiski lietot jaunÄko versiju, pieslÄ“dzoties repozitorijam (Autofetch)"
-  setting_sys_api_enabled: Ieslēgt WS repozitoriju menedžmentam
-  setting_commit_ref_keywords: NorÄdes atslÄ“gvÄrdi
-  setting_commit_fix_keywords:  FiksÄ“joÅ¡ie atslÄ“gvÄrdi
-  setting_autologin: AutomÄtiskÄ pieslÄ“gÅ¡anÄs
-  setting_date_format: Datuma formÄts
-  setting_time_format: Laika formÄts
-  setting_cross_project_issue_relations: "Atļaut starp-projektu uzdevumu relÄcijas"
-  setting_issue_list_default_columns: NoklusÄ“ti rÄdÄ«tÄs kolonnas uzdevumu sarakstÄ
-  setting_repositories_encodings: Repozitoriju kodējumi
-  setting_commit_logs_encoding: Kodēt ziņojumus
-  setting_emails_footer: "E-pastu kÄjene"
-  setting_protocol: Protokols
-  setting_per_page_options: Objekti vienÄ lapÄ
-  setting_user_format: LietotÄju rÄdīšanas formÄts
-  setting_activity_days_default: Dienus skaits aktivitÄÅ¡u rÄdīšanai aktivitÄÅ¡u sadaļÄ
-  setting_display_subprojects_issues: RÄdÄ«t apakÅ¡projekta uzdevumus galvenajÄ projektÄ pÄ“c noklusÄ“juma
-  setting_enabled_scm: Lietot SCM
-  setting_mail_handler_body_delimiters: "SaÄ«sinÄt pÄ“c vienas no Å¡im rindÄm"
-  setting_mail_handler_api_enabled: "Lietot WS ienÄkoÅ¡ajiem e-pastiem"
-  setting_mail_handler_api_key: API atslēga
-  setting_sequential_project_identifiers: Ģenerēt secīgus projektu identifikatorus
-  setting_gravatar_enabled: Izmantot Gravatar lietotÄju ikonas
-  setting_gravatar_default: Noklusētais Gravatar attēls
-  setting_diff_max_lines_displayed: MaksimÄlais rÄdÄ«to diff rindu skaits
-  setting_file_max_size_displayed: MaksimÄlais izmÄ“rs iekļautajiem teksta failiem
-  setting_repository_log_display_limit: MaksimÄlais žurnÄla datnÄ“ rÄdÄ«to revÄ«ziju skaits
-  setting_openid: Atļaut OpenID pieslēgšanos un reģistrēšanos
-  setting_password_min_length: MinimÄlais paroles garums
-  setting_new_project_user_role_id: Loma, kura tiek piešķirta ne-administratora lietotÄjam, kurÅ¡ izveido projektu
-  setting_default_projects_modules: Noklusētie lietotie moduļi jaunam projektam
-  setting_issue_done_ratio: AprēķinÄt uzdevuma izpildes koeficientu ar
-  setting_issue_done_ratio_issue_field: uzdevuma lauku
-  setting_issue_done_ratio_issue_status: uzdevuma statusu
-  setting_start_of_week: SÄkt kalendÄru ar
-  setting_rest_api_enabled: Lietot REST web-servisu
-  setting_cache_formatted_text: Kešot formatētu tekstu
-  
-  permission_add_project: Izveidot projektu
-  permission_add_subprojects: Izveidot apakšprojektu
-  permission_edit_project: Rediģēt projektu
-  permission_select_project_modules: Izvēlēties projekta moduļus
-  permission_manage_members: PÄrvaldÄ«t dalÄ«bniekus
-  permission_manage_project_activities: PÄrvaldÄ«t projekta aktivitÄtes
-  permission_manage_versions: PÄrvaldÄ«t versijas
-  permission_manage_categories: PÄrvaldÄ«t uzdevumu kategorijas
-  permission_view_issues: Apskatīt uzdevumus
-  permission_add_issues: Pievienot uzdevumus
-  permission_edit_issues: Rediģēt uzdevumus
-  permission_manage_issue_relations: PÄrvaldÄ«t uzdevumu relÄcijas
-  permission_add_issue_notes: Pievienot piezīmes
-  permission_edit_issue_notes: Rediģēt piezīmes
-  permission_edit_own_issue_notes: Rediģēt paša piezīmes
-  permission_move_issues: PÄrvietot uzdevumus
-  permission_delete_issues: Dzēst uzdevumus
-  permission_manage_public_queries: PÄrvaldÄ«t publiskos pieprasÄ«jumus
-  permission_save_queries: SaglabÄt pieprasÄ«jumus
-  permission_view_gantt: Skatīt Ganta diagrammu
-  permission_view_calendar: SkatÄ«t kalendÄru
-  permission_view_issue_watchers: SkatÄ«t vÄ“rotÄju sarakstu
-  permission_add_issue_watchers: Pievienot vÄ“rotÄjus
-  permission_delete_issue_watchers: DzÄ“st vÄ“rotÄjus
-  permission_log_time: Piereģistrēt pavadīto laiku
-  permission_view_time_entries: Skatīt pavadīto laiku
-  permission_edit_time_entries: Rdiģēt laika reģistrus
-  permission_edit_own_time_entries:  Rediģēt savus laika reģistrus
-  permission_manage_news: PÄrvaldÄ«t jaunumus
-  permission_comment_news: Komentēt jaunumus
-  permission_manage_documents: PÄrvaldÄ«t dokumentus
-  permission_view_documents: Skatīt dokumentus
-  permission_manage_files: PÄrvaldÄ«t failus
-  permission_view_files: Skatīt failus
-  permission_manage_wiki: PÄrvaldÄ«t wiki
-  permission_rename_wiki_pages: PÄrsaukt wiki lapas
-  permission_delete_wiki_pages: Dzēst wiki lapas
-  permission_view_wiki_pages: Skatīt wiki
-  permission_view_wiki_edits: Skatīt wiki vēsturi
-  permission_edit_wiki_pages: Rdiģēt wiki lapas
-  permission_delete_wiki_pages_attachments: Dzēst pielikumus
-  permission_protect_wiki_pages: Projekta wiki lapas
-  permission_manage_repository: PÄrvaldÄ«t repozitoriju
-  permission_browse_repository: PÄrlÅ«kot repozitoriju
-  permission_view_changesets: Skatīt izmaiņu kopumus  
-  permission_commit_access: Atļaut piekļuvi
-  permission_manage_boards: PÄrvaldÄ«t ziņojumu dēļus
-  permission_view_messages: Skatīt ziņas
-  permission_add_messages: Publicēt ziņas
-  permission_edit_messages: Rediģēt ziņas
-  permission_edit_own_messages: Rediģēt savas ziņas
-  permission_delete_messages: Dzēst ziņas
-  permission_delete_own_messages: Dzēst savas ziņas
-  permission_export_wiki_pages: Eksportēt Wiki lapas
-  
-  project_module_issue_tracking: Uzdevumu uzskaite
-  project_module_time_tracking: Laika uzskaite
-  project_module_news: Jaunumi
-  project_module_documents: Dokumenti
-  project_module_files: Datnes
-  project_module_wiki: Wiki
-  project_module_repository: Repozitorijs
-  project_module_boards: Ziņojumu dēļi
-  
-  label_user: LietotÄjs
-  label_user_plural: LietotÄji
-  label_user_new: Jauns lietotÄjs
-  label_user_anonymous: Anonīms
-  label_project: Projekts
-  label_project_new: Jauns projekts
-  label_project_plural: Projekti
-  label_x_projects:
-    zero:  nav projektu
-    one:   1 projekts
-    other: "{{count}} projekti"
-  label_project_all: Visi projekti
-  label_project_latest: JaunÄkie projekti
-  label_issue: Uzdevums
-  label_issue_new: Jauns uzdevums
-  label_issue_plural: Uzdevumi
-  label_issue_view_all: Skatīt visus uzdevumus
-  label_issues_by: "KÄrtot pÄ“c {{value}}"
-  label_issue_added: Uzdevums pievienots
-  label_issue_updated: Uzdevums atjaunots
-  label_document: Dokuments
-  label_document_new: Jauns dokuments
-  label_document_plural: Dokumenti
-  label_document_added: Dokuments pievienots
-  label_role: Loma
-  label_role_plural: Lomas
-  label_role_new: Jauna loma
-  label_role_and_permissions: Lomas un atļaujas
-  label_member: Dalībnieks
-  label_member_new: Jauns dalībnieks
-  label_member_plural: Dalībnieki
-  label_tracker: Trakeris
-  label_tracker_plural: Trakeri
-  label_tracker_new: Jauns trakeris
-  label_workflow: Darba gaita
-  label_issue_status: Uzdevuma statuss
-  label_issue_status_plural: Uzdevumu statusi
-  label_issue_status_new: Jauns statuss
-  label_issue_category: Uzdevuma kategorija
-  label_issue_category_plural: Uzdevumu kategorijas
-  label_issue_category_new: Jauna kategorija
-  label_custom_field: PielÄgojams lauks
-  label_custom_field_plural: PielÄgojami lauki
-  label_custom_field_new: Jauns pielÄgojams lauks
-  label_enumerations: Uzskaitījumi
-  label_enumeration_new: Jauna vērtība
-  label_information: InformÄcija
-  label_information_plural: InformÄcija
-  label_please_login: Lūdzu pieslēdzieties
-  label_register: Reģistrēties
-  label_login_with_open_id_option: vai pieslēgties ar OpenID
-  label_password_lost: Nozaudēta parole
-  label_home: SÄkums
-  label_my_page: Mana lapa
-  label_my_account: Mans konts
-  label_my_projects: Mani projekti
-  label_administration: AdministrÄcija
-  label_login: Pieslēgties
-  label_logout: Atslēgties
-  label_help: Palīdzība
-  label_reported_issues: Ziņotie uzdevumi
-  label_assigned_to_me_issues: Man piesaistītie uzdevumi
-  label_last_login: PÄ“dÄ“jÄ pieslÄ“gÅ¡anÄs
-  label_registered_on: Reģistrējies
-  label_activity: AktivitÄte
-  label_overall_activity: KopÄ“jÄs aktivitÄtes
-  label_user_activity: "LietotÄja {{value}} aktivitÄtes"
-  label_new: Jauns
-  label_logged_as: PieslÄ“dzies kÄ
-  label_environment: Vide
-  label_authentication: Pilnvarošana
-  label_auth_source: Pilnvarošanas režīms
-  label_auth_source_new: Jauns pilnvarošanas režīms
-  label_auth_source_plural: Pilnvarošanas režīmi
-  label_subproject_plural: Apakšprojekti
-  label_subproject_new: Jauns apakšprojekts
-  label_and_its_subprojects: "{{value}} un tÄ apakÅ¡projekti"
-  label_min_max_length: MinimÄlais - MaksimÄlais garums
-  label_list: Saraksts
-  label_date: Datums
-  label_integer: Vesels skaitlis
-  label_float: DecimÄlskaitlis
-  label_boolean: Patiesuma vērtība
-  label_string: Teksts
-  label_text: Garš teksts
-  label_attribute: Atribūts
-  label_attribute_plural: Atribūti
-  label_download: "{{count}} LejupielÄde"
-  label_download_plural: "{{count}} LejupielÄdes"
-  label_no_data: Nav datu, ko parÄdÄ«t
-  label_change_status: Mainīt statusu
-  label_history: Vēsture
-  label_attachment: Pielikums
-  label_attachment_new: Jauns pielikums
-  label_attachment_delete: Dzēst pielikumu
-  label_attachment_plural: Pielikumi
-  label_file_added: Lauks pievienots
-  label_report: Atskaite
-  label_report_plural: Atskaites
-  label_news: Ziņa
-  label_news_new: Pievienot ziņu
-  label_news_plural: Ziņas
-  label_news_latest: JaunÄkÄs ziņas
-  label_news_view_all: Skatīt visas ziņas
-  label_news_added: Ziņas pievienotas
-  label_settings: Iestatījumi
-  label_overview: PÄrskats
-  label_version: Versija
-  label_version_new: Jauna versija
-  label_version_plural: Versijas
-  label_close_versions: AizvÄ“rt pabeigtÄs versijas
-  label_confirmation: ApstiprinÄjums
-  label_export_to: 'Pieejams arī:'
-  label_read: Lasīt...
-  label_public_projects: Publiskie projekti
-  label_open_issues: atvērts
-  label_open_issues_plural: atvērti
-  label_closed_issues: slēgts
-  label_closed_issues_plural: slēgti
-  label_x_open_issues_abbr_on_total:
-    zero:  0 atvērti / {{total}}
-    one:   1 atvērts / {{total}}
-    other: "{{count}} atvērti / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 atvērti
-    one:   1 atvērts
-    other: "{{count}} atvērti"
-  label_x_closed_issues_abbr:
-    zero:  0 slēgti
-    one:   1 slēgts
-    other: "{{count}} slēgti"
-  label_total: KopÄ
-  label_permissions: Atļaujas
-  label_current_status: Pašreizējais statuss
-  label_new_statuses_allowed: Jauni statusi atļauti
-  label_all: visi
-  label_none: neviens
-  label_nobody: nekas
-  label_next: NÄkoÅ¡ais
-  label_previous: Iepriekšējais
-  label_used_by: Izmanto
-  label_details: Detaļas
-  label_add_note: Pievienot piezīmi
-  label_per_page: katrÄ lapÄ
-  label_calendar: KalendÄrs
-  label_months_from: mēneši no
-  label_gantt: Ganta diagramma
-  label_internal: Iekšējais
-  label_last_changes: "pÄ“dÄ“jÄs {{count}} izmaiņas"
-  label_change_view_all: Skatīt visas izmaiņas
-  label_personalize_page: PielÄgot Å¡o lapu
-  label_comment: KomentÄrs
-  label_comment_plural: KomentÄri
-  label_x_comments:
-    zero: nav komentÄru
-    one: 1 komentÄrs
-    other: "{{count}} komentÄri"
-  label_comment_add: Pievienot komentÄru
-  label_comment_added: KomentÄrs pievienots
-  label_comment_delete: DzÄ“st komentÄrus
-  label_query: PielÄgots pieprasÄ«jums
-  label_query_plural: PielÄgoti pieprasÄ«jumi
-  label_query_new: Jauns pieprasījums
-  label_filter_add: Pievienot filtru
-  label_filter_plural: Filtri
-  label_equals: ir
-  label_not_equals: nav
-  label_in_less_than: ir mazÄk kÄ
-  label_in_more_than: ir vairÄk kÄ
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: iekš
-  label_today: šodien
-  label_all_time: visu laiku
-  label_yesterday: vakar
-  label_this_week: šonedēļ
-  label_last_week: pagÄjuÅ¡o Å¡onedēļ
-  label_last_n_days: "pÄ“dÄ“jÄs {{count}} dienas"
-  label_this_month: šomēnes
-  label_last_month: pagÄjuÅ¡o mÄ“nes
-  label_this_year: šogad
-  label_date_range: Datumu apgabals
-  label_less_than_ago: mazÄk kÄ dienas iepriekÅ¡
-  label_more_than_ago: vairÄk kÄ dienas iepriekÅ¡
-  label_ago: dienas iepriekš
-  label_contains: satur
-  label_not_contains: nesatur
-  label_day_plural: dienas
-  label_repository: Repozitorijs
-  label_repository_plural: Repozitoriji
-  label_browse: PÄrlÅ«kot
-  label_modification: "{{count}} izmaiņa"
-  label_modification_plural: "{{count}} izmaiņas"
-  label_branch: Zars
-  label_tag: Birka 
-  label_revision: Revīzija
-  label_revision_plural: Revīzijas
-  label_revision_id: "Revīzija {{value}}"
-  label_associated_revisions: SaistÄ«tÄs revÄ«zijas
-  label_added: pievienots
-  label_modified: modificēts
-  label_copied: nokopēts
-  label_renamed: pÄrsaukts
-  label_deleted: dzēsts
-  label_latest_revision: PÄ“dÄ“jÄ revÄ«zija
-  label_latest_revision_plural: PÄ“dÄ“jÄs revÄ«zijas
-  label_view_revisions: Skatīt revīzijas
-  label_view_all_revisions: Skatīt visas revīzijas
-  label_max_size: MaksimÄlais izmÄ“rs
-  label_sort_highest: PÄrvietot uz augÅ¡u
-  label_sort_higher: PÄrvietot soli augÅ¡up
-  label_sort_lower: PÄrvietot uz leju
-  label_sort_lowest: PÄrvietot vienu soli uz leju
-  label_roadmap: Ceļvedis
-  label_roadmap_due_in: "SagaidÄms pÄ“c {{value}}"
-  label_roadmap_overdue: "nokavēts {{value}}"
-  label_roadmap_no_issues: Å ai versijai nav uzdevumu
-  label_search: Meklēt
-  label_result_plural: RezultÄti
-  label_all_words: Visi vÄrdi
-  label_wiki: Wiki
-  label_wiki_edit: Wiki labojums
-  label_wiki_edit_plural: Wiki labojumi
-  label_wiki_page: Wiki lapa
-  label_wiki_page_plural: Wiki lapas
-  label_index_by_title: Indeksēt pēc nosaukuma
-  label_index_by_date: Indeksēt pēc datuma
-  label_current_version: TekoÅ¡Ä versija
-  label_preview: Priekšskatījums
-  label_feed_plural: Barotnes
-  label_changes_details: Visu izmaiņu detaļas
-  label_issue_tracking: Uzdevumu uzskaite
-  label_spent_time: Pavadītais laiks
-  label_f_hour: "{{value}} stunda"
-  label_f_hour_plural: "{{value}} stundas"
-  label_time_tracking: Laika uzskaite
-  label_change_plural: Izmaiņas
-  label_statistics: Statistika
-  label_commits_per_month: Nodevumi mēnesī
-  label_commits_per_author: Nodevumi no autora
-  label_view_diff: Skatīt atšķirības
-  label_diff_inline: iekļauts
-  label_diff_side_by_side: blakus
-  label_options: Opcijas
-  label_copy_workflow_from: Kopēt darba plūsmu no
-  label_permissions_report: Atļauju atskaite
-  label_watched_issues: Vērotie uzdevumi
-  label_related_issues: Saistītie uzdevumi
-  label_applied_status: Piešķirtais statuss
-  label_loading: LÄdÄ“jas...
-  label_relation_new: Jauna relÄcija
-  label_relation_delete: DzÄ“st relÄciju
-  label_relates_to: saistīts ar
-  label_duplicates: dublikÄti
-  label_duplicated_by: dublējas ar
-  label_blocks: bloÄ·Ä“
-  label_blocked_by: nobloķējis
-  label_precedes: pirms
-  label_follows: seko
-  label_end_to_start: no beigÄm uz sÄkumu
-  label_end_to_end: no beigÄm uz beigÄm
-  label_start_to_start: no sÄkuma uz sÄkumu
-  label_start_to_end: no sÄkuma uz beigÄm
-  label_stay_logged_in: Atcerēties mani
-  label_disabled: izslēgts
-  label_show_completed_versions: RÄdÄ«t pabeigtÄs versijas
-  label_me: es
-  label_board: Forums
-  label_board_new: Jauns forums
-  label_board_plural: Forumi
-  label_board_locked: Slēgts
-  label_board_sticky: Svarīgs
-  label_topic_plural: Tēmas
-  label_message_plural: Ziņas
-  label_message_last: PÄ“dÄ“jÄ ziņa
-  label_message_new: Jauna ziņa
-  label_message_posted: Ziņa pievienota
-  label_reply_plural: Atbildes
-  label_send_information: SÅ«tÄ«t konta informÄciju lietotÄjam
-  label_year: Gads
-  label_month: Mēnesis
-  label_week: Nedēļa
-  label_date_from: No
-  label_date_to: Kam
-  label_language_based: Izmantot lietotÄja valodu
-  label_sort_by: "KÄrtot pÄ“c {{value}}"
-  label_send_test_email: "Sūtīt testa e-pastu"
-  label_feeds_access_key: RSS piekļuves atslēga
-  label_missing_feeds_access_key: Trūkst RSS piekļuves atslēgas
-  label_feeds_access_key_created_on: "RSS piekļuves atslēga izveidota pirms {{value}}"
-  label_module_plural: Moduļi
-  label_added_time_by: "Pievienojis {{author}} pirms {{age}}"
-  label_updated_time_by: "Atjaunojis {{author}} pirms {{age}}"
-  label_updated_time: "Atjaunots pirms {{value}}"
-  label_jump_to_a_project: PÄriet uz projektu...
-  label_file_plural: Datnes
-  label_changeset_plural: Izmaiņu kopumi
-  label_default_columns: NoklusÄ“tÄs kolonnas
-  label_no_change_option: (Nav izmaiņu)
-  label_bulk_edit_selected_issues: Labot visus izvēlētos uzdevumus
-  label_theme: Tēma
-  label_default: Noklusēts
-  label_search_titles_only: Meklēt tikai nosaukumos
-  label_user_mail_option_all: "Par visiem notikumiem visos manos projektos"
-  label_user_mail_option_selected: "Par visiem notikumiem tikai izvēlētajos projektos..."
-  label_user_mail_no_self_notified: "Neziņot man par izmaiņÄm, kuras veicu es pats"
-  label_registration_activation_by_email: "konta aktivizÄcija caur e-pastu"
-  label_registration_manual_activation: manuÄlÄ konta aktivizÄcija
-  label_registration_automatic_activation: automÄtiskÄ konta aktivizÄcija
-  label_display_per_page: "RÄdÄ«t vienÄ lapÄ: {{value}}"
-  label_age: Vecums
-  label_change_properties: Mainīt atribūtus
-  label_general: Galvenais
-  label_more: Vēl
-  label_scm: SCM
-  label_plugins: Spraudņi
-  label_ldap_authentication: LDAP pilnvarošana
-  label_downloads_abbr: L-lÄd.
-  label_optional_description: "Apraksts (neobligÄts)"
-  label_add_another_file: Pievienot citu failu
-  label_preferences: Priekšrocības
-  label_chronological_order: HronoloÄ£iskÄ kÄrtÄ«bÄ
-  label_reverse_chronological_order: Apgriezti hronoloÄ£iskÄ kÄrtÄ«bÄ
-  label_planning: PlÄnoÅ¡ana
-  label_incoming_emails: "IenÄkoÅ¡ie e-pasti"
-  label_generate_key: Ģenerēt atslēgu
-  label_issue_watchers: VÄ“rotÄji
-  label_example: Piemērs
-  label_display: RÄdÄ«t
-  label_sort: KÄrtot
-  label_ascending: Augoši
-  label_descending: Dilstoši
-  label_date_from_to: "No {{start}} līdz {{end}}"
-  label_wiki_content_added: Wiki lapa pievienota
-  label_wiki_content_updated: Wiki lapa atjaunota
-  label_group: Grupa
-  label_group_plural: Grupas
-  label_group_new: Jauna grupa
-  label_time_entry_plural: Pavadītais laiks
-  label_version_sharing_none: Nav koplietošanai
-  label_version_sharing_descendants: Ar apakšprojektiem
-  label_version_sharing_hierarchy: Ar projektu hierarhiju
-  label_version_sharing_tree: Ar projekta koku
-  label_version_sharing_system: Ar visiem projektiem
-  label_update_issue_done_ratios: Atjaunot uzdevuma veikuma attiecību
-  label_copy_source: Avots
-  label_copy_target: Mērķis
-  label_copy_same_as_target: TÄds pats kÄ mÄ“rÄ·is
-  label_display_used_statuses_only: "RÄdÄ«t tikai statusus, ko lieto Å¡is trakeris"
-  label_api_access_key: API pieejas atslēga
-  label_missing_api_access_key: Trūkst API pieejas atslēga
-  label_api_access_key_created_on: "API pieejas atslēga izveidota pirms {{value}}"
-  
-  button_login: Pieslēgties
-  button_submit: Nosūtīt
-  button_save: SaglabÄt
-  button_check_all: Atzīmēt visu
-  button_uncheck_all: Noņemt visus atzīmējumus
-  button_delete: Dzēst
-  button_create: Izveidot
-  button_create_and_continue: Izveidot un turpinÄt
-  button_test: Testēt
-  button_edit: Labot
-  button_add: Pievienot
-  button_change: Mainīt
-  button_apply: ApstiprinÄt
-  button_clear: Notīrīt
-  button_lock: Slēgt
-  button_unlock: Atslēgt
-  button_download: LejuplÄdÄ“t
-  button_list: Saraksts
-  button_view: Skats
-  button_move: PÄrvietot
-  button_move_and_follow: PÄrvietot un sekot
-  button_back: Atpakaļ
-  button_cancel: Atcelt
-  button_activate: Aktivizēt
-  button_sort: KÄrtot
-  button_log_time: Ilgs laiks
-  button_rollback: Atjaunot uz šo versiju
-  button_watch: Vērot
-  button_unwatch: Nevērot
-  button_reply: Atbildēt
-  button_archive: Arhivēt
-  button_unarchive: Atarhivēt
-  button_reset: Atiestatīt
-  button_rename: PÄrsaukt
-  button_change_password: Mainīt paroli
-  button_copy: Kopēt
-  button_copy_and_follow: Kopēt un sekot
-  button_annotate: Pierakstīt paskaidrojumu
-  button_update: Atjaunot
-  button_configure: Konfigurēt
-  button_quote: CitÄts
-  button_duplicate: Dublēt
-  button_show: RÄdÄ«t
-  
-  status_active: aktīvs
-  status_registered: reģistrēts
-  status_locked: slēgts
-  
-  version_status_open: atvērta
-  version_status_locked: slēgta
-  version_status_closed: aizvērta
-
-  field_active: Aktīvs
-  
-  text_select_mail_notifications: "IzvÄ“lieties darbÄ«bas, par kurÄm vÄ“laties saņemt ziņojumus e-pastÄ"
-  text_regexp_info: "piem. ^[A-Z0-9]+$"
-  text_min_max_length_info: "0 nozīmē, ka nav ierobežojumu"
-  text_project_destroy_confirmation: "Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o projektu un ar to saistÄ«tos datus?"
-  text_subprojects_destroy_warning: "TÄ apakÅ¡projekts(i): {{value}} arÄ« tiks dzÄ“sts(i)."
-  text_workflow_edit: Lai labotu darba plūsmu, izvēlieties lomu un trakeri
-  text_are_you_sure: "Vai esat pÄrliecinÄts?"
-  text_journal_changed: "{{label}} mainīts no {{old}} uz {{new}}"
-  text_journal_set_to: "{{label}} iestatīts uz {{value}}"
-  text_journal_deleted: "{{label}} dzēsts ({{old}})"
-  text_journal_added: "{{label}} {{value}} pievienots"
-  text_tip_issue_begin_day: uzdevums sÄkas Å¡odien
-  text_tip_issue_end_day: uzdevums beidzas šodien
-  text_tip_issue_begin_end_day: uzdevums sÄkas un beidzas Å¡odien
-  text_project_identifier_info: 'Tikai mazie burti (a-z), cipari un domuzÄ«mes ir atļauti.<br />Kad saglabÄts, identifikators nevar tikt mainÄ«ts.'
-  text_caracters_maximum: "{{count}} simboli maksimÄli."
-  text_caracters_minimum: "JÄbÅ«t vismaz {{count}} simbolu garumÄ."
-  text_length_between: "Garums starp {{min}} un {{max}} simboliem."
-  text_tracker_no_workflow: Šim trakerim nav definēta darba plūsma
-  text_unallowed_characters: Neatļauti simboli
-  text_comma_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (atdalÄ«t ar komatu)."
-  text_line_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (rakstÄ«t katru savÄ rindÄ)."
-  text_issues_ref_in_commit_messages: "Izmaiņu salÄ«dzinÄÅ¡ana izejot no ziņojumiem"
-  text_issue_added: "Uzdevumu {{id}} pievienojis {{author}}."
-  text_issue_updated: "Uzdevumu {{id}} atjaunojis {{author}}."
-  text_wiki_destroy_confirmation: "Vai esat droÅ¡s, ka vÄ“laties dzÄ“st Å¡o wiki un visu tÄs saturu?"
-  text_issue_category_destroy_question: "Daži uzdevumi ({{count}}) ir nozīmēti šai kategorijai. Ko Jūs vēlaties darīt?"
-  text_issue_category_destroy_assignments: Dzēst kategoriju nozīmējumus
-  text_issue_category_reassign_to: Nozīmēt uzdevumus šai kategorijai
-  text_user_mail_option: "No neizvÄ“lÄ“tajiem projektiem JÅ«s saņemsiet ziņojumus e-pastÄ tikai par notikumiem, kuriem JÅ«s sekojat vai kuros esat iesaistÄ«ts." 
-  text_no_configuration_data: "Lomas, trakeri, uzdevumu statusi un darba plÅ«smas vÄ“l nav konfigurÄ“tas.\nÄ»oti ieteicams ielÄdÄ“t noklusÄ“to konfigurÄciju. PÄ“c ielÄdēšanas to bÅ«s iespÄ“jams modificÄ“t."
-  text_load_default_configuration: IelÄdÄ“t noklusÄ“to konfigurÄciju
-  text_status_changed_by_changeset: "ApstiprinÄts izmaiņu kopumÄ {{value}}."
-  text_issues_destroy_confirmation: 'Vai tieÅ¡Äm vÄ“laties dzÄ“st izvÄ“lÄ“to uzdevumu(us)?'
-  text_select_project_modules: 'Izvēlieties moduļus šim projektam:'
-  text_default_administrator_account_changed: Noklusētais administratora konts mainīts
-  text_file_repository_writable: Pielikumu direktorijÄ atļauts rakstÄ«t
-  text_plugin_assets_writable: Spraudņu kataloga direktorijÄ atļauts rakstÄ«t
-  text_rmagick_available: "RMagick pieejams (neobligÄts)"
-  text_destroy_time_entries_question: "{{hours}} stundas tika ziņotas par uzdevumu, ko vēlaties dzēst. Ko darīt?"
-  text_destroy_time_entries: DzÄ“st ziņotÄs stundas
-  text_assign_time_entries_to_project: Piešķirt ziņotÄs stundas projektam
-  text_reassign_time_entries: 'Piešķirt ziņotÄs stundas uzdevumam:'
-  text_user_wrote: "{{value}} rakstīja:"
-  text_enumeration_destroy_question: "{{count}} objekti ir piešķirti šai vērtībai."
-  text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
-  text_email_delivery_not_configured: "E-pastu nosÅ«tīšana nav konfigurÄ“ta, un ziņojumi ir izslÄ“gti.\nKonfigurÄ“jiet savu SMTP serveri datnÄ“ config/email.yml un pÄrstartÄ“jiet lietotni."
-  text_repository_usernames_mapping: "IzvÄ“lieties vai atjaunojiet Redmine lietotÄju, saistÄ«tu ar katru lietotÄjvÄrdu, kas atrodams repozitorija žurnÄlÄ.\nLietotÄji ar to paÅ¡u Redmine un repozitorija lietotÄjvÄrdu bÅ«s saistÄ«ti automÄtiski."
-  text_diff_truncated: '... Å is diff tika nošķelts, jo tas pÄrsniedz maksimÄlo izmÄ“ru, ko var parÄdÄ«t.'
-  text_custom_field_possible_values_info: 'Katra vÄ“rtÄ«bas savÄ rindÄ'
-  text_wiki_page_destroy_question: "Å ij lapai ir {{descendants}} apakÅ¡lapa(as) un pÄ“cnÄcÄ“ji. Ko darÄ«t?"
-  text_wiki_page_nullify_children: "PaturÄ“t apakÅ¡lapas kÄ pamatlapas"
-  text_wiki_page_destroy_children: "DzÄ“st apakÅ¡lapas un visus pÄ“cnÄcÄ“jus"
-  text_wiki_page_reassign_children: "Piešķirt apakšlapas šai lapai"
-  text_own_membership_delete_confirmation: "JÅ«s tÅ«lÄ«t dzÄ“sÄ«siet dažas vai visas atļaujas, un Jums pÄ“c tam var nebÅ«t atļauja labot Å¡o projektu.\nVai turpinÄt?"
-  
-  default_role_manager: Menedžeris
-  default_role_developer: IzstrÄdÄtÄjs
-  default_role_reporter: ZiņotÄjs
-  default_tracker_bug: Kļūda
-  default_tracker_feature: Iezīme
-  default_tracker_support: Atbalsts
-  default_issue_status_new: Jauns
-  default_issue_status_in_progress: AttÄ«stÄ«bÄ
-  default_issue_status_resolved: AtrisinÄts
-  default_issue_status_feedback: Atsauksmes
-  default_issue_status_closed: Slēgts
-  default_issue_status_rejected: Noraidīts
-  default_doc_category_user: LietotÄja dokumentÄcija
-  default_doc_category_tech: TehniskÄ dokumentÄcija
-  default_priority_low: Zema
-  default_priority_normal: NormÄla
-  default_priority_high: Augsta
-  default_priority_urgent: Steidzama
-  default_priority_immediate: Tūlītēja
-  default_activity_design: Dizains
-  default_activity_development: IzstrÄdÄÅ¡ana
-  
-  enumeration_issue_priorities: Uzdevumu prioritÄtes
-  enumeration_doc_categories: Dokumentu kategorijas
-  enumeration_activities: AktivitÄtes (laika uzskaite)
-  enumeration_system_activity: SistÄ“mas aktivitÄtes
-
-  error_can_not_delete_custom_field: Unable to delete custom field
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  field_parent_issue: Parent task
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  label_project_copy_notifications: Send email notifications during the project copy
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# translated by Dzintars Bergs (dzintars.bergs@gmail.com)
+
+lv:
+  direction: ltr
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+      
+    day_names: [Svētdiena, Pirmdiena, Otrdiena, Trešdiena, Ceturtdiena, Piektdiena, Sestdiena]
+    abbr_day_names: [Sv, Pr, Ot, Tr, Ct, Pk, St]
+      
+    month_names: [~, JanvÄris, FebruÄris, Marts, AprÄ«lis , Maijs, JÅ«nijs, JÅ«lijs, Augusts, Septembris, Oktobris, Novembris, Decembris]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, Mai, Jūn, Jūl, Aug, Sep, Okt, Nov, Dec]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y, %H:%M:%S %z"
+      time: "%H:%M"
+      short: "%d %b, %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "rÄ«tÄ"
+    pm: "vakarÄ"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "pus minūte"
+      less_than_x_seconds:
+        one:   "mazÄk kÄ 1 sekunde"
+        other: "mazÄk kÄ %{count} sekundes"
+      x_seconds:
+        one:   "1 sekunde"
+        other: "%{count} sekundes"
+      less_than_x_minutes:
+        one:   "mazÄk kÄ minÅ«te"
+        other: "mazÄk kÄ %{count} minÅ«tes"
+      x_minutes:
+        one:   "1 minūte"
+        other: "%{count} minūtes"
+      about_x_hours:
+        one:   "aptuveni 1 stunda"
+        other: "aptuveni %{count} stundas"
+      x_days:
+        one:   "1 diena"
+        other: "%{count} dienas"
+      about_x_months:
+        one:   "aptuveni 1 mēnesis"
+        other: "aptuveni %{count} mēneši"
+      x_months:
+        one:   "1 mēnesis"
+        other: "%{count} mēneši"
+      about_x_years:
+        one:   "aptuveni 1 gads"
+        other: "aptuveni %{count} gadi"
+      over_x_years:
+        one:   "ilgÄk par 1 gadu"
+        other: "ilgÄk par %{count} gadiem"
+      almost_x_years:
+        one:   "gandrīz 1 gadu"
+        other: "gandrīz %{count} gadus"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: " "
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Baits"
+            other: "Baiti"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+  support:
+    array:
+      sentence_connector: "un"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "nav iekļauts sarakstÄ"
+        exclusion: "ir rezervēts"
+        invalid: "nederīgs"
+        confirmation: "apstiprinÄjums nesakrÄ«t"
+        accepted: "jÄbÅ«t akceptÄ“tam"
+        empty: "nevar būt tukšs"
+        blank: "nevar būt neaizpildīts"
+        too_long: "ir pÄrÄk gara(Å¡) (maksimÄlais garums ir %{count} simboli)"
+        too_short: "ir pÄrÄk Ä«sa(s) (minimÄlais garums ir %{count} simboli)"
+        wrong_length: "ir nepareiza garuma (vajadzētu būt %{count} simboli)"
+        taken: "eksistē"
+        not_a_number: "nav skaitlis"
+        not_a_date: "nav derīgs datums"
+        greater_than: "jÄbÅ«t lielÄkam par %{count}"
+        greater_than_or_equal_to: "jÄbÅ«t lielÄkam vai vienÄdam ar %{count}"
+        equal_to: "jÄbÅ«t vienÄdam ar %{count}"
+        less_than: "jÄbÅ«t mazÄkam kÄ %{count}"
+        less_than_or_equal_to: "jÄbÅ«t mazÄkam vai vienÄdam ar %{count}"
+        odd: "jÄatšķirÄs"
+        even: "jÄsakrÄ«t"
+        greater_than_start_date: "jÄbÅ«t vÄ“lÄkam par sÄkuma datumu"
+        not_same_project: "nepieder pie tÄ paÅ¡a projekta"
+        circular_dependency: "Å Ä« relÄcija radÄ«tu ciklisku atkarÄ«bu"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Izvēlieties
+  
+  general_text_No: 'NÄ“'
+  general_text_Yes: 'JÄ'
+  general_text_no: 'nē'
+  general_text_yes: 'jÄ'
+  general_lang_name: 'Latvian (Latviešu)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Konts tika atjaunots veiksmīgi.
+  notice_account_invalid_creditentials: Nepareizs lietotÄja vÄrds vai parole.
+  notice_account_password_updated: Parole tika veiksmīgi atjaunota.
+  notice_account_wrong_password: Nepareiza parole
+  notice_account_register_done: Konts veiksmīgi izveidots. Lai aktivizētu kontu, spiediet uz saites, kas Jums tika nosūtīta.
+  notice_account_unknown_email: NezinÄms lietotÄjs
+  notice_can_t_change_password: Å is konts izmanto ÄrÄ“ju pilnvaroÅ¡anas avotu. Nav iespÄ“jams nomainÄ«t paroli.
+  notice_account_lost_email_sent: Jums tika nosÅ«tÄ«ts e-pasts ar instrukcijÄm, kÄ izveidot jaunu paroli.
+  notice_account_activated: Jūsu konts ir aktivizēts. Varat pieslēgties sistēmai.
+  notice_successful_create: Veiksmīga izveide.
+  notice_successful_update: Veiksmīga atjaunošana.
+  notice_successful_delete: Veiksmīga dzēšana.
+  notice_successful_connection: Veiksmīgs savienojums.
+  notice_file_not_found: Lapa, ko JÅ«s mēģinÄt atvÄ“rt, neeksistÄ“ vai ir pÄrvietota.
+  notice_locking_conflict: Datus ir atjaunojis cits lietotÄjs.
+  notice_not_authorized: Jums nav tiesību piekļūt šai lapai.
+  notice_email_sent: "E-pasts tika nosūtīts uz %{value}"
+  notice_email_error: "Kļūda sūtot e-pastu (%{value})"
+  notice_feeds_access_key_reseted: JÅ«su RSS pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
+  notice_api_access_key_reseted: JÅ«su API pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
+  notice_failed_to_save_issues: "NeizdevÄs saglabÄt %{count} uzdevumu(us) no %{total} izvÄ“lÄ“ti: %{ids}."
+  notice_no_issue_selected: "Nav izvēlēts uzdevums! Lūdzu, atzīmējiet uzdevumus, kurus vēlaties rediģēt!"
+  notice_account_pending: "JÅ«su konts tika izveidots un Å¡obrÄ«d gaida administratora apstiprinÄjumu."
+  notice_default_data_loaded: NoklusÄ“tÄ konfigurÄcija tika veiksmÄ«gi ielÄdÄ“ta.
+  notice_unable_delete_version: NeizdevÄs dzÄ“st versiju.
+  notice_issue_done_ratios_updated: Uzdevuma izpildes koeficients atjaunots.
+  
+  error_can_t_load_default_data: "Nevar ielÄdÄ“t noklusÄ“tos konfigurÄcijas datus: %{value}"
+  error_scm_not_found: "Ieraksts vai versija nebija repozitorijÄ."
+  error_scm_command_failed: "Mēģinot piekļūt repozitorijam, notika kļūda: %{value}"
+  error_scm_annotate: "Ieraksts neeksistē vai tam nevar tikt pievienots paskaidrojums."
+  error_issue_not_found_in_project: 'Uzdevums netika atrasts vai nepieder šim projektam.'
+  error_no_tracker_in_project: 'Neviens trakeris nav saistÄ«ts ar Å¡o projektu. PÄrbaudiet projekta iestatÄ«jumus.'
+  error_no_default_issue_status: 'Nav definÄ“ts uzdevuma noklusÄ“tais statuss. PÄrbaudiet konfigurÄciju (Ejat uz: "AdministrÄcija -> Uzdevumu statusi")!'
+  error_can_not_reopen_issue_on_closed_version: 'Nevar pievienot atsauksmi uzdevumam, kas saistīts ar slēgtu versiju.'
+  error_can_not_archive_project: Šis projekts nevar tikt arhivēts
+  error_issue_done_ratios_not_updated: "Uzdevuma izpildes koeficients nav atjaunots."
+  error_workflow_copy_source: 'Lūdzu izvēlieties avota trakeri vai lomu'
+  error_workflow_copy_target: 'Lūdzu izvēlēties mērķa trakeri(us) un lomu(as)'
+  
+  warning_attachments_not_saved: "%{count} datnes netika saglabÄtas."
+  
+  mail_subject_lost_password: "Jūsu %{value} parole"
+  mail_body_lost_password: 'Lai mainītu paroli, spiediet uz šīs saites:'
+  mail_subject_register: "JÅ«su %{value} konta aktivizÄcija"
+  mail_body_register: 'Lai izveidotu kontu, spiediet uz šīs saites:'
+  mail_body_account_information_external: "Varat izmantot Jūsu %{value} kontu, lai pieslēgtos."
+  mail_body_account_information: JÅ«su konta informÄcija
+  mail_subject_account_activation_request: "%{value} konta aktivizÄcijas pieprasÄ«jums"
+  mail_body_account_activation_request: "Jauns lietotÄjs (%{value}) ir reÄ£istrÄ“ts. LietotÄja konts gaida JÅ«su apstiprinÄjumu:"
+  mail_subject_reminder: "%{count} uzdevums(i) sagaidÄms(i) tuvÄkajÄs %{days} dienÄs"
+  mail_body_reminder: "%{count} uzdevums(i), kurÅ¡(i) ir nozÄ«mÄ“ts(i) Jums, sagaidÄms(i) tuvÄkajÄs %{days} dienÄs:"
+  mail_subject_wiki_content_added: "'%{id}' Wiki lapa pievienota"
+  mail_body_wiki_content_added: "The '%{id}' Wiki lapu pievienojis %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' Wiki lapa atjaunota"
+  mail_body_wiki_content_updated: "The '%{id}' Wiki lapu atjaunojis %{author}."
+  
+  gui_validation_error: 1 kļūda
+  gui_validation_error_plural: "%{count} kļūdas"
+  
+  field_name: Nosaukums
+  field_description: Apraksts
+  field_summary: Kopsavilkums
+  field_is_required: Nepieciešams
+  field_firstname: VÄrds
+  field_lastname: UzvÄrds
+  field_mail: "E-pasts"
+  field_filename: Datne
+  field_filesize: Izmērs
+  field_downloads: LejupielÄdes
+  field_author: Autors
+  field_created_on: Izveidots
+  field_updated_on: Atjaunots
+  field_field_format: FormÄts
+  field_is_for_all: Visiem projektiem
+  field_possible_values: IespÄ“jamÄs vÄ“rtÄ«bas
+  field_regexp: RegulÄrÄ izteiksme
+  field_min_length: MinimÄlais garums
+  field_max_length: MaksimÄlais garums
+  field_value: Vērtība
+  field_category: Kategorija
+  field_title: Nosaukums
+  field_project: Projekts
+  field_issue: Uzdevums
+  field_status: Statuss
+  field_notes: Piezīmes
+  field_is_closed: Uzdevums slēgts
+  field_is_default: NoklusÄ“tÄ vÄ“rtÄ«ba
+  field_tracker: Trakeris
+  field_subject: Temats
+  field_due_date: SagaidÄmais datums
+  field_assigned_to: Piešķirts
+  field_priority: PrioritÄte
+  field_fixed_version: Mērķa versija
+  field_user: LietotÄjs
+  field_role: Loma
+  field_homepage: Vietne
+  field_is_public: Publisks
+  field_parent: Apakšprojekts projektam
+  field_is_in_roadmap: CeļvedÄ« parÄdÄ«tie uzdevumi
+  field_login: Pieslēgties
+  field_mail_notification: "E-pasta paziņojumi"
+  field_admin: Administrators
+  field_last_login_on: Pēdējo reizi pieslēdzies
+  field_language: Valoda
+  field_effective_date: Datums
+  field_password: Parole
+  field_new_password: JanÄ parole
+  field_password_confirmation: Paroles apstiprinÄjums
+  field_version: Versija
+  field_type: Tips
+  field_host: Hosts
+  field_port: Ports
+  field_account: Konts
+  field_base_dn: Base DN
+  field_attr_login: PieslÄ“gÅ¡anÄs atribÅ«ts
+  field_attr_firstname: VÄrda atribÅ«ts
+  field_attr_lastname: UzvÄrda atribÅ«ts
+  field_attr_mail: "E-pasta atribūts"
+  field_onthefly: "LietotÄja izveidoÅ¡ana on-the-fly"
+  field_start_date: SÄkuma datums
+  field_done_ratio: % padarīti
+  field_auth_source: Pilnvarošanas režīms
+  field_hide_mail: "Paslēpt manu e-pasta adresi"
+  field_comments: KomentÄrs
+  field_url: URL
+  field_start_page: SÄkuma lapa
+  field_subproject: Apakšprojekts
+  field_hours: Stundas
+  field_activity: AktivitÄte
+  field_spent_on: Datums
+  field_identifier: Identifikators
+  field_is_filter: Izmantots kÄ filtrs
+  field_issue_to: Saistīts uzdevums
+  field_delay: Kavējums
+  field_assignable: Uzdevums var tikt piesaistīts šai lomai
+  field_redirect_existing_links: PÄradresÄ“t eksistÄ“joÅ¡Äs saites
+  field_estimated_hours: Paredzētais laiks
+  field_column_names: Kolonnas
+  field_time_zone: Laika zona
+  field_searchable: Meklējams
+  field_default_value: NoklusÄ“tÄ vÄ“rtÄ«ba
+  field_comments_sorting: RÄdÄ«t komentÄrus
+  field_parent_title: VecÄka lapa
+  field_editable: Rediģējams
+  field_watcher: VÄ“rotÄjs
+  field_identity_url: OpenID URL
+  field_content: Saturs
+  field_group_by: GrupÄ“t rezultÄtus pÄ“c
+  field_sharing: Koplietošana
+  
+  setting_app_title: Programmas nosaukums
+  setting_app_subtitle: Programmas apakš-nosaukums
+  setting_welcome_text: Sveiciena teksts
+  setting_default_language: NoklusÄ“tÄ valoda
+  setting_login_required: Nepieciešama pilnvarošana
+  setting_self_registration: PaÅ¡reÄ£istrēšanÄs
+  setting_attachment_max_size: Pielikuma maksimÄlais izmÄ“rs
+  setting_issues_export_limit: Uzdevumu eksporta ierobežojums
+  setting_mail_from: "E-pasta adrese informÄcijas nosÅ«tīšanai"
+  setting_bcc_recipients: "SaņēmÄ“ju adreses neparÄdÄ«sies citu saņēmÄ“ju vÄ“stulÄ“s (bcc)"
+  setting_plain_text_mail: "VÄ“stule brÄ«vÄ tekstÄ (bez HTML)"
+  setting_host_name: Hosta nosaukums un piekļuves ceļš
+  setting_text_formatting: Teksta formatēšana
+  setting_wiki_compression: Wiki vēstures saspiešana
+  setting_feeds_limit: Barotnes satura ierobežojums
+  setting_default_projects_public: Jaunie projekti noklusēti ir publiski pieejami
+  setting_autofetch_changesets: "AutomÄtiski lietot jaunÄko versiju, pieslÄ“dzoties repozitorijam (Autofetch)"
+  setting_sys_api_enabled: Ieslēgt WS repozitoriju menedžmentam
+  setting_commit_ref_keywords: NorÄdes atslÄ“gvÄrdi
+  setting_commit_fix_keywords:  FiksÄ“joÅ¡ie atslÄ“gvÄrdi
+  setting_autologin: AutomÄtiskÄ pieslÄ“gÅ¡anÄs
+  setting_date_format: Datuma formÄts
+  setting_time_format: Laika formÄts
+  setting_cross_project_issue_relations: "Atļaut starp-projektu uzdevumu relÄcijas"
+  setting_issue_list_default_columns: NoklusÄ“ti rÄdÄ«tÄs kolonnas uzdevumu sarakstÄ
+  setting_repositories_encodings: Repozitoriju kodējumi
+  setting_commit_logs_encoding: Kodēt ziņojumus
+  setting_emails_footer: "E-pastu kÄjene"
+  setting_protocol: Protokols
+  setting_per_page_options: Objekti vienÄ lapÄ
+  setting_user_format: LietotÄju rÄdīšanas formÄts
+  setting_activity_days_default: Dienus skaits aktivitÄÅ¡u rÄdīšanai aktivitÄÅ¡u sadaļÄ
+  setting_display_subprojects_issues: RÄdÄ«t apakÅ¡projekta uzdevumus galvenajÄ projektÄ pÄ“c noklusÄ“juma
+  setting_enabled_scm: Lietot SCM
+  setting_mail_handler_body_delimiters: "SaÄ«sinÄt pÄ“c vienas no Å¡im rindÄm"
+  setting_mail_handler_api_enabled: "Lietot WS ienÄkoÅ¡ajiem e-pastiem"
+  setting_mail_handler_api_key: API atslēga
+  setting_sequential_project_identifiers: Ģenerēt secīgus projektu identifikatorus
+  setting_gravatar_enabled: Izmantot Gravatar lietotÄju ikonas
+  setting_gravatar_default: Noklusētais Gravatar attēls
+  setting_diff_max_lines_displayed: MaksimÄlais rÄdÄ«to diff rindu skaits
+  setting_file_max_size_displayed: MaksimÄlais izmÄ“rs iekļautajiem teksta failiem
+  setting_repository_log_display_limit: MaksimÄlais žurnÄla datnÄ“ rÄdÄ«to revÄ«ziju skaits
+  setting_openid: Atļaut OpenID pieslēgšanos un reģistrēšanos
+  setting_password_min_length: MinimÄlais paroles garums
+  setting_new_project_user_role_id: Loma, kura tiek piešķirta ne-administratora lietotÄjam, kurÅ¡ izveido projektu
+  setting_default_projects_modules: Noklusētie lietotie moduļi jaunam projektam
+  setting_issue_done_ratio: AprēķinÄt uzdevuma izpildes koeficientu ar
+  setting_issue_done_ratio_issue_field: uzdevuma lauku
+  setting_issue_done_ratio_issue_status: uzdevuma statusu
+  setting_start_of_week: SÄkt kalendÄru ar
+  setting_rest_api_enabled: Lietot REST web-servisu
+  setting_cache_formatted_text: Kešot formatētu tekstu
+  
+  permission_add_project: Izveidot projektu
+  permission_add_subprojects: Izveidot apakšprojektu
+  permission_edit_project: Rediģēt projektu
+  permission_select_project_modules: Izvēlēties projekta moduļus
+  permission_manage_members: PÄrvaldÄ«t dalÄ«bniekus
+  permission_manage_project_activities: PÄrvaldÄ«t projekta aktivitÄtes
+  permission_manage_versions: PÄrvaldÄ«t versijas
+  permission_manage_categories: PÄrvaldÄ«t uzdevumu kategorijas
+  permission_view_issues: Apskatīt uzdevumus
+  permission_add_issues: Pievienot uzdevumus
+  permission_edit_issues: Rediģēt uzdevumus
+  permission_manage_issue_relations: PÄrvaldÄ«t uzdevumu relÄcijas
+  permission_add_issue_notes: Pievienot piezīmes
+  permission_edit_issue_notes: Rediģēt piezīmes
+  permission_edit_own_issue_notes: Rediģēt paša piezīmes
+  permission_move_issues: PÄrvietot uzdevumus
+  permission_delete_issues: Dzēst uzdevumus
+  permission_manage_public_queries: PÄrvaldÄ«t publiskos pieprasÄ«jumus
+  permission_save_queries: SaglabÄt pieprasÄ«jumus
+  permission_view_gantt: Skatīt Ganta diagrammu
+  permission_view_calendar: SkatÄ«t kalendÄru
+  permission_view_issue_watchers: SkatÄ«t vÄ“rotÄju sarakstu
+  permission_add_issue_watchers: Pievienot vÄ“rotÄjus
+  permission_delete_issue_watchers: DzÄ“st vÄ“rotÄjus
+  permission_log_time: Piereģistrēt pavadīto laiku
+  permission_view_time_entries: Skatīt pavadīto laiku
+  permission_edit_time_entries: Rdiģēt laika reģistrus
+  permission_edit_own_time_entries:  Rediģēt savus laika reģistrus
+  permission_manage_news: PÄrvaldÄ«t jaunumus
+  permission_comment_news: Komentēt jaunumus
+  permission_manage_documents: PÄrvaldÄ«t dokumentus
+  permission_view_documents: Skatīt dokumentus
+  permission_manage_files: PÄrvaldÄ«t failus
+  permission_view_files: Skatīt failus
+  permission_manage_wiki: PÄrvaldÄ«t wiki
+  permission_rename_wiki_pages: PÄrsaukt wiki lapas
+  permission_delete_wiki_pages: Dzēst wiki lapas
+  permission_view_wiki_pages: Skatīt wiki
+  permission_view_wiki_edits: Skatīt wiki vēsturi
+  permission_edit_wiki_pages: Rdiģēt wiki lapas
+  permission_delete_wiki_pages_attachments: Dzēst pielikumus
+  permission_protect_wiki_pages: Projekta wiki lapas
+  permission_manage_repository: PÄrvaldÄ«t repozitoriju
+  permission_browse_repository: PÄrlÅ«kot repozitoriju
+  permission_view_changesets: Skatīt izmaiņu kopumus  
+  permission_commit_access: Atļaut piekļuvi
+  permission_manage_boards: PÄrvaldÄ«t ziņojumu dēļus
+  permission_view_messages: Skatīt ziņas
+  permission_add_messages: Publicēt ziņas
+  permission_edit_messages: Rediģēt ziņas
+  permission_edit_own_messages: Rediģēt savas ziņas
+  permission_delete_messages: Dzēst ziņas
+  permission_delete_own_messages: Dzēst savas ziņas
+  permission_export_wiki_pages: Eksportēt Wiki lapas
+  
+  project_module_issue_tracking: Uzdevumu uzskaite
+  project_module_time_tracking: Laika uzskaite
+  project_module_news: Jaunumi
+  project_module_documents: Dokumenti
+  project_module_files: Datnes
+  project_module_wiki: Wiki
+  project_module_repository: Repozitorijs
+  project_module_boards: Ziņojumu dēļi
+  
+  label_user: LietotÄjs
+  label_user_plural: LietotÄji
+  label_user_new: Jauns lietotÄjs
+  label_user_anonymous: Anonīms
+  label_project: Projekts
+  label_project_new: Jauns projekts
+  label_project_plural: Projekti
+  label_x_projects:
+    zero:  nav projektu
+    one:   1 projekts
+    other: "%{count} projekti"
+  label_project_all: Visi projekti
+  label_project_latest: JaunÄkie projekti
+  label_issue: Uzdevums
+  label_issue_new: Jauns uzdevums
+  label_issue_plural: Uzdevumi
+  label_issue_view_all: Skatīt visus uzdevumus
+  label_issues_by: "KÄrtot pÄ“c %{value}"
+  label_issue_added: Uzdevums pievienots
+  label_issue_updated: Uzdevums atjaunots
+  label_document: Dokuments
+  label_document_new: Jauns dokuments
+  label_document_plural: Dokumenti
+  label_document_added: Dokuments pievienots
+  label_role: Loma
+  label_role_plural: Lomas
+  label_role_new: Jauna loma
+  label_role_and_permissions: Lomas un atļaujas
+  label_member: Dalībnieks
+  label_member_new: Jauns dalībnieks
+  label_member_plural: Dalībnieki
+  label_tracker: Trakeris
+  label_tracker_plural: Trakeri
+  label_tracker_new: Jauns trakeris
+  label_workflow: Darba gaita
+  label_issue_status: Uzdevuma statuss
+  label_issue_status_plural: Uzdevumu statusi
+  label_issue_status_new: Jauns statuss
+  label_issue_category: Uzdevuma kategorija
+  label_issue_category_plural: Uzdevumu kategorijas
+  label_issue_category_new: Jauna kategorija
+  label_custom_field: PielÄgojams lauks
+  label_custom_field_plural: PielÄgojami lauki
+  label_custom_field_new: Jauns pielÄgojams lauks
+  label_enumerations: Uzskaitījumi
+  label_enumeration_new: Jauna vērtība
+  label_information: InformÄcija
+  label_information_plural: InformÄcija
+  label_please_login: Lūdzu pieslēdzieties
+  label_register: Reģistrēties
+  label_login_with_open_id_option: vai pieslēgties ar OpenID
+  label_password_lost: Nozaudēta parole
+  label_home: SÄkums
+  label_my_page: Mana lapa
+  label_my_account: Mans konts
+  label_my_projects: Mani projekti
+  label_administration: AdministrÄcija
+  label_login: Pieslēgties
+  label_logout: Atslēgties
+  label_help: Palīdzība
+  label_reported_issues: Ziņotie uzdevumi
+  label_assigned_to_me_issues: Man piesaistītie uzdevumi
+  label_last_login: PÄ“dÄ“jÄ pieslÄ“gÅ¡anÄs
+  label_registered_on: Reģistrējies
+  label_activity: AktivitÄte
+  label_overall_activity: KopÄ“jÄs aktivitÄtes
+  label_user_activity: "LietotÄja %{value} aktivitÄtes"
+  label_new: Jauns
+  label_logged_as: PieslÄ“dzies kÄ
+  label_environment: Vide
+  label_authentication: Pilnvarošana
+  label_auth_source: Pilnvarošanas režīms
+  label_auth_source_new: Jauns pilnvarošanas režīms
+  label_auth_source_plural: Pilnvarošanas režīmi
+  label_subproject_plural: Apakšprojekti
+  label_subproject_new: Jauns apakšprojekts
+  label_and_its_subprojects: "%{value} un tÄ apakÅ¡projekti"
+  label_min_max_length: MinimÄlais - MaksimÄlais garums
+  label_list: Saraksts
+  label_date: Datums
+  label_integer: Vesels skaitlis
+  label_float: DecimÄlskaitlis
+  label_boolean: Patiesuma vērtība
+  label_string: Teksts
+  label_text: Garš teksts
+  label_attribute: Atribūts
+  label_attribute_plural: Atribūti
+  label_download: "%{count} LejupielÄde"
+  label_download_plural: "%{count} LejupielÄdes"
+  label_no_data: Nav datu, ko parÄdÄ«t
+  label_change_status: Mainīt statusu
+  label_history: Vēsture
+  label_attachment: Pielikums
+  label_attachment_new: Jauns pielikums
+  label_attachment_delete: Dzēst pielikumu
+  label_attachment_plural: Pielikumi
+  label_file_added: Lauks pievienots
+  label_report: Atskaite
+  label_report_plural: Atskaites
+  label_news: Ziņa
+  label_news_new: Pievienot ziņu
+  label_news_plural: Ziņas
+  label_news_latest: JaunÄkÄs ziņas
+  label_news_view_all: Skatīt visas ziņas
+  label_news_added: Ziņas pievienotas
+  label_settings: Iestatījumi
+  label_overview: PÄrskats
+  label_version: Versija
+  label_version_new: Jauna versija
+  label_version_plural: Versijas
+  label_close_versions: AizvÄ“rt pabeigtÄs versijas
+  label_confirmation: ApstiprinÄjums
+  label_export_to: 'Pieejams arī:'
+  label_read: Lasīt...
+  label_public_projects: Publiskie projekti
+  label_open_issues: atvērts
+  label_open_issues_plural: atvērti
+  label_closed_issues: slēgts
+  label_closed_issues_plural: slēgti
+  label_x_open_issues_abbr_on_total:
+    zero:  0 atvērti / %{total}
+    one:   1 atvērts / %{total}
+    other: "%{count} atvērti / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 atvērti
+    one:   1 atvērts
+    other: "%{count} atvērti"
+  label_x_closed_issues_abbr:
+    zero:  0 slēgti
+    one:   1 slēgts
+    other: "%{count} slēgti"
+  label_total: KopÄ
+  label_permissions: Atļaujas
+  label_current_status: Pašreizējais statuss
+  label_new_statuses_allowed: Jauni statusi atļauti
+  label_all: visi
+  label_none: neviens
+  label_nobody: nekas
+  label_next: NÄkoÅ¡ais
+  label_previous: Iepriekšējais
+  label_used_by: Izmanto
+  label_details: Detaļas
+  label_add_note: Pievienot piezīmi
+  label_per_page: katrÄ lapÄ
+  label_calendar: KalendÄrs
+  label_months_from: mēneši no
+  label_gantt: Ganta diagramma
+  label_internal: Iekšējais
+  label_last_changes: "pÄ“dÄ“jÄs %{count} izmaiņas"
+  label_change_view_all: Skatīt visas izmaiņas
+  label_personalize_page: PielÄgot Å¡o lapu
+  label_comment: KomentÄrs
+  label_comment_plural: KomentÄri
+  label_x_comments:
+    zero: nav komentÄru
+    one: 1 komentÄrs
+    other: "%{count} komentÄri"
+  label_comment_add: Pievienot komentÄru
+  label_comment_added: KomentÄrs pievienots
+  label_comment_delete: DzÄ“st komentÄrus
+  label_query: PielÄgots pieprasÄ«jums
+  label_query_plural: PielÄgoti pieprasÄ«jumi
+  label_query_new: Jauns pieprasījums
+  label_filter_add: Pievienot filtru
+  label_filter_plural: Filtri
+  label_equals: ir
+  label_not_equals: nav
+  label_in_less_than: ir mazÄk kÄ
+  label_in_more_than: ir vairÄk kÄ
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: iekš
+  label_today: šodien
+  label_all_time: visu laiku
+  label_yesterday: vakar
+  label_this_week: šonedēļ
+  label_last_week: pagÄjuÅ¡o Å¡onedēļ
+  label_last_n_days: "pÄ“dÄ“jÄs %{count} dienas"
+  label_this_month: šomēnes
+  label_last_month: pagÄjuÅ¡o mÄ“nes
+  label_this_year: šogad
+  label_date_range: Datumu apgabals
+  label_less_than_ago: mazÄk kÄ dienas iepriekÅ¡
+  label_more_than_ago: vairÄk kÄ dienas iepriekÅ¡
+  label_ago: dienas iepriekš
+  label_contains: satur
+  label_not_contains: nesatur
+  label_day_plural: dienas
+  label_repository: Repozitorijs
+  label_repository_plural: Repozitoriji
+  label_browse: PÄrlÅ«kot
+  label_modification: "%{count} izmaiņa"
+  label_modification_plural: "%{count} izmaiņas"
+  label_branch: Zars
+  label_tag: Birka 
+  label_revision: Revīzija
+  label_revision_plural: Revīzijas
+  label_revision_id: "Revīzija %{value}"
+  label_associated_revisions: SaistÄ«tÄs revÄ«zijas
+  label_added: pievienots
+  label_modified: modificēts
+  label_copied: nokopēts
+  label_renamed: pÄrsaukts
+  label_deleted: dzēsts
+  label_latest_revision: PÄ“dÄ“jÄ revÄ«zija
+  label_latest_revision_plural: PÄ“dÄ“jÄs revÄ«zijas
+  label_view_revisions: Skatīt revīzijas
+  label_view_all_revisions: Skatīt visas revīzijas
+  label_max_size: MaksimÄlais izmÄ“rs
+  label_sort_highest: PÄrvietot uz augÅ¡u
+  label_sort_higher: PÄrvietot soli augÅ¡up
+  label_sort_lower: PÄrvietot uz leju
+  label_sort_lowest: PÄrvietot vienu soli uz leju
+  label_roadmap: Ceļvedis
+  label_roadmap_due_in: "SagaidÄms pÄ“c %{value}"
+  label_roadmap_overdue: "nokavēts %{value}"
+  label_roadmap_no_issues: Å ai versijai nav uzdevumu
+  label_search: Meklēt
+  label_result_plural: RezultÄti
+  label_all_words: Visi vÄrdi
+  label_wiki: Wiki
+  label_wiki_edit: Wiki labojums
+  label_wiki_edit_plural: Wiki labojumi
+  label_wiki_page: Wiki lapa
+  label_wiki_page_plural: Wiki lapas
+  label_index_by_title: Indeksēt pēc nosaukuma
+  label_index_by_date: Indeksēt pēc datuma
+  label_current_version: TekoÅ¡Ä versija
+  label_preview: Priekšskatījums
+  label_feed_plural: Barotnes
+  label_changes_details: Visu izmaiņu detaļas
+  label_issue_tracking: Uzdevumu uzskaite
+  label_spent_time: Pavadītais laiks
+  label_f_hour: "%{value} stunda"
+  label_f_hour_plural: "%{value} stundas"
+  label_time_tracking: Laika uzskaite
+  label_change_plural: Izmaiņas
+  label_statistics: Statistika
+  label_commits_per_month: Nodevumi mēnesī
+  label_commits_per_author: Nodevumi no autora
+  label_view_diff: Skatīt atšķirības
+  label_diff_inline: iekļauts
+  label_diff_side_by_side: blakus
+  label_options: Opcijas
+  label_copy_workflow_from: Kopēt darba plūsmu no
+  label_permissions_report: Atļauju atskaite
+  label_watched_issues: Vērotie uzdevumi
+  label_related_issues: Saistītie uzdevumi
+  label_applied_status: Piešķirtais statuss
+  label_loading: LÄdÄ“jas...
+  label_relation_new: Jauna relÄcija
+  label_relation_delete: DzÄ“st relÄciju
+  label_relates_to: saistīts ar
+  label_duplicates: dublikÄti
+  label_duplicated_by: dublējas ar
+  label_blocks: bloÄ·Ä“
+  label_blocked_by: nobloķējis
+  label_precedes: pirms
+  label_follows: seko
+  label_end_to_start: no beigÄm uz sÄkumu
+  label_end_to_end: no beigÄm uz beigÄm
+  label_start_to_start: no sÄkuma uz sÄkumu
+  label_start_to_end: no sÄkuma uz beigÄm
+  label_stay_logged_in: Atcerēties mani
+  label_disabled: izslēgts
+  label_show_completed_versions: RÄdÄ«t pabeigtÄs versijas
+  label_me: es
+  label_board: Forums
+  label_board_new: Jauns forums
+  label_board_plural: Forumi
+  label_board_locked: Slēgts
+  label_board_sticky: Svarīgs
+  label_topic_plural: Tēmas
+  label_message_plural: Ziņas
+  label_message_last: PÄ“dÄ“jÄ ziņa
+  label_message_new: Jauna ziņa
+  label_message_posted: Ziņa pievienota
+  label_reply_plural: Atbildes
+  label_send_information: SÅ«tÄ«t konta informÄciju lietotÄjam
+  label_year: Gads
+  label_month: Mēnesis
+  label_week: Nedēļa
+  label_date_from: No
+  label_date_to: Kam
+  label_language_based: Izmantot lietotÄja valodu
+  label_sort_by: "KÄrtot pÄ“c %{value}"
+  label_send_test_email: "Sūtīt testa e-pastu"
+  label_feeds_access_key: RSS piekļuves atslēga
+  label_missing_feeds_access_key: Trūkst RSS piekļuves atslēgas
+  label_feeds_access_key_created_on: "RSS piekļuves atslēga izveidota pirms %{value}"
+  label_module_plural: Moduļi
+  label_added_time_by: "Pievienojis %{author} pirms %{age}"
+  label_updated_time_by: "Atjaunojis %{author} pirms %{age}"
+  label_updated_time: "Atjaunots pirms %{value}"
+  label_jump_to_a_project: PÄriet uz projektu...
+  label_file_plural: Datnes
+  label_changeset_plural: Izmaiņu kopumi
+  label_default_columns: NoklusÄ“tÄs kolonnas
+  label_no_change_option: (Nav izmaiņu)
+  label_bulk_edit_selected_issues: Labot visus izvēlētos uzdevumus
+  label_theme: Tēma
+  label_default: Noklusēts
+  label_search_titles_only: Meklēt tikai nosaukumos
+  label_user_mail_option_all: "Par visiem notikumiem visos manos projektos"
+  label_user_mail_option_selected: "Par visiem notikumiem tikai izvēlētajos projektos..."
+  label_user_mail_no_self_notified: "Neziņot man par izmaiņÄm, kuras veicu es pats"
+  label_registration_activation_by_email: "konta aktivizÄcija caur e-pastu"
+  label_registration_manual_activation: manuÄlÄ konta aktivizÄcija
+  label_registration_automatic_activation: automÄtiskÄ konta aktivizÄcija
+  label_display_per_page: "RÄdÄ«t vienÄ lapÄ: %{value}"
+  label_age: Vecums
+  label_change_properties: Mainīt atribūtus
+  label_general: Galvenais
+  label_more: Vēl
+  label_scm: SCM
+  label_plugins: Spraudņi
+  label_ldap_authentication: LDAP pilnvarošana
+  label_downloads_abbr: L-lÄd.
+  label_optional_description: "Apraksts (neobligÄts)"
+  label_add_another_file: Pievienot citu failu
+  label_preferences: Priekšrocības
+  label_chronological_order: HronoloÄ£iskÄ kÄrtÄ«bÄ
+  label_reverse_chronological_order: Apgriezti hronoloÄ£iskÄ kÄrtÄ«bÄ
+  label_planning: PlÄnoÅ¡ana
+  label_incoming_emails: "IenÄkoÅ¡ie e-pasti"
+  label_generate_key: Ģenerēt atslēgu
+  label_issue_watchers: VÄ“rotÄji
+  label_example: Piemērs
+  label_display: RÄdÄ«t
+  label_sort: KÄrtot
+  label_ascending: Augoši
+  label_descending: Dilstoši
+  label_date_from_to: "No %{start} līdz %{end}"
+  label_wiki_content_added: Wiki lapa pievienota
+  label_wiki_content_updated: Wiki lapa atjaunota
+  label_group: Grupa
+  label_group_plural: Grupas
+  label_group_new: Jauna grupa
+  label_time_entry_plural: Pavadītais laiks
+  label_version_sharing_none: Nav koplietošanai
+  label_version_sharing_descendants: Ar apakšprojektiem
+  label_version_sharing_hierarchy: Ar projektu hierarhiju
+  label_version_sharing_tree: Ar projekta koku
+  label_version_sharing_system: Ar visiem projektiem
+  label_update_issue_done_ratios: Atjaunot uzdevuma veikuma attiecību
+  label_copy_source: Avots
+  label_copy_target: Mērķis
+  label_copy_same_as_target: TÄds pats kÄ mÄ“rÄ·is
+  label_display_used_statuses_only: "RÄdÄ«t tikai statusus, ko lieto Å¡is trakeris"
+  label_api_access_key: API pieejas atslēga
+  label_missing_api_access_key: Trūkst API pieejas atslēga
+  label_api_access_key_created_on: "API pieejas atslēga izveidota pirms %{value}"
+  
+  button_login: Pieslēgties
+  button_submit: Nosūtīt
+  button_save: SaglabÄt
+  button_check_all: Atzīmēt visu
+  button_uncheck_all: Noņemt visus atzīmējumus
+  button_delete: Dzēst
+  button_create: Izveidot
+  button_create_and_continue: Izveidot un turpinÄt
+  button_test: Testēt
+  button_edit: Labot
+  button_add: Pievienot
+  button_change: Mainīt
+  button_apply: ApstiprinÄt
+  button_clear: Notīrīt
+  button_lock: Slēgt
+  button_unlock: Atslēgt
+  button_download: LejuplÄdÄ“t
+  button_list: Saraksts
+  button_view: Skats
+  button_move: PÄrvietot
+  button_move_and_follow: PÄrvietot un sekot
+  button_back: Atpakaļ
+  button_cancel: Atcelt
+  button_activate: Aktivizēt
+  button_sort: KÄrtot
+  button_log_time: Ilgs laiks
+  button_rollback: Atjaunot uz šo versiju
+  button_watch: Vērot
+  button_unwatch: Nevērot
+  button_reply: Atbildēt
+  button_archive: Arhivēt
+  button_unarchive: Atarhivēt
+  button_reset: Atiestatīt
+  button_rename: PÄrsaukt
+  button_change_password: Mainīt paroli
+  button_copy: Kopēt
+  button_copy_and_follow: Kopēt un sekot
+  button_annotate: Pierakstīt paskaidrojumu
+  button_update: Atjaunot
+  button_configure: Konfigurēt
+  button_quote: CitÄts
+  button_duplicate: Dublēt
+  button_show: RÄdÄ«t
+  
+  status_active: aktīvs
+  status_registered: reģistrēts
+  status_locked: slēgts
+  
+  version_status_open: atvērta
+  version_status_locked: slēgta
+  version_status_closed: aizvērta
+
+  field_active: Aktīvs
+  
+  text_select_mail_notifications: "IzvÄ“lieties darbÄ«bas, par kurÄm vÄ“laties saņemt ziņojumus e-pastÄ"
+  text_regexp_info: "piem. ^[A-Z0-9]+$"
+  text_min_max_length_info: "0 nozīmē, ka nav ierobežojumu"
+  text_project_destroy_confirmation: "Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o projektu un ar to saistÄ«tos datus?"
+  text_subprojects_destroy_warning: "TÄ apakÅ¡projekts(i): %{value} arÄ« tiks dzÄ“sts(i)."
+  text_workflow_edit: Lai labotu darba plūsmu, izvēlieties lomu un trakeri
+  text_are_you_sure: "Vai esat pÄrliecinÄts?"
+  text_journal_changed: "%{label} mainīts no %{old} uz %{new}"
+  text_journal_set_to: "%{label} iestatīts uz %{value}"
+  text_journal_deleted: "%{label} dzēsts (%{old})"
+  text_journal_added: "%{label} %{value} pievienots"
+  text_tip_issue_begin_day: uzdevums sÄkas Å¡odien
+  text_tip_issue_end_day: uzdevums beidzas šodien
+  text_tip_issue_begin_end_day: uzdevums sÄkas un beidzas Å¡odien
+  text_project_identifier_info: 'Tikai mazie burti (a-z), cipari un domuzÄ«mes ir atļauti.<br />Kad saglabÄts, identifikators nevar tikt mainÄ«ts.'
+  text_caracters_maximum: "%{count} simboli maksimÄli."
+  text_caracters_minimum: "JÄbÅ«t vismaz %{count} simbolu garumÄ."
+  text_length_between: "Garums starp %{min} un %{max} simboliem."
+  text_tracker_no_workflow: Šim trakerim nav definēta darba plūsma
+  text_unallowed_characters: Neatļauti simboli
+  text_comma_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (atdalÄ«t ar komatu)."
+  text_line_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (rakstÄ«t katru savÄ rindÄ)."
+  text_issues_ref_in_commit_messages: "Izmaiņu salÄ«dzinÄÅ¡ana izejot no ziņojumiem"
+  text_issue_added: "Uzdevumu %{id} pievienojis %{author}."
+  text_issue_updated: "Uzdevumu %{id} atjaunojis %{author}."
+  text_wiki_destroy_confirmation: "Vai esat droÅ¡s, ka vÄ“laties dzÄ“st Å¡o wiki un visu tÄs saturu?"
+  text_issue_category_destroy_question: "Daži uzdevumi (%{count}) ir nozīmēti šai kategorijai. Ko Jūs vēlaties darīt?"
+  text_issue_category_destroy_assignments: Dzēst kategoriju nozīmējumus
+  text_issue_category_reassign_to: Nozīmēt uzdevumus šai kategorijai
+  text_user_mail_option: "No neizvÄ“lÄ“tajiem projektiem JÅ«s saņemsiet ziņojumus e-pastÄ tikai par notikumiem, kuriem JÅ«s sekojat vai kuros esat iesaistÄ«ts." 
+  text_no_configuration_data: "Lomas, trakeri, uzdevumu statusi un darba plÅ«smas vÄ“l nav konfigurÄ“tas.\nÄ»oti ieteicams ielÄdÄ“t noklusÄ“to konfigurÄciju. PÄ“c ielÄdēšanas to bÅ«s iespÄ“jams modificÄ“t."
+  text_load_default_configuration: IelÄdÄ“t noklusÄ“to konfigurÄciju
+  text_status_changed_by_changeset: "ApstiprinÄts izmaiņu kopumÄ %{value}."
+  text_issues_destroy_confirmation: 'Vai tieÅ¡Äm vÄ“laties dzÄ“st izvÄ“lÄ“to uzdevumu(us)?'
+  text_select_project_modules: 'Izvēlieties moduļus šim projektam:'
+  text_default_administrator_account_changed: Noklusētais administratora konts mainīts
+  text_file_repository_writable: Pielikumu direktorijÄ atļauts rakstÄ«t
+  text_plugin_assets_writable: Spraudņu kataloga direktorijÄ atļauts rakstÄ«t
+  text_rmagick_available: "RMagick pieejams (neobligÄts)"
+  text_destroy_time_entries_question: "%{hours} stundas tika ziņotas par uzdevumu, ko vēlaties dzēst. Ko darīt?"
+  text_destroy_time_entries: DzÄ“st ziņotÄs stundas
+  text_assign_time_entries_to_project: Piešķirt ziņotÄs stundas projektam
+  text_reassign_time_entries: 'Piešķirt ziņotÄs stundas uzdevumam:'
+  text_user_wrote: "%{value} rakstīja:"
+  text_enumeration_destroy_question: "%{count} objekti ir piešķirti šai vērtībai."
+  text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
+  text_email_delivery_not_configured: "E-pastu nosÅ«tīšana nav konfigurÄ“ta, un ziņojumi ir izslÄ“gti.\nKonfigurÄ“jiet savu SMTP serveri datnÄ“ config/email.yml un pÄrstartÄ“jiet lietotni."
+  text_repository_usernames_mapping: "IzvÄ“lieties vai atjaunojiet Redmine lietotÄju, saistÄ«tu ar katru lietotÄjvÄrdu, kas atrodams repozitorija žurnÄlÄ.\nLietotÄji ar to paÅ¡u Redmine un repozitorija lietotÄjvÄrdu bÅ«s saistÄ«ti automÄtiski."
+  text_diff_truncated: '... Å is diff tika nošķelts, jo tas pÄrsniedz maksimÄlo izmÄ“ru, ko var parÄdÄ«t.'
+  text_custom_field_possible_values_info: 'Katra vÄ“rtÄ«bas savÄ rindÄ'
+  text_wiki_page_destroy_question: "Å ij lapai ir %{descendants} apakÅ¡lapa(as) un pÄ“cnÄcÄ“ji. Ko darÄ«t?"
+  text_wiki_page_nullify_children: "PaturÄ“t apakÅ¡lapas kÄ pamatlapas"
+  text_wiki_page_destroy_children: "DzÄ“st apakÅ¡lapas un visus pÄ“cnÄcÄ“jus"
+  text_wiki_page_reassign_children: "Piešķirt apakšlapas šai lapai"
+  text_own_membership_delete_confirmation: "JÅ«s tÅ«lÄ«t dzÄ“sÄ«siet dažas vai visas atļaujas, un Jums pÄ“c tam var nebÅ«t atļauja labot Å¡o projektu.\nVai turpinÄt?"
+  
+  default_role_manager: Menedžeris
+  default_role_developer: IzstrÄdÄtÄjs
+  default_role_reporter: ZiņotÄjs
+  default_tracker_bug: Kļūda
+  default_tracker_feature: Iezīme
+  default_tracker_support: Atbalsts
+  default_issue_status_new: Jauns
+  default_issue_status_in_progress: AttÄ«stÄ«bÄ
+  default_issue_status_resolved: AtrisinÄts
+  default_issue_status_feedback: Atsauksmes
+  default_issue_status_closed: Slēgts
+  default_issue_status_rejected: Noraidīts
+  default_doc_category_user: LietotÄja dokumentÄcija
+  default_doc_category_tech: TehniskÄ dokumentÄcija
+  default_priority_low: Zema
+  default_priority_normal: NormÄla
+  default_priority_high: Augsta
+  default_priority_urgent: Steidzama
+  default_priority_immediate: Tūlītēja
+  default_activity_design: Dizains
+  default_activity_development: IzstrÄdÄÅ¡ana
+  
+  enumeration_issue_priorities: Uzdevumu prioritÄtes
+  enumeration_doc_categories: Dokumentu kategorijas
+  enumeration_activities: AktivitÄtes (laika uzskaite)
+  enumeration_system_activity: SistÄ“mas aktivitÄtes
+
+  error_can_not_delete_custom_field: Unable to delete custom field
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  error_unable_to_connect: Unable to connect (%{value})
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  field_parent_issue: Parent task
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  label_project_copy_notifications: Send email notifications during the project copy
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/mk.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/mk.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,929 +1,938 @@
-mk:
-  # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d/%m/%Y"
-      short: "%d %b"
-      long: "%d %B, %Y"
-
-    day_names: [недела, понеделник, вторник, Ñреда, четврток, петок, Ñабота]
-    abbr_day_names: [нед, пон, вто, Ñре, чет, пет, Ñаб]
-
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, јануари, февруари, март, април, мај, јуни, јули, авгуÑÑ‚, Ñептември, октомври, ноември, декември]
-    abbr_month_names: [~, јан, фев, мар, апр, мај, јун, јул, авг, Ñеп, окт, ное, дек]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%d/%m/%Y %H:%M"
-      time: "%H:%M"
-      short: "%d %b %H:%M"
-      long: "%d %B, %Y %H:%M"
-    am: "предпладне"
-    pm: "попладне"
-
-  datetime:
-    distance_in_words:
-      half_a_minute: "пола минута"
-      less_than_x_seconds:
-        one:   "помалку од 1 Ñекунда"
-        other: "помалку од {{count}} Ñекунди"
-      x_seconds:
-        one:   "1 Ñекунда"
-        other: "{{count}} Ñекунди"
-      less_than_x_minutes:
-        one:   "помалку од 1 минута"
-        other: "помалку од {{count}} минути"
-      x_minutes:
-        one:   "1 минута"
-        other: "{{count}} минути"
-      about_x_hours:
-        one:   "околу 1 чаÑ"
-        other: "околу {{count}} чаÑа"
-      x_days:
-        one:   "1 ден"
-        other: "{{count}} дена"
-      about_x_months:
-        one:   "околу 1 меÑец"
-        other: "околу {{count}} меÑеци"
-      x_months:
-        one:   "1 меÑец"
-        other: "{{count}} меÑеци"
-      about_x_years:
-        one:   "околу 1 година"
-        other: "околу {{count}} години"
-      over_x_years:
-        one:   "преку 1 година"
-        other: "преку {{count}} години"
-      almost_x_years:
-        one:   "Ñкоро 1 година"
-        other: "Ñкоро {{count}} години"
-
-  number:
-    # Default format for numbers
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "и"
-      skip_last_comma: false
-
-  activerecord:
-    errors:
-      messages:
-        inclusion: "не е вклучено во лиÑтата"
-        exclusion: "е резервирано"
-        invalid: "е невалидно"
-        confirmation: "не Ñе Ñовпаѓа Ñо потврдата"
-        accepted: "мора да е прифатено"
-        empty: "неможе да е празно"
-        blank: "неможе да е празно"
-        too_long: "е предолго (макÑ. {{count}} знаци)"
-        too_short: "е прекратко (мин. {{count}} знаци)"
-        wrong_length: "е погрешна должина (треба да е  {{count}} знаци)"
-        taken: "е веќе зафатено"
-        not_a_number: "не е број"
-        not_a_date: "не е валидна дата"
-        greater_than: "мора да е поголемо од {{count}}"
-        greater_than_or_equal_to: "мора да е поголемо или еднакво на {{count}}"
-        equal_to: "мора да е еднакво на {{count}}"
-        less_than: "мора да е помало од {{count}}"
-        less_than_or_equal_to: "мора да е помало или еднакво на {{count}}"
-        odd: "мора да е непарно"
-        even: "мора да е парно"
-        greater_than_start_date: "мора да е поголема од почетната дата"
-        not_same_project: "не припаѓа на иÑтиот проект"
-        circular_dependency: "Оваа врÑка ќе креира кружна завиÑноÑÑ‚"
-        cant_link_an_issue_with_a_descendant: "Задача неможе да Ñе поврзе Ñо една од нејзините подзадачи"
-
-  actionview_instancetag_blank_option: Изберете
-
-  general_text_No: 'Ðе'
-  general_text_Yes: 'Да'
-  general_text_no: 'не'
-  general_text_yes: 'да'
-  general_lang_name: 'Macedonian (МакедонÑки)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-
-  notice_account_updated: Профилот е уÑпешно ажуриран.
-  notice_account_invalid_creditentials: Ðеточен кориÑник или лозинка
-  notice_account_password_updated: Лозинката е уÑпешно ажурирана.
-  notice_account_wrong_password: Погрешна лозинка
-  notice_account_register_done: Профилот е уÑпешно креиран. За активација, клкнете на врÑката што ви е пратена по е-пошта.
-  notice_account_unknown_email: Ðепознат кориÑник.
-  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
-  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
-  notice_account_activated: Your account has been activated. You can now log in.
-  notice_successful_create: УÑпешно креирање.
-  notice_successful_update: УÑпешно ажурирање.
-  notice_successful_delete: УÑпешно бришење.
-  notice_successful_connection: УÑпешна конекција.
-  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
-  notice_locking_conflict: Data has been updated by another user.
-  notice_not_authorized: You are not authorized to access this page.
-  notice_email_sent: "Е-порака е пратена на {{value}}"
-  notice_email_error: "Се Ñлучи грешка при праќање на е-пораката ({{value}})"
-  notice_feeds_access_key_reseted: Вашиот RSS клуч за приÑтап е reset.
-  notice_api_access_key_reseted: Вашиот API клуч за приÑтап е reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
-  notice_account_pending: "Your account was created and is now pending administrator approval."
-  notice_default_data_loaded: Default configuration successfully loaded.
-  notice_unable_delete_version: Unable to delete version.
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
-  error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
-  error_scm_annotate: "The entry does not exist or can not be annotated."
-  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_can_not_delete_tracker: "This tracker contains issues and can't be deleted."
-  error_can_not_remove_role: "This role is in use and can not be deleted."
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  error_unable_delete_issue_status: 'Unable to delete issue status'
-  error_unable_to_connect: "Unable to connect ({{value}})"
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
-
-  mail_subject_lost_password: "Вашата {{value}} лозинка"
-  mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
-  mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
-  mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "Ðов кориÑник ({{value}}) е региÑтриран. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-
-  gui_validation_error: 1 грешка
-  gui_validation_error_plural: "{{count}} грешки"
-
-  field_name: Име
-  field_description: ОпиÑ
-  field_summary: Краток опиÑ
-  field_is_required: Задолжително
-  field_firstname: Име
-  field_lastname: Презиме
-  field_mail: Е-пошта
-  field_filename: Датотека
-  field_filesize: Големина
-  field_downloads: Превземања
-  field_author: Ðвтор
-  field_created_on: Креиран
-  field_updated_on: Ðжурирано
-  field_field_format: Формат
-  field_is_for_all: За Ñите проекти
-  field_possible_values: Можни вредноÑти
-  field_regexp: Regular expression
-  field_min_length: Минимална должина
-  field_max_length: МакÑимална должина
-  field_value: ВредноÑÑ‚
-  field_category: Категорија
-  field_title: ÐаÑлов
-  field_project: Проект
-  field_issue: Задача
-  field_status: СтатуÑ
-  field_notes: Белешки
-  field_is_closed: Задачата е затворена
-  field_is_default: Default value
-  field_tracker: Tracker
-  field_subject: ÐаÑлов
-  field_due_date: Краен рок
-  field_assigned_to: Доделена на
-  field_priority: Приоритет
-  field_fixed_version: Target version
-  field_user: КориÑник
-  field_principal: Principal
-  field_role: Улога
-  field_homepage: Веб Ñтрана
-  field_is_public: Јавен
-  field_parent: Подпроект на
-  field_is_in_roadmap: Issues displayed in roadmap
-  field_login: КориÑник
-  field_mail_notification: ИзвеÑтувања по e-пошта
-  field_admin: ÐдминиÑтратор
-  field_last_login_on: ПоÑледна најава
-  field_language: Јазик
-  field_effective_date: Дата
-  field_password: Лозинка
-  field_new_password: Ðова лозинка
-  field_password_confirmation: Потврда
-  field_version: Верзија
-  field_type: Тип
-  field_host: ХоÑÑ‚
-  field_port: Порт
-  field_account: Account
-  field_base_dn: Base DN
-  field_attr_login: Login attribute
-  field_attr_firstname: Firstname attribute
-  field_attr_lastname: Lastname attribute
-  field_attr_mail: Email attribute
-  field_onthefly: Моментално (On-the-fly) креирање на кориÑници
-  field_done_ratio: % Завршено
-  field_auth_source: Режим на автентикација
-  field_hide_mail: Криј ја мојата адреÑа на е-пошта
-  field_comments: Коментар
-  field_url: URL
-  field_start_page: Почетна Ñтрана
-  field_subproject: Подпроект
-  field_hours: ЧаÑови
-  field_activity: ÐктивноÑÑ‚
-  field_spent_on: Дата
-  field_identifier: Идентификатор
-  field_is_filter: КориÑти како филтер
-  field_issue_to: Поврзана задача
-  field_delay: Доцнење
-  field_assignable: Ðа оваа улога може да Ñе доделуваат задачи
-  field_redirect_existing_links: ПренаÑочи ги поÑтоечките врÑки
-  field_estimated_hours: Проценето време
-  field_column_names: Колони
-  field_time_entries: Бележи време
-  field_time_zone: ВременÑка зона
-  field_searchable: Може да Ñе пребарува
-  field_default_value: Default value
-  field_comments_sorting: Прикажувај коментари
-  field_parent_title: Parent page
-  field_editable: Може да Ñе уредува
-  field_watcher: Watcher
-  field_identity_url: OpenID URL
-  field_content: Содржина
-  field_group_by: Групирај ги резултатите Ñпоред
-  field_sharing: Споделување
-  field_parent_issue: Parent task
-
-  setting_app_title: ÐаÑлов на апликацијата
-  setting_app_subtitle: ПоднаÑлов на апликацијата
-  setting_welcome_text: ТекÑÑ‚ за добредојде
-  setting_default_language: Default јазик
-  setting_login_required: Задолжителна автентикација
-  setting_self_registration: Само-региÑтрација
-  setting_attachment_max_size: МакÑ. големина на прилог
-  setting_issues_export_limit: Issues export limit
-  setting_mail_from: Emission email address
-  setting_bcc_recipients: Blind carbon copy recipients (bcc)
-  setting_plain_text_mail: ТекÑтуални е-пораки (без HTML)
-  setting_host_name: Име на хоÑÑ‚ и патека
-  setting_text_formatting: Форматирање на текÑÑ‚
-  setting_wiki_compression: КомпреÑија на иÑторијата на вики
-  setting_feeds_limit: Feed content limit
-  setting_default_projects_public: Ðовите проекти Ñе иницијално јавни
-  setting_autofetch_changesets: Autofetch commits
-  setting_sys_api_enabled: Enable WS for repository management
-  setting_commit_ref_keywords: Referencing keywords
-  setting_commit_fix_keywords: Fixing keywords
-  setting_autologin: ÐвтоматÑка најава
-  setting_date_format: Формат на дата
-  setting_time_format: Формат на време
-  setting_cross_project_issue_relations: Дозволи релации на задачи меѓу проекти
-  setting_issue_list_default_columns: Default columns displayed on the issue list
-  setting_repositories_encodings: Repositories encodings
-  setting_commit_logs_encoding: Commit messages encoding
-  setting_emails_footer: Emails footer
-  setting_protocol: Протокол
-  setting_per_page_options: Objects per page options
-  setting_user_format: Приказ на кориÑниците
-  setting_activity_days_default: Денови прикажана во активноÑта на проектот
-  setting_display_subprojects_issues: Прикажи ги задачите на подпроектите во главните проекти
-  setting_enabled_scm: Овозможи SCM
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: Enable WS for incoming emails
-  setting_mail_handler_api_key: API клуч
-  setting_sequential_project_identifiers: Генерирај поÑледователни идентификатори на проекти
-  setting_gravatar_enabled: КориÑти Gravatar кориÑнички икони
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Max number of diff lines displayed
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Дозволи OpenID најава и региÑтрација
-  setting_password_min_length: Мин. должина на лозинка
-  setting_new_project_user_role_id: Улога доделена на неадминиÑтраторÑки кориÑник кој креира проект
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-
-  permission_add_project: Креирај проекти
-  permission_add_subprojects: Креирај подпроекти
-  permission_edit_project: Уреди проект
-  permission_select_project_modules: Изберете модули за проект
-  permission_manage_members: Manage members
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Manage versions
-  permission_manage_categories: Manage issue categories
-  permission_view_issues: Прегледај задачи
-  permission_add_issues: Додавај задачи
-  permission_edit_issues: Уредувај задачи
-  permission_manage_issue_relations: Manage issue relations
-  permission_add_issue_notes: Додавај белешки
-  permission_edit_issue_notes: Уредувај белешки
-  permission_edit_own_issue_notes: Уредувај ÑопÑтвени белешки
-  permission_move_issues: ПремеÑтувај задачи
-  permission_delete_issues: Бриши задачи
-  permission_manage_public_queries: Manage public queries
-  permission_save_queries: Save queries
-  permission_view_gantt: View gantt chart
-  permission_view_calendar: View calendar
-  permission_view_issue_watchers: View watchers list
-  permission_add_issue_watchers: Add watchers
-  permission_delete_issue_watchers: Delete watchers
-  permission_log_time: Бележи потрошено време
-  permission_view_time_entries: Прегледај потрошено време
-  permission_edit_time_entries: Уредувај белешки за потрошено време
-  permission_edit_own_time_entries: Уредувај ÑопÑтвени белешки за потрошено време
-  permission_manage_news: Manage news
-  permission_comment_news: Коментирај на веÑти
-  permission_manage_documents: Manage documents
-  permission_view_documents: Прегледувај документи
-  permission_manage_files: Manage files
-  permission_view_files: Прегледувај датотеки
-  permission_manage_wiki: Manage wiki
-  permission_rename_wiki_pages: Преименувај вики Ñтраници
-  permission_delete_wiki_pages: Бриши вики Ñтраници
-  permission_view_wiki_pages: Прегледувај вики
-  permission_view_wiki_edits: Прегледувај вики иÑторија
-  permission_edit_wiki_pages: Уредувај вики Ñтраници
-  permission_delete_wiki_pages_attachments: Бриши прилози
-  permission_protect_wiki_pages: Заштитувај вики Ñтраници
-  permission_manage_repository: Manage repository
-  permission_browse_repository: Browse repository
-  permission_view_changesets: View changesets
-  permission_commit_access: Commit access
-  permission_manage_boards: Manage boards
-  permission_view_messages: View messages
-  permission_add_messages: Post messages
-  permission_edit_messages: Уредувај пораки
-  permission_edit_own_messages: Уредувај ÑопÑтвени пораки
-  permission_delete_messages: Бриши пораки
-  permission_delete_own_messages: Бриши ÑопÑтвени пораки
-  permission_export_wiki_pages: Export wiki pages
-  permission_manage_subtasks: Manage subtasks
-
-  project_module_issue_tracking: Следење на задачи
-  project_module_time_tracking: Следење на време
-  project_module_news: ВеÑти
-  project_module_documents: Документи
-  project_module_files: Датотеки
-  project_module_wiki: Вики
-  project_module_repository: Repository
-  project_module_boards: Форуми
-  project_module_calendar: Календар
-  project_module_gantt: Gantt
-
-  label_user: КориÑник
-  label_user_plural: КориÑници
-  label_user_new: Ðов кориÑник
-  label_user_anonymous: Ðнонимен
-  label_project: Проект
-  label_project_new: Ðов проект
-  label_project_plural: Проекти
-  label_x_projects:
-    zero:  нема проекти
-    one:   1 проект
-    other: "{{count}} проекти"
-  label_project_all: Сите проекти
-  label_project_latest: ПоÑледните проекти
-  label_issue: Задача
-  label_issue_new: Ðова задача
-  label_issue_plural: Задачи
-  label_issue_view_all: Прегледај ги Ñите задачи
-  label_issues_by: "Задачи по {{value}}"
-  label_issue_added: Задачата е додадена
-  label_issue_updated: Задачата е ажурирана
-  label_document: Документ
-  label_document_new: Ðов документ
-  label_document_plural: Документи
-  label_document_added: Документот е додаден
-  label_role: Улога
-  label_role_plural: Улоги
-  label_role_new: Ðова улога
-  label_role_and_permissions: Улоги и овлаÑтувања
-  label_member: Член
-  label_member_new: Ðов член
-  label_member_plural: Членови
-  label_tracker: Tracker
-  label_tracker_plural: Trackers
-  label_tracker_new: New tracker
-  label_workflow: Workflow
-  label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° задача
-  label_issue_status_plural: СтатуÑи на задачи
-  label_issue_status_new: Ðов ÑтатуÑ
-  label_issue_category: Категорија на задача
-  label_issue_category_plural: Категории на задачи
-  label_issue_category_new: Ðова категорија
-  label_custom_field: Прилагодено поле
-  label_custom_field_plural: Прилагодени полиња
-  label_custom_field_new: Ðово прилагодено поле
-  label_enumerations: Enumerations
-  label_enumeration_new: Ðова вредноÑÑ‚
-  label_information: Информација
-  label_information_plural: Информации
-  label_please_login: Ðајави Ñе
-  label_register: РегиÑтрирај Ñе
-  label_login_with_open_id_option: или најави Ñе Ñо OpenID
-  label_password_lost: Изгубена лозинка
-  label_home: Почетна
-  label_my_page: Мојата Ñтрана
-  label_my_account: Мојот профил
-  label_my_projects: Мои проекти
-  label_my_page_block: Блок елемент
-  label_administration: ÐдминиÑтрација
-  label_login: Ðајави Ñе
-  label_logout: Одјави Ñе
-  label_help: Помош
-  label_reported_issues: Пријавени задачи
-  label_assigned_to_me_issues: Задачи доделени на мене
-  label_last_login: ПоÑледна најава
-  label_registered_on: РегиÑтриран на
-  label_activity: ÐктивноÑÑ‚
-  label_overall_activity: Севкупна активноÑÑ‚
-  label_user_activity: "ÐктивноÑÑ‚ на {{value}}"
-  label_new: Ðова
-  label_logged_as: Ðајавени Ñте како
-  label_environment: Опкружување
-  label_authentication: Ðвтентикација
-  label_auth_source: Режим на автентикација
-  label_auth_source_new: Ðов режим на автентикација
-  label_auth_source_plural: Режими на автентикација
-  label_subproject_plural: Подпроекти
-  label_subproject_new: Ðов подпроект
-  label_and_its_subprojects: "{{value}} и неговите подпроекти"
-  label_min_max_length: Мин. - МакÑ. должина
-  label_list: ЛиÑта
-  label_date: Дата
-  label_integer: Integer
-  label_float: Float
-  label_boolean: Boolean
-  label_string: ТекÑÑ‚
-  label_text: Долг текÑÑ‚
-  label_attribute: Ðтрибут
-  label_attribute_plural: Ðтрибути
-  label_download: "{{count}} превземање"
-  label_download_plural: "{{count}} превземања"
-  label_no_data: Ðема податоци за прикажување
-  label_change_status: Промени ÑтатуÑ
-  label_history: ИÑторија
-  label_attachment: Датотека
-  label_attachment_new: Ðова датотека
-  label_attachment_delete: Избриши датотека
-  label_attachment_plural: Датотеки
-  label_file_added: Датотеката е додадена
-  label_report: Извештај
-  label_report_plural: Извештаи
-  label_news: ÐовоÑÑ‚
-  label_news_new: Додади новоÑÑ‚
-  label_news_plural: ÐовоÑти
-  label_news_latest: ПоÑледни новоÑти
-  label_news_view_all: Прегледај ги Ñите новоÑти
-  label_news_added: ÐовоÑтта е додадена
-  label_settings: Settings
-  label_overview: Преглед
-  label_version: Верзија
-  label_version_new: Ðова верзија
-  label_version_plural: Верзии
-  label_close_versions: Затвори ги завршените врзии
-  label_confirmation: Потврда
-  label_export_to: 'ДоÑтапно и во:'
-  label_read: Прочитај...
-  label_public_projects: Јавни проекти
-  label_open_issues: отворена
-  label_open_issues_plural: отворени
-  label_closed_issues: затворена
-  label_closed_issues_plural: затворени
-  label_x_open_issues_abbr_on_total:
-    zero:  0 отворени / {{total}}
-    one:   1 отворена / {{total}}
-    other: "{{count}} отворени / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 отворени
-    one:   1 отворена
-    other: "{{count}} отворени"
-  label_x_closed_issues_abbr:
-    zero:  0 затворени
-    one:   1 затворена
-    other: "{{count}} затворени"
-  label_total: Вкупно
-  label_permissions: ОвлаÑтувања
-  label_current_status: Моментален ÑтатуÑ
-  label_new_statuses_allowed: Дозволени нови ÑтатуÑи
-  label_all: Ñите
-  label_none: ниеден
-  label_nobody: никој
-  label_next: Следно
-  label_previous: Претходно
-  label_used_by: КориÑтено од
-  label_details: Детали
-  label_add_note: Додади белешка
-  label_per_page: По Ñтрана
-  label_calendar: Календар
-  label_months_from: меÑеци од
-  label_gantt: Gantt
-  label_internal: Internal
-  label_last_changes: "поÑледни {{count}} промени"
-  label_change_view_all: Прегледај ги Ñите промени
-  label_personalize_page: Прилагоди ја Ñтранава
-  label_comment: Коментар
-  label_comment_plural: Коментари
-  label_x_comments:
-    zero: нема коментари
-    one: 1 коментар
-    other: "{{count}} коментари"
-  label_comment_add: Додади коментар
-  label_comment_added: Коментарот е додаден
-  label_comment_delete: Избриши коментари
-  label_query: Custom query
-  label_query_plural: Custom queries
-  label_query_new: New query
-  label_filter_add: Додади филтер
-  label_filter_plural: Филтри
-  label_equals: е
-  label_not_equals: не е
-  label_in_less_than: за помалку од
-  label_in_more_than: за повеќе од
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: во
-  label_today: денеÑ
-  label_all_time: цело време
-  label_yesterday: вчера
-  label_this_week: оваа недела
-  label_last_week: минатата недела
-  label_last_n_days: "поÑледните {{count}} дена"
-  label_this_month: овој меÑец
-  label_last_month: минатиот меÑец
-  label_this_year: оваа година
-  label_date_range: Date range
-  label_less_than_ago: пред помалку од денови
-  label_more_than_ago: пред повеќе од денови
-  label_ago: пред денови
-  label_contains: Ñодржи
-  label_not_contains: не Ñодржи
-  label_day_plural: денови
-  label_repository: Складиште
-  label_repository_plural: Складишта
-  label_browse: ПрелиÑтувај
-  label_modification: "{{count}} промени"
-  label_modification_plural: "{{count}} промени"
-  label_branch: Гранка
-  label_tag: Tag
-  label_revision: Ревизија
-  label_revision_plural: Ревизии
-  label_revision_id: "Ревизија {{value}}"
-  label_associated_revisions: Associated revisions
-  label_added: added
-  label_modified: modified
-  label_copied: copied
-  label_renamed: renamed
-  label_deleted: deleted
-  label_latest_revision: ПоÑледна ревизија
-  label_latest_revision_plural: ПоÑледни ревизии
-  label_view_revisions: Прегледај ги ревизиите
-  label_view_all_revisions: Прегледај ги Ñите ревизии
-  label_max_size: МакÑ. големина
-  label_sort_highest: ПремеÑти најгоре
-  label_sort_higher: ПремеÑти нагоре
-  label_sort_lower: ПремеÑти надоле
-  label_sort_lowest: ПремеÑти најдоле
-  label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "КаÑни {{value}}"
-  label_roadmap_no_issues: Ðема задачи за оваа верзија
-  label_search: Барај
-  label_result_plural: Резултати
-  label_all_words: Сите зборови
-  label_wiki: Вики
-  label_wiki_edit: Вики уредување
-  label_wiki_edit_plural: Вики уредувања
-  label_wiki_page: Вики Ñтраница
-  label_wiki_page_plural: Вики Ñтраници
-  label_index_by_title: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ наÑлов
-  label_index_by_date: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ дата
-  label_current_version: Current version
-  label_preview: Preview
-  label_feed_plural: Feeds
-  label_changes_details: Детали за Ñите промени
-  label_issue_tracking: Следење на задачи
-  label_spent_time: Потрошено време
-  label_overall_spent_time: Вкупно потрошено време
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑа"
-  label_time_tracking: Следење на време
-  label_change_plural: Промени
-  label_statistics: СтатиÑтики
-  label_commits_per_month: Commits per month
-  label_commits_per_author: Commits per author
-  label_view_diff: View differences
-  label_diff_inline: inline
-  label_diff_side_by_side: side by side
-  label_options: Опции
-  label_copy_workflow_from: Copy workflow from
-  label_permissions_report: Permissions report
-  label_watched_issues: Watched issues
-  label_related_issues: Поврзани задачи
-  label_applied_status: Applied status
-  label_loading: Loading...
-  label_relation_new: Ðова релација
-  label_relation_delete: Избриши релација
-  label_relates_to: related to
-  label_duplicates: дупликати
-  label_duplicated_by: duplicated by
-  label_blocks: blocks
-  label_blocked_by: блокирано од
-  label_precedes: претходи
-  label_follows: Ñледи
-  label_end_to_start: крај до почеток
-  label_end_to_end: крај до крај
-  label_start_to_start: почеток до почеток
-  label_start_to_end: почеток до крај
-  label_stay_logged_in: ОÑтанете најавени
-  label_disabled: disabled
-  label_show_completed_versions: Show completed versions
-  label_me: јаÑ
-  label_board: Форум
-  label_board_new: Ðов форум
-  label_board_plural: Форуми
-  label_board_locked: Заклучен
-  label_board_sticky: Sticky
-  label_topic_plural: Теми
-  label_message_plural: Пораки
-  label_message_last: ПоÑледна порака
-  label_message_new: Ðова порака
-  label_message_posted: Поракате е додадена
-  label_reply_plural: Одговори
-  label_send_information: ИÑпрати ги информациите за профилот на кориÑникот
-  label_year: Година
-  label_month: МеÑец
-  label_week: Ðедела
-  label_date_from: Од
-  label_date_to: До
-  label_language_based: Според јазикот на кориÑникот
-  label_sort_by: "Подреди Ñпоред {{value}}"
-  label_send_test_email: ИÑпрати теÑÑ‚ е-порака
-  label_feeds_access_key: RSS клуч за приÑтап
-  label_missing_feeds_access_key: ÐедоÑтика RSS клуч за приÑтап
-  label_feeds_access_key_created_on: "RSS клучот за приÑтап креиран пред {{value}}"
-  label_module_plural: Модули
-  label_added_time_by: "Додадено од {{author}} пред {{age}}"
-  label_updated_time_by: "Ðжурирано од {{author}} пред {{age}}"
-  label_updated_time: "Ðжурирано пред {{value}}"
-  label_jump_to_a_project: Префрли Ñе на проект...
-  label_file_plural: Датотеки
-  label_changeset_plural: Changesets
-  label_default_columns: ОÑновни колони
-  label_no_change_option: (Без промена)
-  label_bulk_edit_selected_issues: Групно уредување на задачи
-  label_theme: Тема
-  label_default: Default
-  label_search_titles_only: Пребарувај Ñамо наÑлови
-  label_user_mail_option_all: "За било кој наÑтан во Ñите мои проекти"
-  label_user_mail_option_selected: "За било кој наÑтан Ñамо во избраните проекти..."
-  label_user_mail_no_self_notified: "Ðе ме извеÑтувај за промените што Ñ˜Ð°Ñ Ð³Ð¸ правам"
-  label_registration_activation_by_email: активација на профил преку е-пошта
-  label_registration_manual_activation: мануелна активација на профил
-  label_registration_automatic_activation: автоматÑка активација на профил
-  label_display_per_page: "По Ñтрана: {{value}}"
-  label_age: Age
-  label_change_properties: Change properties
-  label_general: Општо
-  label_more: Повеќе
-  label_scm: SCM
-  label_plugins: Додатоци
-  label_ldap_authentication: LDAP автентикација
-  label_downloads_abbr: Превземања
-  label_optional_description: ÐžÐ¿Ð¸Ñ (незадолжително)
-  label_add_another_file: Додади уште една датотека
-  label_preferences: Preferences
-  label_chronological_order: Во хронолошки ред
-  label_reverse_chronological_order: In reverse chronological order
-  label_planning: Планирање
-  label_incoming_emails: Дојдовни е-пораки
-  label_generate_key: Генерирај клуч
-  label_issue_watchers: Watchers
-  label_example: Пример
-  label_display: Прикажи
-  label_sort: Подреди
-  label_ascending: РаÑтечки
-  label_descending: Опаѓачки
-  label_date_from_to: Од {{start}} до {{end}}
-  label_wiki_content_added: Вики Ñтраница додадена
-  label_wiki_content_updated: Вики Ñтраница ажурирана
-  label_group: Група
-  label_group_plural: Групи
-  label_group_new: Ðова група
-  label_time_entry_plural: Потрошено време
-  label_version_sharing_none: Ðе Ñподелено
-  label_version_sharing_descendants: Со Ñите подпроекти
-  label_version_sharing_hierarchy: Со хиерархијата на проектот
-  label_version_sharing_tree: Со дрвото на проектот
-  label_version_sharing_system: Со Ñите проекти
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Извор
-  label_copy_target: ДеÑтинација
-  label_copy_same_as_target: ИÑто како деÑтинацијата
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API клуч за приÑтап
-  label_missing_api_access_key: ÐедоÑтига API клуч за приÑтап
-  label_api_access_key_created_on: "API клучот за приÑтап е креиран пред {{value}}"
-  label_profile: Профил
-  label_subtask_plural: Подзадачи
-  label_project_copy_notifications: Праќај извеÑтувања по е-пошта при копирање на проект
-
-  button_login: Ðајави Ñе
-  button_submit: ИÑпрати
-  button_save: Зачувај
-  button_check_all: Штиклирај ги Ñите
-  button_uncheck_all: Одштиклирај ги Ñите
-  button_delete: Избриши
-  button_create: Креирај
-  button_create_and_continue: Креирај и продолжи
-  button_test: ТеÑÑ‚
-  button_edit: Уреди
-  button_add: Додади
-  button_change: Промени
-  button_apply: Примени
-  button_clear: Избриши
-  button_lock: Заклучи
-  button_unlock: Отклучи
-  button_download: Превземи
-  button_list: List
-  button_view: Прегледај
-  button_move: ПремеÑти
-  button_move_and_follow: ПремеÑти и Ñледи
-  button_back: Back
-  button_cancel: Откажи
-  button_activate: Ðктивирај
-  button_sort: Подреди
-  button_log_time: Бележи време
-  button_rollback: Rollback to this version
-  button_watch: Следи
-  button_unwatch: Ðе Ñледи
-  button_reply: Одговори
-  button_archive: Ðрхивирај
-  button_unarchive: Одархивирај
-  button_reset: Reset
-  button_rename: Преименувај
-  button_change_password: Промени лозинка
-  button_copy: Копирај
-  button_copy_and_follow: Копирај и Ñледи
-  button_annotate: Annotate
-  button_update: Ðжурирај
-  button_configure: Конфигурирај
-  button_quote: Цитирај
-  button_duplicate: Копирај
-  button_show: Show
-
-  status_active: активни
-  status_registered: региÑтрирани
-  status_locked: заклучени
-
-  version_status_open: отворени
-  version_status_locked: заклучени
-  version_status_closed: затворени
-
-  field_active: Active
-
-  text_select_mail_notifications: Изберете за кои наÑтани да Ñе праќаат извеÑтувања по е-пошта да Ñе праќаат.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 значи без ограничување
-  text_project_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете проектот и Ñите поврзани податоци?
-  text_subprojects_destroy_warning: "Ðеговите подпроекти: {{value}} иÑто така ќе бидат избришани."
-  text_workflow_edit: Select a role and a tracker to edit the workflow
-  text_are_you_sure: Дали Ñте Ñигурни?
-  text_journal_changed: "{{label}} променето од {{old}} во {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} избришан ({{old}})"
-  text_journal_added: "{{label}} {{value}} додаден"
-  text_tip_issue_begin_day: задачи што почнуваат овој ден
-  text_tip_issue_end_day: задачи што завршуваат овој ден
-  text_tip_issue_begin_end_day: задачи што почнуваат и завршуваат овој ден
-  text_project_identifier_info: 'Само мали букви (a-z), бројки и dashes Ñе дозволени<br />По зачувувањето, идентификаторот неможе да Ñе Ñмени.'
-  text_caracters_maximum: "{{count}} знаци макÑимум."
-  text_caracters_minimum: "Мора да е најмалку {{count}} знаци долго."
-  text_length_between: "Должина помеѓу {{min}} и {{max}} знаци."
-  text_tracker_no_workflow: No workflow defined for this tracker
-  text_unallowed_characters: Ðедозволени знаци
-  text_comma_separated: Дозволени Ñе повеќе вредноÑти (разделени Ñо запирка).
-  text_line_separated: Дозволени Ñе повеќе вредноÑти (една линија за Ñекоја вредноÑÑ‚).
-  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Задачата {{id}} е пријавена од {{author}}."
-  text_issue_updated: "Задачата {{id}} е ажурирана од {{author}}."
-  text_wiki_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете ова вики и целата негова Ñодржина?
-  text_issue_category_destroy_question: "Ðекои задачи ({{count}}) Ñе доделени на оваа категорија. Што Ñакате да правите?"
-  text_issue_category_destroy_assignments: Remove category assignments
-  text_issue_category_reassign_to: Додели ги задачите на оваа категорија
-  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)."
-  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."
-  text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  text_issues_destroy_confirmation: 'Дали Ñте Ñигурни дека Ñакате да ги избришете избраните задачи?'
-  text_select_project_modules: 'Изберете модули за овој проект:'
-  text_default_administrator_account_changed: Default administrator account changed
-  text_file_repository_writable: Во папката за прилози може да Ñе запишува
-  text_plugin_assets_writable: Во папката за додатоци може да Ñе запишува
-  text_rmagick_available: RMagick available (незадолжително)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
-  text_destroy_time_entries: Delete reported hours
-  text_assign_time_entries_to_project: Додели ги пријавените чаÑови на проектот
-  text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} напиша:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_enumeration_category_reassign_to: 'Reassign them to this value:'
-  text_email_delivery_not_configured: "ДоÑтавата по е-пошта не е конфигурирана, и извеÑтувањата Ñе оневозможени.\nКонфигурирајте го Вашиот  SMTP Ñервер во config/email.yml и реÑтартирајте ја апликацијата."
-  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
-  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  text_zoom_in: Zoom in
-  text_zoom_out: Zoom out
-
-  default_role_manager: Менаџер
-  default_role_developer: Developer
-  default_role_reporter: Reporter
-  default_tracker_bug: Грешка
-  default_tracker_feature: ФункционалноÑÑ‚
-  default_tracker_support: Поддршка
-  default_issue_status_new: Ðова
-  default_issue_status_in_progress: Во прогреÑ
-  default_issue_status_resolved: Разрешена
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: Затворена
-  default_issue_status_rejected: Одбиена
-  default_doc_category_user: КориÑничка документација
-  default_doc_category_tech: Техничка документација
-  default_priority_low: Ðизок
-  default_priority_normal: Ðормален
-  default_priority_high: ВиÑок
-  default_priority_urgent: Итно
-  default_priority_immediate: Веднаш
-  default_activity_design: Дизајн
-  default_activity_development: Развој
-
-  enumeration_issue_priorities: Приоритети на задача
-  enumeration_doc_categories: Категории на документ
-  enumeration_activities: ÐктивноÑти (Ñледење на време)
-  enumeration_system_activity: СиÑтемÑка активноÑÑ‚
-
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+mk:
+  # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d/%m/%Y"
+      short: "%d %b"
+      long: "%d %B, %Y"
+
+    day_names: [недела, понеделник, вторник, Ñреда, четврток, петок, Ñабота]
+    abbr_day_names: [нед, пон, вто, Ñре, чет, пет, Ñаб]
+
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, јануари, февруари, март, април, мај, јуни, јули, авгуÑÑ‚, Ñептември, октомври, ноември, декември]
+    abbr_month_names: [~, јан, фев, мар, апр, мај, јун, јул, авг, Ñеп, окт, ное, дек]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%d/%m/%Y %H:%M"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: "предпладне"
+    pm: "попладне"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "пола минута"
+      less_than_x_seconds:
+        one:   "помалку од 1 Ñекунда"
+        other: "помалку од %{count} Ñекунди"
+      x_seconds:
+        one:   "1 Ñекунда"
+        other: "%{count} Ñекунди"
+      less_than_x_minutes:
+        one:   "помалку од 1 минута"
+        other: "помалку од %{count} минути"
+      x_minutes:
+        one:   "1 минута"
+        other: "%{count} минути"
+      about_x_hours:
+        one:   "околу 1 чаÑ"
+        other: "околу %{count} чаÑа"
+      x_days:
+        one:   "1 ден"
+        other: "%{count} дена"
+      about_x_months:
+        one:   "околу 1 меÑец"
+        other: "околу %{count} меÑеци"
+      x_months:
+        one:   "1 меÑец"
+        other: "%{count} меÑеци"
+      about_x_years:
+        one:   "околу 1 година"
+        other: "околу %{count} години"
+      over_x_years:
+        one:   "преку 1 година"
+        other: "преку %{count} години"
+      almost_x_years:
+        one:   "Ñкоро 1 година"
+        other: "Ñкоро %{count} години"
+
+  number:
+    # Default format for numbers
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "и"
+      skip_last_comma: false
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "не е вклучено во лиÑтата"
+        exclusion: "е резервирано"
+        invalid: "е невалидно"
+        confirmation: "не Ñе Ñовпаѓа Ñо потврдата"
+        accepted: "мора да е прифатено"
+        empty: "неможе да е празно"
+        blank: "неможе да е празно"
+        too_long: "е предолго (макÑ. %{count} знаци)"
+        too_short: "е прекратко (мин. %{count} знаци)"
+        wrong_length: "е погрешна должина (треба да е  %{count} знаци)"
+        taken: "е веќе зафатено"
+        not_a_number: "не е број"
+        not_a_date: "не е валидна дата"
+        greater_than: "мора да е поголемо од %{count}"
+        greater_than_or_equal_to: "мора да е поголемо или еднакво на %{count}"
+        equal_to: "мора да е еднакво на %{count}"
+        less_than: "мора да е помало од %{count}"
+        less_than_or_equal_to: "мора да е помало или еднакво на %{count}"
+        odd: "мора да е непарно"
+        even: "мора да е парно"
+        greater_than_start_date: "мора да е поголема од почетната дата"
+        not_same_project: "не припаѓа на иÑтиот проект"
+        circular_dependency: "Оваа врÑка ќе креира кружна завиÑноÑÑ‚"
+        cant_link_an_issue_with_a_descendant: "Задача неможе да Ñе поврзе Ñо една од нејзините подзадачи"
+
+  actionview_instancetag_blank_option: Изберете
+
+  general_text_No: 'Ðе'
+  general_text_Yes: 'Да'
+  general_text_no: 'не'
+  general_text_yes: 'да'
+  general_lang_name: 'Macedonian (МакедонÑки)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+
+  notice_account_updated: Профилот е уÑпешно ажуриран.
+  notice_account_invalid_creditentials: Ðеточен кориÑник или лозинка
+  notice_account_password_updated: Лозинката е уÑпешно ажурирана.
+  notice_account_wrong_password: Погрешна лозинка
+  notice_account_register_done: Профилот е уÑпешно креиран. За активација, клкнете на врÑката што ви е пратена по е-пошта.
+  notice_account_unknown_email: Ðепознат кориÑник.
+  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+  notice_account_activated: Your account has been activated. You can now log in.
+  notice_successful_create: УÑпешно креирање.
+  notice_successful_update: УÑпешно ажурирање.
+  notice_successful_delete: УÑпешно бришење.
+  notice_successful_connection: УÑпешна конекција.
+  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+  notice_locking_conflict: Data has been updated by another user.
+  notice_not_authorized: You are not authorized to access this page.
+  notice_email_sent: "Е-порака е пратена на %{value}"
+  notice_email_error: "Се Ñлучи грешка при праќање на е-пораката (%{value})"
+  notice_feeds_access_key_reseted: Вашиот RSS клуч за приÑтап е reset.
+  notice_api_access_key_reseted: Вашиот API клуч за приÑтап е reset.
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+  notice_account_pending: "Your account was created and is now pending administrator approval."
+  notice_default_data_loaded: Default configuration successfully loaded.
+  notice_unable_delete_version: Unable to delete version.
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
+  error_scm_not_found: "The entry or revision was not found in the repository."
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
+  error_scm_annotate: "The entry does not exist or can not be annotated."
+  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_delete_custom_field: Unable to delete custom field
+  error_can_not_delete_tracker: "This tracker contains issues and can't be deleted."
+  error_can_not_remove_role: "This role is in use and can not be deleted."
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  error_unable_delete_issue_status: 'Unable to delete issue status'
+  error_unable_to_connect: "Unable to connect (%{value})"
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
+
+  mail_subject_lost_password: "Вашата %{value} лозинка"
+  mail_body_lost_password: 'To change your password, click on the following link:'
+  mail_subject_register: "Your %{value} account activation"
+  mail_body_register: 'To activate your account, click on the following link:'
+  mail_body_account_information_external: "You can use your %{value} account to log in."
+  mail_body_account_information: Your account information
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "Ðов кориÑник (%{value}) е региÑтриран. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+
+  gui_validation_error: 1 грешка
+  gui_validation_error_plural: "%{count} грешки"
+
+  field_name: Име
+  field_description: ОпиÑ
+  field_summary: Краток опиÑ
+  field_is_required: Задолжително
+  field_firstname: Име
+  field_lastname: Презиме
+  field_mail: Е-пошта
+  field_filename: Датотека
+  field_filesize: Големина
+  field_downloads: Превземања
+  field_author: Ðвтор
+  field_created_on: Креиран
+  field_updated_on: Ðжурирано
+  field_field_format: Формат
+  field_is_for_all: За Ñите проекти
+  field_possible_values: Можни вредноÑти
+  field_regexp: Regular expression
+  field_min_length: Минимална должина
+  field_max_length: МакÑимална должина
+  field_value: ВредноÑÑ‚
+  field_category: Категорија
+  field_title: ÐаÑлов
+  field_project: Проект
+  field_issue: Задача
+  field_status: СтатуÑ
+  field_notes: Белешки
+  field_is_closed: Задачата е затворена
+  field_is_default: Default value
+  field_tracker: Tracker
+  field_subject: ÐаÑлов
+  field_due_date: Краен рок
+  field_assigned_to: Доделена на
+  field_priority: Приоритет
+  field_fixed_version: Target version
+  field_user: КориÑник
+  field_principal: Principal
+  field_role: Улога
+  field_homepage: Веб Ñтрана
+  field_is_public: Јавен
+  field_parent: Подпроект на
+  field_is_in_roadmap: Issues displayed in roadmap
+  field_login: КориÑник
+  field_mail_notification: ИзвеÑтувања по e-пошта
+  field_admin: ÐдминиÑтратор
+  field_last_login_on: ПоÑледна најава
+  field_language: Јазик
+  field_effective_date: Дата
+  field_password: Лозинка
+  field_new_password: Ðова лозинка
+  field_password_confirmation: Потврда
+  field_version: Верзија
+  field_type: Тип
+  field_host: ХоÑÑ‚
+  field_port: Порт
+  field_account: Account
+  field_base_dn: Base DN
+  field_attr_login: Login attribute
+  field_attr_firstname: Firstname attribute
+  field_attr_lastname: Lastname attribute
+  field_attr_mail: Email attribute
+  field_onthefly: Моментално (On-the-fly) креирање на кориÑници
+  field_start_date: Почеток
+  field_done_ratio: % Завршено
+  field_auth_source: Режим на автентикација
+  field_hide_mail: Криј ја мојата адреÑа на е-пошта
+  field_comments: Коментар
+  field_url: URL
+  field_start_page: Почетна Ñтрана
+  field_subproject: Подпроект
+  field_hours: ЧаÑови
+  field_activity: ÐктивноÑÑ‚
+  field_spent_on: Дата
+  field_identifier: Идентификатор
+  field_is_filter: КориÑти како филтер
+  field_issue_to: Поврзана задача
+  field_delay: Доцнење
+  field_assignable: Ðа оваа улога може да Ñе доделуваат задачи
+  field_redirect_existing_links: ПренаÑочи ги поÑтоечките врÑки
+  field_estimated_hours: Проценето време
+  field_column_names: Колони
+  field_time_entries: Бележи време
+  field_time_zone: ВременÑка зона
+  field_searchable: Може да Ñе пребарува
+  field_default_value: Default value
+  field_comments_sorting: Прикажувај коментари
+  field_parent_title: Parent page
+  field_editable: Може да Ñе уредува
+  field_watcher: Watcher
+  field_identity_url: OpenID URL
+  field_content: Содржина
+  field_group_by: Групирај ги резултатите Ñпоред
+  field_sharing: Споделување
+  field_parent_issue: Parent task
+
+  setting_app_title: ÐаÑлов на апликацијата
+  setting_app_subtitle: ПоднаÑлов на апликацијата
+  setting_welcome_text: ТекÑÑ‚ за добредојде
+  setting_default_language: Default јазик
+  setting_login_required: Задолжителна автентикација
+  setting_self_registration: Само-региÑтрација
+  setting_attachment_max_size: МакÑ. големина на прилог
+  setting_issues_export_limit: Issues export limit
+  setting_mail_from: Emission email address
+  setting_bcc_recipients: Blind carbon copy recipients (bcc)
+  setting_plain_text_mail: ТекÑтуални е-пораки (без HTML)
+  setting_host_name: Име на хоÑÑ‚ и патека
+  setting_text_formatting: Форматирање на текÑÑ‚
+  setting_wiki_compression: КомпреÑија на иÑторијата на вики
+  setting_feeds_limit: Feed content limit
+  setting_default_projects_public: Ðовите проекти Ñе иницијално јавни
+  setting_autofetch_changesets: Autofetch commits
+  setting_sys_api_enabled: Enable WS for repository management
+  setting_commit_ref_keywords: Referencing keywords
+  setting_commit_fix_keywords: Fixing keywords
+  setting_autologin: ÐвтоматÑка најава
+  setting_date_format: Формат на дата
+  setting_time_format: Формат на време
+  setting_cross_project_issue_relations: Дозволи релации на задачи меѓу проекти
+  setting_issue_list_default_columns: Default columns displayed on the issue list
+  setting_repositories_encodings: Repositories encodings
+  setting_commit_logs_encoding: Commit messages encoding
+  setting_emails_footer: Emails footer
+  setting_protocol: Протокол
+  setting_per_page_options: Objects per page options
+  setting_user_format: Приказ на кориÑниците
+  setting_activity_days_default: Денови прикажана во активноÑта на проектот
+  setting_display_subprojects_issues: Прикажи ги задачите на подпроектите во главните проекти
+  setting_enabled_scm: Овозможи SCM
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: Enable WS for incoming emails
+  setting_mail_handler_api_key: API клуч
+  setting_sequential_project_identifiers: Генерирај поÑледователни идентификатори на проекти
+  setting_gravatar_enabled: КориÑти Gravatar кориÑнички икони
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Max number of diff lines displayed
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Дозволи OpenID најава и региÑтрација
+  setting_password_min_length: Мин. должина на лозинка
+  setting_new_project_user_role_id: Улога доделена на неадминиÑтраторÑки кориÑник кој креира проект
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+
+  permission_add_project: Креирај проекти
+  permission_add_subprojects: Креирај подпроекти
+  permission_edit_project: Уреди проект
+  permission_select_project_modules: Изберете модули за проект
+  permission_manage_members: Manage members
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Manage versions
+  permission_manage_categories: Manage issue categories
+  permission_view_issues: Прегледај задачи
+  permission_add_issues: Додавај задачи
+  permission_edit_issues: Уредувај задачи
+  permission_manage_issue_relations: Manage issue relations
+  permission_add_issue_notes: Додавај белешки
+  permission_edit_issue_notes: Уредувај белешки
+  permission_edit_own_issue_notes: Уредувај ÑопÑтвени белешки
+  permission_move_issues: ПремеÑтувај задачи
+  permission_delete_issues: Бриши задачи
+  permission_manage_public_queries: Manage public queries
+  permission_save_queries: Save queries
+  permission_view_gantt: View gantt chart
+  permission_view_calendar: View calendar
+  permission_view_issue_watchers: View watchers list
+  permission_add_issue_watchers: Add watchers
+  permission_delete_issue_watchers: Delete watchers
+  permission_log_time: Бележи потрошено време
+  permission_view_time_entries: Прегледај потрошено време
+  permission_edit_time_entries: Уредувај белешки за потрошено време
+  permission_edit_own_time_entries: Уредувај ÑопÑтвени белешки за потрошено време
+  permission_manage_news: Manage news
+  permission_comment_news: Коментирај на веÑти
+  permission_manage_documents: Manage documents
+  permission_view_documents: Прегледувај документи
+  permission_manage_files: Manage files
+  permission_view_files: Прегледувај датотеки
+  permission_manage_wiki: Manage wiki
+  permission_rename_wiki_pages: Преименувај вики Ñтраници
+  permission_delete_wiki_pages: Бриши вики Ñтраници
+  permission_view_wiki_pages: Прегледувај вики
+  permission_view_wiki_edits: Прегледувај вики иÑторија
+  permission_edit_wiki_pages: Уредувај вики Ñтраници
+  permission_delete_wiki_pages_attachments: Бриши прилози
+  permission_protect_wiki_pages: Заштитувај вики Ñтраници
+  permission_manage_repository: Manage repository
+  permission_browse_repository: Browse repository
+  permission_view_changesets: View changesets
+  permission_commit_access: Commit access
+  permission_manage_boards: Manage boards
+  permission_view_messages: View messages
+  permission_add_messages: Post messages
+  permission_edit_messages: Уредувај пораки
+  permission_edit_own_messages: Уредувај ÑопÑтвени пораки
+  permission_delete_messages: Бриши пораки
+  permission_delete_own_messages: Бриши ÑопÑтвени пораки
+  permission_export_wiki_pages: Export wiki pages
+  permission_manage_subtasks: Manage subtasks
+
+  project_module_issue_tracking: Следење на задачи
+  project_module_time_tracking: Следење на време
+  project_module_news: ВеÑти
+  project_module_documents: Документи
+  project_module_files: Датотеки
+  project_module_wiki: Вики
+  project_module_repository: Repository
+  project_module_boards: Форуми
+  project_module_calendar: Календар
+  project_module_gantt: Gantt
+
+  label_user: КориÑник
+  label_user_plural: КориÑници
+  label_user_new: Ðов кориÑник
+  label_user_anonymous: Ðнонимен
+  label_project: Проект
+  label_project_new: Ðов проект
+  label_project_plural: Проекти
+  label_x_projects:
+    zero:  нема проекти
+    one:   1 проект
+    other: "%{count} проекти"
+  label_project_all: Сите проекти
+  label_project_latest: ПоÑледните проекти
+  label_issue: Задача
+  label_issue_new: Ðова задача
+  label_issue_plural: Задачи
+  label_issue_view_all: Прегледај ги Ñите задачи
+  label_issues_by: "Задачи по %{value}"
+  label_issue_added: Задачата е додадена
+  label_issue_updated: Задачата е ажурирана
+  label_document: Документ
+  label_document_new: Ðов документ
+  label_document_plural: Документи
+  label_document_added: Документот е додаден
+  label_role: Улога
+  label_role_plural: Улоги
+  label_role_new: Ðова улога
+  label_role_and_permissions: Улоги и овлаÑтувања
+  label_member: Член
+  label_member_new: Ðов член
+  label_member_plural: Членови
+  label_tracker: Tracker
+  label_tracker_plural: Trackers
+  label_tracker_new: New tracker
+  label_workflow: Workflow
+  label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° задача
+  label_issue_status_plural: СтатуÑи на задачи
+  label_issue_status_new: Ðов ÑтатуÑ
+  label_issue_category: Категорија на задача
+  label_issue_category_plural: Категории на задачи
+  label_issue_category_new: Ðова категорија
+  label_custom_field: Прилагодено поле
+  label_custom_field_plural: Прилагодени полиња
+  label_custom_field_new: Ðово прилагодено поле
+  label_enumerations: Enumerations
+  label_enumeration_new: Ðова вредноÑÑ‚
+  label_information: Информација
+  label_information_plural: Информации
+  label_please_login: Ðајави Ñе
+  label_register: РегиÑтрирај Ñе
+  label_login_with_open_id_option: или најави Ñе Ñо OpenID
+  label_password_lost: Изгубена лозинка
+  label_home: Почетна
+  label_my_page: Мојата Ñтрана
+  label_my_account: Мојот профил
+  label_my_projects: Мои проекти
+  label_my_page_block: Блок елемент
+  label_administration: ÐдминиÑтрација
+  label_login: Ðајави Ñе
+  label_logout: Одјави Ñе
+  label_help: Помош
+  label_reported_issues: Пријавени задачи
+  label_assigned_to_me_issues: Задачи доделени на мене
+  label_last_login: ПоÑледна најава
+  label_registered_on: РегиÑтриран на
+  label_activity: ÐктивноÑÑ‚
+  label_overall_activity: Севкупна активноÑÑ‚
+  label_user_activity: "ÐктивноÑÑ‚ на %{value}"
+  label_new: Ðова
+  label_logged_as: Ðајавени Ñте како
+  label_environment: Опкружување
+  label_authentication: Ðвтентикација
+  label_auth_source: Режим на автентикација
+  label_auth_source_new: Ðов режим на автентикација
+  label_auth_source_plural: Режими на автентикација
+  label_subproject_plural: Подпроекти
+  label_subproject_new: Ðов подпроект
+  label_and_its_subprojects: "%{value} и неговите подпроекти"
+  label_min_max_length: Мин. - МакÑ. должина
+  label_list: ЛиÑта
+  label_date: Дата
+  label_integer: Integer
+  label_float: Float
+  label_boolean: Boolean
+  label_string: ТекÑÑ‚
+  label_text: Долг текÑÑ‚
+  label_attribute: Ðтрибут
+  label_attribute_plural: Ðтрибути
+  label_download: "%{count} превземање"
+  label_download_plural: "%{count} превземања"
+  label_no_data: Ðема податоци за прикажување
+  label_change_status: Промени ÑтатуÑ
+  label_history: ИÑторија
+  label_attachment: Датотека
+  label_attachment_new: Ðова датотека
+  label_attachment_delete: Избриши датотека
+  label_attachment_plural: Датотеки
+  label_file_added: Датотеката е додадена
+  label_report: Извештај
+  label_report_plural: Извештаи
+  label_news: ÐовоÑÑ‚
+  label_news_new: Додади новоÑÑ‚
+  label_news_plural: ÐовоÑти
+  label_news_latest: ПоÑледни новоÑти
+  label_news_view_all: Прегледај ги Ñите новоÑти
+  label_news_added: ÐовоÑтта е додадена
+  label_settings: Settings
+  label_overview: Преглед
+  label_version: Верзија
+  label_version_new: Ðова верзија
+  label_version_plural: Верзии
+  label_close_versions: Затвори ги завршените врзии
+  label_confirmation: Потврда
+  label_export_to: 'ДоÑтапно и во:'
+  label_read: Прочитај...
+  label_public_projects: Јавни проекти
+  label_open_issues: отворена
+  label_open_issues_plural: отворени
+  label_closed_issues: затворена
+  label_closed_issues_plural: затворени
+  label_x_open_issues_abbr_on_total:
+    zero:  0 отворени / %{total}
+    one:   1 отворена / %{total}
+    other: "%{count} отворени / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 отворени
+    one:   1 отворена
+    other: "%{count} отворени"
+  label_x_closed_issues_abbr:
+    zero:  0 затворени
+    one:   1 затворена
+    other: "%{count} затворени"
+  label_total: Вкупно
+  label_permissions: ОвлаÑтувања
+  label_current_status: Моментален ÑтатуÑ
+  label_new_statuses_allowed: Дозволени нови ÑтатуÑи
+  label_all: Ñите
+  label_none: ниеден
+  label_nobody: никој
+  label_next: Следно
+  label_previous: Претходно
+  label_used_by: КориÑтено од
+  label_details: Детали
+  label_add_note: Додади белешка
+  label_per_page: По Ñтрана
+  label_calendar: Календар
+  label_months_from: меÑеци од
+  label_gantt: Gantt
+  label_internal: Internal
+  label_last_changes: "поÑледни %{count} промени"
+  label_change_view_all: Прегледај ги Ñите промени
+  label_personalize_page: Прилагоди ја Ñтранава
+  label_comment: Коментар
+  label_comment_plural: Коментари
+  label_x_comments:
+    zero: нема коментари
+    one: 1 коментар
+    other: "%{count} коментари"
+  label_comment_add: Додади коментар
+  label_comment_added: Коментарот е додаден
+  label_comment_delete: Избриши коментари
+  label_query: Custom query
+  label_query_plural: Custom queries
+  label_query_new: New query
+  label_filter_add: Додади филтер
+  label_filter_plural: Филтри
+  label_equals: е
+  label_not_equals: не е
+  label_in_less_than: за помалку од
+  label_in_more_than: за повеќе од
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: во
+  label_today: денеÑ
+  label_all_time: цело време
+  label_yesterday: вчера
+  label_this_week: оваа недела
+  label_last_week: минатата недела
+  label_last_n_days: "поÑледните %{count} дена"
+  label_this_month: овој меÑец
+  label_last_month: минатиот меÑец
+  label_this_year: оваа година
+  label_date_range: Date range
+  label_less_than_ago: пред помалку од денови
+  label_more_than_ago: пред повеќе од денови
+  label_ago: пред денови
+  label_contains: Ñодржи
+  label_not_contains: не Ñодржи
+  label_day_plural: денови
+  label_repository: Складиште
+  label_repository_plural: Складишта
+  label_browse: ПрелиÑтувај
+  label_modification: "%{count} промени"
+  label_modification_plural: "%{count} промени"
+  label_branch: Гранка
+  label_tag: Tag
+  label_revision: Ревизија
+  label_revision_plural: Ревизии
+  label_revision_id: "Ревизија %{value}"
+  label_associated_revisions: Associated revisions
+  label_added: added
+  label_modified: modified
+  label_copied: copied
+  label_renamed: renamed
+  label_deleted: deleted
+  label_latest_revision: ПоÑледна ревизија
+  label_latest_revision_plural: ПоÑледни ревизии
+  label_view_revisions: Прегледај ги ревизиите
+  label_view_all_revisions: Прегледај ги Ñите ревизии
+  label_max_size: МакÑ. големина
+  label_sort_highest: ПремеÑти најгоре
+  label_sort_higher: ПремеÑти нагоре
+  label_sort_lower: ПремеÑти надоле
+  label_sort_lowest: ПремеÑти најдоле
+  label_roadmap: Roadmap
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "КаÑни %{value}"
+  label_roadmap_no_issues: Ðема задачи за оваа верзија
+  label_search: Барај
+  label_result_plural: Резултати
+  label_all_words: Сите зборови
+  label_wiki: Вики
+  label_wiki_edit: Вики уредување
+  label_wiki_edit_plural: Вики уредувања
+  label_wiki_page: Вики Ñтраница
+  label_wiki_page_plural: Вики Ñтраници
+  label_index_by_title: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ наÑлов
+  label_index_by_date: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ дата
+  label_current_version: Current version
+  label_preview: Preview
+  label_feed_plural: Feeds
+  label_changes_details: Детали за Ñите промени
+  label_issue_tracking: Следење на задачи
+  label_spent_time: Потрошено време
+  label_overall_spent_time: Вкупно потрошено време
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑа"
+  label_time_tracking: Следење на време
+  label_change_plural: Промени
+  label_statistics: СтатиÑтики
+  label_commits_per_month: Commits per month
+  label_commits_per_author: Commits per author
+  label_view_diff: View differences
+  label_diff_inline: inline
+  label_diff_side_by_side: side by side
+  label_options: Опции
+  label_copy_workflow_from: Copy workflow from
+  label_permissions_report: Permissions report
+  label_watched_issues: Watched issues
+  label_related_issues: Поврзани задачи
+  label_applied_status: Applied status
+  label_loading: Loading...
+  label_relation_new: Ðова релација
+  label_relation_delete: Избриши релација
+  label_relates_to: related to
+  label_duplicates: дупликати
+  label_duplicated_by: duplicated by
+  label_blocks: blocks
+  label_blocked_by: блокирано од
+  label_precedes: претходи
+  label_follows: Ñледи
+  label_end_to_start: крај до почеток
+  label_end_to_end: крај до крај
+  label_start_to_start: почеток до почеток
+  label_start_to_end: почеток до крај
+  label_stay_logged_in: ОÑтанете најавени
+  label_disabled: disabled
+  label_show_completed_versions: Show completed versions
+  label_me: јаÑ
+  label_board: Форум
+  label_board_new: Ðов форум
+  label_board_plural: Форуми
+  label_board_locked: Заклучен
+  label_board_sticky: Sticky
+  label_topic_plural: Теми
+  label_message_plural: Пораки
+  label_message_last: ПоÑледна порака
+  label_message_new: Ðова порака
+  label_message_posted: Поракате е додадена
+  label_reply_plural: Одговори
+  label_send_information: ИÑпрати ги информациите за профилот на кориÑникот
+  label_year: Година
+  label_month: МеÑец
+  label_week: Ðедела
+  label_date_from: Од
+  label_date_to: До
+  label_language_based: Според јазикот на кориÑникот
+  label_sort_by: "Подреди Ñпоред %{value}"
+  label_send_test_email: ИÑпрати теÑÑ‚ е-порака
+  label_feeds_access_key: RSS клуч за приÑтап
+  label_missing_feeds_access_key: ÐедоÑтика RSS клуч за приÑтап
+  label_feeds_access_key_created_on: "RSS клучот за приÑтап креиран пред %{value}"
+  label_module_plural: Модули
+  label_added_time_by: "Додадено од %{author} пред %{age}"
+  label_updated_time_by: "Ðжурирано од %{author} пред %{age}"
+  label_updated_time: "Ðжурирано пред %{value}"
+  label_jump_to_a_project: Префрли Ñе на проект...
+  label_file_plural: Датотеки
+  label_changeset_plural: Changesets
+  label_default_columns: ОÑновни колони
+  label_no_change_option: (Без промена)
+  label_bulk_edit_selected_issues: Групно уредување на задачи
+  label_theme: Тема
+  label_default: Default
+  label_search_titles_only: Пребарувај Ñамо наÑлови
+  label_user_mail_option_all: "За било кој наÑтан во Ñите мои проекти"
+  label_user_mail_option_selected: "За било кој наÑтан Ñамо во избраните проекти..."
+  label_user_mail_no_self_notified: "Ðе ме извеÑтувај за промените што Ñ˜Ð°Ñ Ð³Ð¸ правам"
+  label_registration_activation_by_email: активација на профил преку е-пошта
+  label_registration_manual_activation: мануелна активација на профил
+  label_registration_automatic_activation: автоматÑка активација на профил
+  label_display_per_page: "По Ñтрана: %{value}"
+  label_age: Age
+  label_change_properties: Change properties
+  label_general: Општо
+  label_more: Повеќе
+  label_scm: SCM
+  label_plugins: Додатоци
+  label_ldap_authentication: LDAP автентикација
+  label_downloads_abbr: Превземања
+  label_optional_description: ÐžÐ¿Ð¸Ñ (незадолжително)
+  label_add_another_file: Додади уште една датотека
+  label_preferences: Preferences
+  label_chronological_order: Во хронолошки ред
+  label_reverse_chronological_order: In reverse chronological order
+  label_planning: Планирање
+  label_incoming_emails: Дојдовни е-пораки
+  label_generate_key: Генерирај клуч
+  label_issue_watchers: Watchers
+  label_example: Пример
+  label_display: Прикажи
+  label_sort: Подреди
+  label_ascending: РаÑтечки
+  label_descending: Опаѓачки
+  label_date_from_to: Од %{start} до %{end}
+  label_wiki_content_added: Вики Ñтраница додадена
+  label_wiki_content_updated: Вики Ñтраница ажурирана
+  label_group: Група
+  label_group_plural: Групи
+  label_group_new: Ðова група
+  label_time_entry_plural: Потрошено време
+  label_version_sharing_none: Ðе Ñподелено
+  label_version_sharing_descendants: Со Ñите подпроекти
+  label_version_sharing_hierarchy: Со хиерархијата на проектот
+  label_version_sharing_tree: Со дрвото на проектот
+  label_version_sharing_system: Со Ñите проекти
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Извор
+  label_copy_target: ДеÑтинација
+  label_copy_same_as_target: ИÑто како деÑтинацијата
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API клуч за приÑтап
+  label_missing_api_access_key: ÐедоÑтига API клуч за приÑтап
+  label_api_access_key_created_on: "API клучот за приÑтап е креиран пред %{value}"
+  label_profile: Профил
+  label_subtask_plural: Подзадачи
+  label_project_copy_notifications: Праќај извеÑтувања по е-пошта при копирање на проект
+
+  button_login: Ðајави Ñе
+  button_submit: ИÑпрати
+  button_save: Зачувај
+  button_check_all: Штиклирај ги Ñите
+  button_uncheck_all: Одштиклирај ги Ñите
+  button_delete: Избриши
+  button_create: Креирај
+  button_create_and_continue: Креирај и продолжи
+  button_test: ТеÑÑ‚
+  button_edit: Уреди
+  button_add: Додади
+  button_change: Промени
+  button_apply: Примени
+  button_clear: Избриши
+  button_lock: Заклучи
+  button_unlock: Отклучи
+  button_download: Превземи
+  button_list: List
+  button_view: Прегледај
+  button_move: ПремеÑти
+  button_move_and_follow: ПремеÑти и Ñледи
+  button_back: Back
+  button_cancel: Откажи
+  button_activate: Ðктивирај
+  button_sort: Подреди
+  button_log_time: Бележи време
+  button_rollback: Rollback to this version
+  button_watch: Следи
+  button_unwatch: Ðе Ñледи
+  button_reply: Одговори
+  button_archive: Ðрхивирај
+  button_unarchive: Одархивирај
+  button_reset: Reset
+  button_rename: Преименувај
+  button_change_password: Промени лозинка
+  button_copy: Копирај
+  button_copy_and_follow: Копирај и Ñледи
+  button_annotate: Annotate
+  button_update: Ðжурирај
+  button_configure: Конфигурирај
+  button_quote: Цитирај
+  button_duplicate: Копирај
+  button_show: Show
+
+  status_active: активни
+  status_registered: региÑтрирани
+  status_locked: заклучени
+
+  version_status_open: отворени
+  version_status_locked: заклучени
+  version_status_closed: затворени
+
+  field_active: Active
+
+  text_select_mail_notifications: Изберете за кои наÑтани да Ñе праќаат извеÑтувања по е-пошта да Ñе праќаат.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 значи без ограничување
+  text_project_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете проектот и Ñите поврзани податоци?
+  text_subprojects_destroy_warning: "Ðеговите подпроекти: %{value} иÑто така ќе бидат избришани."
+  text_workflow_edit: Select a role and a tracker to edit the workflow
+  text_are_you_sure: Дали Ñте Ñигурни?
+  text_journal_changed: "%{label} променето од %{old} во %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} избришан (%{old})"
+  text_journal_added: "%{label} %{value} додаден"
+  text_tip_issue_begin_day: задачи што почнуваат овој ден
+  text_tip_issue_end_day: задачи што завршуваат овој ден
+  text_tip_issue_begin_end_day: задачи што почнуваат и завршуваат овој ден
+  text_project_identifier_info: 'Само мали букви (a-z), бројки и dashes Ñе дозволени<br />По зачувувањето, идентификаторот неможе да Ñе Ñмени.'
+  text_caracters_maximum: "%{count} знаци макÑимум."
+  text_caracters_minimum: "Мора да е најмалку %{count} знаци долго."
+  text_length_between: "Должина помеѓу %{min} и %{max} знаци."
+  text_tracker_no_workflow: No workflow defined for this tracker
+  text_unallowed_characters: Ðедозволени знаци
+  text_comma_separated: Дозволени Ñе повеќе вредноÑти (разделени Ñо запирка).
+  text_line_separated: Дозволени Ñе повеќе вредноÑти (една линија за Ñекоја вредноÑÑ‚).
+  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+  text_issue_added: "Задачата %{id} е пријавена од %{author}."
+  text_issue_updated: "Задачата %{id} е ажурирана од %{author}."
+  text_wiki_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете ова вики и целата негова Ñодржина?
+  text_issue_category_destroy_question: "Ðекои задачи (%{count}) Ñе доделени на оваа категорија. Што Ñакате да правите?"
+  text_issue_category_destroy_assignments: Remove category assignments
+  text_issue_category_reassign_to: Додели ги задачите на оваа категорија
+  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)."
+  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."
+  text_load_default_configuration: Load the default configuration
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_issues_destroy_confirmation: 'Дали Ñте Ñигурни дека Ñакате да ги избришете избраните задачи?'
+  text_select_project_modules: 'Изберете модули за овој проект:'
+  text_default_administrator_account_changed: Default administrator account changed
+  text_file_repository_writable: Во папката за прилози може да Ñе запишува
+  text_plugin_assets_writable: Во папката за додатоци може да Ñе запишува
+  text_rmagick_available: RMagick available (незадолжително)
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries: Delete reported hours
+  text_assign_time_entries_to_project: Додели ги пријавените чаÑови на проектот
+  text_reassign_time_entries: 'Reassign reported hours to this issue:'
+  text_user_wrote: "%{value} напиша:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_enumeration_category_reassign_to: 'Reassign them to this value:'
+  text_email_delivery_not_configured: "ДоÑтавата по е-пошта не е конфигурирана, и извеÑтувањата Ñе оневозможени.\nКонфигурирајте го Вашиот  SMTP Ñервер во config/email.yml и реÑтартирајте ја апликацијата."
+  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
+  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  text_zoom_in: Zoom in
+  text_zoom_out: Zoom out
+
+  default_role_manager: Менаџер
+  default_role_developer: Developer
+  default_role_reporter: Reporter
+  default_tracker_bug: Грешка
+  default_tracker_feature: ФункционалноÑÑ‚
+  default_tracker_support: Поддршка
+  default_issue_status_new: Ðова
+  default_issue_status_in_progress: Во прогреÑ
+  default_issue_status_resolved: Разрешена
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: Затворена
+  default_issue_status_rejected: Одбиена
+  default_doc_category_user: КориÑничка документација
+  default_doc_category_tech: Техничка документација
+  default_priority_low: Ðизок
+  default_priority_normal: Ðормален
+  default_priority_high: ВиÑок
+  default_priority_urgent: Итно
+  default_priority_immediate: Веднаш
+  default_activity_design: Дизајн
+  default_activity_development: Развој
+
+  enumeration_issue_priorities: Приоритети на задача
+  enumeration_doc_categories: Категории на документ
+  enumeration_activities: ÐктивноÑти (Ñледење на време)
+  enumeration_system_activity: СиÑтемÑка активноÑÑ‚
+
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/mn.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/mn.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,930 +1,939 @@
-mn:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%Y/%m/%d"
-      short: "%b %d"
-      long: "%Y, %B %d"
-      
-    day_names: [Даваа, МÑгмар, Лхагва, ПүрÑв, БааÑан, БÑмба, ÐÑм]
-    abbr_day_names: [Дав, МÑг, Лха, Пүр, БÑн, БÑм, ÐÑм]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, 1-Ñ€ Ñар, 2-Ñ€ Ñар, 3-Ñ€ Ñар, 4-Ñ€ Ñар, 5-Ñ€ Ñар, 6-Ñ€ Ñар, 7-Ñ€ Ñар, 8-Ñ€ Ñар, 9-Ñ€ Ñар, 10-Ñ€ Ñар, 11-Ñ€ Ñар, 12-Ñ€ Ñар]
-    abbr_month_names: [~, 1Ñар, 2Ñар, 3Ñар, 4Ñар, 5Ñар, 6Ñар, 7Ñар, 8Ñар, 9Ñар, 10Ñар, 11Ñар, 12Ñар]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%Y/%m/%d %I:%M %p"
-      time: "%I:%M %p"
-      short: "%d %b %H:%M"
-      long: "%Y, %B %d %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "Ñ…Ð°Ð³Ð°Ñ Ð¼Ð¸Ð½ÑƒÑ‚"
-      less_than_x_seconds:
-        one:   "Ñекунд орчим"
-        other: "{{count}} ÑекундÑÑÑ Ð±Ð°Ð³Ð° хугацаа"
-      x_seconds:
-        one:   "1 Ñекунд"
-        other: "{{count}} Ñекунд"
-      less_than_x_minutes:
-        one:   "Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
-        other: "{{count}} Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
-      x_minutes:
-        one:   "1 минут"
-        other: "{{count}} минут"
-      about_x_hours:
-        one:   "1 цаг орчим"
-        other: "ойролцоогоор {{count}} цаг"
-      x_days:
-        one:   "1 өдөр"
-        other: "{{count}} өдөр"
-      about_x_months:
-        one:   "1 Ñар орчим"
-        other: "ойролцоогоор {{count}} Ñар"
-      x_months:
-        one:   "1 Ñар"
-        other: "{{count}} Ñар"
-      about_x_years:
-        one:   "ойролцоогоор 1 жил"
-        other: "ойролцоогоор {{count}} жил"
-      over_x_years:
-        one:   "1 жилÑÑÑ Ð¸Ñ…"
-        other: "{{count}} жилÑÑÑ Ð¸Ñ…"
-      almost_x_years:
-        one:   "бараг 1 жил"
-        other: "бараг {{count}} жил"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Байт"
-            other: "Байт"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "баÑ"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "жагÑаалтад заагдаагүй байна"
-        exclusion: "нөөцлөгдÑөн"
-        invalid: "буруу"
-        confirmation: "баталгаажÑан өгөгдөлтÑй таарахгүй байна"
-        accepted: "хүлÑÑж авах Ñ‘Ñтой"
-        empty: "хооÑон байж болохгүй"
-        blank: "бланк байж болохгүй"
-        too_long: "дÑндүү урт байна (хамгийн ихдÑÑ {{count}} Ñ‚ÑмдÑгт)"
-        too_short: "дÑндүү богино байна (хамгийн багадаа {{count}} Ñ‚ÑмдÑгт)"
-        wrong_length: "буруу урттай байна (заавал {{count}} Ñ‚ÑмдÑгт)"
-        taken: "аль Ñ…ÑÐ´Ð¸Ð¹Ð½Ñ Ð°Ð²Ñан байна"
-        not_a_number: "тоо биш байна"
-        not_a_date: "зөв огноо биш байна"
-        greater_than: "{{count}} их байх Ñ‘Ñтой"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
-        odd: "заавал Ñондгой"
-        even: "заавал Ñ‚Ñгш"
-        greater_than_start_date: "must be greater than start date"
-        not_same_project: "нÑг ижил төÑөлд хамаарахгүй байна"
-        circular_dependency: "Ð­Ð½Ñ Ñ…Ð°Ñ€ÑŒÑ†Ð°Ð° нь гинжин(рекурÑив) харьцаа Ò¯Ò¯ÑгÑÑ… юм байна"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Сонгоно уу
-  
-  general_text_No: 'Үгүй'
-  general_text_Yes: 'Тийм'
-  general_text_no: 'үгүй'
-  general_text_yes: 'тийм'
-  general_lang_name: 'Mongolian (Монгол)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '7'
-  
-  notice_account_updated: ДанÑыг амжилттай өөрчиллөө.
-  notice_account_invalid_creditentials: Ð¥ÑÑ€ÑглÑгчийн нÑÑ€ ÑÑвÑл нууц үг буруу байна
-  notice_account_password_updated: Ðууц үгийг амжилттай өөрчиллөө.
-  notice_account_wrong_password: Буруу нууц үг
-  notice_account_register_done: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч амжилттай Ò¯Ò¯ÑгÑлÑÑ. ИдÑвхжүүлÑхийн тулд, бидний тань луу илгÑÑÑÑн мÑйл дотор байгаа Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дараарай.
-  notice_account_unknown_email: Үл мÑдÑгдÑÑ… Ñ…ÑÑ€ÑглÑгч.
-  notice_can_t_change_password: Ð­Ð½Ñ Ñрх гадаад нÑвтрÑлтÑд ашигладаг ÑƒÑ‡Ñ€Ð°Ð°Ñ Ð½ÑƒÑƒÑ† үгийг өөрчлөх боломжгүй.
-  notice_account_lost_email_sent: Бид таньд мÑйлÑÑÑ€ нууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ… зааврыг илгÑÑÑÑн байгаа.
-  notice_account_activated: Таны Ð´Ð°Ð½Ñ Ð¸Ð´ÑвхжлÑÑ. Одоо нÑвтÑрч орж болно.
-  notice_successful_create: Ðмжилттай Ò¯Ò¯ÑгÑлÑÑ.
-  notice_successful_update: Ðмжилттай өөрчиллөө.
-  notice_successful_delete: Ðмжилттай уÑтгалаа.
-  notice_successful_connection: Ðмжилттай холбогдлоо.
-  notice_file_not_found: Таны үзÑÑ… гÑÑÑн Ñ…ÑƒÑƒÐ´Ð°Ñ Ð±Ð°Ð¹Ñ…Ð³Ò¯Ð¹ юмуу уÑтгагдÑан байна.
-  notice_locking_conflict: Өгөгдлийг Ó©Ó©Ñ€ хүн өөрчилÑөн байна.
-  notice_not_authorized: Танд ÑÐ½Ñ Ñ…ÑƒÑƒÐ´Ñыг үзÑÑ… Ñрх байхгүй байна.
-  notice_email_sent: "{{value}} - руу мÑйл илгÑÑлÑÑ"
-  notice_email_error: "МÑйл илгÑÑÑ…Ñд алдаа гарлаа ({{value}})"
-  notice_feeds_access_key_reseted: Таны RSS хандалтын түлхүүрийг дахин ÑхлүүллÑÑ.
-  notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "{{total}} аÑуудал ÑонгогдÑÐ¾Ð½Ð¾Ð¾Ñ {{count}} аÑуудлыг нь хадгалахад алдаа гарлаа: {{ids}}."
-  notice_no_issue_selected: "Ямар ч аÑуудал Ñонгогдоогүй байна! ЗаÑварлах аÑуудлуудаа Ñонгоно уу."
-  notice_account_pending: "Таны данÑыг Ò¯Ò¯ÑгÑж дууÑлаа, админиÑтратор баталгаажуулах хүртÑл хүлÑÑÐ½Ñ Ò¯Ò¯."
-  notice_default_data_loaded: Стандарт тохиргоог амжилттай ачааллаа.
-  notice_unable_delete_version: Хувилбарыг уÑтгах боломжгүй.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-  
-  error_can_t_load_default_data: "Стандарт тохиргоог ачаалж чадÑангүй: {{value}}"
-  error_scm_not_found: "Repository дотор тухайн бичлÑг ÑÑвÑл хувилбарыг олÑонгүй."
-  error_scm_command_failed: "Repository-д хандахад алдаа гарлаа:  {{value}}"
-  error_scm_annotate: "БичлÑг байхгүй байна, ÑÑвÑл бичлÑгт тайлбар хавÑаргаж болохгүй."
-  error_issue_not_found_in_project: 'СонгоÑон аÑуудал ÑÐ½Ñ Ñ‚Ó©Ñөлд хамаардаггүй юм уу ÑÑвÑл ÑиÑтемд байхгүй байна.'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  
-  warning_attachments_not_saved: "{{count}} file(s) файлыг хадгалж чадÑангүй."
-  
-  mail_subject_lost_password: "Таны {{value}} нууц үг"
-  mail_body_lost_password: 'Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…Ð¸Ð¹Ð½ тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
-  mail_subject_register: "Таны {{value}} данÑыг идÑвхжүүлÑÑ…"
-  mail_body_register: 'ДанÑаа идÑвхжүүлÑхийн тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
-  mail_body_account_information_external: "Та өөрийнхөө {{value}} данÑыг ашиглаж холбогдож болно."
-  mail_body_account_information: Таны данÑны тухай мÑдÑÑлÑл
-  mail_subject_account_activation_request: "{{value}} данÑыг идÑвхжүүлÑÑ… Ñ…Ò¯ÑÑлт"
-  mail_body_account_activation_request: "Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч ({{value}}) бүртгүүлÑÑн байна. Таны баталгаажуулахыг хүлÑÑж байна:"
-  mail_subject_reminder: "Дараагийн өдрүүдÑд {{count}} аÑуудлыг шийдÑÑ… Ñ…ÑÑ€ÑгтÑй ({{days}})"
-  mail_body_reminder: "Танд оноогдÑон {{count}} аÑуудлуудыг дараагийн {{days}} өдрүүдÑд шийдÑÑ… Ñ…ÑÑ€ÑгтÑй:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-  
-  gui_validation_error: 1 алдаа
-  gui_validation_error_plural: "{{count}} алдаа"
-  
-  field_name: ÐÑÑ€
-  field_description: Тайлбар
-  field_summary: ДүгнÑлт
-  field_is_required: Зайлшгүй
-  field_firstname: Таны нÑÑ€
-  field_lastname: Овог
-  field_mail: ИмÑйл
-  field_filename: Файл
-  field_filesize: Ð¥ÑмжÑÑ
-  field_downloads: Татаж авах зүйлÑ
-  field_author: Зохиогч
-  field_created_on: Ò®Ò¯ÑÑÑн
-  field_updated_on: ӨөрчилÑөн
-  field_field_format: Формат
-  field_is_for_all: Бүх төÑлийн хувьд
-  field_possible_values: Боломжтой утгууд
-  field_regexp: Энгийн илÑрхийлÑл
-  field_min_length: Минимум урт
-  field_max_length: МакÑимум урт
-  field_value: Утга
-  field_category: Төрөл
-  field_title: Гарчиг
-  field_project: ТөÑөл
-  field_issue: ÐÑуудал
-  field_status: Төлөв
-  field_notes: ТÑмдÑглÑлүүд
-  field_is_closed: ÐÑуудал хаагдÑан
-  field_is_default: Стандарт утга
-  field_tracker: ЧиглÑл
-  field_subject: Гарчиг
-  field_due_date: ДууÑах огноо
-  field_assigned_to: ОноогдÑон
-  field_priority: ЗÑÑ€ÑглÑл
-  field_fixed_version: Хувилбар
-  field_user: Ð¥ÑÑ€ÑглÑгч
-  field_role: Хандалтын Ñрх
-  field_homepage: Ðүүр хуудаÑ
-  field_is_public: Олон нийтийн
-  field_parent: ЭцÑг төÑөл нь
-  field_is_in_roadmap: ÐÑуудлуудыг Ñвцын зураг дÑÑÑ€ харуулах
-  field_login: ÐÑвтрÑÑ… нÑÑ€
-  field_mail_notification: ИмÑйл мÑдÑгдлүүд
-  field_admin: ÐдминиÑтратор
-  field_last_login_on: Сүүлийн холбоо
-  field_language: Ð¥Ñл
-  field_effective_date: Огноо
-  field_password: Ðууц үг
-  field_new_password: Ð¨Ð½Ð½Ñ Ð½ÑƒÑƒÑ† үг
-  field_password_confirmation: Баталгаажуулах
-  field_version: Хувилбар
-  field_type: Төрөл
-  field_host: ХоÑÑ‚
-  field_port: Порт
-  field_account: ДанÑ
-  field_base_dn: ҮндÑÑн ДÐ
-  field_attr_login: ÐÑвтрÑÑ… аттрибут
-  field_attr_firstname: Таны нÑÑ€ аттрибут
-  field_attr_lastname: Овог аттрибут
-  field_attr_mail: ИмÑйл аттрибут
-  field_onthefly: Ð¥Ò¯ÑÑÑн үедÑÑ Ñ…ÑÑ€ÑглÑгч Ò¯Ò¯ÑгÑÑ…
-  field_done_ratio: %% ГүйцÑтгÑÑÑн
-  field_auth_source: ÐÑвтрÑÑ… арга
-  field_hide_mail: Миний имÑйл хаÑгийг нуу
-  field_comments: Тайлбар
-  field_url: URL ХаÑг
-  field_start_page: ТÑргүүн хуудаÑ
-  field_subproject: ДÑд төÑөл
-  field_hours: Цаг
-  field_activity: Үйл ажиллагаа
-  field_spent_on: Огноо
-  field_identifier: ТөÑлийн глобал нÑÑ€
-  field_is_filter: Шүүлтүүр болгон Ñ…ÑÑ€ÑглÑгддÑг
-  field_issue_to: Хамаатай аÑуудал
-  field_delay: Хоцролт
-  field_assignable: Ð­Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ ÑрхÑд аÑуудлуудыг оноож өгч болно
-  field_redirect_existing_links: Байгаа холбооÑуудыг дахин чиглүүлÑÑ…
-  field_estimated_hours: БарагцаалÑан цаг
-  field_column_names: Баганууд
-  field_time_zone: Цагын бүÑ
-  field_searchable: Хайж болох
-  field_default_value: Стандарт утга
-  field_comments_sorting: Тайлбаруудыг харуул
-  field_parent_title: ЭцÑг хуудаÑ
-  field_editable: ЗаÑварлагдана
-  field_watcher: Харна
-  field_identity_url: OpenID URL
-  field_content: Ðгуулга
-  field_group_by: Үр дүнгÑÑÑ€ бүлÑглÑÑ…
-  field_sharing: Sharing
-  
-  setting_app_title: Программын гарчиг
-  setting_app_subtitle: Программын дÑд гарчиг
-  setting_welcome_text: МÑндчилгÑÑ
-  setting_default_language: Стандарт Ñ…Ñл
-  setting_login_required: ÐÑвтрÑÑ… шаардлагатай
-  setting_self_registration: Өөрийгөө бүртгүүлÑÑ…
-  setting_attachment_max_size: ХавÑралт файлын дÑÑд Ñ…ÑмжÑÑ
-  setting_issues_export_limit: ÐÑуудал ÑкÑпортлох Ñ…Ñзгаар
-  setting_mail_from: Ямар имÑйл хаÑг Ò¯Ò¯ÑгÑÑ…
-  setting_bcc_recipients: BCC талбарын хаÑгууд (bcc)
-  setting_plain_text_mail: дан текÑÑ‚ мÑйл (HTML биш)
-  setting_host_name: ХоÑтын нÑÑ€ болон зам
-  setting_text_formatting: ТекÑÑ‚ Ñ…ÑлбÑржүүлÑлт
-  setting_wiki_compression: Вики хуудÑуудын түүх дÑÑÑ€ шахалт хийх
-  setting_feeds_limit: Фийд агуулгын Ñ…Ñзгаар
-  setting_default_projects_public: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñлүүд автоматаар олон нийтийнх байна
-  setting_autofetch_changesets: Комитуудыг автоматаар татаж авах
-  setting_sys_api_enabled: Репозитори менежментÑд зориулан WS-ийг идÑвхжүүлÑÑ…
-  setting_commit_ref_keywords: Хамааруулах түлхүүр үгÑ
-  setting_commit_fix_keywords: Зоолттой түлхүүр үгÑ
-  setting_autologin: Компьютер дÑÑÑ€ Ñанах
-  setting_date_format: Огнооны формат
-  setting_time_format: Цагийн формат
-  setting_cross_project_issue_relations: ТөÑөл хооронд аÑуудал хамааруулахыг зөвшөөрөх
-  setting_issue_list_default_columns: ÐÑуудлуудыг харуулах Ñтандарт баганууд
-  setting_repositories_encodings: Репозиторийн Ñнкодинг
-  setting_commit_logs_encoding: Коммит хийх үед харуулах текÑтүүдийн Ñнкодинг
-  setting_emails_footer: ИмÑйлүүдийн хөл Ñ…ÑÑÑг
-  setting_protocol: Протокол
-  setting_per_page_options: ÐÑг хуудÑанд байх обьектуудын тохиргоо
-  setting_user_format: Ð¥ÑÑ€ÑглÑгчдийг харуулах формат
-  setting_activity_days_default: ТөÑлийн үйл ажиллагаа Ñ…ÑÑÑгт үзүүлÑÑ… өдрийн тоо
-  setting_display_subprojects_issues: ДÑд төÑлүүдийн аÑуудлуудыг автоматаар гол төÑөл дÑÑÑ€ харуулах
-  setting_enabled_scm: SCM - ийг идÑвхжүүлÑÑ…
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: ИрÑÑн мÑйлүүдийн хувьд WS-ийг идÑвхжүүлÑÑ…
-  setting_mail_handler_api_key: API түлхүүр
-  setting_sequential_project_identifiers: ДÑÑ Ð´Ð°Ñ€Ð°Ð°Ð»Ñан төÑлийн глобал нÑÑ€ Ò¯Ò¯ÑгÑж байх
-  setting_gravatar_enabled: Gravatar дүрÑүүдийг Ñ…ÑÑ€ÑглÑгчдÑд Ñ…ÑÑ€ÑглÑж байх
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Ялгаатай мөрүүдийн тоо (дÑÑд тал нь)
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Allow OpenID login and registration
-  setting_password_min_length: Minimum password length
-  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-  
-  permission_add_project: Create project
-  permission_add_subprojects: Create subprojects
-  permission_edit_project: ТөÑлийг заÑварлах
-  permission_select_project_modules: ТөÑлийн модулуудийг Ñонгоно уу
-  permission_manage_members: СиÑтемийн Ñ…ÑÑ€ÑглÑгчид
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Хувилбарууд
-  permission_manage_categories: ÐÑуудлын ангиллууд
-  permission_view_issues: ÐÑуудлуудыг харах
-  permission_add_issues: ÐÑуудлууд нÑмÑÑ…
-  permission_edit_issues: ÐÑуудлуудыг заÑварлах
-  permission_manage_issue_relations: ÐÑуудлын хамаарлыг зохицуулах
-  permission_add_issue_notes: ТÑмдÑглÑл нÑмÑÑ…
-  permission_edit_issue_notes: ТÑмдÑглÑлүүд заÑварлах
-  permission_edit_own_issue_notes: Өөрийн үлдÑÑÑÑн Ñ‚ÑмдÑглÑлүүдийг заÑварлах
-  permission_move_issues: ÐÑуудлуудыг зөөх
-  permission_delete_issues: ÐÑуудлуудыг уÑтгах
-  permission_manage_public_queries: Олон нийтийн аÑуултууд
-  permission_save_queries: ÐÑуултуудыг хадгалах
-  permission_view_gantt: Гант диаграмыг үзÑÑ…
-  permission_view_calendar: Календарь үзÑÑ…
-  permission_view_issue_watchers: Ðжиглагчдын жагÑаалтыг харах
-  permission_add_issue_watchers: Ðжиглагчид нÑмÑÑ…
-  permission_delete_issue_watchers: Ðжиглагчдыг уÑтгах
-  permission_log_time: ЗарцуулÑан хугацааг лог хийх
-  permission_view_time_entries: ЗарцуулÑан хугацааг харах
-  permission_edit_time_entries: Хугацааны логуудыг заÑварлах
-  permission_edit_own_time_entries: Өөрийн хугацааны логуудыг заÑварлах
-  permission_manage_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
-  permission_comment_news: МÑдÑÑнд тайлбар үлдÑÑÑ…
-  permission_manage_documents: Бичиг баримтууд
-  permission_view_documents: Бичиг баримтуудыг харах
-  permission_manage_files: Файлууд
-  permission_view_files: Файлуудыг харах
-  permission_manage_wiki: Вики удирдах
-  permission_rename_wiki_pages: Вики хуудÑуудыг дахиж нÑрлÑÑ…
-  permission_delete_wiki_pages: Вики хуудÑуудыг уÑтгах
-  permission_view_wiki_pages: Вики үзÑÑ…
-  permission_view_wiki_edits: Вики түүх үзÑÑ…
-  permission_edit_wiki_pages: Вики хуудÑуудыг заÑварлах
-  permission_delete_wiki_pages_attachments: ХавÑралтуудыг уÑтгах
-  permission_protect_wiki_pages: Вики хуудÑуудыг хамгаалах
-  permission_manage_repository: Репозитори
-  permission_browse_repository: Репозиторийг үзÑÑ…
-  permission_view_changesets: Өөрчлөлтүүдийг харах
-  permission_commit_access: Коммит хандалт
-  permission_manage_boards: Самбарууд
-  permission_view_messages: ЗурваÑуудыг харах
-  permission_add_messages: Ð—ÑƒÑ€Ð²Ð°Ñ Ð¸Ð»Ð³ÑÑÑ…
-  permission_edit_messages: ЗурваÑуудыг заÑварлах
-  permission_edit_own_messages: Өөрийн зурваÑуудыг заÑварлах
-  permission_delete_messages: ЗурваÑуудыг уÑтгах
-  permission_delete_own_messages: Өөрийн зурваÑуудыг уÑтгах
-  permission_export_wiki_pages: Вики хуудÑуудыг ÑкÑпорт хийх
-  
-  project_module_issue_tracking: ÐÑуудал Ñ…Ñнах
-  project_module_time_tracking: Хугацаа Ñ…Ñнах
-  project_module_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
-  project_module_documents: Бичиг баримтууд
-  project_module_files: Файлууд
-  project_module_wiki: Вики
-  project_module_repository: Репозитори
-  project_module_boards: Самбарууд
-  
-  label_user: Ð¥ÑÑ€ÑглÑгч
-  label_user_plural: Ð¥ÑÑ€ÑглÑгчид
-  label_user_new: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч
-  label_user_anonymous: Хамаагүй Ñ…ÑÑ€ÑглÑгч
-  label_project: ТөÑөл
-  label_project_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñөл
-  label_project_plural: ТөÑлүүд
-  label_x_projects:
-    zero:  төÑөл байхгүй
-    one:   1 төÑөл
-    other: "{{count}} төÑлүүд"
-  label_project_all: Бүх ТөÑлүүд
-  label_project_latest: Сүүлийн үеийн төÑлүүд
-  label_issue: ÐÑуудал
-  label_issue_new: Ð¨Ð¸Ð½Ñ Ð°Ñуудал
-  label_issue_plural: ÐÑуудлууд
-  label_issue_view_all: Бүх аÑуудлуудыг харах
-  label_issues_by: "{{value}} - н аÑуудлууд"
-  label_issue_added: ÐÑуудал нÑмÑгдлÑÑ
-  label_issue_updated: ÐÑуудал өөрчлөгдлөө
-  label_document: Бичиг баримт
-  label_document_new: Ð¨Ð¸Ð½Ñ Ð±Ð¸Ñ‡Ð¸Ð³ баримт
-  label_document_plural: Бичиг баримтууд
-  label_document_added: Бичиг баримт нÑмÑгдлÑÑ
-  label_role: Хандалтын Ñрх
-  label_role_plural: Хандалтын Ñрхүүд
-  label_role_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ Ñрх
-  label_role_and_permissions: Хандалтын Ñрхүүд болон зөвшөөрлүүд
-  label_member: Гишүүн
-  label_member_new: Ð¨Ð¸Ð½Ñ Ð³Ð¸ÑˆÒ¯Ò¯Ð½
-  label_member_plural: Гишүүд
-  label_tracker: ЧиглÑл
-  label_tracker_plural: ЧиглÑлүүд
-  label_tracker_new: Ð¨Ð¸Ð½Ñ Ñ‡Ð¸Ð³Ð»Ñл
-  label_workflow: Ðжлын дараалал
-  label_issue_status: ÐÑуудлын төлөв
-  label_issue_status_plural: ÐÑуудлын төлвүүд
-  label_issue_status_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ð»Ó©Ð²
-  label_issue_category: ÐÑуудлын ангилал
-  label_issue_category_plural: ÐÑуудлын ангиллууд
-  label_issue_category_new: Ð¨Ð¸Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»
-  label_custom_field: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбар
-  label_custom_field_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбарууд
-  label_custom_field_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон талбар Ò¯Ò¯ÑгÑÑ…
-  label_enumerations: Ðнгиллууд
-  label_enumeration_new: Ð¨Ð¸Ð½Ñ ÑƒÑ‚Ð³Ð°
-  label_information: МÑдÑÑлÑл
-  label_information_plural: МÑдÑÑллүүд
-  label_please_login: ÐÑвтÑрч орно уу
-  label_register: БүртгүүлÑÑ…
-  label_login_with_open_id_option: or login with OpenID
-  label_password_lost: Ðууц үгÑÑ Ð°Ð»Ð´Ñан
-  label_home: Ðүүр
-  label_my_page: Миний хуудаÑ
-  label_my_account: Миний данÑ
-  label_my_projects: Миний төÑлүүд
-  label_administration: Ðдмин Ñ…ÑÑÑг
-  label_login: ÐÑвтрÑÑ…
-  label_logout: Гарах
-  label_help: ТуÑламж
-  label_reported_issues: МÑдÑгдÑÑн аÑуудлууд
-  label_assigned_to_me_issues: Ðадад оноогдÑон аÑуудлууд
-  label_last_login: Сүүлийн холболт
-  label_registered_on: БүртгүүлÑÑн огноо
-  label_activity: Үйл ажиллагаа
-  label_overall_activity: Ерөнхий үйл ажиллагаа
-  label_user_activity: "{{value}}-ийн үйл ажиллагаа"
-  label_new: ШинÑ
-  label_logged_as: ХолбогдÑон нÑÑ€
-  label_environment: Орчин
-  label_authentication: ÐÑвтрÑÑ…
-  label_auth_source: ÐÑвтрÑÑ… арга
-  label_auth_source_new: Ð¨Ð¸Ð½Ñ Ð½ÑвтрÑÑ… арга
-  label_auth_source_plural: ÐÑвтрÑÑ… аргууд
-  label_subproject_plural: ДÑд төÑлүүд
-  label_subproject_new: Ð¨Ð¸Ð½Ñ Ð´Ñд төÑөл
-  label_and_its_subprojects: "{{value}} болон холбогдох дÑд төÑлүүд"
-  label_min_max_length: ДÑÑд - Доод урт
-  label_list: ЖагÑаалт
-  label_date: Огноо
-  label_integer: БүхÑл тоо
-  label_float: Бутархай тоо
-  label_boolean: ҮнÑн худал утга
-  label_string: ТекÑÑ‚
-  label_text: Урт текÑÑ‚
-  label_attribute: Ðттрибут
-  label_attribute_plural: Ðттрибутууд
-  label_download: "{{count}} Татаж авÑан зүйл"
-  label_download_plural: "{{count}} Татаж авÑан зүйлÑ"
-  label_no_data: ҮзүүлÑÑ… өгөгдөл байхгүй байна
-  label_change_status: Төлвийг өөрчлөх
-  label_history: Түүх
-  label_attachment: Файл
-  label_attachment_new: Ð¨Ð¸Ð½Ñ Ñ„Ð°Ð¹Ð»
-  label_attachment_delete: Файл уÑтгах
-  label_attachment_plural: Файлууд
-  label_file_added: Файл нÑмÑгдлÑÑ
-  label_report: Тайлан
-  label_report_plural: Тайлангууд 
-  label_news: МÑдÑÑ
-  label_news_new: Ð¨Ð¸Ð½Ñ Ð¼ÑдÑÑ
-  label_news_plural: МÑдÑÑ
-  label_news_latest: Сүүлийн үеийн мÑдÑÑнүүд
-  label_news_view_all: Бүх мÑдÑÑг харах
-  label_news_added: МÑдÑÑ Ð½ÑмÑгдлÑÑ
-  label_change_log: Өөрчлөлтийн лог
-  label_settings: Тохиргоо
-  label_overview: ЭхлÑл
-  label_version: Хувилбар
-  label_version_new: Ð¨Ð¸Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€
-  label_version_plural: Хувилбарууд
-  label_close_versions: ГүйцÑÑ‚ хувилбаруудыг хаалаа
-  label_confirmation: Баталгаажуулах
-  label_export_to: 'Өөр авч болох формат:'
-  label_read: Унших...
-  label_public_projects: Олон нийтийн төÑлүүд
-  label_open_issues: нÑÑлттÑй
-  label_open_issues_plural: нÑÑлттÑй
-  label_closed_issues: хаалттай
-  label_closed_issues_plural: хаалттай
-  label_x_open_issues_abbr_on_total:
-    zero:  0 нÑÑлттÑй / {{total}}
-    one:   1 нÑÑлттÑй / {{total}}
-    other: "{{count}} нÑÑлттÑй / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 нÑÑлттÑй
-    one:   1 нÑÑлттÑй
-    other: "{{count}} нÑÑлттÑй"
-  label_x_closed_issues_abbr:
-    zero:  0 хаалттай
-    one:   1 хаалттай
-    other: "{{count}} хаалттай"
-  label_total: Ðийт
-  label_permissions: Зөвшөөрлүүд
-  label_current_status: Одоогийн төлөв
-  label_new_statuses_allowed: ШинÑÑÑ€ олгож болох төлвүүд
-  label_all: бүгд
-  label_none: хооÑон
-  label_nobody: Ñ…Ñн ч биш
-  label_next: Дараагийн
-  label_previous: Өмнөх
-  label_used_by: Ð¥ÑÑ€ÑглÑгддÑг
-  label_details: ДÑлгÑÑ€Ñнгүй
-  label_add_note: ТÑмдÑглÑл нÑмÑÑ…
-  label_per_page: ÐÑг хуудÑанд
-  label_calendar: Календарь
-  label_months_from: Саруудыг хаанааÑ
-  label_gantt: Гант диаграм
-  label_internal: Дотоод
-  label_last_changes: "Ñүүлийн {{count}} өөрчлөлтүүд"
-  label_change_view_all: Бүх өөрчлөлтүүдийг харах
-  label_personalize_page: Ð­Ð½Ñ Ñ…ÑƒÑƒÐ´Ñыг өөрт зориулан өөрчлөх
-  label_comment: Тайлбар
-  label_comment_plural: Тайлбарууд
-  label_x_comments:
-    zero: ÑÑтгÑгдÑл байхгүй
-    one: 1 ÑÑтгÑгдÑлтÑй
-    other: "{{count}} ÑÑтгÑгдÑлтÑй"
-  label_comment_add: Тайлбар нÑмÑÑ…
-  label_comment_added: Тайлбар нÑмÑгдлÑÑ
-  label_comment_delete: Тайлбарууд уÑтгах
-  label_query: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт
-  label_query_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуултууд
-  label_query_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт Ò¯Ò¯ÑгÑÑ…
-  label_filter_add: Шүүлтүүр нÑмÑÑ…
-  label_filter_plural: Шүүлтүүрүүд
-  label_equals: бол
-  label_not_equals: биш
-  label_in_less_than: Ð°Ð°Ñ Ð±Ð°Ð³Ð°
-  label_in_more_than: Ð°Ð°Ñ Ð¸Ñ…
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: дотор
-  label_today: өнөөдөр
-  label_all_time: бүх хугацаа
-  label_yesterday: өчигдөр
-  label_this_week: ÑÐ½Ñ Ð´Ð¾Ð»Ð¾Ð¾ хоног
-  label_last_week: өнгөрÑөн долоо хоног
-  label_last_n_days: "Ñүүлийн {{count}} өдрүүд"
-  label_this_month: ÑÐ½Ñ Ñар
-  label_last_month: Ñүүлийн Ñар
-  label_this_year: ÑÐ½Ñ Ð¶Ð¸Ð»
-  label_date_range: Ð¥Ñзгаар огноо
-  label_less_than_ago: бага өдрийн дотор
-  label_more_than_ago: их өдрийн дотор
-  label_ago: өдрийн өмнө
-  label_contains: агуулж байгаа
-  label_not_contains: агуулаагүй
-  label_day_plural: өдрүүд
-  label_repository: Репозитори
-  label_repository_plural: Репозиторууд
-  label_browse: ҮзÑÑ…
-  label_modification: "{{count}} өөрчлөлт"
-  label_modification_plural: "{{count}} өөрчлөлтүүд"
-  label_branch: Салбар
-  label_tag: Шошго 
-  label_revision: Хувилбар
-  label_revision_plural: Хувилбарууд
-  label_revision_id: "{{value}} Хувилбар"
-  label_associated_revisions: Хамааралтай хувилбарууд
-  label_added: нÑмÑгдÑÑн
-  label_modified: өөрчлөгдÑөн
-  label_copied: хуулÑан
-  label_renamed: нÑрийг нь өөрчилÑөн
-  label_deleted: уÑтгаÑан
-  label_latest_revision: Сүүлийн үеийн хувилбар
-  label_latest_revision_plural: Сүүлийн үеийн хувилбарууд
-  label_view_revisions: Хувилбаруудыг харах
-  label_view_all_revisions: Бүх хувилбаруудыг харах
-  label_max_size: Maximum size
-  label_sort_highest: Хамгийн дÑÑÑ€
-  label_sort_higher: ДÑÑш нь
-  label_sort_lower: Доош нь
-  label_sort_lowest: Хамгийн доор
-  label_roadmap: Хөтөч
-  label_roadmap_due_in: "{{value}} дотор дууÑгах"
-  label_roadmap_overdue: "{{value}} оройтÑон"
-  label_roadmap_no_issues: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€Ñ‚ аÑуудал байхгүй байна
-  label_search: Хайх
-  label_result_plural: Үр дүн
-  label_all_words: Бүх үгÑ
-  label_wiki: Вики
-  label_wiki_edit: Вики заÑвар
-  label_wiki_edit_plural: Вики заÑварууд
-  label_wiki_page: Вики хуудаÑ
-  label_wiki_page_plural: Вики хуудаÑ
-  label_index_by_title: Гарчгаар ÑÑ€ÑмбÑлÑÑ…
-  label_index_by_date: Огноогоор ÑÑ€ÑмбÑлÑÑ…
-  label_current_version: Одоогийн хувилбар
-  label_preview: Ямар харагдахыг шалгах
-  label_feed_plural: Feeds
-  label_changes_details: Бүх өөрчлөлтүүдийн дÑлгÑÑ€Ñнгүй
-  label_issue_tracking: ÐÑуудал Ñ…Ñнах
-  label_spent_time: ЗарцуулÑан хугацаа
-  label_f_hour: "{{value}} цаг"
-  label_f_hour_plural: "{{value}} цаг"
-  label_time_tracking: Хугацааг Ñ…Ñнах
-  label_change_plural: Өөрчлөлтүүд
-  label_statistics: СтатиÑтик
-  label_commits_per_month: Сард хийÑÑн коммитын тоо
-  label_commits_per_author: Зохиогч бүрийн хувьд коммитын тоо
-  label_view_diff: Ялгаануудыг харах
-  label_diff_inline: дотор нь
-  label_diff_side_by_side: зÑÑ€Ñгцүүлж
-  label_options: Тохиргоо
-  label_copy_workflow_from: Ðжлын дарааллыг хуулах
-  label_permissions_report: Зөвшөөрлүүдийн таблиц
-  label_watched_issues: Ðжиглагдаж байгаа аÑуудлууд
-  label_related_issues: Хамааралтай аÑуудлууд
-  label_applied_status: ОлгоÑон төлөв
-  label_loading: Ðчаалж байна...
-  label_relation_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»
-  label_relation_delete: Хамаарлыг уÑтгах
-  label_relates_to: Ñнгийн хамааралтай
-  label_duplicates: Ñ…Ð¾Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»Ñ‚Ð°Ð¹
-  label_duplicated_by: давхардуулÑан ÑзÑн
-  label_blocks: шаардах хамааралтай
-  label_blocked_by: блоколÑон ÑзÑн
-  label_precedes: урьдчилах хамааралтай
-  label_follows: дагаж
-  label_end_to_start: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ урагшаа
-  label_end_to_end: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ хойшоо
-  label_start_to_start: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ урагаа
-  label_start_to_end: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ хойшоо
-  label_stay_logged_in: Ð­Ð½Ñ ÐºÐ¾Ð¼ÑŒÑŽÑ‚ÐµÑ€ дÑÑÑ€ Ñанах
-  label_disabled: идÑвхгүй болÑон
-  label_show_completed_versions: ГүйцÑд хувилбаруудыг харуулах
-  label_me: би
-  label_board: Форум
-  label_board_new: Ð¨Ð¸Ð½Ñ Ñ„Ð¾Ñ€ÑƒÐ¼
-  label_board_plural: Форумууд
-  label_board_locked: ТүгжÑÑÑ‚Ñй
-  label_board_sticky: Sticky
-  label_topic_plural: СÑдвүүд
-  label_message_plural: ЗурваÑууд
-  label_message_last: Сүүлийн зурваÑ
-  label_message_new: Ð¨Ð¸Ð½Ñ Ð·ÑƒÑ€Ð²Ð°Ñ
-  label_message_posted: Ð—ÑƒÑ€Ð²Ð°Ñ Ð½ÑмÑгдлÑÑ
-  label_reply_plural: Хариултууд
-  label_send_information: ДанÑны мÑдÑÑллийг Ñ…ÑÑ€ÑглÑгчид илгÑÑÑ…
-  label_year: Жил
-  label_month: Сар
-  label_week: Долоо хоног
-  label_date_from: Ð¥ÑзÑÑнÑÑÑ
-  label_date_to: Ð¥Ñдий хүртÑл
-  label_language_based: Ð¥ÑÑ€ÑглÑгчийн Ñ…ÑÐ»Ð½Ð°Ñ ÑˆÐ°Ð»Ñ‚Ð³Ð°Ð°Ð»Ð°Ð½
-  label_sort_by: "{{value}} талбараар нь ÑÑ€ÑмбÑлÑÑ…"
-  label_send_test_email: Турших мÑйл илгÑÑÑ…
-  label_feeds_access_key: RSS хандах түлхүүр
-  label_missing_feeds_access_key: RSS хандах түлхүүр алга
-  label_feeds_access_key_created_on: "RSS хандалтын түлхүүр {{value}}-ийн өмнө Ò¯Ò¯ÑÑÑн"
-  label_module_plural: Модулууд
-  label_added_time_by: "{{author}} {{age}}-ийн өмнө нÑмÑÑн"
-  label_updated_time_by: "{{author}} {{age}}-ийн өмнө өөрчилÑөн"
-  label_updated_time: "{{value}} -ийн өмнө өөрчлөгдÑөн"
-  label_jump_to_a_project: ТөÑөл Ñ€Ò¯Ò¯ очих...
-  label_file_plural: Файлууд
-  label_changeset_plural: Өөрчлөлтүүд
-  label_default_columns: Стандарт баганууд
-  label_no_change_option: (Өөрчлөлт байхгүй)
-  label_bulk_edit_selected_issues: СонгогдÑон аÑуудлуудыг бөөнөөр заÑварлах
-  label_theme: СиÑтемийн Дизайн
-  label_default: Стандарт
-  label_search_titles_only: Зөвхөн гарчиг хайх
-  label_user_mail_option_all: "Миний бүх төÑөл дÑÑрх бүх үзÑгдлүүдийн хувьд"
-  label_user_mail_option_selected: "СонгогдÑон төÑлүүдийн хувьд бүх үзÑгдÑл дÑÑÑ€..."
-  label_user_mail_no_self_notified: "Миний өөрийн хийÑÑн өөрчлөлтүүдийн тухай надад мÑдÑгдÑÑ… Ñ…ÑÑ€Ñггүй"
-  label_registration_activation_by_email: данÑыг имÑйлÑÑÑ€ идÑвхжүүлÑÑ…
-  label_registration_manual_activation: данÑыг гараар идÑвхжүүлÑÑ…
-  label_registration_automatic_activation: данÑыг автоматаар идÑвхжүүлÑÑ…
-  label_display_per_page: 'ÐÑг хуудÑанд: {{value}}'
-  label_age: ÐаÑ
-  label_change_properties: Тохиргоог өөрчлөх
-  label_general: Ерөнхий
-  label_more: Цааш нь
-  label_scm: SCM
-  label_plugins: Модулууд
-  label_ldap_authentication: LDAP нÑвтрÑÑ… горим
-  label_downloads_abbr: D/L
-  label_optional_description: Дурын тайлбар
-  label_add_another_file: Дахин файл нÑмÑÑ…
-  label_preferences: Тохиргоо
-  label_chronological_order: Цагаан толгойн Ò¯Ñгийн дарааллаар
-  label_reverse_chronological_order: Урвуу цагаан толгойн Ò¯Ñгийн дарааллаар
-  label_planning: Төлөвлөлт
-  label_incoming_emails: ИрÑÑн мÑйлүүд
-  label_generate_key: Түлхүүр Ò¯Ò¯ÑгÑÑ…
-  label_issue_watchers: Ðжиглагчид
-  label_example: ЖишÑÑ
-  label_display: Display
-  label_sort: Sort
-  label_ascending: Ascending
-  label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
-  label_wiki_content_added: Wiki page added
-  label_wiki_content_updated: Wiki page updated
-  label_group: Group
-  label_group_plural: Groups
-  label_group_new: New group
-  label_time_entry_plural: Spent time
-  label_version_sharing_none: Not shared
-  label_version_sharing_descendants: With subprojects
-  label_version_sharing_hierarchy: With project hierarchy
-  label_version_sharing_tree: With project tree
-  label_version_sharing_system: With all projects
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Source
-  label_copy_target: Target
-  label_copy_same_as_target: Same as target
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API access key
-  label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
-  
-  button_login: ÐÑвтрÑÑ…
-  button_submit: ИлгÑÑÑ…
-  button_save: Хадгалах
-  button_check_all: Бүгдийг Ñонго
-  button_uncheck_all: Бүгдийг үл Ñонго
-  button_delete: УÑтгах
-  button_create: Ò®Ò¯ÑгÑÑ…
-  button_create_and_continue: Ò®Ò¯ÑгÑÑд цааш үргÑлжлүүлÑÑ…
-  button_test: Турших
-  button_edit: ЗаÑварлах
-  button_add: ÐÑмÑÑ…
-  button_change: Өөрчлөх
-  button_apply: Өөрчлөлтийг хадгалах
-  button_clear: ЦÑвÑрлÑÑ…
-  button_lock: Түгжих
-  button_unlock: ТүгжÑÑг тайлах
-  button_download: Татах
-  button_list: ЖагÑаалт
-  button_view: Харах
-  button_move: Зөөх
-  button_move_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
-  button_back: Буцах
-  button_cancel: Болих
-  button_activate: ИдÑвхжүүлÑÑ…
-  button_sort: ЭрÑмбÑлÑÑ…
-  button_log_time: Лог хийÑÑн хугацаа
-  button_rollback: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€ руу буцах
-  button_watch: Ðжиглах
-  button_unwatch: Ðжиглахаа болих
-  button_reply: Хариулах
-  button_archive: Ðрхивлах
-  button_unarchive: Ðрхивыг задлах
-  button_reset: Ðнхны утгууд
-  button_rename: ÐÑрийг нь Ñолих
-  button_change_password: Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…
-  button_copy: Хуулах
-  button_copy_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
-  button_annotate: Тайлбар хавÑаргах
-  button_update: ШинÑчлÑÑ…
-  button_configure: Тохируулах
-  button_quote: ИшлÑл
-  button_duplicate: Хуулбар
-  button_show: ҮзÑÑ…
-  
-  status_active: идÑвхтÑй
-  status_registered: бүртгүүлÑÑн
-  status_locked: түгжÑÑÑ‚Ñй
-  
-  version_status_open: нÑÑлттÑй
-  version_status_locked: түгжÑÑÑ‚Ñй
-  version_status_closed: хаалттай
-
-  field_active: идÑвхтÑй
-  
-  text_select_mail_notifications: Ямар үед имÑйлÑÑÑ€ мÑдÑгдÑл илгÑÑхийг Ñонгоно уу.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 гÑвÑл Ñмар ч Ñ…Ñзгааргүй гÑÑÑн үг
-  text_project_destroy_confirmation: Та ÑÐ½Ñ Ñ‚Ó©Ñөл болоод буÑад мÑдÑÑллийг нь үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
-  text_subprojects_destroy_warning: "Уг төÑлийн дÑд төÑлүүд : {{value}} нь Ð±Ð°Ñ ÑƒÑтгагдах болно."
-  text_workflow_edit: Ðжлын дарааллыг өөрчлөхийн тулд хандалтын Ñрх болон аÑуудлын чиглÑлийг Ñонгоно уу
-  text_are_you_sure: Та итгÑлтÑй байна уу ?
-  text_journal_changed: "{{label}} {{old}} байÑан нь {{new}} болов"
-  text_journal_set_to: "{{label}} {{value}} болгож өөрчиллөө"
-  text_journal_deleted: "{{label}} уÑÑ‚Ñан ({{old}})"
-  text_journal_added: "{{label}} {{value}} нÑмÑгдÑÑн"
-  text_tip_issue_begin_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑ… ажил
-  text_tip_issue_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ дууÑах ажил
-  text_tip_issue_begin_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑд мөн дууÑч байгаа ажил
-  text_project_identifier_info: 'Зөвхөн жижиг Ò¯Ñгүүд болон (a-z), тоо and дундуур Ð·ÑƒÑ€Ð°Ð°Ñ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð¶ болно.<br />ÐÑгÑнт хадгалÑан хойно, төÑлийн глобал нÑрийг өөрлчөх боломжгүй.'
-  text_caracters_maximum: "дÑÑд тал нь {{count}} Ò¯ÑÑг."
-  text_caracters_minimum: "Хамгийн багадаа Ñдаж {{count}} Ñ‚ÑмдÑгт байх."
-  text_length_between: "Урт нь багадаа {{min}}, ихдÑÑ {{max}} Ñ‚ÑмдÑгт."
-  text_tracker_no_workflow: ЭнÑÑ…Ò¯Ò¯ аÑуудлын чиглÑлд Ñмар ч ажлын дараалал тодорхойлогдоогүй байна
-  text_unallowed_characters: Ð¥ÑÑ€ÑглÑж болохгүй Ñ‚ÑмдÑгтүүд
-  text_comma_separated: ТаÑлалаар зааглан олон утга оруулж болно.
-  text_line_separated: Multiple values allowed (one line for each value).
-  text_issues_ref_in_commit_messages: Коммитийн зурваÑуудад хамааруулÑан болон байнгын аÑуудлууд
-  text_issue_added: "ÐÑуудал {{id}} - ийг Ñ…ÑÑ€ÑглÑгч {{author}} мÑдÑгдÑÑн байна."
-  text_issue_updated: "ÐÑуудал {{id}} - ийг Ñ…ÑÑ€ÑглÑгч {{author}} өөрчилÑөн байна."
-  text_wiki_destroy_confirmation: Та ÑÐ½Ñ Ð²Ð¸ÐºÐ¸ болон холбогдох бүх мÑдÑÑллийг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
-  text_issue_category_destroy_question: "Ð­Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ зарим аÑуудлууд ({{count}})  орÑон байна. Та Ñах Ð²Ñ ?"
-  text_issue_category_destroy_assignments: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð»Ð°Ð°Ñ Ð°Ð²Ð°Ñ…
-  text_issue_category_reassign_to: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ дахин оноох
-  text_user_mail_option: "Сонгогдоогүй төÑлүүдийн хувьд, та зөвхөн өөрийнхөө ажиглаж байгаа Ð·Ò¯Ð¹Ð»Ñ ÑŽÐ¼ÑƒÑƒ танд хамаатай зүйлÑийн талаар мÑдÑгдÑл авах болно (Таны оруулÑан аÑуудал, ÑÑвÑл танд онооÑон гÑÑ… мÑÑ‚)."
-  text_no_configuration_data: "Хандалтын Ñрхүүд, чиглÑлүүд, аÑуудлын төлвүүд болон ажлын дарааллын тухай мÑдÑÑллийг хараахан оруулаагүй байна.\nТа Ñтандарт өгөгдлүүдийг даруйхан оруулахыг зөвлөж байна, оруулÑан хойно та заÑварлаж болно."
-  text_load_default_configuration: Стандарт өгөгдлийг ачаалах
-  text_status_changed_by_changeset: "{{value}} өөрчлөлтөд хийгдÑÑн."
-  text_issues_destroy_confirmation: 'Та ÑонгогдÑон аÑуудлуудыг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?'
-  text_select_project_modules:  'Ð­Ð½Ñ Ñ‚Ó©Ñлийн хувьд идÑвхжүүлÑÑ… модулуудаа Ñонгоно уу:'
-  text_default_administrator_account_changed: Стандарт админиÑтраторын бүртгÑл өөрчлөгдлөө
-  text_file_repository_writable: ХавÑралт файл хадгалах Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
-  text_plugin_assets_writable: Плагин модулийн аÑÑет Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
-  text_rmagick_available: RMagick ÑуулгагдÑан (заавал биш)
-  text_destroy_time_entries_question: "Таны уÑтгах гÑж байгаа аÑуудлууд дÑÑÑ€ нийт {{hours}} цаг зарцуулÑан юм байна, та Ñах Ð²Ñ ?"
-  text_destroy_time_entries: МÑдÑгдÑÑн цагуудыг уÑтгах
-  text_assign_time_entries_to_project: МÑдÑгдÑÑн аÑуудлуудыг төÑөлд оноох
-  text_reassign_time_entries: 'МÑдÑгдÑÑн аÑуудлуудыг ÑÐ½Ñ Ð°Ñуудалд дахин оноо:'
-  text_user_wrote: "{{value}} бичихдÑÑ:"
-  text_enumeration_destroy_question: "Ð­Ð½Ñ ÑƒÑ‚Ð³Ð°Ð´ {{count}} обьект оноогдÑон байна."
-  text_enumeration_category_reassign_to: 'ТÑдгÑÑрийг ÑÐ½Ñ ÑƒÑ‚Ð³Ð°Ð´ дахин оноо:'
-  text_email_delivery_not_configured: "ИмÑйлийн тохиргоог хараахан тохируулаагүй байна, тиймÑÑÑ Ð¸Ð¼Ñйл мÑдÑгдÑл Ñвуулах боломжгүй байна.\nSMTP ÑервÑÑ€ÑÑ config/email.yml файл дотор тохируулаад төÑлийн менежерÑÑ Ð´Ð°Ñ…Ð¸Ð°Ð´ ÑхлүүлÑÑÑ€Ñй."
-  text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх Ñ…ÑÑ€ÑглÑгчийн нÑрүүдÑд харгалзÑан ТөÑлийн Менежер ÑиÑтемд бүртгÑлтÑй Ñ…ÑÑ€ÑглÑгчдийг Сонгох юмуу шинÑÑ‡Ð¸Ð»Ð½Ñ Ò¯Ò¯.\nТөÑлийн менежер болон репозиторид байгаа ижилхÑн нÑÑ€ юмуу имÑйлтÑй Ñ…ÑÑ€ÑглÑгчид харилцан харгалзна."
-  text_diff_truncated: '... Файлын Ñлгаврын Ñ…ÑмжÑÑ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…Ñд дÑндүү урт байгаа ÑƒÑ‡Ñ€Ð°Ð°Ñ Ñ‚Ó©Ð³ÑÐ³Ó©Ð»Ó©Ó©Ñ Ð½ÑŒ хаÑч үзүүлÑв.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  
-  default_role_manager: Менежер
-  default_role_developer: ХөгжүүлÑгч
-  default_role_reporter: МÑдÑгдÑгч
-  default_tracker_bug: Ðлдаа
-  default_tracker_feature: Онцлог
-  default_tracker_support: ТуÑламж
-  default_issue_status_new: ШинÑ
-  default_issue_status_in_progress: Ðхицтай
-  default_issue_status_assigned: ОноогдÑон
-  default_issue_status_resolved: ШийдвÑрлÑгдÑÑн
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: ХаагдÑан
-  default_issue_status_rejected: ХүлÑÑж аваагүй
-  default_doc_category_user: Ð¥ÑÑ€ÑглÑгчийн бичиг баримт
-  default_doc_category_tech: Техникийн бичиг баримт
-  default_priority_low: Бага
-  default_priority_normal: Ð¥Ñвийн
-  default_priority_high: Өндөр
-  default_priority_urgent: ÐÑн Ñаралтай
-  default_priority_immediate: ÐÑн даруй
-  default_activity_design: Дизайн
-  default_activity_development: ХөгжүүлÑлт
-  
-  enumeration_issue_priorities: ÐÑуудлын зÑÑ€ÑглÑлүүд
-  enumeration_doc_categories: Бичиг баримтын ангиллууд
-  enumeration_activities: Үйл ажиллагаанууд (хугацааг Ñ…Ñнах)
-  enumeration_system_activity: СиÑтемийн үйл ажиллагаа
-
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  field_parent_issue: Parent task
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  label_project_copy_notifications: Send email notifications during the project copy
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+mn:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y/%m/%d"
+      short: "%b %d"
+      long: "%Y, %B %d"
+      
+    day_names: [Даваа, МÑгмар, Лхагва, ПүрÑв, БааÑан, БÑмба, ÐÑм]
+    abbr_day_names: [Дав, МÑг, Лха, Пүр, БÑн, БÑм, ÐÑм]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, 1-Ñ€ Ñар, 2-Ñ€ Ñар, 3-Ñ€ Ñар, 4-Ñ€ Ñар, 5-Ñ€ Ñар, 6-Ñ€ Ñар, 7-Ñ€ Ñар, 8-Ñ€ Ñар, 9-Ñ€ Ñар, 10-Ñ€ Ñар, 11-Ñ€ Ñар, 12-Ñ€ Ñар]
+    abbr_month_names: [~, 1Ñар, 2Ñар, 3Ñар, 4Ñар, 5Ñар, 6Ñар, 7Ñар, 8Ñар, 9Ñар, 10Ñар, 11Ñар, 12Ñар]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %I:%M %p"
+      time: "%I:%M %p"
+      short: "%d %b %H:%M"
+      long: "%Y, %B %d %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "Ñ…Ð°Ð³Ð°Ñ Ð¼Ð¸Ð½ÑƒÑ‚"
+      less_than_x_seconds:
+        one:   "Ñекунд орчим"
+        other: "%{count} ÑекундÑÑÑ Ð±Ð°Ð³Ð° хугацаа"
+      x_seconds:
+        one:   "1 Ñекунд"
+        other: "%{count} Ñекунд"
+      less_than_x_minutes:
+        one:   "Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
+        other: "%{count} Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
+      x_minutes:
+        one:   "1 минут"
+        other: "%{count} минут"
+      about_x_hours:
+        one:   "1 цаг орчим"
+        other: "ойролцоогоор %{count} цаг"
+      x_days:
+        one:   "1 өдөр"
+        other: "%{count} өдөр"
+      about_x_months:
+        one:   "1 Ñар орчим"
+        other: "ойролцоогоор %{count} Ñар"
+      x_months:
+        one:   "1 Ñар"
+        other: "%{count} Ñар"
+      about_x_years:
+        one:   "ойролцоогоор 1 жил"
+        other: "ойролцоогоор %{count} жил"
+      over_x_years:
+        one:   "1 жилÑÑÑ Ð¸Ñ…"
+        other: "%{count} жилÑÑÑ Ð¸Ñ…"
+      almost_x_years:
+        one:   "бараг 1 жил"
+        other: "бараг %{count} жил"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Байт"
+            other: "Байт"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "баÑ"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "жагÑаалтад заагдаагүй байна"
+        exclusion: "нөөцлөгдÑөн"
+        invalid: "буруу"
+        confirmation: "баталгаажÑан өгөгдөлтÑй таарахгүй байна"
+        accepted: "хүлÑÑж авах Ñ‘Ñтой"
+        empty: "хооÑон байж болохгүй"
+        blank: "бланк байж болохгүй"
+        too_long: "дÑндүү урт байна (хамгийн ихдÑÑ %{count} Ñ‚ÑмдÑгт)"
+        too_short: "дÑндүү богино байна (хамгийн багадаа %{count} Ñ‚ÑмдÑгт)"
+        wrong_length: "буруу урттай байна (заавал %{count} Ñ‚ÑмдÑгт)"
+        taken: "аль Ñ…ÑÐ´Ð¸Ð¹Ð½Ñ Ð°Ð²Ñан байна"
+        not_a_number: "тоо биш байна"
+        not_a_date: "зөв огноо биш байна"
+        greater_than: "%{count} их байх Ñ‘Ñтой"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
+        odd: "заавал Ñондгой"
+        even: "заавал Ñ‚Ñгш"
+        greater_than_start_date: "must be greater than start date"
+        not_same_project: "нÑг ижил төÑөлд хамаарахгүй байна"
+        circular_dependency: "Ð­Ð½Ñ Ñ…Ð°Ñ€ÑŒÑ†Ð°Ð° нь гинжин(рекурÑив) харьцаа Ò¯Ò¯ÑгÑÑ… юм байна"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Сонгоно уу
+  
+  general_text_No: 'Үгүй'
+  general_text_Yes: 'Тийм'
+  general_text_no: 'үгүй'
+  general_text_yes: 'тийм'
+  general_lang_name: 'Mongolian (Монгол)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '7'
+  
+  notice_account_updated: ДанÑыг амжилттай өөрчиллөө.
+  notice_account_invalid_creditentials: Ð¥ÑÑ€ÑглÑгчийн нÑÑ€ ÑÑвÑл нууц үг буруу байна
+  notice_account_password_updated: Ðууц үгийг амжилттай өөрчиллөө.
+  notice_account_wrong_password: Буруу нууц үг
+  notice_account_register_done: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч амжилттай Ò¯Ò¯ÑгÑлÑÑ. ИдÑвхжүүлÑхийн тулд, бидний тань луу илгÑÑÑÑн мÑйл дотор байгаа Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дараарай.
+  notice_account_unknown_email: Үл мÑдÑгдÑÑ… Ñ…ÑÑ€ÑглÑгч.
+  notice_can_t_change_password: Ð­Ð½Ñ Ñрх гадаад нÑвтрÑлтÑд ашигладаг ÑƒÑ‡Ñ€Ð°Ð°Ñ Ð½ÑƒÑƒÑ† үгийг өөрчлөх боломжгүй.
+  notice_account_lost_email_sent: Бид таньд мÑйлÑÑÑ€ нууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ… зааврыг илгÑÑÑÑн байгаа.
+  notice_account_activated: Таны Ð´Ð°Ð½Ñ Ð¸Ð´ÑвхжлÑÑ. Одоо нÑвтÑрч орж болно.
+  notice_successful_create: Ðмжилттай Ò¯Ò¯ÑгÑлÑÑ.
+  notice_successful_update: Ðмжилттай өөрчиллөө.
+  notice_successful_delete: Ðмжилттай уÑтгалаа.
+  notice_successful_connection: Ðмжилттай холбогдлоо.
+  notice_file_not_found: Таны үзÑÑ… гÑÑÑн Ñ…ÑƒÑƒÐ´Ð°Ñ Ð±Ð°Ð¹Ñ…Ð³Ò¯Ð¹ юмуу уÑтгагдÑан байна.
+  notice_locking_conflict: Өгөгдлийг Ó©Ó©Ñ€ хүн өөрчилÑөн байна.
+  notice_not_authorized: Танд ÑÐ½Ñ Ñ…ÑƒÑƒÐ´Ñыг үзÑÑ… Ñрх байхгүй байна.
+  notice_email_sent: "%{value} - руу мÑйл илгÑÑлÑÑ"
+  notice_email_error: "МÑйл илгÑÑÑ…Ñд алдаа гарлаа (%{value})"
+  notice_feeds_access_key_reseted: Таны RSS хандалтын түлхүүрийг дахин ÑхлүүллÑÑ.
+  notice_api_access_key_reseted: Your API access key was reset.
+  notice_failed_to_save_issues: "%{total} аÑуудал ÑонгогдÑÐ¾Ð½Ð¾Ð¾Ñ %{count} аÑуудлыг нь хадгалахад алдаа гарлаа: %{ids}."
+  notice_no_issue_selected: "Ямар ч аÑуудал Ñонгогдоогүй байна! ЗаÑварлах аÑуудлуудаа Ñонгоно уу."
+  notice_account_pending: "Таны данÑыг Ò¯Ò¯ÑгÑж дууÑлаа, админиÑтратор баталгаажуулах хүртÑл хүлÑÑÐ½Ñ Ò¯Ò¯."
+  notice_default_data_loaded: Стандарт тохиргоог амжилттай ачааллаа.
+  notice_unable_delete_version: Хувилбарыг уÑтгах боломжгүй.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+  
+  error_can_t_load_default_data: "Стандарт тохиргоог ачаалж чадÑангүй: %{value}"
+  error_scm_not_found: "Repository дотор тухайн бичлÑг ÑÑвÑл хувилбарыг олÑонгүй."
+  error_scm_command_failed: "Repository-д хандахад алдаа гарлаа:  %{value}"
+  error_scm_annotate: "БичлÑг байхгүй байна, ÑÑвÑл бичлÑгт тайлбар хавÑаргаж болохгүй."
+  error_issue_not_found_in_project: 'СонгоÑон аÑуудал ÑÐ½Ñ Ñ‚Ó©Ñөлд хамаардаггүй юм уу ÑÑвÑл ÑиÑтемд байхгүй байна.'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  
+  warning_attachments_not_saved: "%{count} file(s) файлыг хадгалж чадÑангүй."
+  
+  mail_subject_lost_password: "Таны %{value} нууц үг"
+  mail_body_lost_password: 'Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…Ð¸Ð¹Ð½ тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
+  mail_subject_register: "Таны %{value} данÑыг идÑвхжүүлÑÑ…"
+  mail_body_register: 'ДанÑаа идÑвхжүүлÑхийн тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
+  mail_body_account_information_external: "Та өөрийнхөө %{value} данÑыг ашиглаж холбогдож болно."
+  mail_body_account_information: Таны данÑны тухай мÑдÑÑлÑл
+  mail_subject_account_activation_request: "%{value} данÑыг идÑвхжүүлÑÑ… Ñ…Ò¯ÑÑлт"
+  mail_body_account_activation_request: "Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч (%{value}) бүртгүүлÑÑн байна. Таны баталгаажуулахыг хүлÑÑж байна:"
+  mail_subject_reminder: "Дараагийн өдрүүдÑд %{count} аÑуудлыг шийдÑÑ… Ñ…ÑÑ€ÑгтÑй (%{days})"
+  mail_body_reminder: "Танд оноогдÑон %{count} аÑуудлуудыг дараагийн %{days} өдрүүдÑд шийдÑÑ… Ñ…ÑÑ€ÑгтÑй:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+  
+  gui_validation_error: 1 алдаа
+  gui_validation_error_plural: "%{count} алдаа"
+  
+  field_name: ÐÑÑ€
+  field_description: Тайлбар
+  field_summary: ДүгнÑлт
+  field_is_required: Зайлшгүй
+  field_firstname: Таны нÑÑ€
+  field_lastname: Овог
+  field_mail: ИмÑйл
+  field_filename: Файл
+  field_filesize: Ð¥ÑмжÑÑ
+  field_downloads: Татаж авах зүйлÑ
+  field_author: Зохиогч
+  field_created_on: Ò®Ò¯ÑÑÑн
+  field_updated_on: ӨөрчилÑөн
+  field_field_format: Формат
+  field_is_for_all: Бүх төÑлийн хувьд
+  field_possible_values: Боломжтой утгууд
+  field_regexp: Энгийн илÑрхийлÑл
+  field_min_length: Минимум урт
+  field_max_length: МакÑимум урт
+  field_value: Утга
+  field_category: Төрөл
+  field_title: Гарчиг
+  field_project: ТөÑөл
+  field_issue: ÐÑуудал
+  field_status: Төлөв
+  field_notes: ТÑмдÑглÑлүүд
+  field_is_closed: ÐÑуудал хаагдÑан
+  field_is_default: Стандарт утга
+  field_tracker: ЧиглÑл
+  field_subject: Гарчиг
+  field_due_date: ДууÑах огноо
+  field_assigned_to: ОноогдÑон
+  field_priority: ЗÑÑ€ÑглÑл
+  field_fixed_version: Хувилбар
+  field_user: Ð¥ÑÑ€ÑглÑгч
+  field_role: Хандалтын Ñрх
+  field_homepage: Ðүүр хуудаÑ
+  field_is_public: Олон нийтийн
+  field_parent: ЭцÑг төÑөл нь
+  field_is_in_roadmap: ÐÑуудлуудыг Ñвцын зураг дÑÑÑ€ харуулах
+  field_login: ÐÑвтрÑÑ… нÑÑ€
+  field_mail_notification: ИмÑйл мÑдÑгдлүүд
+  field_admin: ÐдминиÑтратор
+  field_last_login_on: Сүүлийн холбоо
+  field_language: Ð¥Ñл
+  field_effective_date: Огноо
+  field_password: Ðууц үг
+  field_new_password: Ð¨Ð½Ð½Ñ Ð½ÑƒÑƒÑ† үг
+  field_password_confirmation: Баталгаажуулах
+  field_version: Хувилбар
+  field_type: Төрөл
+  field_host: ХоÑÑ‚
+  field_port: Порт
+  field_account: ДанÑ
+  field_base_dn: ҮндÑÑн ДÐ
+  field_attr_login: ÐÑвтрÑÑ… аттрибут
+  field_attr_firstname: Таны нÑÑ€ аттрибут
+  field_attr_lastname: Овог аттрибут
+  field_attr_mail: ИмÑйл аттрибут
+  field_onthefly: Ð¥Ò¯ÑÑÑн үедÑÑ Ñ…ÑÑ€ÑглÑгч Ò¯Ò¯ÑгÑÑ…
+  field_start_date: ЭхлÑл
+  field_done_ratio: %% ГүйцÑтгÑÑÑн
+  field_auth_source: ÐÑвтрÑÑ… арга
+  field_hide_mail: Миний имÑйл хаÑгийг нуу
+  field_comments: Тайлбар
+  field_url: URL ХаÑг
+  field_start_page: ТÑргүүн хуудаÑ
+  field_subproject: ДÑд төÑөл
+  field_hours: Цаг
+  field_activity: Үйл ажиллагаа
+  field_spent_on: Огноо
+  field_identifier: ТөÑлийн глобал нÑÑ€
+  field_is_filter: Шүүлтүүр болгон Ñ…ÑÑ€ÑглÑгддÑг
+  field_issue_to: Хамаатай аÑуудал
+  field_delay: Хоцролт
+  field_assignable: Ð­Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ ÑрхÑд аÑуудлуудыг оноож өгч болно
+  field_redirect_existing_links: Байгаа холбооÑуудыг дахин чиглүүлÑÑ…
+  field_estimated_hours: БарагцаалÑан цаг
+  field_column_names: Баганууд
+  field_time_zone: Цагын бүÑ
+  field_searchable: Хайж болох
+  field_default_value: Стандарт утга
+  field_comments_sorting: Тайлбаруудыг харуул
+  field_parent_title: ЭцÑг хуудаÑ
+  field_editable: ЗаÑварлагдана
+  field_watcher: Харна
+  field_identity_url: OpenID URL
+  field_content: Ðгуулга
+  field_group_by: Үр дүнгÑÑÑ€ бүлÑглÑÑ…
+  field_sharing: Sharing
+  
+  setting_app_title: Программын гарчиг
+  setting_app_subtitle: Программын дÑд гарчиг
+  setting_welcome_text: МÑндчилгÑÑ
+  setting_default_language: Стандарт Ñ…Ñл
+  setting_login_required: ÐÑвтрÑÑ… шаардлагатай
+  setting_self_registration: Өөрийгөө бүртгүүлÑÑ…
+  setting_attachment_max_size: ХавÑралт файлын дÑÑд Ñ…ÑмжÑÑ
+  setting_issues_export_limit: ÐÑуудал ÑкÑпортлох Ñ…Ñзгаар
+  setting_mail_from: Ямар имÑйл хаÑг Ò¯Ò¯ÑгÑÑ…
+  setting_bcc_recipients: BCC талбарын хаÑгууд (bcc)
+  setting_plain_text_mail: дан текÑÑ‚ мÑйл (HTML биш)
+  setting_host_name: ХоÑтын нÑÑ€ болон зам
+  setting_text_formatting: ТекÑÑ‚ Ñ…ÑлбÑржүүлÑлт
+  setting_wiki_compression: Вики хуудÑуудын түүх дÑÑÑ€ шахалт хийх
+  setting_feeds_limit: Фийд агуулгын Ñ…Ñзгаар
+  setting_default_projects_public: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñлүүд автоматаар олон нийтийнх байна
+  setting_autofetch_changesets: Комитуудыг автоматаар татаж авах
+  setting_sys_api_enabled: Репозитори менежментÑд зориулан WS-ийг идÑвхжүүлÑÑ…
+  setting_commit_ref_keywords: Хамааруулах түлхүүр үгÑ
+  setting_commit_fix_keywords: Зоолттой түлхүүр үгÑ
+  setting_autologin: Компьютер дÑÑÑ€ Ñанах
+  setting_date_format: Огнооны формат
+  setting_time_format: Цагийн формат
+  setting_cross_project_issue_relations: ТөÑөл хооронд аÑуудал хамааруулахыг зөвшөөрөх
+  setting_issue_list_default_columns: ÐÑуудлуудыг харуулах Ñтандарт баганууд
+  setting_repositories_encodings: Репозиторийн Ñнкодинг
+  setting_commit_logs_encoding: Коммит хийх үед харуулах текÑтүүдийн Ñнкодинг
+  setting_emails_footer: ИмÑйлүүдийн хөл Ñ…ÑÑÑг
+  setting_protocol: Протокол
+  setting_per_page_options: ÐÑг хуудÑанд байх обьектуудын тохиргоо
+  setting_user_format: Ð¥ÑÑ€ÑглÑгчдийг харуулах формат
+  setting_activity_days_default: ТөÑлийн үйл ажиллагаа Ñ…ÑÑÑгт үзүүлÑÑ… өдрийн тоо
+  setting_display_subprojects_issues: ДÑд төÑлүүдийн аÑуудлуудыг автоматаар гол төÑөл дÑÑÑ€ харуулах
+  setting_enabled_scm: SCM - ийг идÑвхжүүлÑÑ…
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: ИрÑÑн мÑйлүүдийн хувьд WS-ийг идÑвхжүүлÑÑ…
+  setting_mail_handler_api_key: API түлхүүр
+  setting_sequential_project_identifiers: ДÑÑ Ð´Ð°Ñ€Ð°Ð°Ð»Ñан төÑлийн глобал нÑÑ€ Ò¯Ò¯ÑгÑж байх
+  setting_gravatar_enabled: Gravatar дүрÑүүдийг Ñ…ÑÑ€ÑглÑгчдÑд Ñ…ÑÑ€ÑглÑж байх
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Ялгаатай мөрүүдийн тоо (дÑÑд тал нь)
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Allow OpenID login and registration
+  setting_password_min_length: Minimum password length
+  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+  
+  permission_add_project: Create project
+  permission_add_subprojects: Create subprojects
+  permission_edit_project: ТөÑлийг заÑварлах
+  permission_select_project_modules: ТөÑлийн модулуудийг Ñонгоно уу
+  permission_manage_members: СиÑтемийн Ñ…ÑÑ€ÑглÑгчид
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Хувилбарууд
+  permission_manage_categories: ÐÑуудлын ангиллууд
+  permission_view_issues: ÐÑуудлуудыг харах
+  permission_add_issues: ÐÑуудлууд нÑмÑÑ…
+  permission_edit_issues: ÐÑуудлуудыг заÑварлах
+  permission_manage_issue_relations: ÐÑуудлын хамаарлыг зохицуулах
+  permission_add_issue_notes: ТÑмдÑглÑл нÑмÑÑ…
+  permission_edit_issue_notes: ТÑмдÑглÑлүүд заÑварлах
+  permission_edit_own_issue_notes: Өөрийн үлдÑÑÑÑн Ñ‚ÑмдÑглÑлүүдийг заÑварлах
+  permission_move_issues: ÐÑуудлуудыг зөөх
+  permission_delete_issues: ÐÑуудлуудыг уÑтгах
+  permission_manage_public_queries: Олон нийтийн аÑуултууд
+  permission_save_queries: ÐÑуултуудыг хадгалах
+  permission_view_gantt: Гант диаграмыг үзÑÑ…
+  permission_view_calendar: Календарь үзÑÑ…
+  permission_view_issue_watchers: Ðжиглагчдын жагÑаалтыг харах
+  permission_add_issue_watchers: Ðжиглагчид нÑмÑÑ…
+  permission_delete_issue_watchers: Ðжиглагчдыг уÑтгах
+  permission_log_time: ЗарцуулÑан хугацааг лог хийх
+  permission_view_time_entries: ЗарцуулÑан хугацааг харах
+  permission_edit_time_entries: Хугацааны логуудыг заÑварлах
+  permission_edit_own_time_entries: Өөрийн хугацааны логуудыг заÑварлах
+  permission_manage_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
+  permission_comment_news: МÑдÑÑнд тайлбар үлдÑÑÑ…
+  permission_manage_documents: Бичиг баримтууд
+  permission_view_documents: Бичиг баримтуудыг харах
+  permission_manage_files: Файлууд
+  permission_view_files: Файлуудыг харах
+  permission_manage_wiki: Вики удирдах
+  permission_rename_wiki_pages: Вики хуудÑуудыг дахиж нÑрлÑÑ…
+  permission_delete_wiki_pages: Вики хуудÑуудыг уÑтгах
+  permission_view_wiki_pages: Вики үзÑÑ…
+  permission_view_wiki_edits: Вики түүх үзÑÑ…
+  permission_edit_wiki_pages: Вики хуудÑуудыг заÑварлах
+  permission_delete_wiki_pages_attachments: ХавÑралтуудыг уÑтгах
+  permission_protect_wiki_pages: Вики хуудÑуудыг хамгаалах
+  permission_manage_repository: Репозитори
+  permission_browse_repository: Репозиторийг үзÑÑ…
+  permission_view_changesets: Өөрчлөлтүүдийг харах
+  permission_commit_access: Коммит хандалт
+  permission_manage_boards: Самбарууд
+  permission_view_messages: ЗурваÑуудыг харах
+  permission_add_messages: Ð—ÑƒÑ€Ð²Ð°Ñ Ð¸Ð»Ð³ÑÑÑ…
+  permission_edit_messages: ЗурваÑуудыг заÑварлах
+  permission_edit_own_messages: Өөрийн зурваÑуудыг заÑварлах
+  permission_delete_messages: ЗурваÑуудыг уÑтгах
+  permission_delete_own_messages: Өөрийн зурваÑуудыг уÑтгах
+  permission_export_wiki_pages: Вики хуудÑуудыг ÑкÑпорт хийх
+  
+  project_module_issue_tracking: ÐÑуудал Ñ…Ñнах
+  project_module_time_tracking: Хугацаа Ñ…Ñнах
+  project_module_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
+  project_module_documents: Бичиг баримтууд
+  project_module_files: Файлууд
+  project_module_wiki: Вики
+  project_module_repository: Репозитори
+  project_module_boards: Самбарууд
+  
+  label_user: Ð¥ÑÑ€ÑглÑгч
+  label_user_plural: Ð¥ÑÑ€ÑглÑгчид
+  label_user_new: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч
+  label_user_anonymous: Хамаагүй Ñ…ÑÑ€ÑглÑгч
+  label_project: ТөÑөл
+  label_project_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñөл
+  label_project_plural: ТөÑлүүд
+  label_x_projects:
+    zero:  төÑөл байхгүй
+    one:   1 төÑөл
+    other: "%{count} төÑлүүд"
+  label_project_all: Бүх ТөÑлүүд
+  label_project_latest: Сүүлийн үеийн төÑлүүд
+  label_issue: ÐÑуудал
+  label_issue_new: Ð¨Ð¸Ð½Ñ Ð°Ñуудал
+  label_issue_plural: ÐÑуудлууд
+  label_issue_view_all: Бүх аÑуудлуудыг харах
+  label_issues_by: "%{value} - н аÑуудлууд"
+  label_issue_added: ÐÑуудал нÑмÑгдлÑÑ
+  label_issue_updated: ÐÑуудал өөрчлөгдлөө
+  label_document: Бичиг баримт
+  label_document_new: Ð¨Ð¸Ð½Ñ Ð±Ð¸Ñ‡Ð¸Ð³ баримт
+  label_document_plural: Бичиг баримтууд
+  label_document_added: Бичиг баримт нÑмÑгдлÑÑ
+  label_role: Хандалтын Ñрх
+  label_role_plural: Хандалтын Ñрхүүд
+  label_role_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ Ñрх
+  label_role_and_permissions: Хандалтын Ñрхүүд болон зөвшөөрлүүд
+  label_member: Гишүүн
+  label_member_new: Ð¨Ð¸Ð½Ñ Ð³Ð¸ÑˆÒ¯Ò¯Ð½
+  label_member_plural: Гишүүд
+  label_tracker: ЧиглÑл
+  label_tracker_plural: ЧиглÑлүүд
+  label_tracker_new: Ð¨Ð¸Ð½Ñ Ñ‡Ð¸Ð³Ð»Ñл
+  label_workflow: Ðжлын дараалал
+  label_issue_status: ÐÑуудлын төлөв
+  label_issue_status_plural: ÐÑуудлын төлвүүд
+  label_issue_status_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ð»Ó©Ð²
+  label_issue_category: ÐÑуудлын ангилал
+  label_issue_category_plural: ÐÑуудлын ангиллууд
+  label_issue_category_new: Ð¨Ð¸Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»
+  label_custom_field: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбар
+  label_custom_field_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбарууд
+  label_custom_field_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон талбар Ò¯Ò¯ÑгÑÑ…
+  label_enumerations: Ðнгиллууд
+  label_enumeration_new: Ð¨Ð¸Ð½Ñ ÑƒÑ‚Ð³Ð°
+  label_information: МÑдÑÑлÑл
+  label_information_plural: МÑдÑÑллүүд
+  label_please_login: ÐÑвтÑрч орно уу
+  label_register: БүртгүүлÑÑ…
+  label_login_with_open_id_option: or login with OpenID
+  label_password_lost: Ðууц үгÑÑ Ð°Ð»Ð´Ñан
+  label_home: Ðүүр
+  label_my_page: Миний хуудаÑ
+  label_my_account: Миний данÑ
+  label_my_projects: Миний төÑлүүд
+  label_administration: Ðдмин Ñ…ÑÑÑг
+  label_login: ÐÑвтрÑÑ…
+  label_logout: Гарах
+  label_help: ТуÑламж
+  label_reported_issues: МÑдÑгдÑÑн аÑуудлууд
+  label_assigned_to_me_issues: Ðадад оноогдÑон аÑуудлууд
+  label_last_login: Сүүлийн холболт
+  label_registered_on: БүртгүүлÑÑн огноо
+  label_activity: Үйл ажиллагаа
+  label_overall_activity: Ерөнхий үйл ажиллагаа
+  label_user_activity: "%{value}-ийн үйл ажиллагаа"
+  label_new: ШинÑ
+  label_logged_as: ХолбогдÑон нÑÑ€
+  label_environment: Орчин
+  label_authentication: ÐÑвтрÑÑ…
+  label_auth_source: ÐÑвтрÑÑ… арга
+  label_auth_source_new: Ð¨Ð¸Ð½Ñ Ð½ÑвтрÑÑ… арга
+  label_auth_source_plural: ÐÑвтрÑÑ… аргууд
+  label_subproject_plural: ДÑд төÑлүүд
+  label_subproject_new: Ð¨Ð¸Ð½Ñ Ð´Ñд төÑөл
+  label_and_its_subprojects: "%{value} болон холбогдох дÑд төÑлүүд"
+  label_min_max_length: ДÑÑд - Доод урт
+  label_list: ЖагÑаалт
+  label_date: Огноо
+  label_integer: БүхÑл тоо
+  label_float: Бутархай тоо
+  label_boolean: ҮнÑн худал утга
+  label_string: ТекÑÑ‚
+  label_text: Урт текÑÑ‚
+  label_attribute: Ðттрибут
+  label_attribute_plural: Ðттрибутууд
+  label_download: "%{count} Татаж авÑан зүйл"
+  label_download_plural: "%{count} Татаж авÑан зүйлÑ"
+  label_no_data: ҮзүүлÑÑ… өгөгдөл байхгүй байна
+  label_change_status: Төлвийг өөрчлөх
+  label_history: Түүх
+  label_attachment: Файл
+  label_attachment_new: Ð¨Ð¸Ð½Ñ Ñ„Ð°Ð¹Ð»
+  label_attachment_delete: Файл уÑтгах
+  label_attachment_plural: Файлууд
+  label_file_added: Файл нÑмÑгдлÑÑ
+  label_report: Тайлан
+  label_report_plural: Тайлангууд 
+  label_news: МÑдÑÑ
+  label_news_new: Ð¨Ð¸Ð½Ñ Ð¼ÑдÑÑ
+  label_news_plural: МÑдÑÑ
+  label_news_latest: Сүүлийн үеийн мÑдÑÑнүүд
+  label_news_view_all: Бүх мÑдÑÑг харах
+  label_news_added: МÑдÑÑ Ð½ÑмÑгдлÑÑ
+  label_change_log: Өөрчлөлтийн лог
+  label_settings: Тохиргоо
+  label_overview: ЭхлÑл
+  label_version: Хувилбар
+  label_version_new: Ð¨Ð¸Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€
+  label_version_plural: Хувилбарууд
+  label_close_versions: ГүйцÑÑ‚ хувилбаруудыг хаалаа
+  label_confirmation: Баталгаажуулах
+  label_export_to: 'Өөр авч болох формат:'
+  label_read: Унших...
+  label_public_projects: Олон нийтийн төÑлүүд
+  label_open_issues: нÑÑлттÑй
+  label_open_issues_plural: нÑÑлттÑй
+  label_closed_issues: хаалттай
+  label_closed_issues_plural: хаалттай
+  label_x_open_issues_abbr_on_total:
+    zero:  0 нÑÑлттÑй / %{total}
+    one:   1 нÑÑлттÑй / %{total}
+    other: "%{count} нÑÑлттÑй / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 нÑÑлттÑй
+    one:   1 нÑÑлттÑй
+    other: "%{count} нÑÑлттÑй"
+  label_x_closed_issues_abbr:
+    zero:  0 хаалттай
+    one:   1 хаалттай
+    other: "%{count} хаалттай"
+  label_total: Ðийт
+  label_permissions: Зөвшөөрлүүд
+  label_current_status: Одоогийн төлөв
+  label_new_statuses_allowed: ШинÑÑÑ€ олгож болох төлвүүд
+  label_all: бүгд
+  label_none: хооÑон
+  label_nobody: Ñ…Ñн ч биш
+  label_next: Дараагийн
+  label_previous: Өмнөх
+  label_used_by: Ð¥ÑÑ€ÑглÑгддÑг
+  label_details: ДÑлгÑÑ€Ñнгүй
+  label_add_note: ТÑмдÑглÑл нÑмÑÑ…
+  label_per_page: ÐÑг хуудÑанд
+  label_calendar: Календарь
+  label_months_from: Саруудыг хаанааÑ
+  label_gantt: Гант диаграм
+  label_internal: Дотоод
+  label_last_changes: "Ñүүлийн %{count} өөрчлөлтүүд"
+  label_change_view_all: Бүх өөрчлөлтүүдийг харах
+  label_personalize_page: Ð­Ð½Ñ Ñ…ÑƒÑƒÐ´Ñыг өөрт зориулан өөрчлөх
+  label_comment: Тайлбар
+  label_comment_plural: Тайлбарууд
+  label_x_comments:
+    zero: ÑÑтгÑгдÑл байхгүй
+    one: 1 ÑÑтгÑгдÑлтÑй
+    other: "%{count} ÑÑтгÑгдÑлтÑй"
+  label_comment_add: Тайлбар нÑмÑÑ…
+  label_comment_added: Тайлбар нÑмÑгдлÑÑ
+  label_comment_delete: Тайлбарууд уÑтгах
+  label_query: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт
+  label_query_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуултууд
+  label_query_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт Ò¯Ò¯ÑгÑÑ…
+  label_filter_add: Шүүлтүүр нÑмÑÑ…
+  label_filter_plural: Шүүлтүүрүүд
+  label_equals: бол
+  label_not_equals: биш
+  label_in_less_than: Ð°Ð°Ñ Ð±Ð°Ð³Ð°
+  label_in_more_than: Ð°Ð°Ñ Ð¸Ñ…
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: дотор
+  label_today: өнөөдөр
+  label_all_time: бүх хугацаа
+  label_yesterday: өчигдөр
+  label_this_week: ÑÐ½Ñ Ð´Ð¾Ð»Ð¾Ð¾ хоног
+  label_last_week: өнгөрÑөн долоо хоног
+  label_last_n_days: "Ñүүлийн %{count} өдрүүд"
+  label_this_month: ÑÐ½Ñ Ñар
+  label_last_month: Ñүүлийн Ñар
+  label_this_year: ÑÐ½Ñ Ð¶Ð¸Ð»
+  label_date_range: Ð¥Ñзгаар огноо
+  label_less_than_ago: бага өдрийн дотор
+  label_more_than_ago: их өдрийн дотор
+  label_ago: өдрийн өмнө
+  label_contains: агуулж байгаа
+  label_not_contains: агуулаагүй
+  label_day_plural: өдрүүд
+  label_repository: Репозитори
+  label_repository_plural: Репозиторууд
+  label_browse: ҮзÑÑ…
+  label_modification: "%{count} өөрчлөлт"
+  label_modification_plural: "%{count} өөрчлөлтүүд"
+  label_branch: Салбар
+  label_tag: Шошго 
+  label_revision: Хувилбар
+  label_revision_plural: Хувилбарууд
+  label_revision_id: "%{value} Хувилбар"
+  label_associated_revisions: Хамааралтай хувилбарууд
+  label_added: нÑмÑгдÑÑн
+  label_modified: өөрчлөгдÑөн
+  label_copied: хуулÑан
+  label_renamed: нÑрийг нь өөрчилÑөн
+  label_deleted: уÑтгаÑан
+  label_latest_revision: Сүүлийн үеийн хувилбар
+  label_latest_revision_plural: Сүүлийн үеийн хувилбарууд
+  label_view_revisions: Хувилбаруудыг харах
+  label_view_all_revisions: Бүх хувилбаруудыг харах
+  label_max_size: Maximum size
+  label_sort_highest: Хамгийн дÑÑÑ€
+  label_sort_higher: ДÑÑш нь
+  label_sort_lower: Доош нь
+  label_sort_lowest: Хамгийн доор
+  label_roadmap: Хөтөч
+  label_roadmap_due_in: "%{value} дотор дууÑгах"
+  label_roadmap_overdue: "%{value} оройтÑон"
+  label_roadmap_no_issues: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€Ñ‚ аÑуудал байхгүй байна
+  label_search: Хайх
+  label_result_plural: Үр дүн
+  label_all_words: Бүх үгÑ
+  label_wiki: Вики
+  label_wiki_edit: Вики заÑвар
+  label_wiki_edit_plural: Вики заÑварууд
+  label_wiki_page: Вики хуудаÑ
+  label_wiki_page_plural: Вики хуудаÑ
+  label_index_by_title: Гарчгаар ÑÑ€ÑмбÑлÑÑ…
+  label_index_by_date: Огноогоор ÑÑ€ÑмбÑлÑÑ…
+  label_current_version: Одоогийн хувилбар
+  label_preview: Ямар харагдахыг шалгах
+  label_feed_plural: Feeds
+  label_changes_details: Бүх өөрчлөлтүүдийн дÑлгÑÑ€Ñнгүй
+  label_issue_tracking: ÐÑуудал Ñ…Ñнах
+  label_spent_time: ЗарцуулÑан хугацаа
+  label_f_hour: "%{value} цаг"
+  label_f_hour_plural: "%{value} цаг"
+  label_time_tracking: Хугацааг Ñ…Ñнах
+  label_change_plural: Өөрчлөлтүүд
+  label_statistics: СтатиÑтик
+  label_commits_per_month: Сард хийÑÑн коммитын тоо
+  label_commits_per_author: Зохиогч бүрийн хувьд коммитын тоо
+  label_view_diff: Ялгаануудыг харах
+  label_diff_inline: дотор нь
+  label_diff_side_by_side: зÑÑ€Ñгцүүлж
+  label_options: Тохиргоо
+  label_copy_workflow_from: Ðжлын дарааллыг хуулах
+  label_permissions_report: Зөвшөөрлүүдийн таблиц
+  label_watched_issues: Ðжиглагдаж байгаа аÑуудлууд
+  label_related_issues: Хамааралтай аÑуудлууд
+  label_applied_status: ОлгоÑон төлөв
+  label_loading: Ðчаалж байна...
+  label_relation_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»
+  label_relation_delete: Хамаарлыг уÑтгах
+  label_relates_to: Ñнгийн хамааралтай
+  label_duplicates: Ñ…Ð¾Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»Ñ‚Ð°Ð¹
+  label_duplicated_by: давхардуулÑан ÑзÑн
+  label_blocks: шаардах хамааралтай
+  label_blocked_by: блоколÑон ÑзÑн
+  label_precedes: урьдчилах хамааралтай
+  label_follows: дагаж
+  label_end_to_start: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ урагшаа
+  label_end_to_end: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ хойшоо
+  label_start_to_start: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ урагаа
+  label_start_to_end: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ хойшоо
+  label_stay_logged_in: Ð­Ð½Ñ ÐºÐ¾Ð¼ÑŒÑŽÑ‚ÐµÑ€ дÑÑÑ€ Ñанах
+  label_disabled: идÑвхгүй болÑон
+  label_show_completed_versions: ГүйцÑд хувилбаруудыг харуулах
+  label_me: би
+  label_board: Форум
+  label_board_new: Ð¨Ð¸Ð½Ñ Ñ„Ð¾Ñ€ÑƒÐ¼
+  label_board_plural: Форумууд
+  label_board_locked: ТүгжÑÑÑ‚Ñй
+  label_board_sticky: Sticky
+  label_topic_plural: СÑдвүүд
+  label_message_plural: ЗурваÑууд
+  label_message_last: Сүүлийн зурваÑ
+  label_message_new: Ð¨Ð¸Ð½Ñ Ð·ÑƒÑ€Ð²Ð°Ñ
+  label_message_posted: Ð—ÑƒÑ€Ð²Ð°Ñ Ð½ÑмÑгдлÑÑ
+  label_reply_plural: Хариултууд
+  label_send_information: ДанÑны мÑдÑÑллийг Ñ…ÑÑ€ÑглÑгчид илгÑÑÑ…
+  label_year: Жил
+  label_month: Сар
+  label_week: Долоо хоног
+  label_date_from: Ð¥ÑзÑÑнÑÑÑ
+  label_date_to: Ð¥Ñдий хүртÑл
+  label_language_based: Ð¥ÑÑ€ÑглÑгчийн Ñ…ÑÐ»Ð½Ð°Ñ ÑˆÐ°Ð»Ñ‚Ð³Ð°Ð°Ð»Ð°Ð½
+  label_sort_by: "%{value} талбараар нь ÑÑ€ÑмбÑлÑÑ…"
+  label_send_test_email: Турших мÑйл илгÑÑÑ…
+  label_feeds_access_key: RSS хандах түлхүүр
+  label_missing_feeds_access_key: RSS хандах түлхүүр алга
+  label_feeds_access_key_created_on: "RSS хандалтын түлхүүр %{value}-ийн өмнө Ò¯Ò¯ÑÑÑн"
+  label_module_plural: Модулууд
+  label_added_time_by: "%{author} %{age}-ийн өмнө нÑмÑÑн"
+  label_updated_time_by: "%{author} %{age}-ийн өмнө өөрчилÑөн"
+  label_updated_time: "%{value} -ийн өмнө өөрчлөгдÑөн"
+  label_jump_to_a_project: ТөÑөл Ñ€Ò¯Ò¯ очих...
+  label_file_plural: Файлууд
+  label_changeset_plural: Өөрчлөлтүүд
+  label_default_columns: Стандарт баганууд
+  label_no_change_option: (Өөрчлөлт байхгүй)
+  label_bulk_edit_selected_issues: СонгогдÑон аÑуудлуудыг бөөнөөр заÑварлах
+  label_theme: СиÑтемийн Дизайн
+  label_default: Стандарт
+  label_search_titles_only: Зөвхөн гарчиг хайх
+  label_user_mail_option_all: "Миний бүх төÑөл дÑÑрх бүх үзÑгдлүүдийн хувьд"
+  label_user_mail_option_selected: "СонгогдÑон төÑлүүдийн хувьд бүх үзÑгдÑл дÑÑÑ€..."
+  label_user_mail_no_self_notified: "Миний өөрийн хийÑÑн өөрчлөлтүүдийн тухай надад мÑдÑгдÑÑ… Ñ…ÑÑ€Ñггүй"
+  label_registration_activation_by_email: данÑыг имÑйлÑÑÑ€ идÑвхжүүлÑÑ…
+  label_registration_manual_activation: данÑыг гараар идÑвхжүүлÑÑ…
+  label_registration_automatic_activation: данÑыг автоматаар идÑвхжүүлÑÑ…
+  label_display_per_page: 'ÐÑг хуудÑанд: %{value}'
+  label_age: ÐаÑ
+  label_change_properties: Тохиргоог өөрчлөх
+  label_general: Ерөнхий
+  label_more: Цааш нь
+  label_scm: SCM
+  label_plugins: Модулууд
+  label_ldap_authentication: LDAP нÑвтрÑÑ… горим
+  label_downloads_abbr: D/L
+  label_optional_description: Дурын тайлбар
+  label_add_another_file: Дахин файл нÑмÑÑ…
+  label_preferences: Тохиргоо
+  label_chronological_order: Цагаан толгойн Ò¯Ñгийн дарааллаар
+  label_reverse_chronological_order: Урвуу цагаан толгойн Ò¯Ñгийн дарааллаар
+  label_planning: Төлөвлөлт
+  label_incoming_emails: ИрÑÑн мÑйлүүд
+  label_generate_key: Түлхүүр Ò¯Ò¯ÑгÑÑ…
+  label_issue_watchers: Ðжиглагчид
+  label_example: ЖишÑÑ
+  label_display: Display
+  label_sort: Sort
+  label_ascending: Ascending
+  label_descending: Descending
+  label_date_from_to: From %{start} to %{end}
+  label_wiki_content_added: Wiki page added
+  label_wiki_content_updated: Wiki page updated
+  label_group: Group
+  label_group_plural: Groups
+  label_group_new: New group
+  label_time_entry_plural: Spent time
+  label_version_sharing_none: Not shared
+  label_version_sharing_descendants: With subprojects
+  label_version_sharing_hierarchy: With project hierarchy
+  label_version_sharing_tree: With project tree
+  label_version_sharing_system: With all projects
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Source
+  label_copy_target: Target
+  label_copy_same_as_target: Same as target
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API access key
+  label_missing_api_access_key: Missing an API access key
+  label_api_access_key_created_on: "API access key created %{value} ago"
+  
+  button_login: ÐÑвтрÑÑ…
+  button_submit: ИлгÑÑÑ…
+  button_save: Хадгалах
+  button_check_all: Бүгдийг Ñонго
+  button_uncheck_all: Бүгдийг үл Ñонго
+  button_delete: УÑтгах
+  button_create: Ò®Ò¯ÑгÑÑ…
+  button_create_and_continue: Ò®Ò¯ÑгÑÑд цааш үргÑлжлүүлÑÑ…
+  button_test: Турших
+  button_edit: ЗаÑварлах
+  button_add: ÐÑмÑÑ…
+  button_change: Өөрчлөх
+  button_apply: Өөрчлөлтийг хадгалах
+  button_clear: ЦÑвÑрлÑÑ…
+  button_lock: Түгжих
+  button_unlock: ТүгжÑÑг тайлах
+  button_download: Татах
+  button_list: ЖагÑаалт
+  button_view: Харах
+  button_move: Зөөх
+  button_move_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
+  button_back: Буцах
+  button_cancel: Болих
+  button_activate: ИдÑвхжүүлÑÑ…
+  button_sort: ЭрÑмбÑлÑÑ…
+  button_log_time: Лог хийÑÑн хугацаа
+  button_rollback: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€ руу буцах
+  button_watch: Ðжиглах
+  button_unwatch: Ðжиглахаа болих
+  button_reply: Хариулах
+  button_archive: Ðрхивлах
+  button_unarchive: Ðрхивыг задлах
+  button_reset: Ðнхны утгууд
+  button_rename: ÐÑрийг нь Ñолих
+  button_change_password: Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…
+  button_copy: Хуулах
+  button_copy_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
+  button_annotate: Тайлбар хавÑаргах
+  button_update: ШинÑчлÑÑ…
+  button_configure: Тохируулах
+  button_quote: ИшлÑл
+  button_duplicate: Хуулбар
+  button_show: ҮзÑÑ…
+  
+  status_active: идÑвхтÑй
+  status_registered: бүртгүүлÑÑн
+  status_locked: түгжÑÑÑ‚Ñй
+  
+  version_status_open: нÑÑлттÑй
+  version_status_locked: түгжÑÑÑ‚Ñй
+  version_status_closed: хаалттай
+
+  field_active: идÑвхтÑй
+  
+  text_select_mail_notifications: Ямар үед имÑйлÑÑÑ€ мÑдÑгдÑл илгÑÑхийг Ñонгоно уу.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 гÑвÑл Ñмар ч Ñ…Ñзгааргүй гÑÑÑн үг
+  text_project_destroy_confirmation: Та ÑÐ½Ñ Ñ‚Ó©Ñөл болоод буÑад мÑдÑÑллийг нь үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
+  text_subprojects_destroy_warning: "Уг төÑлийн дÑд төÑлүүд : %{value} нь Ð±Ð°Ñ ÑƒÑтгагдах болно."
+  text_workflow_edit: Ðжлын дарааллыг өөрчлөхийн тулд хандалтын Ñрх болон аÑуудлын чиглÑлийг Ñонгоно уу
+  text_are_you_sure: Та итгÑлтÑй байна уу ?
+  text_journal_changed: "%{label} %{old} байÑан нь %{new} болов"
+  text_journal_set_to: "%{label} %{value} болгож өөрчиллөө"
+  text_journal_deleted: "%{label} уÑÑ‚Ñан (%{old})"
+  text_journal_added: "%{label} %{value} нÑмÑгдÑÑн"
+  text_tip_issue_begin_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑ… ажил
+  text_tip_issue_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ дууÑах ажил
+  text_tip_issue_begin_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑд мөн дууÑч байгаа ажил
+  text_project_identifier_info: 'Зөвхөн жижиг Ò¯Ñгүүд болон (a-z), тоо and дундуур Ð·ÑƒÑ€Ð°Ð°Ñ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð¶ болно.<br />ÐÑгÑнт хадгалÑан хойно, төÑлийн глобал нÑрийг өөрлчөх боломжгүй.'
+  text_caracters_maximum: "дÑÑд тал нь %{count} Ò¯ÑÑг."
+  text_caracters_minimum: "Хамгийн багадаа Ñдаж %{count} Ñ‚ÑмдÑгт байх."
+  text_length_between: "Урт нь багадаа %{min}, ихдÑÑ %{max} Ñ‚ÑмдÑгт."
+  text_tracker_no_workflow: ЭнÑÑ…Ò¯Ò¯ аÑуудлын чиглÑлд Ñмар ч ажлын дараалал тодорхойлогдоогүй байна
+  text_unallowed_characters: Ð¥ÑÑ€ÑглÑж болохгүй Ñ‚ÑмдÑгтүүд
+  text_comma_separated: ТаÑлалаар зааглан олон утга оруулж болно.
+  text_line_separated: Multiple values allowed (one line for each value).
+  text_issues_ref_in_commit_messages: Коммитийн зурваÑуудад хамааруулÑан болон байнгын аÑуудлууд
+  text_issue_added: "ÐÑуудал %{id} - ийг Ñ…ÑÑ€ÑглÑгч %{author} мÑдÑгдÑÑн байна."
+  text_issue_updated: "ÐÑуудал %{id} - ийг Ñ…ÑÑ€ÑглÑгч %{author} өөрчилÑөн байна."
+  text_wiki_destroy_confirmation: Та ÑÐ½Ñ Ð²Ð¸ÐºÐ¸ болон холбогдох бүх мÑдÑÑллийг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
+  text_issue_category_destroy_question: "Ð­Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ зарим аÑуудлууд (%{count})  орÑон байна. Та Ñах Ð²Ñ ?"
+  text_issue_category_destroy_assignments: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð»Ð°Ð°Ñ Ð°Ð²Ð°Ñ…
+  text_issue_category_reassign_to: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ дахин оноох
+  text_user_mail_option: "Сонгогдоогүй төÑлүүдийн хувьд, та зөвхөн өөрийнхөө ажиглаж байгаа Ð·Ò¯Ð¹Ð»Ñ ÑŽÐ¼ÑƒÑƒ танд хамаатай зүйлÑийн талаар мÑдÑгдÑл авах болно (Таны оруулÑан аÑуудал, ÑÑвÑл танд онооÑон гÑÑ… мÑÑ‚)."
+  text_no_configuration_data: "Хандалтын Ñрхүүд, чиглÑлүүд, аÑуудлын төлвүүд болон ажлын дарааллын тухай мÑдÑÑллийг хараахан оруулаагүй байна.\nТа Ñтандарт өгөгдлүүдийг даруйхан оруулахыг зөвлөж байна, оруулÑан хойно та заÑварлаж болно."
+  text_load_default_configuration: Стандарт өгөгдлийг ачаалах
+  text_status_changed_by_changeset: "%{value} өөрчлөлтөд хийгдÑÑн."
+  text_issues_destroy_confirmation: 'Та ÑонгогдÑон аÑуудлуудыг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?'
+  text_select_project_modules:  'Ð­Ð½Ñ Ñ‚Ó©Ñлийн хувьд идÑвхжүүлÑÑ… модулуудаа Ñонгоно уу:'
+  text_default_administrator_account_changed: Стандарт админиÑтраторын бүртгÑл өөрчлөгдлөө
+  text_file_repository_writable: ХавÑралт файл хадгалах Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
+  text_plugin_assets_writable: Плагин модулийн аÑÑет Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
+  text_rmagick_available: RMagick ÑуулгагдÑан (заавал биш)
+  text_destroy_time_entries_question: "Таны уÑтгах гÑж байгаа аÑуудлууд дÑÑÑ€ нийт %{hours} цаг зарцуулÑан юм байна, та Ñах Ð²Ñ ?"
+  text_destroy_time_entries: МÑдÑгдÑÑн цагуудыг уÑтгах
+  text_assign_time_entries_to_project: МÑдÑгдÑÑн аÑуудлуудыг төÑөлд оноох
+  text_reassign_time_entries: 'МÑдÑгдÑÑн аÑуудлуудыг ÑÐ½Ñ Ð°Ñуудалд дахин оноо:'
+  text_user_wrote: "%{value} бичихдÑÑ:"
+  text_enumeration_destroy_question: "Ð­Ð½Ñ ÑƒÑ‚Ð³Ð°Ð´ %{count} обьект оноогдÑон байна."
+  text_enumeration_category_reassign_to: 'ТÑдгÑÑрийг ÑÐ½Ñ ÑƒÑ‚Ð³Ð°Ð´ дахин оноо:'
+  text_email_delivery_not_configured: "ИмÑйлийн тохиргоог хараахан тохируулаагүй байна, тиймÑÑÑ Ð¸Ð¼Ñйл мÑдÑгдÑл Ñвуулах боломжгүй байна.\nSMTP ÑервÑÑ€ÑÑ config/email.yml файл дотор тохируулаад төÑлийн менежерÑÑ Ð´Ð°Ñ…Ð¸Ð°Ð´ ÑхлүүлÑÑÑ€Ñй."
+  text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх Ñ…ÑÑ€ÑглÑгчийн нÑрүүдÑд харгалзÑан ТөÑлийн Менежер ÑиÑтемд бүртгÑлтÑй Ñ…ÑÑ€ÑглÑгчдийг Сонгох юмуу шинÑÑ‡Ð¸Ð»Ð½Ñ Ò¯Ò¯.\nТөÑлийн менежер болон репозиторид байгаа ижилхÑн нÑÑ€ юмуу имÑйлтÑй Ñ…ÑÑ€ÑглÑгчид харилцан харгалзна."
+  text_diff_truncated: '... Файлын Ñлгаврын Ñ…ÑмжÑÑ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…Ñд дÑндүү урт байгаа ÑƒÑ‡Ñ€Ð°Ð°Ñ Ñ‚Ó©Ð³ÑÐ³Ó©Ð»Ó©Ó©Ñ Ð½ÑŒ хаÑч үзүүлÑв.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  
+  default_role_manager: Менежер
+  default_role_developer: ХөгжүүлÑгч
+  default_role_reporter: МÑдÑгдÑгч
+  default_tracker_bug: Ðлдаа
+  default_tracker_feature: Онцлог
+  default_tracker_support: ТуÑламж
+  default_issue_status_new: ШинÑ
+  default_issue_status_in_progress: Ðхицтай
+  default_issue_status_assigned: ОноогдÑон
+  default_issue_status_resolved: ШийдвÑрлÑгдÑÑн
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: ХаагдÑан
+  default_issue_status_rejected: ХүлÑÑж аваагүй
+  default_doc_category_user: Ð¥ÑÑ€ÑглÑгчийн бичиг баримт
+  default_doc_category_tech: Техникийн бичиг баримт
+  default_priority_low: Бага
+  default_priority_normal: Ð¥Ñвийн
+  default_priority_high: Өндөр
+  default_priority_urgent: ÐÑн Ñаралтай
+  default_priority_immediate: ÐÑн даруй
+  default_activity_design: Дизайн
+  default_activity_development: ХөгжүүлÑлт
+  
+  enumeration_issue_priorities: ÐÑуудлын зÑÑ€ÑглÑлүүд
+  enumeration_doc_categories: Бичиг баримтын ангиллууд
+  enumeration_activities: Үйл ажиллагаанууд (хугацааг Ñ…Ñнах)
+  enumeration_system_activity: СиÑтемийн үйл ажиллагаа
+
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  field_parent_issue: Parent task
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  label_project_copy_notifications: Send email notifications during the project copy
+  error_can_not_delete_custom_field: Unable to delete custom field
+  error_unable_to_connect: Unable to connect (%{value})
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/nl.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/nl.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "halve minuut"
       less_than_x_seconds:
         one:   "minder dan een seconde"
-        other: "mindera dan {{count}} seconden"
+        other: "mindera dan %{count} seconden"
       x_seconds:
         one:   "1 seconde"
-        other: "{{count}} seconden"
+        other: "%{count} seconden"
       less_than_x_minutes:
         one:   "minder dan een minuut"
-        other: "minder dan {{count}} minuten"
+        other: "minder dan %{count} minuten"
       x_minutes:
         one:   "1 minuut"
-        other: "{{count}} minuten"
+        other: "%{count} minuten"
       about_x_hours:
         one:   "ongeveer 1 uur"
-        other: "ongeveer {{count}} uren"
+        other: "ongeveer %{count} uren"
       x_days:
         one:   "1 dag"
-        other: "{{count}} dagen"
+        other: "%{count} dagen"
       about_x_months:
         one:   "ongeveer 1 maand"
-        other: "ongeveer {{count}} maanden"
+        other: "ongeveer %{count} maanden"
       x_months:
         one:   "1 maand"
-        other: "{{count}} maanden"
+        other: "%{count} maanden"
       about_x_years:
         one:   "ongeveer 1 jaar"
-        other: "ongeveer {{count}} jaren"
+        other: "ongeveer %{count} jaren"
       over_x_years:
         one:   "over 1 jaar"
-        other: "over {{count}} jaren"
+        other: "over %{count} jaren"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "staat niet in de lijst"
         exclusion: "is gereserveerd"
@@ -106,11 +110,11 @@
         taken: "is al in gebruik"
         not_a_number: "is geen getal"
         not_a_date: "is geen valide datum"
-        greater_than: "moet groter zijn dan {{count}}"
-        greater_than_or_equal_to: "moet groter zijn of gelijk zijn aan {{count}}"
-        equal_to: "moet gelijk zijn aan {{count}}"
-        less_than: "moet minder zijn dan {{count}}"
-        less_than_or_equal_to: "moet minder dan of gelijk zijn aan {{count}}"
+        greater_than: "moet groter zijn dan %{count}"
+        greater_than_or_equal_to: "moet groter zijn of gelijk zijn aan %{count}"
+        equal_to: "moet gelijk zijn aan %{count}"
+        less_than: "moet minder zijn dan %{count}"
+        less_than_or_equal_to: "moet minder dan of gelijk zijn aan %{count}"
         odd: "moet oneven zijn"
         even: "moet even zijn"
         greater_than_start_date: "moet na de startdatum liggen"
@@ -182,10 +186,10 @@
   enumeration_activities: Activiteiten (tijdtracking)
   enumeration_doc_categories: Documentcategorieën
   enumeration_issue_priorities: Issueprioriteiten
-  error_can_t_load_default_data: "De standaard configuratie kon niet worden geladen: {{value}}"
+  error_can_t_load_default_data: "De standaard configuratie kon niet worden geladen: %{value}"
   error_issue_not_found_in_project: 'Deze issue is niet gevonden of behoort niet toe tot dit project.'
   error_scm_annotate: "Er kan geen commentaar toegevoegd worden."
-  error_scm_command_failed: "Er trad een fout op tijdens de poging om verbinding te maken met de repository: {{value}}"
+  error_scm_command_failed: "Er trad een fout op tijdens de poging om verbinding te maken met de repository: %{value}"
   error_scm_not_found: "Deze ingang of revisie bestaat niet in de repository."
   field_account: Account
   field_activity: Activiteit
@@ -256,6 +260,7 @@
   field_role: Rol
   field_searchable: Doorzoekbaar
   field_spent_on: Datum
+  field_start_date: Startdatum
   field_start_page: Startpagina
   field_status: Status
   field_subject: Onderwerp
@@ -270,9 +275,9 @@
   field_user: Gebruiker
   field_value: Waarde
   field_version: Versie
-  general_csv_decimal_separator: '.'
+  general_csv_decimal_separator: ','
   general_csv_encoding: ISO-8859-1
-  general_csv_separator: ','
+  general_csv_separator: ';'
   general_first_day_of_week: '7'
   general_lang_name: 'Nederlands'
   general_pdf_encoding: ISO-8859-1
@@ -281,19 +286,19 @@
   general_text_no: 'nee'
   general_text_yes: 'ja'
   gui_validation_error: 1 fout
-  gui_validation_error_plural: "{{count}} fouten"
+  gui_validation_error_plural: "%{count} fouten"
   label_activity: Activiteit
   label_add_another_file: Ander bestand toevoegen
   label_add_note: Voeg een notitie toe
   label_added: toegevoegd
-  label_added_time_by: "Toegevoegd door {{author}} {{age}} geleden"
+  label_added_time_by: "Toegevoegd door %{author} %{age} geleden"
   label_administration: Administratie
   label_age: Leeftijd
   label_ago: dagen geleden
   label_all: alle
   label_all_time: alles
   label_all_words: Alle woorden
-  label_and_its_subprojects: "{{value}} en zijn subprojecten."
+  label_and_its_subprojects: "%{value} en zijn subprojecten."
   label_applied_status: Toegekende status
   label_assigned_to_me_issues: Aan mij toegewezen issues
   label_associated_revisions: Geassociëerde revisies
@@ -326,17 +331,17 @@
   label_closed_issues: gesloten
   label_closed_issues_plural: gesloten
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Commentaar
   label_comment_add: Voeg commentaar toe
   label_comment_added: Commentaar toegevoegd
@@ -345,7 +350,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Commits per auteur
   label_commits_per_month: Commits per maand
   label_confirmation: Bevestiging
@@ -369,13 +374,13 @@
   label_diff_inline: inline
   label_diff_side_by_side: naast elkaar
   label_disabled: uitgeschakeld
-  label_display_per_page: "Per pagina: {{value}}"
+  label_display_per_page: "Per pagina: %{value}"
   label_document: Document
   label_document_added: Document toegevoegd
   label_document_new: Nieuw document
   label_document_plural: Documenten
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_downloads_abbr: D/L
   label_duplicated_by: gedupliceerd door
   label_duplicates: dupliceert
@@ -387,10 +392,10 @@
   label_equals: is gelijk
   label_example: Voorbeeld
   label_export_to: Exporteer naar
-  label_f_hour: "{{value}} uur"
-  label_f_hour_plural: "{{value}} uren"
+  label_f_hour: "%{value} uur"
+  label_f_hour_plural: "%{value} uren"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "RSS toegangssleutel {{value}} geleden gemaakt."
+  label_feeds_access_key_created_on: "RSS toegangssleutel %{value} geleden gemaakt."
   label_file_added: Bericht toegevoegd
   label_file_plural: Bestanden
   label_filter_add: Voeg filter toe
@@ -427,13 +432,13 @@
   label_issue_updated: Issue bijgewerkt
   label_issue_view_all: Bekijk alle issues
   label_issue_watchers: Monitoren
-  label_issues_by: "Issues door {{value}}"
+  label_issues_by: "Issues door %{value}"
   label_jump_to_a_project: Ga naar een project...
   label_language_based: Taal gebaseerd
-  label_last_changes: "laatste {{count}} wijzigingen"
+  label_last_changes: "laatste %{count} wijzigingen"
   label_last_login: Laatste bezoek
   label_last_month: laatste maand
-  label_last_n_days: "{{count}} dagen geleden"
+  label_last_n_days: "%{count} dagen geleden"
   label_last_week: vorige week
   label_latest_revision: Meest recente revisie
   label_latest_revision_plural: Meest recente revisies
@@ -454,8 +459,8 @@
   label_message_plural: Berichten
   label_message_posted: Bericht toegevoegd
   label_min_max_length: Min-max lengte
-  label_modification: "{{count}} wijziging"
-  label_modification_plural: "{{count}} wijzigingen"
+  label_modification: "%{count} wijziging"
+  label_modification_plural: "%{count} wijzigingen"
   label_modified: gewijzigd
   label_module_plural: Modules
   label_month: Maand
@@ -506,7 +511,7 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_public_projects: Publieke projecten
   label_query: Eigen zoekvraag
   label_query_new: Nieuwe zoekvraag
@@ -533,9 +538,9 @@
   label_revision: Revisie
   label_revision_plural: Revisies
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Voldaan in {{value}}"
+  label_roadmap_due_in: "Voldaan in %{value}"
   label_roadmap_no_issues: Geen issues voor deze versie
-  label_roadmap_overdue: "{{value}} over tijd"
+  label_roadmap_overdue: "%{value} over tijd"
   label_role: Rol
   label_role_and_permissions: Rollen en permissies
   label_role_new: Nieuwe rol
@@ -547,7 +552,7 @@
   label_send_test_email: Stuur een test e-mail
   label_settings: Instellingen
   label_show_completed_versions: Toon afgeronde versies
-  label_sort_by: "Sorteer op {{value}}"
+  label_sort_by: "Sorteer op %{value}"
   label_sort_higher: Verplaats naar boven
   label_sort_highest: Verplaats naar begin
   label_sort_lower: Verplaats naar beneden
@@ -571,11 +576,11 @@
   label_tracker: Tracker
   label_tracker_new: Nieuwe tracker
   label_tracker_plural: Trackers
-  label_updated_time: "{{value}} geleden bijgewerkt"
-  label_updated_time_by: "{{age}} geleden bijgewerkt door {{author}}"
+  label_updated_time: "%{value} geleden bijgewerkt"
+  label_updated_time_by: "%{age} geleden bijgewerkt door %{author}"
   label_used_by: Gebruikt door
   label_user: Gebruiker
-  label_user_activity: "{{value}}'s activiteit"
+  label_user_activity: "%{value}'s activiteit"
   label_user_mail_no_self_notified: "Ik wil niet op de hoogte gehouden worden van wijzigingen die ik zelf maak."
   label_user_mail_option_all: "Bij elk gebeurtenis in al mijn projecten..."
   label_user_mail_option_selected: "Enkel bij elke gebeurtenis op het geselecteerde project..."
@@ -596,16 +601,16 @@
   label_workflow: Workflow
   label_year: Jaar
   label_yesterday: gisteren
-  mail_body_account_activation_request: "Een nieuwe gebruiker ({{value}}) is geregistreerd. Zijn account wacht op uw akkoord:"
+  mail_body_account_activation_request: "Een nieuwe gebruiker (%{value}) is geregistreerd. Zijn account wacht op uw akkoord:"
   mail_body_account_information: Uw account gegevens
-  mail_body_account_information_external: "U kunt uw account ({{value}}) gebruiken om in te loggen."
+  mail_body_account_information_external: "U kunt uw account (%{value}) gebruiken om in te loggen."
   mail_body_lost_password: 'Gebruik de volgende link om uw wachtwoord te wijzigen:'
   mail_body_register: 'Gebruik de volgende link om uw account te activeren:'
-  mail_body_reminder: "{{count}} issue(s) die aan u toegewezen zijn en voldaan moeten zijn in de komende {{days}} dagen:"
-  mail_subject_account_activation_request: "{{value}} accountactivatieverzoek"
-  mail_subject_lost_password: "uw {{value}} wachtwoord"
-  mail_subject_register: "uw {{value}} accountactivatie"
-  mail_subject_reminder: "{{count}} issue(s) die voldaan moeten zijn in de komende {{days}} dagen."
+  mail_body_reminder: "%{count} issue(s) die aan u toegewezen zijn en voldaan moeten zijn in de komende %{days} dagen:"
+  mail_subject_account_activation_request: "%{value} accountactivatieverzoek"
+  mail_subject_lost_password: "uw %{value} wachtwoord"
+  mail_subject_register: "uw %{value} accountactivatie"
+  mail_subject_reminder: "%{count} issue(s) die voldaan moeten zijn in de komende %{days} dagen."
   notice_account_activated: uw account is geactiveerd. u kunt nu inloggen.
   notice_account_invalid_creditentials: Incorrecte gebruikersnaam of wachtwoord
   notice_account_lost_email_sent: Er is een e-mail naar u verstuurd met instructies over het kiezen van een nieuw wachtwoord.
@@ -617,9 +622,9 @@
   notice_account_wrong_password: Incorrect wachtwoord
   notice_can_t_change_password: Dit account gebruikt een externe bron voor authenticatie. Het is niet mogelijk om het wachtwoord te veranderen.
   notice_default_data_loaded: Standaard configuratie succesvol geladen.
-  notice_email_error: "Er is een fout opgetreden tijdens het versturen van ({{value}})"
-  notice_email_sent: "Een e-mail werd verstuurd naar {{value}}"
-  notice_failed_to_save_issues: "Fout bij bewaren van {{count}} issue(s) ({{total}} geselecteerd): {{ids}}."
+  notice_email_error: "Er is een fout opgetreden tijdens het versturen van (%{value})"
+  notice_email_sent: "Een e-mail werd verstuurd naar %{value}"
+  notice_failed_to_save_issues: "Fout bij bewaren van %{count} issue(s) (%{total} geselecteerd): %{ids}."
   notice_feeds_access_key_reseted: Je RSS toegangssleutel werd gereset.
   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.
@@ -730,25 +735,25 @@
   status_registered: geregistreerd
   text_are_you_sure: Weet u het zeker?
   text_assign_time_entries_to_project: Gerapporteerde uren toevoegen aan dit project
-  text_caracters_maximum: "{{count}} van maximum aantal tekens."
-  text_caracters_minimum: "Moet minstens {{count}} karakters lang zijn."
+  text_caracters_maximum: "%{count} van maximum aantal tekens."
+  text_caracters_minimum: "Moet minstens %{count} karakters lang zijn."
   text_comma_separated: Meerdere waarden toegestaan (kommagescheiden).
   text_default_administrator_account_changed: Standaard beheerderaccount gewijzigd
   text_destroy_time_entries: Verwijder gerapporteerde uren
-  text_destroy_time_entries_question: "{{hours}} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
+  text_destroy_time_entries_question: "%{hours} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
   text_diff_truncated: '... Deze diff werd afgekort omdat het de maximale weer te geven karakters overschreed.'
   text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/email.yml en herstart de applicatie om dit te activeren."
   text_enumeration_category_reassign_to: 'Wijs de volgende waarde toe:'
-  text_enumeration_destroy_question: "{{count}} objecten zijn toegewezen aan deze waarde."
+  text_enumeration_destroy_question: "%{count} objecten zijn toegewezen aan deze waarde."
   text_file_repository_writable: Bestandsrepository beschrijfbaar
-  text_issue_added: "Issue {{id}} is gerapporteerd (door {{author}})."
+  text_issue_added: "Issue %{id} is gerapporteerd (door %{author})."
   text_issue_category_destroy_assignments: Verwijder toewijzingen aan deze categorie
-  text_issue_category_destroy_question: "Er zijn issues ({{count}}) aan deze categorie toegewezen. Wat wilt u hiermee doen ?"
+  text_issue_category_destroy_question: "Er zijn issues (%{count}) aan deze categorie toegewezen. Wat wilt u hiermee doen ?"
   text_issue_category_reassign_to: Issues opnieuw toewijzen aan deze categorie
-  text_issue_updated: "Issue {{id}} is gewijzigd (door {{author}})."
+  text_issue_updated: "Issue %{id} is gewijzigd (door %{author})."
   text_issues_destroy_confirmation: 'Weet u zeker dat u deze issue(s) wil verwijderen?'
   text_issues_ref_in_commit_messages: Opzoeken en aanpassen van issues in commitberichten
-  text_length_between: "Lengte tussen {{min}} en {{max}} tekens."
+  text_length_between: "Lengte tussen %{min} en %{max} tekens."
   text_load_default_configuration: Laad de standaardconfiguratie
   text_min_max_length_info: 0 betekent geen restrictie
   text_no_configuration_data: "Rollen, trackers, issue statussen en workflows zijn nog niet geconfigureerd.\nHet is ten zeerste aangeraden om de standaard configuratie in te laden. U kunt deze aanpassen nadat deze is ingeladen."
@@ -761,18 +766,18 @@
   text_rmagick_available: RMagick beschikbaar (optioneel)
   text_select_mail_notifications: Selecteer acties waarvoor mededelingen via mail moeten worden verstuurd.
   text_select_project_modules: 'Selecteer de modules die u wilt gebruiken voor dit project:'
-  text_status_changed_by_changeset: "Toegepast in changeset {{value}}."
-  text_subprojects_destroy_warning: "De subprojecten: {{value}} zullen ook verwijderd worden."
+  text_status_changed_by_changeset: "Toegepast in changeset %{value}."
+  text_subprojects_destroy_warning: "De subprojecten: %{value} zullen ook verwijderd worden."
   text_tip_issue_begin_day: issue die op deze dag begint
   text_tip_issue_begin_end_day: issue die op deze dag begint en eindigt
   text_tip_issue_end_day: issue die op deze dag eindigt
   text_tracker_no_workflow: Geen workflow gedefinieerd voor deze tracker
   text_unallowed_characters: Niet toegestane tekens
   text_user_mail_option: "Bij niet-geselecteerde projecten zult u enkel notificaties ontvangen voor issues die u monitort of waar u bij betrokken bent (als auteur of toegewezen persoon)."
-  text_user_wrote: "{{value}} schreef:"
+  text_user_wrote: "%{value} schreef:"
   text_wiki_destroy_confirmation: Weet u zeker dat u deze wiki en zijn inhoud wenst te verwijderen?
   text_workflow_edit: Selecteer een rol en een tracker om de workflow te wijzigen
-  warning_attachments_not_saved: "{{count}} bestand(en) konden niet opgeslagen worden."
+  warning_attachments_not_saved: "%{count} bestand(en) konden niet opgeslagen worden."
   button_create_and_continue: Maak en ga verder
   text_custom_field_possible_values_info: 'Per lijn een waarde'
   label_display: Toon
@@ -787,21 +792,21 @@
   label_descending: Aflopend
   label_sort: Sorteer
   label_ascending: Oplopend
-  label_date_from_to: Van {{start}} tot {{end}}
+  label_date_from_to: Van %{start} tot %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Deze pagina heeft {{descendants}} subpagina's en onderliggende pagina's?. Wil wil je ermee doen?
+  text_wiki_page_destroy_question: Deze pagina heeft %{descendants} subpagina's en onderliggende pagina's?. Wil wil je ermee doen?
   text_wiki_page_reassign_children: Alle subpagina's toewijzen aan deze hoofdpagina
   text_wiki_page_nullify_children: Behoud subpagina's als hoofdpagina's
   text_wiki_page_destroy_children: Verwijder alle subpagina's en onderliggende pagina's
   setting_password_min_length: Minimum wachtwoord lengte
   field_group_by: Groepeer resultaten per
-  mail_subject_wiki_content_updated: "'{{id}}' wiki pagina is bijgewerkt"
+  mail_subject_wiki_content_updated: "'%{id}' wiki pagina is bijgewerkt"
   label_wiki_content_added: Wiki pagina toegevoegd
-  mail_subject_wiki_content_added: "'{{id}}' wiki pagina is toegevoegd"
-  mail_body_wiki_content_added: The '{{id}}' wiki pagina is toegevoegd door {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki pagina is toegevoegd"
+  mail_body_wiki_content_added: The '%{id}' wiki pagina is toegevoegd door %{author}.
   label_wiki_content_updated: Wiki pagina bijgewerkt
-  mail_body_wiki_content_updated: The '{{id}}' wiki pagina is bijgewerkt door {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki pagina is bijgewerkt door %{author}.
   permission_add_project: Maak project
   setting_new_project_user_role_id: Rol van gebruiker die een project maakt
   label_view_all_revisions: Bekijk alle revisies
@@ -809,14 +814,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Geen tracker is geassocieerd met dit project. Check de project instellingen.
   error_no_default_issue_status: Geen standaard issue status ingesteld. Check de configuratie (Ga naar "Administratie -> Issue statussen").
-  text_journal_changed: "{{label}} gewijzigd van {{old}} naar {{new}}"
-  text_journal_set_to: "{{label}} gewijzigd naar {{value}}"
-  text_journal_deleted: "{{label}} verwijderd ({{old}})"
+  text_journal_changed: "%{label} gewijzigd van %{old} naar %{new}"
+  text_journal_set_to: "%{label} gewijzigd naar %{value}"
+  text_journal_deleted: "%{label} verwijderd (%{old})"
   label_group_plural: Groepen
   label_group: Groep
   label_group_new: Nieuwe groep
   label_time_entry_plural: Bestede tijd
-  text_journal_added: "{{label}} {{value}} toegevoegd"
+  text_journal_added: "%{label} %{value} toegevoegd"
   field_active: Actief
   enumeration_system_activity: Systeem Activiteit
   permission_delete_issue_watchers: Verwijder volgers
@@ -851,9 +856,9 @@
   setting_start_of_week: Week begint op
   permission_view_issues: Bekijk Issues
   label_display_used_statuses_only: Laat alleen statussen zien die gebruikt worden door deze tracker
-  label_revision_id: Revisie {{value}}
+  label_revision_id: Revisie %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key gemaakt {{value}} geleden
+  label_api_access_key_created_on: API access key gemaakt %{value} geleden
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Uw API access key was gereset.
   setting_rest_api_enabled: Activeer REST web service
@@ -880,12 +885,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Stuur email notificaties voor de project kopie
   error_can_not_delete_custom_field: Verwijderen niet mogelijk van custom field
-  error_unable_to_connect: Geen connectie ({{value}})
+  error_unable_to_connect: Geen connectie (%{value})
   error_can_not_remove_role: Deze rol is in gebruik en kan niet worden verwijderd.
   error_can_not_delete_tracker: Deze tracker bevat nog issues en kan niet worden verwijderd.
   field_principal: Principal
   label_my_page_block: Mijn pagina block
-  notice_failed_to_save_members: "Niet gelukt om lid/leden op te slaan: {{errors}}."
+  notice_failed_to_save_members: "Niet gelukt om lid/leden op te slaan: %{errors}."
   text_zoom_out: Zoom uit
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Verwijderen niet mogelijk van tijd log invoer.
@@ -893,7 +898,7 @@
   field_time_entries: Log tijd
   project_module_gantt: Gantt
   project_module_calendar: Kalender
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -904,8 +909,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/no.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/no.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -27,37 +27,37 @@
       half_a_minute: "et halvt minutt"
       less_than_x_seconds:
         one: "mindre enn 1 sekund"
-        other: "mindre enn {{count}} sekunder"
+        other: "mindre enn %{count} sekunder"
       x_seconds:
         one: "1 sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one: "mindre enn 1 minutt"
-        other: "mindre enn {{count}} minutter"
+        other: "mindre enn %{count} minutter"
       x_minutes:
         one: "1 minutt"
-        other: "{{count}} minutter"
+        other: "%{count} minutter"
       about_x_hours:
         one: "rundt 1 time"
-        other: "rundt {{count}} timer"
+        other: "rundt %{count} timer"
       x_days:
         one: "1 dag"
-        other: "{{count}} dager"
+        other: "%{count} dager"
       about_x_months:
         one: "rundt 1 måned"
-        other: "rundt {{count}} måneder"
+        other: "rundt %{count} måneder"
       x_months:
         one: "1 måned"
-        other: "{{count}} måneder"
+        other: "%{count} måneder"
       about_x_years:
         one: "rundt 1 år"
-        other: "rundt {{count}} år"
+        other: "rundt %{count} år"
       over_x_years:
         one: "over 1 år"
-        other: "over {{count}} år"
+        other: "over %{count} år"
       almost_x_years:
         one:   "nesten 1 år"
-        other: "nesten {{count}} år"
+        other: "nesten %{count} år"
   number:
     format:
       precision: 2
@@ -86,7 +86,7 @@
   activerecord:
     errors:
       template:
-        header: "kunne ikke lagre {{model}} på grunn av {{count}} feil."
+        header: "kunne ikke lagre %{model} på grunn av %{count} feil."
         body: "det oppstod problemer i følgende felt:"
       messages:
         inclusion: "er ikke inkludert i listen"
@@ -96,16 +96,16 @@
         accepted: "må være akseptert"
         empty: "kan ikke være tom"
         blank: "kan ikke være blank"
-        too_long: "er for lang (maksimum {{count}} tegn)"
-        too_short: "er for kort (minimum {{count}} tegn)"
-        wrong_length: "er av feil lengde (maksimum {{count}} tegn)"
+        too_long: "er for lang (maksimum %{count} tegn)"
+        too_short: "er for kort (minimum %{count} tegn)"
+        wrong_length: "er av feil lengde (maksimum %{count} tegn)"
         taken: "er allerede i bruk"
         not_a_number: "er ikke et tall"
-        greater_than: "må være større enn {{count}}"
-        greater_than_or_equal_to: "må være større enn eller lik {{count}}"
-        equal_to: "må være lik {{count}}"
-        less_than: "må være mindre enn {{count}}"
-        less_than_or_equal_to: "må være mindre enn eller lik {{count}}"
+        greater_than: "må være større enn %{count}"
+        greater_than_or_equal_to: "må være større enn eller lik %{count}"
+        equal_to: "må være lik %{count}"
+        less_than: "må være mindre enn %{count}"
+        less_than_or_equal_to: "må være mindre enn eller lik %{count}"
         odd: "må være oddetall"
         even: "må være partall"
         greater_than_start_date: "må være større enn startdato"
@@ -143,33 +143,33 @@
   notice_file_not_found: Siden du forsøkte å vise eksisterer ikke, eller er slettet.
   notice_locking_conflict: Data har blitt oppdatert av en annen bruker.
   notice_not_authorized: Du har ikke adgang til denne siden.
-  notice_email_sent: "En e-post er sendt til {{value}}"
-  notice_email_error: "En feil oppstod under sending av e-post ({{value}})"
+  notice_email_sent: "En e-post er sendt til %{value}"
+  notice_email_error: "En feil oppstod under sending av e-post (%{value})"
   notice_feeds_access_key_reseted: Din RSS-tilgangsnøkkel er nullstilt.
-  notice_failed_to_save_issues: "Lykkes ikke å lagre {{count}} sak(er) på {{total}} valgt: {{ids}}."
+  notice_failed_to_save_issues: "Lykkes ikke å lagre %{count} sak(er) på %{total} valgt: %{ids}."
   notice_no_issue_selected: "Ingen sak valgt! Vennligst merk sakene du vil endre."
   notice_account_pending: "Din konto ble opprettet og avventer nå administrativ godkjenning."
   notice_default_data_loaded: Standardkonfigurasjonen lastet inn.
   
-  error_can_t_load_default_data: "Standardkonfigurasjonen kunne ikke lastes inn: {{value}}"
+  error_can_t_load_default_data: "Standardkonfigurasjonen kunne ikke lastes inn: %{value}"
   error_scm_not_found: "Elementet og/eller revisjonen eksisterer ikke i depoet."
-  error_scm_command_failed: "En feil oppstod under tilkobling til depoet: {{value}}"
+  error_scm_command_failed: "En feil oppstod under tilkobling til depoet: %{value}"
   error_scm_annotate: "Elementet eksisterer ikke, eller kan ikke noteres."
   error_issue_not_found_in_project: 'Saken eksisterer ikke, eller hører ikke til dette prosjektet'
   
-  mail_subject_lost_password: "Ditt {{value}} passord"
+  mail_subject_lost_password: "Ditt %{value} passord"
   mail_body_lost_password: 'Klikk følgende lenke for å endre ditt passord:'
-  mail_subject_register: "{{value}} kontoaktivering"
+  mail_subject_register: "%{value} kontoaktivering"
   mail_body_register: 'Klikk følgende lenke for å aktivere din konto:'
-  mail_body_account_information_external: "Du kan bruke din {{value}}-konto for å logge inn."
+  mail_body_account_information_external: "Du kan bruke din %{value}-konto for å logge inn."
   mail_body_account_information: Informasjon om din konto
-  mail_subject_account_activation_request: "{{value}} kontoaktivering"
-  mail_body_account_activation_request: "En ny bruker ({{value}}) er registrert, og avventer din godkjenning:"
-  mail_subject_reminder: "{{count}} sak(er) har frist de kommende {{days}} dagene"
-  mail_body_reminder: "{{count}} sak(er) som er tildelt deg har frist de kommende {{days}} dager:"
+  mail_subject_account_activation_request: "%{value} kontoaktivering"
+  mail_body_account_activation_request: "En ny bruker (%{value}) er registrert, og avventer din godkjenning:"
+  mail_subject_reminder: "%{count} sak(er) har frist de kommende %{days} dagene"
+  mail_body_reminder: "%{count} sak(er) som er tildelt deg har frist de kommende %{days} dager:"
   
   gui_validation_error: 1 feil
-  gui_validation_error_plural: "{{count}} feil"
+  gui_validation_error_plural: "%{count} feil"
   
   field_name: Navn
   field_description: Beskrivelse
@@ -231,6 +231,7 @@
   field_attr_lastname: Etternavnsattributt
   field_attr_mail: E-post-attributt
   field_onthefly: On-the-fly brukeropprettelse
+  field_start_date: Start
   field_done_ratio: % Ferdig
   field_auth_source: Autentifikasjonsmodus
   field_hide_mail: Skjul min e-post-adresse
@@ -305,14 +306,14 @@
   label_x_projects:
     zero:  ingen prosjekter
     one:   1 prosjekt
-    other: "{{count}} prosjekter"
+    other: "%{count} prosjekter"
   label_project_all: Alle prosjekter
   label_project_latest: Siste prosjekter
   label_issue: Sak
   label_issue_new: Ny sak
   label_issue_plural: Saker
   label_issue_view_all: Vis alle saker
-  label_issues_by: "Saker etter {{value}}"
+  label_issues_by: "Saker etter %{value}"
   label_issue_added: Sak lagt til
   label_issue_updated: Sak oppdatert
   label_document: Dokument
@@ -368,7 +369,7 @@
   label_auth_source_new: Ny autentifikasjonmodus
   label_auth_source_plural: Autentifikasjonsmoduser
   label_subproject_plural: Underprosjekter
-  label_and_its_subprojects: "{{value}} og dets underprosjekter"
+  label_and_its_subprojects: "%{value} og dets underprosjekter"
   label_min_max_length: Min.-maks. lengde
   label_list: Liste
   label_date: Dato
@@ -379,8 +380,8 @@
   label_text: Lang tekst
   label_attribute: Attributt
   label_attribute_plural: Attributter
-  label_download: "{{count}} Nedlasting"
-  label_download_plural: "{{count}} Nedlastinger"
+  label_download: "%{count} Nedlasting"
+  label_download_plural: "%{count} Nedlastinger"
   label_no_data: Ingen data å vise
   label_change_status: Endre status
   label_history: Historikk
@@ -411,17 +412,17 @@
   label_closed_issues: lukket
   label_closed_issues_plural: lukkede
   label_x_open_issues_abbr_on_total:
-    zero:  0 åpne / {{total}}
-    one:   1 åpen / {{total}}
-    other: "{{count}} åpne / {{total}}"
+    zero:  0 åpne / %{total}
+    one:   1 åpen / %{total}
+    other: "%{count} åpne / %{total}"
   label_x_open_issues_abbr:
     zero:  0 åpne
     one:   1 åpen
-    other: "{{count}} åpne"
+    other: "%{count} åpne"
   label_x_closed_issues_abbr:
     zero:  0 lukka
     one:   1 lukka
-    other: "{{count}} lukka"
+    other: "%{count} lukka"
   label_total: Totalt
   label_permissions: Godkjenninger
   label_current_status: Nåværende status
@@ -439,7 +440,7 @@
   label_months_from: måneder fra
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "siste {{count}} endringer"
+  label_last_changes: "siste %{count} endringer"
   label_change_view_all: Vis alle endringer
   label_personalize_page: Tilpass denne siden
   label_comment: Kommentar
@@ -447,7 +448,7 @@
   label_x_comments:
     zero: no kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Legg til kommentar
   label_comment_added: Kommentar lagt til
   label_comment_delete: Slett kommentar
@@ -466,7 +467,7 @@
   label_yesterday: i går
   label_this_week: denne uken
   label_last_week: sist uke
-  label_last_n_days: "siste {{count}} dager"
+  label_last_n_days: "siste %{count} dager"
   label_this_month: denne måneden
   label_last_month: siste måned
   label_this_year: dette året
@@ -480,8 +481,8 @@
   label_repository: Depot
   label_repository_plural: Depoter
   label_browse: Utforsk
-  label_modification: "{{count}} endring"
-  label_modification_plural: "{{count}} endringer"
+  label_modification: "%{count} endring"
+  label_modification_plural: "%{count} endringer"
   label_revision: Revisjon
   label_revision_plural: Revisjoner
   label_associated_revisions: Assosierte revisjoner
@@ -497,8 +498,8 @@
   label_sort_lower: Flytt ned
   label_sort_lowest: Flytt til bunnen
   label_roadmap: Veikart
-  label_roadmap_due_in: "Frist om {{value}}"
-  label_roadmap_overdue: "{{value}} over fristen"
+  label_roadmap_due_in: "Frist om %{value}"
+  label_roadmap_overdue: "%{value} over fristen"
   label_roadmap_no_issues: Ingen saker for denne versjonen
   label_search: Søk
   label_result_plural: Resultater
@@ -516,8 +517,8 @@
   label_changes_details: Detaljer om alle endringer
   label_issue_tracking: Sakssporing
   label_spent_time: Brukt tid
-  label_f_hour: "{{value}} time"
-  label_f_hour_plural: "{{value}} timer"
+  label_f_hour: "%{value} time"
+  label_f_hour_plural: "%{value} timer"
   label_time_tracking: Tidssporing
   label_change_plural: Endringer
   label_statistics: Statistikk
@@ -566,12 +567,12 @@
   label_date_from: Fra
   label_date_to: Til
   label_language_based: Basert på brukerens språk
-  label_sort_by: "Sorter etter {{value}}"
+  label_sort_by: "Sorter etter %{value}"
   label_send_test_email: Send en e-post-test
-  label_feeds_access_key_created_on: "RSS tilgangsnøkkel opprettet for {{value}} siden"
+  label_feeds_access_key_created_on: "RSS tilgangsnøkkel opprettet for %{value} siden"
   label_module_plural: Moduler
-  label_added_time_by: "Lagt til av {{author}} for {{age}} siden"
-  label_updated_time: "Oppdatert for {{value}} siden"
+  label_added_time_by: "Lagt til av %{author} for %{age} siden"
+  label_updated_time: "Oppdatert for %{value} siden"
   label_jump_to_a_project: GÃ¥ til et prosjekt...
   label_file_plural: Filer
   label_changeset_plural: Endringssett
@@ -587,7 +588,7 @@
   label_registration_activation_by_email: kontoaktivering pr. e-post
   label_registration_manual_activation: manuell kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Pr. side: {{value}}"
+  label_display_per_page: "Pr. side: %{value}"
   label_age: Alder
   label_change_properties: Endre egenskaper
   label_general: Generell
@@ -649,40 +650,40 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 betyr ingen begrensning
   text_project_destroy_confirmation: Er du sikker på at du vil slette dette prosjekter og alle relatert data ?
-  text_subprojects_destroy_warning: "Underprojekt(ene): {{value}} vil også bli slettet."
+  text_subprojects_destroy_warning: "Underprojekt(ene): %{value} vil også bli slettet."
   text_workflow_edit: Velg en rolle og en sakstype for å endre arbeidsflyten
   text_are_you_sure: Er du sikker ?
   text_tip_issue_begin_day: oppgaven starter denne dagen
   text_tip_issue_end_day: oppgaven avsluttes denne dagen
   text_tip_issue_begin_end_day: oppgaven starter og avsluttes denne dagen
   text_project_identifier_info: 'Små bokstaver (a-z), nummer og bindestrek tillatt.<br />Identifikatoren kan ikke endres etter den er lagret.'
-  text_caracters_maximum: "{{count}} tegn maksimum."
-  text_caracters_minimum: "Må være minst {{count}} tegn langt."
-  text_length_between: "Lengde mellom {{min}} og {{max}} tegn."
+  text_caracters_maximum: "%{count} tegn maksimum."
+  text_caracters_minimum: "Må være minst %{count} tegn langt."
+  text_length_between: "Lengde mellom %{min} og %{max} tegn."
   text_tracker_no_workflow: Ingen arbeidsflyt definert for denne sakstypen
   text_unallowed_characters: Ugyldige tegn
   text_comma_separated: Flere verdier tillat (kommaseparert).
   text_issues_ref_in_commit_messages: Referering og retting av saker i innsendingsmelding
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Er du sikker på at du vil slette denne wikien og alt innholdet ?
-  text_issue_category_destroy_question: "Noen saker ({{count}}) er lagt til i denne kategorien. Hva vil du gjøre ?"
+  text_issue_category_destroy_question: "Noen saker (%{count}) er lagt til i denne kategorien. Hva vil du gjøre ?"
   text_issue_category_destroy_assignments: Fjern bruk av kategorier
   text_issue_category_reassign_to: Overfør sakene til denne kategorien
   text_user_mail_option: "For ikke-valgte prosjekter vil du bare motta varsling om ting du overvåker eller er involveret i (eks. saker du er forfatter av eller er tildelt)."
   text_no_configuration_data: "Roller, arbeidsflyt, sakstyper og -statuser er ikke konfigurert enda.\nDet anbefales sterkt å laste inn standardkonfigurasjonen. Du vil kunne endre denne etter den er innlastet."
   text_load_default_configuration: Last inn standardkonfigurasjonen
-  text_status_changed_by_changeset: "Brukt i endringssett {{value}}."
+  text_status_changed_by_changeset: "Brukt i endringssett %{value}."
   text_issues_destroy_confirmation: 'Er du sikker på at du vil slette valgte sak(er) ?'
   text_select_project_modules: 'Velg moduler du vil aktivere for dette prosjektet:'
   text_default_administrator_account_changed: Standard administrator-konto er endret
   text_file_repository_writable: Fil-arkivet er skrivbart
   text_rmagick_available: RMagick er tilgjengelig (valgfritt)
-  text_destroy_time_entries_question: "{{hours}} timer er ført på sakene du er i ferd med å slette. Hva vil du gjøre ?"
+  text_destroy_time_entries_question: "%{hours} timer er ført på sakene du er i ferd med å slette. Hva vil du gjøre ?"
   text_destroy_time_entries: Slett førte timer
   text_assign_time_entries_to_project: Overfør førte timer til prosjektet
   text_reassign_time_entries: 'Overfør førte timer til denne saken:'
-  text_user_wrote: "{{value}} skrev:"
+  text_user_wrote: "%{value} skrev:"
   
   default_role_manager: Leder
   default_role_developer: Utvikler
@@ -710,7 +711,7 @@
   enumeration_doc_categories: Dokument-kategorier
   enumeration_activities: Aktiviteter (tidssporing)
   text_enumeration_category_reassign_to: 'Endre dem til denne verdien:'
-  text_enumeration_destroy_question: "{{count}} objekter er endret til denne verdien."
+  text_enumeration_destroy_question: "%{count} objekter er endret til denne verdien."
   label_incoming_emails: Innkommende e-post
   label_generate_key: Generer en nøkkel
   setting_mail_handler_api_enabled: Skru på WS for innkommende e-post
@@ -776,12 +777,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -796,21 +797,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -818,14 +819,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -860,9 +861,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -889,12 +890,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -902,7 +903,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -913,8 +914,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/pl.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/pl.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -61,50 +61,50 @@
       half_a_minute: "pół minuty"
       less_than_x_seconds:
         one:   "mniej niż sekundę"
-        few:   "mniej niż {{count}} sekundy"
-        other: "mniej niż {{count}} sekund"
+        few:   "mniej niż %{count} sekundy"
+        other: "mniej niż %{count} sekund"
       x_seconds:
         one:   "sekundÄ™"
-        few:   "{{count}} sekundy"
-        other: "{{count}} sekund"
+        few:   "%{count} sekundy"
+        other: "%{count} sekund"
       less_than_x_minutes:
         one:   "mniej niż minutę"
-        few:   "mniej niż {{count}} minuty"
-        other: "mniej niż {{count}} minut"
+        few:   "mniej niż %{count} minuty"
+        other: "mniej niż %{count} minut"
       x_minutes:
         one:   "minutÄ™"
-        few:   "{{count}} minuty"
-        other: "{{count}} minut"
+        few:   "%{count} minuty"
+        other: "%{count} minut"
       about_x_hours:
         one:   "około godziny"
-        other: "około {{count}} godzin"
+        other: "około %{count} godzin"
       x_days:
         one:   "1 dzień"
-        other: "{{count}} dni"
+        other: "%{count} dni"
       about_x_months:
         one:   "około miesiąca"
-        other: "około {{count}} miesięcy"
+        other: "około %{count} miesięcy"
       x_months:
         one:   "1 miesiÄ…c"
-        few:   "{{count}} miesiÄ…ce"
-        other: "{{count}} miesięcy"
+        few:   "%{count} miesiÄ…ce"
+        other: "%{count} miesięcy"
       about_x_years:
         one:   "około roku"
-        other: "około {{count}} lat"
+        other: "około %{count} lat"
       over_x_years:
         one:   "ponad rok"
-        few:   "ponad {{count}} lata"
-        other: "ponad {{count}} lat"
+        few:   "ponad %{count} lata"
+        other: "ponad %{count} lat"
       almost_x_years:
         one:   "prawie rok"
-        other: "prawie {{count}} lata"
+        other: "prawie %{count} lata"
 
   activerecord:
     errors:
       template:
         header:
-          one:    "{{model}} nie został zachowany z powodu jednego błędu"
-          other:  "{{model}} nie został zachowany z powodu {{count}} błędów"
+          one:    "%{model} nie został zachowany z powodu jednego błędu"
+          other:  "%{model} nie został zachowany z powodu %{count} błędów"
         body: "Błędy dotyczą następujących pól:"
       messages:
         inclusion: "nie znajduje się na liście dopuszczalnych wartości"
@@ -114,16 +114,16 @@
         accepted: "musi być zaakceptowane"
         empty: "nie może być puste"
         blank: "nie może być puste"
-        too_long: "jest za długie (maksymalnie {{count}} znaków)"
-        too_short: "jest za krótkie (minimalnie {{count}} znaków)"
-        wrong_length: "jest nieprawidłowej długości (powinna wynosić {{count}} znaków)"
+        too_long: "jest za długie (maksymalnie %{count} znaków)"
+        too_short: "jest za krótkie (minimalnie %{count} znaków)"
+        wrong_length: "jest nieprawidłowej długości (powinna wynosić %{count} znaków)"
         taken: "jest już zajęte"
         not_a_number: "nie jest liczbÄ…"
-        greater_than: "musi być większe niż {{count}}"
-        greater_than_or_equal_to: "musi być większe lub równe {{count}}"
-        equal_to: "musi być równe {{count}}"
-        less_than: "musi być mniejsze niż {{count}}"
-        less_than_or_equal_to: "musi być mniejsze lub równe {{count}}"
+        greater_than: "musi być większe niż %{count}"
+        greater_than_or_equal_to: "musi być większe lub równe %{count}"
+        equal_to: "musi być równe %{count}"
+        less_than: "musi być mniejsze niż %{count}"
+        less_than_or_equal_to: "musi być mniejsze lub równe %{count}"
         odd: "musi być nieparzyste"
         even: "musi być parzyste"
         greater_than_start_date: "musi być większe niż początkowa data"
@@ -203,10 +203,10 @@
   enumeration_activities: Działania (śledzenie czasu)
   enumeration_doc_categories: Kategorie dokumentów
   enumeration_issue_priorities: Priorytety zagadnień
-  error_can_t_load_default_data: "Domyślna konfiguracja nie może być załadowana: {{value}}"
+  error_can_t_load_default_data: "Domyślna konfiguracja nie może być załadowana: %{value}"
   error_issue_not_found_in_project: 'Zaganienie nie zostało znalezione lub nie należy do tego projektu'
   error_scm_annotate: "Wpis nie istnieje lub nie można do niego dodawać adnotacji."
-  error_scm_command_failed: "Wystąpił błąd przy próbie dostępu do repozytorium: {{value}}"
+  error_scm_command_failed: "Wystąpił błąd przy próbie dostępu do repozytorium: %{value}"
   error_scm_not_found: "Obiekt lub wersja nie zostały znalezione w repozytorium."
   field_account: Konto
   field_activity: Aktywność
@@ -277,6 +277,7 @@
   field_role: Rola
   field_searchable: Przeszukiwalne
   field_spent_on: Data
+  field_start_date: Start
   field_start_page: Strona startowa
   field_status: Status
   field_subject: Temat
@@ -304,21 +305,21 @@
   general_text_no: 'nie'
   general_text_yes: 'tak'
   gui_validation_error: 1 błąd
-  gui_validation_error_plural234: "{{count}} błędy"
-  gui_validation_error_plural5: "{{count}} błędów"
-  gui_validation_error_plural: "{{count}} błędów"
+  gui_validation_error_plural234: "%{count} błędy"
+  gui_validation_error_plural5: "%{count} błędów"
+  gui_validation_error_plural: "%{count} błędów"
   label_activity: Aktywność
   label_add_another_file: Dodaj kolejny plik
   label_add_note: Dodaj notatkÄ™
   label_added: dodane
-  label_added_time_by: "Dodane przez {{author}} {{age}} temu"
+  label_added_time_by: "Dodane przez %{author} %{age} temu"
   label_administration: Administracja
   label_age: Wiek
   label_ago: dni temu
   label_all: wszystko
   label_all_time: cały czas
   label_all_words: Wszystkie słowa
-  label_and_its_subprojects: "{{value}} i podprojekty"
+  label_and_its_subprojects: "%{value} i podprojekty"
   label_applied_status: Stosowany status
   label_assigned_to_me_issues: Zagadnienia przypisane do mnie
   label_associated_revisions: Skojarzone rewizje
@@ -333,7 +334,7 @@
   label_auth_source_plural: Tryby identyfikacji
   label_authentication: Identyfikacja
   label_blocked_by: zablokowane przez
-  label_blocks: blokady
+  label_blocks: blokuje
   label_board: Forum
   label_board_new: Nowe forum
   label_board_plural: Fora
@@ -353,17 +354,17 @@
   label_closed_issues_plural5: zamknięte
   label_closed_issues_plural: zamknięte
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Komentarz
   label_comment_add: Dodaj komentarz
   label_comment_added: Komentarz dodany
@@ -374,7 +375,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Zatwierdzenia według autorów
   label_commits_per_month: Zatwierdzenia według miesięcy
   label_confirmation: Potwierdzenie
@@ -398,18 +399,18 @@
   label_diff_inline: w linii
   label_diff_side_by_side: obok siebie
   label_disabled: zablokowany
-  label_display_per_page: "Na stronÄ™: {{value}}"
+  label_display_per_page: "Na stronÄ™: %{value}"
   label_document: Dokument
   label_document_added: Dodano dokument
   label_document_new: Nowy dokument
   label_document_plural: Dokumenty
-  label_download: "{{count}} Pobranie"
-  label_download_plural234: "{{count}} Pobrania"
-  label_download_plural5: "{{count}} Pobrań"
-  label_download_plural: "{{count}} Pobrania"
+  label_download: "%{count} Pobranie"
+  label_download_plural234: "%{count} Pobrania"
+  label_download_plural5: "%{count} Pobrań"
+  label_download_plural: "%{count} Pobrania"
   label_downloads_abbr: Pobieranie
   label_duplicated_by: zduplikowane przez
-  label_duplicates: duplikaty
+  label_duplicates: duplikuje
   label_end_to_end: koniec do końca
   label_end_to_start: koniec do poczÄ…tku
   label_enumeration_new: Nowa wartość
@@ -418,10 +419,10 @@
   label_equals: równa się
   label_example: Przykład
   label_export_to: Eksportuj do
-  label_f_hour: "{{value}} godzina"
-  label_f_hour_plural: "{{value}} godzin"
+  label_f_hour: "%{value} godzina"
+  label_f_hour_plural: "%{value} godzin"
   label_feed_plural: Ilość RSS
-  label_feeds_access_key_created_on: "Klucz dostępu RSS stworzony {{value}} dni temu"
+  label_feeds_access_key_created_on: "Klucz dostępu RSS stworzony %{value} dni temu"
   label_file_added: Dodano plik
   label_file_plural: Pliki
   label_filter_add: Dodaj filtr
@@ -458,13 +459,13 @@
   label_issue_updated: Uaktualniono zagadnienie
   label_issue_view_all: Zobacz wszystkie zagadnienia
   label_issue_watchers: Obserwatorzy
-  label_issues_by: "Zagadnienia wprowadzone przez {{value}}"
+  label_issues_by: "Zagadnienia wprowadzone przez %{value}"
   label_jump_to_a_project: Skocz do projektu...
   label_language_based: Na podstawie języka
-  label_last_changes: "ostatnie {{count}} zmian"
+  label_last_changes: "ostatnie %{count} zmian"
   label_last_login: Ostatnie połączenie
   label_last_month: ostatni miesiÄ…c
-  label_last_n_days: "ostatnie {{count}} dni"
+  label_last_n_days: "ostatnie %{count} dni"
   label_last_week: ostatni tydzień
   label_latest_revision: Najnowsza rewizja
   label_latest_revision_plural: Najnowsze rewizje
@@ -485,10 +486,10 @@
   label_message_plural: Wiadomości
   label_message_posted: Dodano wiadomość
   label_min_max_length: Min - Maks długość
-  label_modification: "{{count}} modyfikacja"
-  label_modification_plural234: "{{count}} modyfikacje"
-  label_modification_plural5: "{{count}} modyfikacji"
-  label_modification_plural: "{{count}} modyfikacje"
+  label_modification: "%{count} modyfikacja"
+  label_modification_plural234: "%{count} modyfikacje"
+  label_modification_plural5: "%{count} modyfikacji"
+  label_modification_plural: "%{count} modyfikacje"
   label_modified: zmodyfikowane
   label_module_plural: Moduły
   label_month: MiesiÄ…c
@@ -543,7 +544,7 @@
   label_x_projects:
     zero:  brak projektów
     one:   jeden projekt
-    other: "{{count}} projektów"
+    other: "%{count} projektów"
   label_public_projects: Projekty publiczne
   label_query: Kwerenda
   label_query_new: Nowa kwerenda
@@ -572,7 +573,7 @@
   label_roadmap: Mapa
   label_roadmap_due_in: W czasie
   label_roadmap_no_issues: Brak zagadnień do tej wersji
-  label_roadmap_overdue: "{{value}} spóźnienia"
+  label_roadmap_overdue: "%{value} spóźnienia"
   label_role: Rola
   label_role_and_permissions: Role i Uprawnienia
   label_role_new: Nowa rola
@@ -584,7 +585,7 @@
   label_send_test_email: Wyślij próbny email
   label_settings: Ustawienia
   label_show_completed_versions: Pokaż kompletne wersje
-  label_sort_by: "Sortuj po {{value}}"
+  label_sort_by: "Sortuj po %{value}"
   label_sort_higher: Do góry
   label_sort_highest: Przesuń na górę
   label_sort_lower: Do dołu
@@ -608,7 +609,7 @@
   label_tracker: Typ zagadnienia
   label_tracker_new: Nowy typ zagadnienia
   label_tracker_plural: Typy zagadnień
-  label_updated_time: "Zaktualizowane {{value}} temu"
+  label_updated_time: "Zaktualizowane %{value} temu"
   label_used_by: Używane przez
   label_user: Użytkownik
   label_user_mail_no_self_notified: "Nie chcę powiadomień o zmianach, które sam wprowadzam."
@@ -631,16 +632,16 @@
   label_workflow: Przepływ
   label_year: Rok
   label_yesterday: wczoraj
-  mail_body_account_activation_request: "Zarejestrowano nowego użytkownika: ({{value}}). Konto oczekuje na twoje zatwierdzenie:"
+  mail_body_account_activation_request: "Zarejestrowano nowego użytkownika: (%{value}). Konto oczekuje na twoje zatwierdzenie:"
   mail_body_account_information: Twoje konto
-  mail_body_account_information_external: "Możesz użyć twojego {{value}} konta do zalogowania."
+  mail_body_account_information_external: "Możesz użyć twojego %{value} konta do zalogowania."
   mail_body_lost_password: 'W celu zmiany swojego hasła użyj poniższego odnośnika:'
   mail_body_register: 'W celu aktywacji Twojego konta, użyj poniższego odnośnika:'
-  mail_body_reminder: "Wykaz przypisanych do Ciebie zagadnień, których termin wypada w ciągu następnych {{count}} dni"
-  mail_subject_account_activation_request: "Zapytanie aktywacyjne konta {{value}}"
-  mail_subject_lost_password: "Twoje hasło do {{value}}"
-  mail_subject_register: "Aktywacja konta w {{value}}"
-  mail_subject_reminder: "Uwaga na terminy, masz zagadnienia do obsłużenia w ciągu następnych {{count}} dni! ({{days}})"
+  mail_body_reminder: "Wykaz przypisanych do Ciebie zagadnień, których termin wypada w ciągu następnych %{count} dni"
+  mail_subject_account_activation_request: "Zapytanie aktywacyjne konta %{value}"
+  mail_subject_lost_password: "Twoje hasło do %{value}"
+  mail_subject_register: "Aktywacja konta w %{value}"
+  mail_subject_reminder: "Uwaga na terminy, masz zagadnienia do obsłużenia w ciągu następnych %{count} dni! (%{days})"
   notice_account_activated: Twoje konto zostało aktywowane. Możesz się zalogować.
   notice_account_invalid_creditentials: Zły użytkownik lub hasło
   notice_account_lost_email_sent: Email z instrukcjami zmiany hasła został wysłany do Ciebie.
@@ -652,9 +653,9 @@
   notice_account_wrong_password: Złe hasło
   notice_can_t_change_password: To konto ma zewnętrzne źródło identyfikacji. Nie możesz zmienić hasła.
   notice_default_data_loaded: Domyślna konfiguracja została pomyślnie załadowana.
-  notice_email_error: "Wystąpił błąd w trakcie wysyłania maila ({{value}})"
-  notice_email_sent: "Email został wysłany do {{value}}"
-  notice_failed_to_save_issues: "Błąd podczas zapisu zagadnień {{count}} z {{total}} zaznaczonych: {{ids}}."
+  notice_email_error: "Wystąpił błąd w trakcie wysyłania maila (%{value})"
+  notice_email_sent: "Email został wysłany do %{value}"
+  notice_failed_to_save_issues: "Błąd podczas zapisu zagadnień %{count} z %{total} zaznaczonych: %{ids}."
   notice_feeds_access_key_reseted: Twój klucz dostępu RSS został zrestetowany.
   notice_file_not_found: Strona do której próbujesz się dostać nie istnieje lub została usunięta.
   notice_locking_conflict: Dane poprawione przez innego użytkownika.
@@ -764,24 +765,24 @@
   status_registered: zarejestrowany
   text_are_you_sure: JesteÅ› pewien ?
   text_assign_time_entries_to_project: Przypisz wpisy dziennika do projektu
-  text_caracters_maximum: "{{count}} znaków maksymalnie."
-  text_caracters_minimum: "Musi być nie krótsze niż {{count}} znaków."
+  text_caracters_maximum: "%{count} znaków maksymalnie."
+  text_caracters_minimum: "Musi być nie krótsze niż %{count} znaków."
   text_comma_separated: Wielokrotne wartości dozwolone (rozdzielone przecinkami).
   text_default_administrator_account_changed: Zmieniono domyślne hasło administratora
   text_destroy_time_entries: Usuń wpisy dziennika
-  text_destroy_time_entries_question: Przepracowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
+  text_destroy_time_entries_question: Przepracowano %{hours} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
   text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml  a następnie zrestartuj aplikację i uaktywnij to."
   text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:'
-  text_enumeration_destroy_question: "{{count}} obiektów jest przypisana do tej wartości."
+  text_enumeration_destroy_question: "%{count} obiektów jest przypisana do tej wartości."
   text_file_repository_writable: Zapisywalne repozytorium plików
-  text_issue_added: "Zagadnienie {{id}} zostało wprowadzone (by {{author}})."
+  text_issue_added: "Zagadnienie %{id} zostało wprowadzone (by %{author})."
   text_issue_category_destroy_assignments: Usuń przydziały kategorii
-  text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz zrobić?"
+  text_issue_category_destroy_question: "Zagadnienia (%{count}) są przypisane do tej kategorii. Co chcesz zrobić?"
   text_issue_category_reassign_to: Przydziel zagadnienie do tej kategorii
-  text_issue_updated: "Zagadnienie {{id}} zostało zaktualizowane (by {{author}})."
+  text_issue_updated: "Zagadnienie %{id} zostało zaktualizowane (by %{author})."
   text_issues_destroy_confirmation: 'Czy jestes pewien, że chcesz usunąć wskazane zagadnienia?'
   text_issues_ref_in_commit_messages: Odwołania do zagadnień w komentarzach zatwierdzeń
-  text_length_between: "Długość pomiędzy {{min}} i {{max}} znaków."
+  text_length_between: "Długość pomiędzy %{min} i %{max} znaków."
   text_load_default_configuration: Załaduj domyślną konfigurację
   text_min_max_length_info: 0 oznacza brak restrykcji
   text_no_configuration_data: "Role użytkowników, typy zagadnień, statusy zagadnień oraz przepływ pracy nie zostały jeszcze skonfigurowane.\nJest wysoce rekomendowane by załadować domyślną konfigurację. Po załadowaniu będzie możliwość edycji tych danych."
@@ -793,24 +794,24 @@
   text_rmagick_available: RMagick dostępne (opcjonalnie)
   text_select_mail_notifications: Zaznacz czynności przy których użytkownik powinien być powiadomiony mailem.
   text_select_project_modules: 'Wybierz moduły do aktywacji w tym projekcie:'
-  text_status_changed_by_changeset: "Zastosowane w zmianach {{value}}."
-  text_subprojects_destroy_warning: "Podprojekt(y): {{value}} zostaną także usunięte."
+  text_status_changed_by_changeset: "Zastosowane w zmianach %{value}."
+  text_subprojects_destroy_warning: "Podprojekt(y): %{value} zostaną także usunięte."
   text_tip_issue_begin_day: zadanie zaczynajÄ…ce siÄ™ dzisiaj
   text_tip_issue_begin_end_day: zadanie zaczynające i kończące się dzisiaj
   text_tip_issue_end_day: zadanie kończące się dzisiaj
   text_tracker_no_workflow: Brak przepływu zdefiniowanego dla tego typu zagadnienia
   text_unallowed_characters: Niedozwolone znaki
   text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnień, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)."
-  text_user_wrote: "{{value}} napisał:"
+  text_user_wrote: "%{value} napisał:"
   text_wiki_destroy_confirmation: Jesteś pewien, że chcesz usunąć to wiki i całą jego zawartość ?
   text_workflow_edit: Zaznacz rolę i typ zagadnienia do edycji przepływu
   
-  label_user_activity: "Aktywność: {{value}}"
-  label_updated_time_by: "Uaktualnione przez {{author}} {{age}} temu"
+  label_user_activity: "Aktywność: %{value}"
+  label_updated_time_by: "Uaktualnione przez %{author} %{age} temu"
   text_diff_truncated: '... Ten plik różnic został przycięty ponieważ jest zbyt długi.'
   setting_diff_max_lines_displayed: Maksymalna liczba linii różnicy do pokazania
   text_plugin_assets_writable: Zapisywalny katalog zasobów wtyczek
-  warning_attachments_not_saved: "{{count}} załącznik(ów) nie zostało zapisanych."
+  warning_attachments_not_saved: "%{count} załącznik(ów) nie zostało zapisanych."
   field_editable: Edytowalne
   label_display: WyglÄ…d
   button_create_and_continue: Stwórz i dodaj kolejne
@@ -825,21 +826,21 @@
   label_descending: MalejÄ…co
   label_sort: Sortuj
   label_ascending: RosnÄ…co
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Ta strona posiada podstrony ({{descendants}}). Co chcesz zrobić?
+  text_wiki_page_destroy_question: Ta strona posiada podstrony (%{descendants}). Co chcesz zrobić?
   text_wiki_page_reassign_children: Podepnij je do strony nadrzędnej względem usuwanej
   text_wiki_page_nullify_children: Przesuń je na szczyt hierarchii
   text_wiki_page_destroy_children: Usuń wszystkie podstrony
   setting_password_min_length: Minimalna długość hasła
   field_group_by: Grupuj wyniki wg
-  mail_subject_wiki_content_updated: "Strona wiki '{{id}}' została uaktualniona"
+  mail_subject_wiki_content_updated: "Strona wiki '%{id}' została uaktualniona"
   label_wiki_content_added: Dodano stronÄ™ wiki
-  mail_subject_wiki_content_added: "Strona wiki '{{id}}' została dodana"
-  mail_body_wiki_content_added: Strona wiki '{{id}}' została dodana przez {{author}}.
+  mail_subject_wiki_content_added: "Strona wiki '%{id}' została dodana"
+  mail_body_wiki_content_added: Strona wiki '%{id}' została dodana przez %{author}.
   label_wiki_content_updated: Uaktualniono stronÄ™ wiki
-  mail_body_wiki_content_updated: Strona wiki '{{id}}' została uaktualniona przez {{author}}.
+  mail_body_wiki_content_updated: Strona wiki '%{id}' została uaktualniona przez %{author}.
   permission_add_project: Tworzenie projektu
   setting_new_project_user_role_id: Rola nadawana twórcom projektów, którzy nie posiadają uprawnień administatora
   label_view_all_revisions: Pokaż wszystkie rewizje
@@ -847,14 +848,14 @@
   label_branch: Gałąź
   error_no_tracker_in_project: Projekt nie posiada powiązanych typów zagadnień. Sprawdź ustawienia projektu.
   error_no_default_issue_status: Nie zdefiniowano domyślnego statusu zagadnień. Sprawdź konfigurację (Przejdź do "Administracja -> Statusy zagadnień).
-  text_journal_changed: "Zmieniono {{label}} z {{old}} na {{new}}"
-  text_journal_set_to: "Ustawiono {{label}} na {{value}}"
-  text_journal_deleted: "Usunięto {{label}} ({{old}})"
+  text_journal_changed: "Zmieniono %{label} z %{old} na %{new}"
+  text_journal_set_to: "Ustawiono %{label} na %{value}"
+  text_journal_deleted: "Usunięto %{label} (%{old})"
   label_group_plural: Grupy
   label_group: Grupa
   label_group_new: Nowa grupa
   label_time_entry_plural: Przepracowany czas
-  text_journal_added: "Dodano {{label}} {{value}}"
+  text_journal_added: "Dodano %{label} %{value}"
   field_active: Aktywne
   enumeration_system_activity: Aktywność Systemowa
   button_copy_and_follow: Kopiuj i przejdź do kopii zagadnienia
@@ -868,7 +869,7 @@
   error_workflow_copy_target: Proszę wybrać docelowe typ(y) zagadnień i rolę(e)
   field_sharing: Współdzielenie
   label_api_access_key: Klucz dostępu do API
-  label_api_access_key_created_on: Klucz dostępu do API został utworzony {{value}} temu
+  label_api_access_key_created_on: Klucz dostępu do API został utworzony %{value} temu
   label_close_versions: Zamknij ukończone wersje
   label_copy_same_as_target: Jak cel
   label_copy_source: Źródło
@@ -877,7 +878,7 @@
   label_feeds_access_key: Klucz dostępu do RSS
   label_missing_api_access_key: Brakuje klucza dostępu do API
   label_missing_feeds_access_key: Brakuje klucza dostępu do RSS
-  label_revision_id: Rewizja {{value}}
+  label_revision_id: Rewizja %{value}
   label_subproject_new: Nowy podprojekt
   label_update_issue_done_ratios: Uaktualnij % wykonania
   label_user_anonymous: Anonimowy
@@ -919,12 +920,12 @@
   label_subtask_plural: Podzagadnienia
   label_project_copy_notifications: Wyślij powiadomienia mailowe przy kopiowaniu projektu
   error_can_not_delete_custom_field: Nie można usunąć tego pola
-  error_unable_to_connect: Nie można połączyć ({{value}})
+  error_unable_to_connect: Nie można połączyć (%{value})
   error_can_not_remove_role: Ta rola przypisana jest niektórym użytkownikom i nie może zostać usunięta.
   error_can_not_delete_tracker: Ten typ przypisany jest do części zagadnień i nie może zostać usunięty.
   field_principal: Przełożony
   label_my_page_block: Elementy
-  notice_failed_to_save_members: "Nie można zapisać uczestników: {{errors}}."
+  notice_failed_to_save_members: "Nie można zapisać uczestników: %{errors}."
   text_zoom_out: Zmniejsz czcionkÄ™
   text_zoom_in: Powiększ czcionkę
   notice_unable_delete_time_entry: Nie można usunąć wpisu z dziennika.
@@ -932,7 +933,7 @@
   field_time_entries: Dziennik
   project_module_gantt: Diagram Gantta
   project_module_calendar: Kalendarz
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -943,8 +944,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/pt-BR.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/pt-BR.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -33,46 +33,46 @@
       half_a_minute: 'meio minuto'
       less_than_x_seconds:
         one: 'menos de 1 segundo'
-        other: 'menos de {{count}} segundos'
+        other: 'menos de %{count} segundos'
 
       x_seconds:
         one: '1 segundo'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
 
       less_than_x_minutes:
         one: 'menos de um minuto'
-        other: 'menos de {{count}} minutos'
+        other: 'menos de %{count} minutos'
 
       x_minutes:
         one: '1 minuto'
-        other: '{{count}} minutos'
+        other: '%{count} minutos'
 
       about_x_hours:
         one: 'aproximadamente 1 hora'
-        other: 'aproximadamente {{count}} horas'
+        other: 'aproximadamente %{count} horas'
 
       x_days:
         one: '1 dia'
-        other: '{{count}} dias'
+        other: '%{count} dias'
 
       about_x_months:
         one: 'aproximadamente 1 mês'
-        other: 'aproximadamente {{count}} meses'
+        other: 'aproximadamente %{count} meses'
 
       x_months:
         one: '1 mês'
-        other: '{{count}} meses'
+        other: '%{count} meses'
 
       about_x_years:
         one: 'aproximadamente 1 ano'
-        other: 'aproximadamente {{count}} anos'
+        other: 'aproximadamente %{count} anos'
 
       over_x_years:
         one: 'mais de 1 ano'
-        other: 'mais de {{count}} anos'
+        other: 'mais de %{count} anos'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   # numeros
   number:
@@ -118,7 +118,7 @@
       template:
         header:
           one: "model não pode ser salvo: 1 erro"
-          other: "model não pode ser salvo: {{count}} erros."
+          other: "model não pode ser salvo: %{count} erros."
         body: "Por favor, verifique os seguintes campos:"
       messages:
         inclusion: "não está incluso na lista"
@@ -128,16 +128,16 @@
         accepted: "precisa ser aceito"
         empty: "não pode ficar vazio"
         blank: "não pode ficar vazio"
-        too_long: "é muito longo (máximo: {{count}} caracteres)"
-        too_short: "é muito curto (mínimon: {{count}} caracteres)"
-        wrong_length: "deve ter {{count}} caracteres"
+        too_long: "é muito longo (máximo: %{count} caracteres)"
+        too_short: "é muito curto (mínimon: %{count} caracteres)"
+        wrong_length: "deve ter %{count} caracteres"
         taken: "não está disponível"
         not_a_number: "não é um número"
-        greater_than: "precisa ser maior do que {{count}}"
-        greater_than_or_equal_to: "precisa ser maior ou igual a {{count}}"
-        equal_to: "precisa ser igual a {{count}}"
-        less_than: "precisa ser menor do que {{count}}"
-        less_than_or_equal_to: "precisa ser menor ou igual a {{count}}"
+        greater_than: "precisa ser maior do que %{count}"
+        greater_than_or_equal_to: "precisa ser maior ou igual a %{count}"
+        equal_to: "precisa ser igual a %{count}"
+        less_than: "precisa ser menor do que %{count}"
+        less_than_or_equal_to: "precisa ser menor ou igual a %{count}"
         odd: "precisa ser ímpar"
         even: "precisa ser par"
         greater_than_start_date: "deve ser maior que a data inicial"
@@ -174,35 +174,35 @@
   notice_file_not_found: A página que você está tentando acessar não existe ou foi excluída.
   notice_locking_conflict: Os dados foram atualizados por outro usuário.
   notice_not_authorized: Você não está autorizado a acessar esta página.
-  notice_email_sent: "Um e-mail foi enviado para {{value}}"
-  notice_email_error: "Ocorreu um erro ao enviar o e-mail ({{value}})"
+  notice_email_sent: "Um e-mail foi enviado para %{value}"
+  notice_email_error: "Ocorreu um erro ao enviar o e-mail (%{value})"
   notice_feeds_access_key_reseted: Sua chave RSS foi reconfigurada.
-  notice_failed_to_save_issues: "Problema ao salvar {{count}} tarefa(s) de {{total}} selecionadas: {{ids}}."
+  notice_failed_to_save_issues: "Problema ao salvar %{count} tarefa(s) de %{total} selecionadas: %{ids}."
   notice_no_issue_selected: "Nenhuma tarefa selecionada! Por favor, marque as tarefas que você deseja editar."
   notice_account_pending: "Sua conta foi criada e está aguardando aprovação do administrador."
   notice_default_data_loaded: Configuração padrão carregada com sucesso.
 
-  error_can_t_load_default_data: "A configuração padrão não pode ser carregada: {{value}}"
+  error_can_t_load_default_data: "A configuração padrão não pode ser carregada: %{value}"
   error_scm_not_found: "A entrada e/ou a revisão não existe no repositório."
-  error_scm_command_failed: "Ocorreu um erro ao tentar acessar o repositório: {{value}}"
+  error_scm_command_failed: "Ocorreu um erro ao tentar acessar o repositório: %{value}"
   error_scm_annotate: "Esta entrada não existe ou não pode ser anotada."
   error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projeto'
   error_no_tracker_in_project: 'Não há um tipo de tarefa associado a este projeto. Favor verificar as configurações do projeto.'
   error_no_default_issue_status: 'A situação padrão para tarefa não está definida. Favor verificar sua configuração (Vá em "Administração -> Situação da tarefa").'
 
-  mail_subject_lost_password: "Sua senha do {{value}}."
+  mail_subject_lost_password: "Sua senha do %{value}."
   mail_body_lost_password: 'Para mudar sua senha, clique no link abaixo:'
-  mail_subject_register: "Ativação de conta do {{value}}."
+  mail_subject_register: "Ativação de conta do %{value}."
   mail_body_register: 'Para ativar sua conta, clique no link abaixo:'
-  mail_body_account_information_external: "Você pode usar sua conta do {{value}} para entrar."
+  mail_body_account_information_external: "Você pode usar sua conta do %{value} para entrar."
   mail_body_account_information: Informações sobre sua conta
-  mail_subject_account_activation_request: "{{value}} - Requisição de ativação de conta"
-  mail_body_account_activation_request: "Um novo usuário ({{value}}) se registrou. A conta está aguardando sua aprovação:"
-  mail_subject_reminder: "{{count}} tarefa(s) com data prevista para os próximos {{days}} dias"
-  mail_body_reminder: "{{count}} tarefa(s) para você com data prevista para os próximos {{days}} dias:"
+  mail_subject_account_activation_request: "%{value} - Requisição de ativação de conta"
+  mail_body_account_activation_request: "Um novo usuário (%{value}) se registrou. A conta está aguardando sua aprovação:"
+  mail_subject_reminder: "%{count} tarefa(s) com data prevista para os próximos %{days} dias"
+  mail_body_reminder: "%{count} tarefa(s) para você com data prevista para os próximos %{days} dias:"
 
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
 
   field_name: Nome
   field_description: Descrição
@@ -264,6 +264,7 @@
   field_attr_lastname: Atributo para sobrenome
   field_attr_mail: Atributo para e-mail
   field_onthefly: Criar usuários dinamicamente ("on-the-fly")
+  field_start_date: Início
   field_done_ratio: % Terminado
   field_auth_source: Modo de autenticação
   field_hide_mail: Ocultar meu e-mail
@@ -343,14 +344,14 @@
   label_x_projects:
     zero:  nenhum projeto
     one:   1 projeto
-    other: "{{count}} projetos"
+    other: "%{count} projetos"
   label_project_all: Todos os projetos
   label_project_latest: Últimos projetos
   label_issue: Tarefa
   label_issue_new: Nova tarefa
   label_issue_plural: Tarefas
   label_issue_view_all: Ver todas as tarefas
-  label_issues_by: "Tarefas por {{value}}"
+  label_issues_by: "Tarefas por %{value}"
   label_issue_added: Tarefa adicionada
   label_issue_updated: Tarefa atualizada
   label_document: Documento
@@ -406,7 +407,7 @@
   label_auth_source_new: Novo modo de autenticação
   label_auth_source_plural: Modos de autenticação
   label_subproject_plural: Sub-projetos
-  label_and_its_subprojects: "{{value}} e seus sub-projetos"
+  label_and_its_subprojects: "%{value} e seus sub-projetos"
   label_min_max_length: Tamanho mín-máx
   label_list: Lista
   label_date: Data
@@ -417,8 +418,8 @@
   label_text: Texto longo
   label_attribute: Atributo
   label_attribute_plural: Atributos
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nenhuma informação disponível
   label_change_status: Alterar situação
   label_history: Histórico
@@ -449,17 +450,17 @@
   label_closed_issues: Fechada
   label_closed_issues_plural: Fechadas
   label_x_open_issues_abbr_on_total:
-    zero:  0 aberta / {{total}}
-    one:   1 aberta / {{total}}
-    other: "{{count}} abertas / {{total}}"
+    zero:  0 aberta / %{total}
+    one:   1 aberta / %{total}
+    other: "%{count} abertas / %{total}"
   label_x_open_issues_abbr:
     zero:  0 aberta
     one:   1 aberta
-    other: "{{count}} abertas"
+    other: "%{count} abertas"
   label_x_closed_issues_abbr:
     zero:  0 fechada
     one:   1 fechada
-    other: "{{count}} fechadas"
+    other: "%{count} fechadas"
   label_total: Total
   label_permissions: Permissões
   label_current_status: Situação atual
@@ -477,7 +478,7 @@
   label_months_from: meses a partir de
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "últimas {{count}} alterações"
+  label_last_changes: "últimas %{count} alterações"
   label_change_view_all: Mostrar todas as alterações
   label_personalize_page: Personalizar esta página
   label_comment: Comentário
@@ -485,7 +486,7 @@
   label_x_comments:
     zero: nenhum comentário
     one: 1 comentário
-    other: "{{count}} comentários"
+    other: "%{count} comentários"
   label_comment_add: Adicionar comentário
   label_comment_added: Comentário adicionado
   label_comment_delete: Excluir comentário
@@ -504,7 +505,7 @@
   label_yesterday: ontem
   label_this_week: esta semana
   label_last_week: última semana
-  label_last_n_days: "últimos {{count}} dias"
+  label_last_n_days: "últimos %{count} dias"
   label_this_month: este mês
   label_last_month: último mês
   label_this_year: este ano
@@ -518,8 +519,8 @@
   label_repository: Repositório
   label_repository_plural: Repositórios
   label_browse: Procurar
-  label_modification: "{{count}} alteração"
-  label_modification_plural: "{{count}} alterações"
+  label_modification: "%{count} alteração"
+  label_modification_plural: "%{count} alterações"
   label_revision: Revisão
   label_revision_plural: Revisões
   label_associated_revisions: Revisões associadas
@@ -535,8 +536,8 @@
   label_sort_lower: Mover para baixo
   label_sort_lowest: Mover para o fim
   label_roadmap: Planejamento
-  label_roadmap_due_in: "Previsto para {{value}}"
-  label_roadmap_overdue: "{{value}} atrasado"
+  label_roadmap_due_in: "Previsto para %{value}"
+  label_roadmap_overdue: "%{value} atrasado"
   label_roadmap_no_issues: Sem tarefas para esta versão
   label_search: Busca
   label_result_plural: Resultados
@@ -554,8 +555,8 @@
   label_changes_details: Detalhes de todas as alterações
   label_issue_tracking: Tarefas
   label_spent_time: Tempo gasto
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_time_tracking: Controle de horas
   label_change_plural: Alterações
   label_statistics: Estatísticas
@@ -604,12 +605,12 @@
   label_date_from: De
   label_date_to: Para
   label_language_based: Com base no idioma do usuário
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_send_test_email: Enviar um e-mail de teste
-  label_feeds_access_key_created_on: "chave de acesso RSS criada {{value}} atrás"
+  label_feeds_access_key_created_on: "chave de acesso RSS criada %{value} atrás"
   label_module_plural: Módulos
-  label_added_time_by: "Adicionado por {{author}} {{age}} atrás"
-  label_updated_time: "Atualizado {{value}} atrás"
+  label_added_time_by: "Adicionado por %{author} %{age} atrás"
+  label_updated_time: "Atualizado %{value} atrás"
   label_jump_to_a_project: Ir para o projeto...
   label_file_plural: Arquivos
   label_changeset_plural: Changesets
@@ -625,7 +626,7 @@
   label_registration_activation_by_email: ativação de conta por e-mail
   label_registration_manual_activation: ativação manual de conta
   label_registration_automatic_activation: ativação automática de conta
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_age: Idade
   label_change_properties: Alterar propriedades
   label_general: Geral
@@ -691,41 +692,41 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 = sem restrição
   text_project_destroy_confirmation: Você tem certeza que deseja excluir este projeto e todos os dados relacionados?
-  text_subprojects_destroy_warning: "Seu(s) subprojeto(s): {{value}} também serão excluídos."
+  text_subprojects_destroy_warning: "Seu(s) subprojeto(s): %{value} também serão excluídos."
   text_workflow_edit: Selecione um papel e um tipo de tarefa para editar o fluxo de trabalho
   text_are_you_sure: Você tem certeza?
   text_tip_issue_begin_day: tarefa inicia neste dia
   text_tip_issue_end_day: tarefa termina neste dia
   text_tip_issue_begin_end_day: tarefa inicia e termina neste dia
   text_project_identifier_info: 'Letras minúsculas (a-z), números e hífens permitidos.<br />Uma vez salvo, o identificador não poderá ser alterado.'
-  text_caracters_maximum: "máximo {{count}} caracteres"
-  text_caracters_minimum: "deve ter ao menos {{count}} caracteres."
-  text_length_between: "deve ter entre {{min}} e {{max}} caracteres."
+  text_caracters_maximum: "máximo %{count} caracteres"
+  text_caracters_minimum: "deve ter ao menos %{count} caracteres."
+  text_length_between: "deve ter entre %{min} e %{max} caracteres."
   text_tracker_no_workflow: Sem fluxo de trabalho definido para este tipo.
   text_unallowed_characters: Caracteres não permitidos
   text_comma_separated: Múltiplos valores são permitidos (separados por vírgula).
   text_issues_ref_in_commit_messages: Referenciando tarefas nas mensagens de commit
-  text_issue_added: "Tarefa {{id}} incluída (por {{author}})."
-  text_issue_updated: "Tarefa {{id}} alterada (por {{author}})."
+  text_issue_added: "Tarefa %{id} incluída (por %{author})."
+  text_issue_updated: "Tarefa %{id} alterada (por %{author})."
   text_wiki_destroy_confirmation: Você tem certeza que deseja excluir este wiki e TODO o seu conteúdo?
-  text_issue_category_destroy_question: "Algumas tarefas ({{count}}) estão atribuídas a esta categoria. O que você deseja fazer?"
+  text_issue_category_destroy_question: "Algumas tarefas (%{count}) estão atribuídas a esta categoria. O que você deseja fazer?"
   text_issue_category_destroy_assignments: Remover atribuições da categoria
   text_issue_category_reassign_to: Redefinir tarefas para esta categoria
   text_user_mail_option: "Para projetos (não selecionados), você somente receberá notificações sobre o que você está observando ou está envolvido (ex. tarefas das quais você é o autor ou que estão atribuídas a você)"
   text_no_configuration_data: "Os Papéis, tipos de tarefas, situação de tarefas e fluxos de trabalho não foram configurados ainda.\nÉ altamente recomendado carregar as configurações padrão. Você poderá modificar estas configurações assim que carregadas."
   text_load_default_configuration: Carregar a configuração padrão
-  text_status_changed_by_changeset: "Aplicado no changeset {{value}}."
+  text_status_changed_by_changeset: "Aplicado no changeset %{value}."
   text_issues_destroy_confirmation: 'Você tem certeza que deseja excluir a(s) tarefa(s) selecionada(s)?'
   text_select_project_modules: 'Selecione módulos para habilitar para este projeto:'
   text_default_administrator_account_changed: Conta padrão do administrador alterada
   text_file_repository_writable: Repositório com permissão de escrita
   text_rmagick_available: RMagick disponível (opcional)
-  text_destroy_time_entries_question: "{{hours}} horas de trabalho foram registradas nas tarefas que você está excluindo. O que você deseja fazer?"
+  text_destroy_time_entries_question: "%{hours} horas de trabalho foram registradas nas tarefas que você está excluindo. O que você deseja fazer?"
   text_destroy_time_entries: Excluir horas de trabalho
   text_assign_time_entries_to_project: Atribuir estas horas de trabalho para outro projeto
   text_reassign_time_entries: 'Atribuir horas reportadas para esta tarefa:'
-  text_user_wrote: "{{value}} escreveu:"
-  text_enumeration_destroy_question: "{{count}} objetos estão atribuídos a este valor."
+  text_user_wrote: "%{value} escreveu:"
+  text_enumeration_destroy_question: "%{count} objetos estão atribuídos a este valor."
   text_enumeration_category_reassign_to: 'Reatribuí-los ao valor:'
   text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/email.yml e reinicie a aplicação para ativá-las."
 
@@ -809,12 +810,12 @@
   text_repository_usernames_mapping: "Seleciona ou atualiza os usuários do Redmine mapeando para cada usuário encontrado no log do repositório.\nUsuários com o mesmo login ou e-mail no Redmine e no repositório serão mapeados automaticamente."
   permission_edit_own_messages: Editar próprias mensagens
   permission_delete_own_messages: Excluir próprias mensagens
-  label_user_activity: "Atividade de {{value}}"
-  label_updated_time_by: "Atualizado por {{author}} há {{age}}"
+  label_user_activity: "Atividade de %{value}"
+  label_updated_time_by: "Atualizado por %{author} há %{age}"
   text_diff_truncated: '... Este diff foi truncado porque excede o tamanho máximo que pode ser exibido.'
   setting_diff_max_lines_displayed: Número máximo de linhas exibidas no diff
   text_plugin_assets_writable: Diretório de plugins gravável
-  warning_attachments_not_saved: "{{count}} arquivo(s) não puderam ser salvo(s)."
+  warning_attachments_not_saved: "%{count} arquivo(s) não puderam ser salvo(s)."
   button_create_and_continue: Criar e continuar
   text_custom_field_possible_values_info: 'Uma linha para cada valor'
   label_display: Exibição
@@ -829,34 +830,34 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: De {{start}} até {{end}}
+  label_date_from_to: De %{start} até %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tem {{descendants}} página(s) filha(s) e descendente(s). O que você quer fazer?
+  text_wiki_page_destroy_question: Esta página tem %{descendants} página(s) filha(s) e descendente(s). O que você quer fazer?
   text_wiki_page_reassign_children: Reatribuir páginas filhas para esta página pai
   text_wiki_page_nullify_children: Manter as páginas filhas como páginas raízes
   text_wiki_page_destroy_children: Excluir páginas filhas e todas suas descendentes
   setting_password_min_length: Comprimento mínimo para senhas
   field_group_by: Agrupar por
-  mail_subject_wiki_content_updated: "A página wiki '{{id}}' foi atualizada"
+  mail_subject_wiki_content_updated: "A página wiki '%{id}' foi atualizada"
   label_wiki_content_added: Página wiki adicionada
-  mail_subject_wiki_content_added: "A página wiki '{{id}}' foi adicionada"
-  mail_body_wiki_content_added: A página wiki '{{id}}' foi adicionada por {{author}}.
+  mail_subject_wiki_content_added: "A página wiki '%{id}' foi adicionada"
+  mail_body_wiki_content_added: A página wiki '%{id}' foi adicionada por %{author}.
   label_wiki_content_updated: Página wiki atualizada
-  mail_body_wiki_content_updated: A página wiki '{{id}}' foi atualizada por {{author}}.
+  mail_body_wiki_content_updated: A página wiki '%{id}' foi atualizada por %{author}.
   permission_add_project: Criar projeto
   setting_new_project_user_role_id: Papel atribuído a um usuário não-administrador que cria um projeto
   label_view_all_revisions: Ver todas as revisões
   label_tag: Etiqueta
   label_branch: Ramo
-  text_journal_changed: "{{label}} alterado de {{old}} para {{new}}"
-  text_journal_set_to: "{{label}} ajustado para {{value}}"
-  text_journal_deleted: "{{label}} excluído ({{old}})"
+  text_journal_changed: "%{label} alterado de %{old} para %{new}"
+  text_journal_set_to: "%{label} ajustado para %{value}"
+  text_journal_deleted: "%{label} excluído (%{old})"
   label_group_plural: Grupos
   label_group: Grupo
   label_group_new: Novo grupo
   label_time_entry_plural: Tempos gastos
-  text_journal_added: "{{label}} {{value}} adicionado"
+  text_journal_added: "%{label} %{value} adicionado"
   field_active: Ativo
   enumeration_system_activity: Atividade do sistema
   permission_delete_issue_watchers: Excluir observadores
@@ -892,10 +893,10 @@
   field_watcher: Observador
   permission_view_issues: Ver tarefas
   label_display_used_statuses_only: Somente exibir situações que são usadas por este tipo de tarefa
-  label_revision_id: Revisão {{value}}
+  label_revision_id: Revisão %{value}
   label_api_access_key: Chave de acesso a API
   button_show: Exibir
-  label_api_access_key_created_on: Chave de acesso a API criado a {{value}} atrás
+  label_api_access_key_created_on: Chave de acesso a API criado a %{value} atrás
   label_feeds_access_key: Chave de acesso ao RSS
   notice_api_access_key_reseted: Sua chave de acesso a API foi redefinida.
   setting_rest_api_enabled: Habilitar REST web service
@@ -922,12 +923,12 @@
   label_subtask_plural: Subtarefas
   label_project_copy_notifications: Enviar notificações por e-mail ao copiar projeto
   error_can_not_delete_custom_field: Não foi possível excluir o campo personalizado
-  error_unable_to_connect: Não foi possível conectar ({{value}})
+  error_unable_to_connect: Não foi possível conectar (%{value})
   error_can_not_remove_role: Este papel está em uso e não pode ser excluído.
   error_can_not_delete_tracker: Este tipo de tarefa está atribuído a alguma(s) tarefa(s) e não pode ser excluído.
   field_principal: Principal
   label_my_page_block: Meu bloco de página
-  notice_failed_to_save_members: "Falha ao gravar membro(s): {{errors}}."
+  notice_failed_to_save_members: "Falha ao gravar membro(s): %{errors}."
   text_zoom_out: Afastar zoom
   text_zoom_in: Aproximar zoom
   notice_unable_delete_time_entry: Não foi possível excluir a entrada no registro de horas trabalhadas.
@@ -935,7 +936,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendário
-  button_edit_associated_wikipage: "Editar página wiki relacionada: {{page_title}}"
+  button_edit_associated_wikipage: "Editar página wiki relacionada: %{page_title}"
   text_are_you_sure_with_children: Excluir a tarefa e suas subtarefas?
   field_text: Campo de texto
   label_user_mail_option_only_owner: Somente para as coisas que eu criei
@@ -946,8 +947,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/pt.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/pt.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -33,37 +33,37 @@
       half_a_minute: "meio minuto"
       less_than_x_seconds:
         one: "menos de 1 segundo"
-        other: "menos de {{count}} segundos"
+        other: "menos de %{count} segundos"
       x_seconds:
         one: "1 segundo"
-        other: "{{count}} segundos"
+        other: "%{count} segundos"
       less_than_x_minutes: 
         one: "menos de um minuto"
-        other: "menos de {{count}} minutos"
+        other: "menos de %{count} minutos"
       x_minutes:
         one: "1 minuto"
-        other: "{{count}} minutos"
+        other: "%{count} minutos"
       about_x_hours:
         one: "aproximadamente 1 hora"
-        other: "aproximadamente {{count}} horas"
+        other: "aproximadamente %{count} horas"
       x_days:
         one: "1 dia"
-        other: "{{count}} dias"
+        other: "%{count} dias"
       about_x_months:
         one: "aproximadamente 1 mês"
-        other: "aproximadamente {{count}} meses"
+        other: "aproximadamente %{count} meses"
       x_months:
         one: "1 mês"
-        other: "{{count}} meses"
+        other: "%{count} meses"
       about_x_years:
         one: "aproximadamente 1 ano"
-        other: "aproximadamente {{count}} anos"
+        other: "aproximadamente %{count} anos"
       over_x_years:
         one: "mais de 1 ano"
-        other: "mais de {{count}} anos"
+        other: "mais de %{count} anos"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
         
   number:
     format:
@@ -102,8 +102,8 @@
     errors:
       template:
         header:
-          one: "Não foi possível guardar {{model}}: 1 erro"
-          other: "Não foi possível guardar {{model}}: {{count}} erros"
+          one: "Não foi possível guardar %{model}: 1 erro"
+          other: "Não foi possível guardar %{model}: %{count} erros"
         body: "Por favor, verifique os seguintes campos:"
       messages:
         inclusion: "não está incluído na lista"
@@ -113,16 +113,16 @@
         accepted:  "precisa de ser aceite"
         empty: "não pode estar em branco"
         blank: "não pode estar em branco"
-        too_long: "tem demasiados caracteres (máximo: {{count}} caracteres)"
-        too_short: "tem poucos caracteres (mínimo: {{count}} caracteres)"
-        wrong_length: "não é do tamanho correcto (necessita de ter {{count}} caracteres)"
+        too_long: "tem demasiados caracteres (máximo: %{count} caracteres)"
+        too_short: "tem poucos caracteres (mínimo: %{count} caracteres)"
+        wrong_length: "não é do tamanho correcto (necessita de ter %{count} caracteres)"
         taken: "não está disponível"
         not_a_number: "não é um número"
-        greater_than: "tem de ser maior do que {{count}}"
-        greater_than_or_equal_to: "tem de ser maior ou igual a {{count}}"
-        equal_to: "tem de ser igual a {{count}}"
-        less_than: "tem de ser menor do que {{count}}"
-        less_than_or_equal_to: "tem de ser menor ou igual a {{count}}"
+        greater_than: "tem de ser maior do que %{count}"
+        greater_than_or_equal_to: "tem de ser maior ou igual a %{count}"
+        equal_to: "tem de ser igual a %{count}"
+        less_than: "tem de ser menor do que %{count}"
+        less_than_or_equal_to: "tem de ser menor ou igual a %{count}"
         odd: "tem de ser ímpar"
         even: "tem de ser par"
         greater_than_start_date: "deve ser maior que a data inicial"
@@ -160,34 +160,34 @@
   notice_file_not_found: A página que está a tentar aceder não existe ou foi removida.
   notice_locking_conflict: Os dados foram actualizados por outro utilizador.
   notice_not_authorized: Não está autorizado a visualizar esta página.
-  notice_email_sent: "Foi enviado um e-mail para {{value}}"
-  notice_email_error: "Ocorreu um erro ao enviar o e-mail ({{value}})"
+  notice_email_sent: "Foi enviado um e-mail para %{value}"
+  notice_email_error: "Ocorreu um erro ao enviar o e-mail (%{value})"
   notice_feeds_access_key_reseted: A sua chave de RSS foi inicializada.
-  notice_failed_to_save_issues: "Não foi possível guardar {{count}} tarefa(s) das {{total}} seleccionadas: {{ids}}."
+  notice_failed_to_save_issues: "Não foi possível guardar %{count} tarefa(s) das %{total} seleccionadas: %{ids}."
   notice_no_issue_selected: "Nenhuma tarefa seleccionada! Por favor, seleccione as tarefas que quer editar."
   notice_account_pending: "A sua conta foi criada e está agora à espera de aprovação do administrador."
   notice_default_data_loaded: Configuração padrão carregada com sucesso.
   notice_unable_delete_version: Não foi possível apagar a versão.
   
-  error_can_t_load_default_data: "Não foi possível carregar a configuração padrão: {{value}}"
+  error_can_t_load_default_data: "Não foi possível carregar a configuração padrão: %{value}"
   error_scm_not_found: "A entrada ou revisão não foi encontrada no repositório."
-  error_scm_command_failed: "Ocorreu um erro ao tentar aceder ao repositório: {{value}}"
+  error_scm_command_failed: "Ocorreu um erro ao tentar aceder ao repositório: %{value}"
   error_scm_annotate: "A entrada não existe ou não pode ser anotada."
   error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projecto.'
   
-  mail_subject_lost_password: "Palavra-chave de {{value}}"
+  mail_subject_lost_password: "Palavra-chave de %{value}"
   mail_body_lost_password: 'Para mudar a sua palavra-chave, clique na ligação abaixo:'
-  mail_subject_register: "Activação de conta de {{value}}"
+  mail_subject_register: "Activação de conta de %{value}"
   mail_body_register: 'Para activar a sua conta, clique na ligação abaixo:'
-  mail_body_account_information_external: "Pode utilizar a conta {{value}} para autenticar-se."
+  mail_body_account_information_external: "Pode utilizar a conta %{value} para autenticar-se."
   mail_body_account_information: Informação da sua conta
-  mail_subject_account_activation_request: "Pedido de activação da conta {{value}}"
-  mail_body_account_activation_request: "Um novo utilizador ({{value}}) registou-se. A sua conta está à espera de aprovação:"
-  mail_subject_reminder: "{{count}} tarefa(s) para entregar nos próximos {{days}} dias"
-  mail_body_reminder: "{{count}} tarefa(s) que estão atribuídas a si estão agendadas para estarem completas nos próximos {{days}} dias:"
+  mail_subject_account_activation_request: "Pedido de activação da conta %{value}"
+  mail_body_account_activation_request: "Um novo utilizador (%{value}) registou-se. A sua conta está à espera de aprovação:"
+  mail_subject_reminder: "%{count} tarefa(s) para entregar nos próximos %{days} dias"
+  mail_body_reminder: "%{count} tarefa(s) que estão atribuídas a si estão agendadas para estarem completas nos próximos %{days} dias:"
   
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
   
   field_name: Nome
   field_description: Descrição
@@ -249,6 +249,7 @@
   field_attr_lastname: Atributo último nome
   field_attr_mail: Atributo e-mail
   field_onthefly: Criação de utilizadores na hora
+  field_start_date: Início
   field_done_ratio: % Completo
   field_auth_source: Modo de autenticação
   field_hide_mail: Esconder endereço de e-mail
@@ -328,14 +329,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Todos os projectos
   label_project_latest: Últimos projectos
   label_issue: Tarefa
   label_issue_new: Nova tarefa
   label_issue_plural: Tarefas
   label_issue_view_all: Ver todas as tarefas
-  label_issues_by: "Tarefas por {{value}}"
+  label_issues_by: "Tarefas por %{value}"
   label_issue_added: Tarefa adicionada
   label_issue_updated: Tarefa actualizada
   label_document: Documento
@@ -391,7 +392,7 @@
   label_auth_source_new: Novo modo de autenticação
   label_auth_source_plural: Modos de autenticação
   label_subproject_plural: Sub-projectos
-  label_and_its_subprojects: "{{value}} e sub-projectos"
+  label_and_its_subprojects: "%{value} e sub-projectos"
   label_min_max_length: Tamanho mínimo-máximo
   label_list: Lista
   label_date: Data
@@ -402,8 +403,8 @@
   label_text: Texto longo
   label_attribute: Atributo
   label_attribute_plural: Atributos
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Sem dados para mostrar
   label_change_status: Mudar estado
   label_history: Histórico
@@ -434,17 +435,17 @@
   label_closed_issues: fechado
   label_closed_issues_plural: fechados
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Total
   label_permissions: Permissões
   label_current_status: Estado actual
@@ -462,7 +463,7 @@
   label_months_from: meses de
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "últimas {{count}} alterações"
+  label_last_changes: "últimas %{count} alterações"
   label_change_view_all: Ver todas as alterações
   label_personalize_page: Personalizar esta página
   label_comment: Comentário
@@ -470,7 +471,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Adicionar comentário
   label_comment_added: Comentário adicionado
   label_comment_delete: Apagar comentários
@@ -489,7 +490,7 @@
   label_yesterday: ontem
   label_this_week: esta semana
   label_last_week: semana passada
-  label_last_n_days: "últimos {{count}} dias"
+  label_last_n_days: "últimos %{count} dias"
   label_this_month: este mês
   label_last_month: mês passado
   label_this_year: este ano
@@ -503,8 +504,8 @@
   label_repository: Repositório
   label_repository_plural: Repositórios
   label_browse: Navegar
-  label_modification: "{{count}} alteração"
-  label_modification_plural: "{{count}} alterações"
+  label_modification: "%{count} alteração"
+  label_modification_plural: "%{count} alterações"
   label_revision: Revisão
   label_revision_plural: Revisões
   label_associated_revisions: Revisões associadas
@@ -522,8 +523,8 @@
   label_sort_lower: Mover para baixo
   label_sort_lowest: Mover para o fim
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Termina em {{value}}"
-  label_roadmap_overdue: "Atrasado {{value}}"
+  label_roadmap_due_in: "Termina em %{value}"
+  label_roadmap_overdue: "Atrasado %{value}"
   label_roadmap_no_issues: Sem tarefas para esta versão
   label_search: Procurar
   label_result_plural: Resultados
@@ -541,8 +542,8 @@
   label_changes_details: Detalhes de todas as mudanças
   label_issue_tracking: Tarefas
   label_spent_time: Tempo gasto
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_time_tracking: Registo de tempo
   label_change_plural: Mudanças
   label_statistics: Estatísticas
@@ -591,12 +592,12 @@
   label_date_from: De
   label_date_to: Para
   label_language_based: Baseado na língua do utilizador
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_send_test_email: enviar um e-mail de teste
-  label_feeds_access_key_created_on: "Chave RSS criada há {{value}} atrás"
+  label_feeds_access_key_created_on: "Chave RSS criada há %{value} atrás"
   label_module_plural: Módulos
-  label_added_time_by: "Adicionado por {{author}} há {{age}} atrás"
-  label_updated_time: "Alterado há {{value}} atrás"
+  label_added_time_by: "Adicionado por %{author} há %{age} atrás"
+  label_updated_time: "Alterado há %{value} atrás"
   label_jump_to_a_project: Ir para o projecto...
   label_file_plural: Ficheiros
   label_changeset_plural: Changesets
@@ -612,7 +613,7 @@
   label_registration_activation_by_email: Activação da conta por e-mail
   label_registration_manual_activation: Activação manual da conta
   label_registration_automatic_activation: Activação automática da conta
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_age: Idade
   label_change_properties: Mudar propriedades
   label_general: Geral
@@ -678,41 +679,41 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 siginifica sem restrição
   text_project_destroy_confirmation: Tem a certeza que deseja apagar o projecto e todos os dados relacionados?
-  text_subprojects_destroy_warning: "O(s) seu(s) sub-projecto(s): {{value}} também será/serão apagado(s)."
+  text_subprojects_destroy_warning: "O(s) seu(s) sub-projecto(s): %{value} também será/serão apagado(s)."
   text_workflow_edit: Seleccione uma função e um tipo de tarefa para editar o fluxo de trabalho
   text_are_you_sure: Tem a certeza?
   text_tip_issue_begin_day: tarefa a começar neste dia
   text_tip_issue_end_day: tarefa a acabar neste dia
   text_tip_issue_begin_end_day: tarefa a começar e acabar neste dia
   text_project_identifier_info: 'Apenas são permitidos letras minúsculas (a-z), números e hífens.<br />Uma vez guardado, o identificador não poderá ser alterado.'
-  text_caracters_maximum: "máximo {{count}} caracteres."
-  text_caracters_minimum: "Deve ter pelo menos {{count}} caracteres."
-  text_length_between: "Deve ter entre {{min}} e {{max}} caracteres."
+  text_caracters_maximum: "máximo %{count} caracteres."
+  text_caracters_minimum: "Deve ter pelo menos %{count} caracteres."
+  text_length_between: "Deve ter entre %{min} e %{max} caracteres."
   text_tracker_no_workflow: Sem fluxo de trabalho definido para este tipo de tarefa.
   text_unallowed_characters: Caracteres não permitidos
   text_comma_separated: Permitidos múltiplos valores (separados por vírgula).
   text_issues_ref_in_commit_messages: Referenciando e fechando tarefas em mensagens de commit
-  text_issue_added: "Tarefa {{id}} foi criada por {{author}}."
-  text_issue_updated: "Tarefa {{id}} foi actualizada por {{author}}."
+  text_issue_added: "Tarefa %{id} foi criada por %{author}."
+  text_issue_updated: "Tarefa %{id} foi actualizada por %{author}."
   text_wiki_destroy_confirmation: Tem a certeza que deseja apagar este wiki e todo o seu conteúdo?
-  text_issue_category_destroy_question: "Algumas tarefas ({{count}}) estão atribuídas a esta categoria. O que quer fazer?"
+  text_issue_category_destroy_question: "Algumas tarefas (%{count}) estão atribuídas a esta categoria. O que quer fazer?"
   text_issue_category_destroy_assignments: Remover as atribuições à categoria
   text_issue_category_reassign_to: Re-atribuir as tarefas para esta categoria
   text_user_mail_option: "Para projectos não seleccionados, apenas receberá notificações acerca de coisas que está a observar ou está envolvido (ex. tarefas das quais foi o criador ou lhes foram atribuídas)."
   text_no_configuration_data: "Perfis, tipos de tarefas, estados das tarefas e workflows ainda não foram configurados.\nÉ extremamente recomendado carregar as configurações padrão. Será capaz de as modificar depois de estarem carregadas."
   text_load_default_configuration: Carregar as configurações padrão
-  text_status_changed_by_changeset: "Aplicado no changeset {{value}}."
+  text_status_changed_by_changeset: "Aplicado no changeset %{value}."
   text_issues_destroy_confirmation: 'Tem a certeza que deseja apagar a(s) tarefa(s) seleccionada(s)?'
   text_select_project_modules: 'Seleccione os módulos a activar para este projecto:'
   text_default_administrator_account_changed: Conta default de administrador alterada.
   text_file_repository_writable: Repositório de ficheiros com permissões de escrita
   text_rmagick_available: RMagick disponível (opcional)
-  text_destroy_time_entries_question: "{{hours}} horas de trabalho foram atribuídas a estas tarefas que vai apagar. O que deseja fazer?"
+  text_destroy_time_entries_question: "%{hours} horas de trabalho foram atribuídas a estas tarefas que vai apagar. O que deseja fazer?"
   text_destroy_time_entries: Apagar as horas
   text_assign_time_entries_to_project: Atribuir as horas ao projecto
   text_reassign_time_entries: 'Re-atribuir as horas para esta tarefa:'
-  text_user_wrote: "{{value}} escreveu:"
-  text_enumeration_destroy_question: "{{count}} objectos estão atribuídos a este valor."
+  text_user_wrote: "%{value} escreveu:"
+  text_enumeration_destroy_question: "%{count} objectos estão atribuídos a este valor."
   text_enumeration_category_reassign_to: 'Re-atribuí-los para este valor:'
   text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/email.yml e reinicie a aplicação para activar estas funcionalidades."
   
@@ -793,12 +794,12 @@
   text_repository_usernames_mapping: "Seleccionar ou actualizar o utilizador de Redmine mapeado a cada nome de utilizador encontrado no repositório.\nUtilizadores com o mesmo nome de utilizador ou email no Redmine e no repositório são mapeados automaticamente."
   permission_edit_own_messages: Editar as próprias mensagens
   permission_delete_own_messages: Apagar as próprias mensagens
-  label_user_activity: "Actividade de {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} há {{age}}"
+  label_user_activity: "Actividade de %{value}"
+  label_updated_time_by: "Actualizado por %{author} há %{age}"
   text_diff_truncated: '... Este diff foi truncado porque excede o tamanho máximo que pode ser mostrado.'
   setting_diff_max_lines_displayed: Número máximo de linhas de diff mostradas
   text_plugin_assets_writable: Escrita na pasta de activos dos módulos de extensão possível
-  warning_attachments_not_saved: "Não foi possível gravar {{count}} ficheiro(s) ."
+  warning_attachments_not_saved: "Não foi possível gravar %{count} ficheiro(s) ."
   button_create_and_continue: Criar e continuar
   text_custom_field_possible_values_info: 'Uma linha para cada valor'
   label_display: Mostrar
@@ -813,21 +814,21 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: De {{start}} a {{end}}
+  label_date_from_to: De %{start} a %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tem {{descendants}} página(s) subordinada(s) e descendente(s). O que deseja fazer?
+  text_wiki_page_destroy_question: Esta página tem %{descendants} página(s) subordinada(s) e descendente(s). O que deseja fazer?
   text_wiki_page_reassign_children: Reatribuir páginas subordinadas a esta página principal
   text_wiki_page_nullify_children: Manter páginas subordinadas como páginas raíz
   text_wiki_page_destroy_children: Apagar as páginas subordinadas e todos os seus descendentes
   setting_password_min_length: Tamanho mínimo de palavra-chave
   field_group_by: Agrupar resultados por
-  mail_subject_wiki_content_updated: "A página Wiki '{{id}}' foi actualizada"
+  mail_subject_wiki_content_updated: "A página Wiki '%{id}' foi actualizada"
   label_wiki_content_added: Página Wiki adicionada
-  mail_subject_wiki_content_added: "A página Wiki '{{id}}' foi adicionada"
-  mail_body_wiki_content_added: A página Wiki '{{id}}' foi adicionada por {{author}}.
+  mail_subject_wiki_content_added: "A página Wiki '%{id}' foi adicionada"
+  mail_body_wiki_content_added: A página Wiki '%{id}' foi adicionada por %{author}.
   label_wiki_content_updated: Página Wiki actualizada
-  mail_body_wiki_content_updated: A página Wiki '{{id}}' foi actualizada por {{author}}.
+  mail_body_wiki_content_updated: A página Wiki '%{id}' foi actualizada por %{author}.
   permission_add_project: Criar projecto
   setting_new_project_user_role_id: Função atribuída a um utilizador não-administrador que cria um projecto
   label_view_all_revisions: Ver todas as revisões
@@ -839,10 +840,10 @@
   label_group: Grupo
   label_group_new: Novo grupo
   label_time_entry_plural: Tempo registado
-  text_journal_changed: "{{label}} alterado de {{old}} para {{new}}"
-  text_journal_set_to: "{{label}} configurado como {{value}}"
-  text_journal_deleted: "{{label}} apagou ({{old}})"
-  text_journal_added: "{{label}} {{value}} adicionado"
+  text_journal_changed: "%{label} alterado de %{old} para %{new}"
+  text_journal_set_to: "%{label} configurado como %{value}"
+  text_journal_deleted: "%{label} apagou (%{old})"
+  text_journal_added: "%{label} %{value} adicionado"
   field_active: Activo
   enumeration_system_activity: Actividade de sistema
   permission_delete_issue_watchers: Apagar observadores
@@ -877,9 +878,9 @@
   setting_start_of_week: Iniciar calendários a
   permission_view_issues: Ver tarefas
   label_display_used_statuses_only: Só exibir estados empregues por este tipo de tarefa
-  label_revision_id: Revisão {{value}}
+  label_revision_id: Revisão %{value}
   label_api_access_key: Chave de acesso API
-  label_api_access_key_created_on: Chave de acesso API criada há {{value}}
+  label_api_access_key_created_on: Chave de acesso API criada há %{value}
   label_feeds_access_key: Chave de acesso RSS
   notice_api_access_key_reseted: A sua chave de acesso API foi reinicializada.
   setting_rest_api_enabled: Activar serviço Web REST
@@ -906,12 +907,12 @@
   label_subtask_plural: Sub-tarefa
   label_project_copy_notifications: Enviar notificações por e-mail durante a cópia do projecto
   error_can_not_delete_custom_field: Não foi possível apagar o campo personalizado
-  error_unable_to_connect: Não foi possível ligar ({{value}})
+  error_unable_to_connect: Não foi possível ligar (%{value})
   error_can_not_remove_role: Esta função está actualmente em uso e não pode ser apagada.
   error_can_not_delete_tracker: Existem ainda tarefas nesta categoria. Não é possível apagar este tipo de tarefa.
   field_principal: Principal
   label_my_page_block: Bloco da minha página
-  notice_failed_to_save_members: "Erro ao guardar o(s) membro(s): {{errors}}."
+  notice_failed_to_save_members: "Erro ao guardar o(s) membro(s): %{errors}."
   text_zoom_out: Ampliar
   text_zoom_in: Reduzir
   notice_unable_delete_time_entry: Não foi possível apagar a entrada de tempo registado.
@@ -919,7 +920,7 @@
   field_time_entries: Tempo registado
   project_module_gantt: Gantt
   project_module_calendar: Calendário
-  button_edit_associated_wikipage: "Editar página Wiki associada: {{page_title}}"
+  button_edit_associated_wikipage: "Editar página Wiki associada: %{page_title}"
   text_are_you_sure_with_children: Apagar tarefa e todas as sub-tarefas?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -930,8 +931,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/ro.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/ro.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -30,37 +30,37 @@
       half_a_minute: "jumătate de minut"
       less_than_x_seconds:
         one:   "mai puțin de o secundă"
-        other: "mai puțin de {{count}} secunde"
+        other: "mai puțin de %{count} secunde"
       x_seconds:
         one:   "o secundă"
-        other: "{{count}} secunde"
+        other: "%{count} secunde"
       less_than_x_minutes:
         one:   "mai puțin de un minut"
-        other: "mai puțin de {{count}} minute"
+        other: "mai puțin de %{count} minute"
       x_minutes:
         one:   "un minut"
-        other: "{{count}} minute"
+        other: "%{count} minute"
       about_x_hours:
         one:   "aproximativ o oră"
-        other: "aproximativ {{count}} ore"
+        other: "aproximativ %{count} ore"
       x_days:
         one:   "o zi"
-        other: "{{count}} zile"
+        other: "%{count} zile"
       about_x_months:
         one:   "aproximativ o lună"
-        other: "aproximativ {{count}} luni"
+        other: "aproximativ %{count} luni"
       x_months:
         one:   "o luna"
-        other: "{{count}} luni"
+        other: "%{count} luni"
       about_x_years:
         one:   "aproximativ un an"
-        other: "aproximativ {{count}} ani"
+        other: "aproximativ %{count} ani"
       over_x_years:
         one:   "peste un an"
-        other: "peste {{count}} ani"
+        other: "peste %{count} ani"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     human: 
@@ -86,6 +86,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nu este inclus în listă"
         exclusion: "este rezervat"
@@ -100,11 +104,11 @@
         taken: "a fost luat deja"
         not_a_number: "nu este un număr"
         not_a_date: "nu este o dată validă"
-        greater_than: "trebuie să fie mai mare de {{count}}"
-        greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu {{count}}"
+        greater_than: "trebuie să fie mai mare de %{count}"
+        greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu %{count}"
         equal_to: "trebuie să fie egal cu {count}}"
-        less_than: "trebuie să fie mai mic decat {{count}}"
-        less_than_or_equal_to: "trebuie să fie mai mic sau egal cu {{count}}"
+        less_than: "trebuie să fie mai mic decat %{count}"
+        less_than_or_equal_to: "trebuie să fie mai mic sau egal cu %{count}"
         odd: "trebuie să fie impar"
         even: "trebuie să fie par"
         greater_than_start_date: "trebuie să fie după data de început"
@@ -141,36 +145,36 @@
   notice_file_not_found: Pagina pe care doriți să o accesați nu există sau a fost ștearsă.
   notice_locking_conflict: Datele au fost actualizate de alt utilizator.
   notice_not_authorized: Nu sunteți autorizat sa accesați această pagină.
-  notice_email_sent: "S-a trimis un email către {{value}}"
-  notice_email_error: "A intervenit o eroare la trimiterea de email ({{value}})"
+  notice_email_sent: "S-a trimis un email către %{value}"
+  notice_email_error: "A intervenit o eroare la trimiterea de email (%{value})"
   notice_feeds_access_key_reseted: Cheia de acces RSS a fost resetată.
-  notice_failed_to_save_issues: "Nu s-au putut salva {{count}} tichete din cele {{total}} selectate: {{ids}}."
+  notice_failed_to_save_issues: "Nu s-au putut salva %{count} tichete din cele %{total} selectate: %{ids}."
   notice_no_issue_selected: "Niciun tichet selectat! Vă rugăm să selectați tichetele pe care doriți să le editați."
   notice_account_pending: "Contul dumneavoastră a fost creat și așteaptă aprobarea administratorului."
   notice_default_data_loaded: S-a încărcat configurația implicită.
   notice_unable_delete_version: Nu se poate șterge versiunea.
   
-  error_can_t_load_default_data: "Nu s-a putut încărca configurația implicită: {{value}}"
+  error_can_t_load_default_data: "Nu s-a putut încărca configurația implicită: %{value}"
   error_scm_not_found: "Nu s-a găsit articolul sau revizia în depozit."
-  error_scm_command_failed: "A intervenit o eroare la accesarea depozitului: {{value}}"
+  error_scm_command_failed: "A intervenit o eroare la accesarea depozitului: %{value}"
   error_scm_annotate: "Nu există sau nu poate fi adnotată."
   error_issue_not_found_in_project: 'Tichetul nu a fost găsit sau nu aparține acestui proiect'
   
-  warning_attachments_not_saved: "Nu s-au putut salva {{count}} fișiere."
+  warning_attachments_not_saved: "Nu s-au putut salva %{count} fișiere."
   
-  mail_subject_lost_password: "Parola dumneavoastră: {{value}}"
+  mail_subject_lost_password: "Parola dumneavoastră: %{value}"
   mail_body_lost_password: 'Pentru a schimba parola, accesați:'
-  mail_subject_register: "Activarea contului {{value}}"
+  mail_subject_register: "Activarea contului %{value}"
   mail_body_register: 'Pentru activarea contului, accesați:'
   mail_body_account_information_external: "Puteți folosi contul „{value}}†pentru a vă autentifica."
   mail_body_account_information: Informații despre contul dumneavoastră
-  mail_subject_account_activation_request: "Cerere de activare a contului {{value}}"
-  mail_body_account_activation_request: "S-a înregistrat un utilizator nou ({{value}}). Contul așteaptă aprobarea dumneavoastră:"
-  mail_subject_reminder: "{{count}} tichete trebuie rezolvate în următoarele {{days}} zile"
-  mail_body_reminder: "{{count}} tichete atribuite dumneavoastră trebuie rezolvate în următoarele {{days}} zile:"
+  mail_subject_account_activation_request: "Cerere de activare a contului %{value}"
+  mail_body_account_activation_request: "S-a înregistrat un utilizator nou (%{value}). Contul așteaptă aprobarea dumneavoastră:"
+  mail_subject_reminder: "%{count} tichete trebuie rezolvate în următoarele %{days} zile"
+  mail_body_reminder: "%{count} tichete atribuite dumneavoastră trebuie rezolvate în următoarele %{days} zile:"
   
   gui_validation_error: o eroare
-  gui_validation_error_plural: "{{count}} erori"
+  gui_validation_error_plural: "%{count} erori"
   
   field_name: Nume
   field_description: Descriere
@@ -232,6 +236,7 @@
   field_attr_lastname: Atribut nume
   field_attr_mail: Atribut email
   field_onthefly: Creare utilizator pe loc
+  field_start_date: Data începerii
   field_done_ratio: Realizat (%)
   field_auth_source: Mod autentificare
   field_hide_mail: Nu se afișează adresa de email
@@ -370,14 +375,14 @@
   label_x_projects:
     zero:  niciun proiect
     one:   un proiect
-    other: "{{count}} proiecte"
+    other: "%{count} proiecte"
   label_project_all: Toate proiectele
   label_project_latest: Proiecte noi
   label_issue: Tichet
   label_issue_new: Tichet nou
   label_issue_plural: Tichete
   label_issue_view_all: Afișează toate tichetele
-  label_issues_by: "Sortează după {{value}}"
+  label_issues_by: "Sortează după %{value}"
   label_issue_added: Adaugat
   label_issue_updated: Actualizat
   label_document: Document
@@ -426,7 +431,7 @@
   label_registered_on: ÃŽnregistrat la
   label_activity: Activitate
   label_overall_activity: Activitate - vedere de ansamblu
-  label_user_activity: "Activitate {{value}}"
+  label_user_activity: "Activitate %{value}"
   label_new: Nou
   label_logged_as: Autentificat ca
   label_environment: Mediu
@@ -435,7 +440,7 @@
   label_auth_source_new: Nou
   label_auth_source_plural: Moduri de autentificare
   label_subproject_plural: Sub-proiecte
-  label_and_its_subprojects: "{{value}} și sub-proiecte"
+  label_and_its_subprojects: "%{value} și sub-proiecte"
   label_min_max_length: lungime min - max
   label_list: Listă
   label_date: Dată
@@ -446,8 +451,8 @@
   label_text: Text lung
   label_attribute: Atribut
   label_attribute_plural: Atribute
-  label_download: "{{count}} descărcare"
-  label_download_plural: "{{count}} descărcări"
+  label_download: "%{count} descărcare"
+  label_download_plural: "%{count} descărcări"
   label_no_data: Nu există date de afișat
   label_change_status: Schimbă starea
   label_history: Istoric
@@ -478,17 +483,17 @@
   label_closed_issues: închis
   label_closed_issues_plural: închise
   label_x_open_issues_abbr_on_total:
-    zero:  0 deschise / {{total}}
-    one:   1 deschis / {{total}}
-    other: "{{count}} deschise / {{total}}"
+    zero:  0 deschise / %{total}
+    one:   1 deschis / %{total}
+    other: "%{count} deschise / %{total}"
   label_x_open_issues_abbr:
     zero:  0 deschise
     one:   1 deschis
-    other: "{{count}} deschise"
+    other: "%{count} deschise"
   label_x_closed_issues_abbr:
     zero:  0 închise
     one:   1 închis
-    other: "{{count}} închise"
+    other: "%{count} închise"
   label_total: Total
   label_permissions: Permisiuni
   label_current_status: Stare curentă
@@ -506,7 +511,7 @@
   label_months_from: luni de la
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "ultimele {{count}} schimbări"
+  label_last_changes: "ultimele %{count} schimbări"
   label_change_view_all: Afișează toate schimbările
   label_personalize_page: Personalizează aceasta pagina
   label_comment: Comentariu
@@ -514,7 +519,7 @@
   label_x_comments:
     zero: fara comentarii
     one: 1 comentariu
-    other: "{{count}} comentarii"
+    other: "%{count} comentarii"
   label_comment_add: Adaugă un comentariu
   label_comment_added: Adăugat
   label_comment_delete: Șterge comentariul
@@ -533,7 +538,7 @@
   label_yesterday: ieri
   label_this_week: săptămâna aceasta
   label_last_week: săptămâna trecută
-  label_last_n_days: "ultimele {{count}} zile"
+  label_last_n_days: "ultimele %{count} zile"
   label_this_month: luna aceasta
   label_last_month: luna trecută
   label_this_year: anul acesta
@@ -547,8 +552,8 @@
   label_repository: Depozit
   label_repository_plural: Depozite
   label_browse: Afișează
-  label_modification: "{{count}} schimbare"
-  label_modification_plural: "{{count}} schimbări"
+  label_modification: "%{count} schimbare"
+  label_modification_plural: "%{count} schimbări"
   label_revision: Revizie
   label_revision_plural: Revizii
   label_associated_revisions: Revizii asociate
@@ -566,8 +571,8 @@
   label_sort_lower: ÃŽn jos
   label_sort_lowest: Ultima
   label_roadmap: Planificare
-  label_roadmap_due_in: "De terminat în {{value}}"
-  label_roadmap_overdue: "Întârziat cu {{value}}"
+  label_roadmap_due_in: "De terminat în %{value}"
+  label_roadmap_overdue: "Întârziat cu %{value}"
   label_roadmap_no_issues: Nu există tichete pentru această versiune
   label_search: Caută
   label_result_plural: Rezultate
@@ -585,8 +590,8 @@
   label_changes_details: Detaliile tuturor schimbărilor
   label_issue_tracking: Urmărire tichete
   label_spent_time: Timp alocat
-  label_f_hour: "{{value}} oră"
-  label_f_hour_plural: "{{value}} ore"
+  label_f_hour: "%{value} oră"
+  label_f_hour_plural: "%{value} ore"
   label_time_tracking: Urmărire timp de lucru
   label_change_plural: Schimbări
   label_statistics: Statistici
@@ -635,13 +640,13 @@
   label_date_from: De la
   label_date_to: La
   label_language_based: Un funcție de limba de afișare a utilizatorului
-  label_sort_by: "Sortează după {{value}}"
+  label_sort_by: "Sortează după %{value}"
   label_send_test_email: Trimite email de test
-  label_feeds_access_key_created_on: "Cheie de acces creată acum {{value}}"
+  label_feeds_access_key_created_on: "Cheie de acces creată acum %{value}"
   label_module_plural: Module
-  label_added_time_by: "Adăugat de {{author}} acum {{age}}"
-  label_updated_time_by: "Actualizat de {{author}} acum {{age}}"
-  label_updated_time: "Actualizat acum {{value}}"
+  label_added_time_by: "Adăugat de %{author} acum %{age}"
+  label_updated_time_by: "Actualizat de %{author} acum %{age}"
+  label_updated_time: "Actualizat acum %{value}"
   label_jump_to_a_project: Alege proiectul...
   label_file_plural: Fișiere
   label_changeset_plural: Schimbări
@@ -657,7 +662,7 @@
   label_registration_activation_by_email: activare cont prin email
   label_registration_manual_activation: activare manuală a contului
   label_registration_automatic_activation: activare automată a contului
-  label_display_per_page: "pe pagină: {{value}}"
+  label_display_per_page: "pe pagină: %{value}"
   label_age: vechime
   label_change_properties: Schimbă proprietățile
   label_general: General
@@ -681,7 +686,7 @@
   label_sort: Sortează
   label_ascending: Crescător
   label_descending: Descrescător
-  label_date_from_to: De la {{start}} la {{end}}
+  label_date_from_to: De la %{start} la %{end}
 
   
   button_login: Autentificare
@@ -732,42 +737,42 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 înseamnă fără restricții
   text_project_destroy_confirmation: Sigur doriți să ștergeți proiectul și toate datele asociate?
-  text_subprojects_destroy_warning: "Se vor șterge și sub-proiectele: {{value}}."
+  text_subprojects_destroy_warning: "Se vor șterge și sub-proiectele: %{value}."
   text_workflow_edit: Selectați un rol și un tip de tichet pentru a edita modul de lucru
   text_are_you_sure: Sunteți sigur(ă)?
   text_tip_issue_begin_day: sarcină care începe în această zi
   text_tip_issue_end_day: sarcină care se termină în această zi
   text_tip_issue_begin_end_day: sarcină care începe și se termină în această zi
   text_project_identifier_info: 'Sunt permise doar litere mici (a-z), numere și cratime.<br />Odată salvat, identificatorul nu mai poate fi modificat.'
-  text_caracters_maximum: "maxim {{count}} caractere."
-  text_caracters_minimum: "Trebuie să fie minim {{count}} caractere."
-  text_length_between: "Lungime între {{min}} și {{max}} caractere."
+  text_caracters_maximum: "maxim %{count} caractere."
+  text_caracters_minimum: "Trebuie să fie minim %{count} caractere."
+  text_length_between: "Lungime între %{min} și %{max} caractere."
   text_tracker_no_workflow: Nu sunt moduri de lucru pentru acest tip de tichet
   text_unallowed_characters: Caractere nepermise
   text_comma_separated: Sunt permise mai multe valori (separate cu virgulă).
   text_issues_ref_in_commit_messages: Referire la tichete și rezolvare în textul mesajului
-  text_issue_added: "Tichetul {{id}} a fost adăugat de {{author}}."
-  text_issue_updated: "Tichetul {{id}} a fost actualizat de {{author}}."
+  text_issue_added: "Tichetul %{id} a fost adăugat de %{author}."
+  text_issue_updated: "Tichetul %{id} a fost actualizat de %{author}."
   text_wiki_destroy_confirmation: Sigur doriți ștergerea Wiki și a conținutului asociat?
-  text_issue_category_destroy_question: "Această categorie conține ({{count}}) tichete. Ce doriți să faceți?"
+  text_issue_category_destroy_question: "Această categorie conține (%{count}) tichete. Ce doriți să faceți?"
   text_issue_category_destroy_assignments: Șterge apartenența la categorie.
   text_issue_category_reassign_to: Atribuie tichetele la această categorie
   text_user_mail_option: "Pentru proiectele care nu sunt selectate, veți primi notificări doar pentru ceea ce urmăriți sau în ce sunteți implicat (ex: tichete create de dumneavoastră sau care vă sunt atribuite)."
   text_no_configuration_data: "Nu s-au configurat încă rolurile, stările tichetelor și modurile de lucru.\nEste recomandat să încărcați configurația implicită. O veți putea modifica ulterior."
   text_load_default_configuration: Încarcă configurația implicită
-  text_status_changed_by_changeset: "Aplicat în setul {{value}}."
+  text_status_changed_by_changeset: "Aplicat în setul %{value}."
   text_issues_destroy_confirmation: 'Sigur doriți să ștergeți tichetele selectate?'
   text_select_project_modules: 'Selectați modulele active pentru acest proiect:'
   text_default_administrator_account_changed: S-a schimbat contul administratorului implicit
   text_file_repository_writable: Se poate scrie în directorul de atașamente
   text_plugin_assets_writable: Se poate scrie în directorul de plugin-uri
   text_rmagick_available: Este disponibil RMagick (opțional)
-  text_destroy_time_entries_question: "{{hours}} ore sunt înregistrate la tichetele pe care doriți să le ștergeți. Ce doriți sa faceți?"
+  text_destroy_time_entries_question: "%{hours} ore sunt înregistrate la tichetele pe care doriți să le ștergeți. Ce doriți sa faceți?"
   text_destroy_time_entries: Șterge orele înregistrate
   text_assign_time_entries_to_project: Atribuie orele la proiect
   text_reassign_time_entries: 'Atribuie orele înregistrate la tichetul:'
-  text_user_wrote: "{{value}} a scris:"
-  text_enumeration_destroy_question: "Această valoare are {{count}} obiecte."
+  text_user_wrote: "%{value} a scris:"
+  text_enumeration_destroy_question: "Această valoare are %{count} obiecte."
   text_enumeration_category_reassign_to: 'Atribuie la această valoare:'
   text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/email.yml și reporniți aplicația pentru a le activa."
   text_repository_usernames_mapping: "Selectați sau modificați contul Redmine echivalent contului din istoricul depozitului.\nUtilizatorii cu un cont (sau e-mail) identic în Redmine și depozit sunt echivalate automat." 
@@ -801,18 +806,18 @@
   enumeration_activities: Activități (timp de lucru)
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Această pagină are {{descendants}} pagini anterioare și descendenți. Ce doriți să faceți?
+  text_wiki_page_destroy_question: Această pagină are %{descendants} pagini anterioare și descendenți. Ce doriți să faceți?
   text_wiki_page_reassign_children: Atribuie paginile la această pagină
   text_wiki_page_nullify_children: Menține paginile ca și pagini inițiale (root)
   text_wiki_page_destroy_children: Șterge paginile și descendenții
   setting_password_min_length: Lungime minimă parolă
   field_group_by: Grupează după
-  mail_subject_wiki_content_updated: "Pagina wiki '{{id}}' a fost actualizată"
+  mail_subject_wiki_content_updated: "Pagina wiki '%{id}' a fost actualizată"
   label_wiki_content_added: Adăugat
-  mail_subject_wiki_content_added: "Pagina wiki '{{id}}' a fost adăugată"
-  mail_body_wiki_content_added: Pagina wiki '{{id}}' a fost adăugată de {{author}}.
+  mail_subject_wiki_content_added: "Pagina wiki '%{id}' a fost adăugată"
+  mail_body_wiki_content_added: Pagina wiki '%{id}' a fost adăugată de %{author}.
   label_wiki_content_updated: Actualizat
-  mail_body_wiki_content_updated: Pagina wiki '{{id}}' a fost actualizată de {{author}}.
+  mail_body_wiki_content_updated: Pagina wiki '%{id}' a fost actualizată de %{author}.
   permission_add_project: Crează proiect
   setting_new_project_user_role_id: Rol atribuit utilizatorului non-admin care crează un proiect.
   label_view_all_revisions: Arată toate reviziile
@@ -820,14 +825,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nu există un tracker asociat cu proiectul. Verificați vă rog setările proiectului.
   error_no_default_issue_status: Nu există un status implicit al tichetelor. Verificați vă rog configurația (Mergeți la "Administrare -> Stări tichete").
-  text_journal_changed: "{{label}} schimbat din {{old}} în {{new}}"
-  text_journal_set_to: "{{label}} setat ca {{value}}"
-  text_journal_deleted: "{{label}} șters ({{old}})"
+  text_journal_changed: "%{label} schimbat din %{old} în %{new}"
+  text_journal_set_to: "%{label} setat ca %{value}"
+  text_journal_deleted: "%{label} șters (%{old})"
   label_group_plural: Grupuri
   label_group: Grup
   label_group_new: Grup nou
   label_time_entry_plural: Timp alocat
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -862,9 +867,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -891,12 +896,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -904,7 +909,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -915,8 +920,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/ru.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/ru.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -89,60 +89,60 @@
     distance_in_words:
       half_a_minute: "меньше минуты"
       less_than_x_seconds:
-        one:   "меньше {{count}} Ñекунды"
-        few:   "меньше {{count}} Ñекунд"
-        many:  "меньше {{count}} Ñекунд"
-        other: "меньше {{count}} Ñекунды"
+        one:   "меньше %{count} Ñекунды"
+        few:   "меньше %{count} Ñекунд"
+        many:  "меньше %{count} Ñекунд"
+        other: "меньше %{count} Ñекунды"
       x_seconds:
-        one:   "{{count}} Ñекунда"
-        few:   "{{count}} Ñекунды"
-        many:  "{{count}} Ñекунд"
-        other: "{{count}} Ñекунды"
+        one:   "%{count} Ñекунда"
+        few:   "%{count} Ñекунды"
+        many:  "%{count} Ñекунд"
+        other: "%{count} Ñекунды"
       less_than_x_minutes:
-        one:   "меньше {{count}} минуты"
-        few:   "меньше {{count}} минут"
-        many:  "меньше {{count}} минут"
-        other: "меньше {{count}} минуты"
+        one:   "меньше %{count} минуты"
+        few:   "меньше %{count} минут"
+        many:  "меньше %{count} минут"
+        other: "меньше %{count} минуты"
       x_minutes:
-        one:   "{{count}} минуту"
-        few:   "{{count}} минуты"
-        many:  "{{count}} минут"
-        other: "{{count}} минуты"
+        one:   "%{count} минуту"
+        few:   "%{count} минуты"
+        many:  "%{count} минут"
+        other: "%{count} минуты"
       about_x_hours:
-        one:   "около {{count}} чаÑа"
-        few:   "около {{count}} чаÑов"
-        many:  "около {{count}} чаÑов"
-        other: "около {{count}} чаÑа"
+        one:   "около %{count} чаÑа"
+        few:   "около %{count} чаÑов"
+        many:  "около %{count} чаÑов"
+        other: "около %{count} чаÑа"
       x_days:
-        one:   "{{count}} день"
-        few:   "{{count}} днÑ"
-        many:  "{{count}} дней"
-        other: "{{count}} днÑ"
+        one:   "%{count} день"
+        few:   "%{count} днÑ"
+        many:  "%{count} дней"
+        other: "%{count} днÑ"
       about_x_months:
-        one:   "около {{count}} меÑÑца"
-        few:   "около {{count}} меÑÑцев"
-        many:  "около {{count}} меÑÑцев"
-        other: "около {{count}} меÑÑца"
+        one:   "около %{count} меÑÑца"
+        few:   "около %{count} меÑÑцев"
+        many:  "около %{count} меÑÑцев"
+        other: "около %{count} меÑÑца"
       x_months:
-        one:   "{{count}} меÑÑц"
-        few:   "{{count}} меÑÑца"
-        many:  "{{count}} меÑÑцев"
-        other: "{{count}} меÑÑца"
+        one:   "%{count} меÑÑц"
+        few:   "%{count} меÑÑца"
+        many:  "%{count} меÑÑцев"
+        other: "%{count} меÑÑца"
       about_x_years:
-        one:   "около {{count}} года"
-        few:   "около {{count}} лет"
-        many:  "около {{count}} лет"
-        other: "около {{count}} лет"
+        one:   "около %{count} года"
+        few:   "около %{count} лет"
+        many:  "около %{count} лет"
+        other: "около %{count} лет"
       over_x_years:
-        one:   "больше {{count}} года"
-        few:   "больше {{count}} лет"
-        many:  "больше {{count}} лет"
-        other: "больше {{count}} лет"
+        one:   "больше %{count} года"
+        few:   "больше %{count} лет"
+        many:  "больше %{count} лет"
+        other: "больше %{count} лет"
       almost_x_years:
         one:   "почти 1 год"
-        few:   "почти {{count}} года"
-        many:  "почти {{count}} лет"
-        other: "почти {{count}} года"
+        few:   "почти %{count} года"
+        many:  "почти %{count} лет"
+        other: "почти %{count} года"
     prompts:
       year: "Год"
       month: "МеÑÑц"
@@ -155,10 +155,10 @@
     errors:
       template:
         header:
-          one:   "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибки"
-          few:   "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибок"
-          many:  "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибок"
-          other: "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибки"
+          one:   "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибки"
+          few:   "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибок"
+          many:  "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибок"
+          other: "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибки"
 
         body: "Проблемы возникли Ñо Ñледующими полÑми:"
 
@@ -171,27 +171,27 @@
         empty: "не может быть пуÑтым"
         blank: "не может быть пуÑтым"
         too_long:
-          one:   "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвол)"
-          few:   "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвола)"
-          many:  "Ñлишком большой длины (не может быть больше чем {{count}} Ñимволов)"
-          other: "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвола)"
+          one:   "Ñлишком большой длины (не может быть больше чем %{count} Ñимвол)"
+          few:   "Ñлишком большой длины (не может быть больше чем %{count} Ñимвола)"
+          many:  "Ñлишком большой длины (не может быть больше чем %{count} Ñимволов)"
+          other: "Ñлишком большой длины (не может быть больше чем %{count} Ñимвола)"
         too_short:
-          one:   "недоÑтаточной длины (не может быть меньше {{count}} Ñимвола)"
-          few:   "недоÑтаточной длины (не может быть меньше {{count}} Ñимволов)"
-          many:  "недоÑтаточной длины (не может быть меньше {{count}} Ñимволов)"
-          other: "недоÑтаточной длины (не может быть меньше {{count}} Ñимвола)"
+          one:   "недоÑтаточной длины (не может быть меньше %{count} Ñимвола)"
+          few:   "недоÑтаточной длины (не может быть меньше %{count} Ñимволов)"
+          many:  "недоÑтаточной длины (не может быть меньше %{count} Ñимволов)"
+          other: "недоÑтаточной длины (не может быть меньше %{count} Ñимвола)"
         wrong_length:
-          one:   "неверной длины (может быть длиной ровно {{count}} Ñимвол)"
-          few:   "неверной длины (может быть длиной ровно {{count}} Ñимвола)"
-          many:  "неверной длины (может быть длиной ровно {{count}} Ñимволов)"
-          other: "неверной длины (может быть длиной ровно {{count}} Ñимвола)"
+          one:   "неверной длины (может быть длиной ровно %{count} Ñимвол)"
+          few:   "неверной длины (может быть длиной ровно %{count} Ñимвола)"
+          many:  "неверной длины (может быть длиной ровно %{count} Ñимволов)"
+          other: "неверной длины (может быть длиной ровно %{count} Ñимвола)"
         taken: "уже ÑущеÑтвует"
         not_a_number: "не ÑвлÑетÑÑ Ñ‡Ð¸Ñлом"
-        greater_than: "может иметь значение большее {{count}}"
-        greater_than_or_equal_to: "может иметь значение большее или равное {{count}}"
-        equal_to: "может иметь лишь значение, равное {{count}}"
-        less_than: "может иметь значение меньшее чем {{count}}"
-        less_than_or_equal_to: "может иметь значение меньшее или равное {{count}}"
+        greater_than: "может иметь значение большее %{count}"
+        greater_than_or_equal_to: "может иметь значение большее или равное %{count}"
+        equal_to: "может иметь лишь значение, равное %{count}"
+        less_than: "может иметь значение меньшее чем %{count}"
+        less_than_or_equal_to: "может иметь значение меньшее или равное %{count}"
         odd: "может иметь лишь нечетное значение"
         even: "может иметь лишь четное значение"
         greater_than_start_date: "должна быть позднее даты начала"
@@ -230,7 +230,7 @@
   button_delete: Удалить
   button_download: Загрузить
   button_edit: Редактировать
-  button_edit_associated_wikipage: "Редактировать ÑвÑзанную wiki-Ñтраницу: {{page_title}}"
+  button_edit_associated_wikipage: "Редактировать ÑвÑзанную wiki-Ñтраницу: %{page_title}"
   button_list: СпиÑок
   button_lock: Заблокировать
   button_login: Вход
@@ -282,12 +282,12 @@
   error_can_not_remove_role: Эта роль иÑпользуетÑÑ Ð¸ не может быть удалена.
   error_can_not_delete_custom_field: Ðевозможно удалить наÑтраиваемое поле
   error_can_not_delete_tracker: Этот трекер Ñодержит задачи и не может быть удален.
-  error_can_t_load_default_data: "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию не была загружена: {{value}}"
+  error_can_t_load_default_data: "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию не была загружена: %{value}"
   error_issue_not_found_in_project: Задача не была найдена или не прикреплена к Ñтому проекту
   error_scm_annotate: "Данные отÑутÑтвуют или не могут быть подпиÑаны."
-  error_scm_command_failed: "Ошибка доÑтупа к хранилищу: {{value}}"
+  error_scm_command_failed: "Ошибка доÑтупа к хранилищу: %{value}"
   error_scm_not_found: Хранилище не Ñодержит запиÑи и/или иÑправлениÑ.
-  error_unable_to_connect: Ðевозможно подключитьÑÑ ({{value}})
+  error_unable_to_connect: Ðевозможно подключитьÑÑ (%{value})
   error_unable_delete_issue_status: Ðевозможно удалить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð´Ð°Ñ‡Ð¸
 
   field_account: Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ
@@ -313,7 +313,6 @@
   field_description: ОпиÑание
   field_done_ratio: ГотовноÑть в %
   field_downloads: Загрузки
-  field_start_date: Дата начала
   field_due_date: Дата выполнениÑ
   field_editable: Редактируемый
   field_effective_date: Дата
@@ -364,6 +363,7 @@
   field_role: Роль
   field_searchable: ДоÑтупно Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка
   field_spent_on: Дата
+  field_start_date: Ðачата
   field_start_page: Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¾Ð²Ð°Ñ Ñтраница
   field_status: СтатуÑ
   field_subject: Тема
@@ -382,9 +382,9 @@
   field_version: ВерÑиÑ
   field_watcher: Ðаблюдатель
 
-  general_csv_decimal_separator: '.'
+  general_csv_decimal_separator: ','
   general_csv_encoding: UTF-8
-  general_csv_separator: ','
+  general_csv_separator: ';'
   general_first_day_of_week: '1'
   general_lang_name: 'Russian (РуÑÑкий)'
   general_pdf_encoding: UTF-8
@@ -394,13 +394,13 @@
   general_text_Yes: 'Да'
 
   gui_validation_error: 1 ошибка
-  gui_validation_error_plural: "{{count}} ошибок"
-  gui_validation_error_plural2: "{{count}} ошибки"
-  gui_validation_error_plural5: "{{count}} ошибок"
+  gui_validation_error_plural: "%{count} ошибок"
+  gui_validation_error_plural2: "%{count} ошибки"
+  gui_validation_error_plural5: "%{count} ошибок"
 
   label_activity: ÐктивноÑть
   label_add_another_file: Добавить ещё один файл
-  label_added_time_by: "Добавил(а) {{author}} {{age}} назад"
+  label_added_time_by: "Добавил(а) %{author} %{age} назад"
   label_added: добавлено
   label_add_note: Добавить замечание
   label_administration: ÐдминиÑтрирование
@@ -409,7 +409,7 @@
   label_all_time: вÑÑ‘ времÑ
   label_all_words: Ð’Ñе Ñлова
   label_all: вÑе
-  label_and_its_subprojects: "{{value}} и вÑе подпроекты"
+  label_and_its_subprojects: "%{value} и вÑе подпроекты"
   label_applied_status: Применимый ÑтатуÑ
   label_ascending: По возраÑтанию
   label_assigned_to_me_issues: Мои задачи
@@ -465,7 +465,7 @@
   label_custom_field_new: Ðовое наÑтраиваемое поле
   label_custom_field_plural: ÐаÑтраиваемые полÑ
   label_date_from: С
-  label_date_from_to: С {{start}} по {{end}}
+  label_date_from_to: С %{start} по %{end}
   label_date_range: временной интервал
   label_date_to: по
   label_date: Дата
@@ -479,15 +479,15 @@
   label_diff_side_by_side: Ñ€Ñдом
   label_disabled: отключено
   label_display: Отображение
-  label_display_per_page: "Ðа Ñтраницу: {{value}}"
+  label_display_per_page: "Ðа Ñтраницу: %{value}"
   label_document: Документ
   label_document_added: Добавлен документ
   label_document_new: Ðовый документ
   label_document_plural: Документы
-  label_download: "{{count}} загрузка"
-  label_download_plural: "{{count}} Ñкачиваний"
-  label_download_plural2: "{{count}} загрузки"
-  label_download_plural5: "{{count}} загрузок"
+  label_download: "%{count} загрузка"
+  label_download_plural: "%{count} Ñкачиваний"
+  label_download_plural2: "%{count} загрузки"
+  label_download_plural5: "%{count} загрузок"
   label_downloads_abbr: Скачиваний
   label_duplicated_by: дублируетÑÑ
   label_duplicates: дублирует
@@ -500,9 +500,9 @@
   label_example: Пример
   label_export_to: ЭкÑпортировать в
   label_feed_plural: RSS
-  label_feeds_access_key_created_on: "Ключ доÑтупа RSS Ñоздан {{value}} назад"
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑов"
+  label_feeds_access_key_created_on: "Ключ доÑтупа RSS Ñоздан %{value} назад"
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑов"
   label_file_added: Добавлен файл
   label_file_plural: Файлы
   label_filter_add: Добавить фильтр
@@ -533,7 +533,7 @@
   label_issue_category: ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸
   label_issue_new: ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡Ð°
   label_issue_plural: Задачи
-  label_issues_by: "Сортировать по {{value}}"
+  label_issues_by: "Сортировать по %{value}"
   label_issue_status_new: Ðовый ÑтатуÑ
   label_issue_status_plural: СтатуÑÑ‹ задачи
   label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð´Ð°Ñ‡Ð¸
@@ -543,10 +543,10 @@
   label_issue_watchers: Ðаблюдатели
   label_jump_to_a_project: Перейти к проекту...
   label_language_based: Ðа оÑнове Ñзыка
-  label_last_changes: "менее {{count}} изменений"
+  label_last_changes: "менее %{count} изменений"
   label_last_login: ПоÑледнее подключение
   label_last_month: поÑледний меÑÑц
-  label_last_n_days: "поÑледние {{count}} дней"
+  label_last_n_days: "поÑледние %{count} дней"
   label_last_week: поÑледнÑÑ Ð½ÐµÐ´ÐµÐ»ÑŽ
   label_latest_revision: ПоÑледнÑÑ Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ
   label_latest_revision_plural: ПоÑледние редакции
@@ -569,10 +569,10 @@
   label_message_posted: Добавлено Ñообщение
   label_me: мне
   label_min_max_length: ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ - макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð°
-  label_modification: "{{count}} изменение"
-  label_modification_plural: "{{count}} изменений"
-  label_modification_plural2: "{{count}} изменениÑ"
-  label_modification_plural5: "{{count}} изменений"
+  label_modification: "%{count} изменение"
+  label_modification_plural: "%{count} изменений"
+  label_modification_plural2: "%{count} изменениÑ"
+  label_modification_plural5: "%{count} изменений"
   label_modified: изменено
   label_module_plural: Модули
   label_months_from: меÑÑцев(ца) Ñ
@@ -653,9 +653,9 @@
   label_revision: РедакциÑ
   label_revision_plural: Редакции
   label_roadmap: Оперативный план
-  label_roadmap_due_in: "Ð’ Ñрок {{value}}"
+  label_roadmap_due_in: "Ð’ Ñрок %{value}"
   label_roadmap_no_issues: Ðет задач Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ верÑии
-  label_roadmap_overdue: "опоздание {{value}}"
+  label_roadmap_overdue: "опоздание %{value}"
   label_role: Роль
   label_role_and_permissions: Роли и права доÑтупа
   label_role_new: ÐÐ¾Ð²Ð°Ñ Ñ€Ð¾Ð»ÑŒ
@@ -668,7 +668,7 @@
   label_settings: ÐаÑтройки
   label_show_completed_versions: Показывать завершенные верÑии
   label_sort: Сортировать
-  label_sort_by: "Сортировать по {{value}}"
+  label_sort_by: "Сортировать по %{value}"
   label_sort_higher: Вверх
   label_sort_highest: В начало
   label_sort_lower: Вниз
@@ -694,11 +694,11 @@
   label_tracker: Трекер
   label_tracker_new: Ðовый трекер
   label_tracker_plural: Трекеры
-  label_updated_time: "Обновлено {{value}} назад"
-  label_updated_time_by: "Обновлено {{author}} {{age}} назад"
+  label_updated_time: "Обновлено %{value} назад"
+  label_updated_time_by: "Обновлено %{author} %{age} назад"
   label_used_by: ИÑпользуетÑÑ
   label_user: Пользователь
-  label_user_activity: "ÐктивноÑть Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ {{value}}"
+  label_user_activity: "ÐктивноÑть Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %{value}"
   label_user_mail_no_self_notified: "Ðе извещать об изменениÑÑ…, которые Ñ Ñделал Ñам"
   label_user_mail_option_all: "О вÑех ÑобытиÑÑ… во вÑех моих проектах"
   label_user_mail_option_selected: "О вÑех ÑобытиÑÑ… только в выбранном проекте..."
@@ -723,46 +723,46 @@
   label_x_closed_issues_abbr:
     zero:  "0 закрыто"
     one:   "1 закрыт"
-    few:   "{{count}} закрыто"
-    many:  "{{count}} закрыто"
-    other: "{{count}} закрыто"
+    few:   "%{count} закрыто"
+    many:  "%{count} закрыто"
+    other: "%{count} закрыто"
   label_x_comments:
     zero:  "нет комментариев"
     one:   "1 комментарий"
-    few:   "{{count}} комментариÑ"
-    many:  "{{count}} комментариев"
-    other: "{{count}} комментариев"
+    few:   "%{count} комментариÑ"
+    many:  "%{count} комментариев"
+    other: "%{count} комментариев"
   label_x_open_issues_abbr:
     zero:  "0 открыто"
     one:   "1 открыт"
-    few:   "{{count}} открыто"
-    many:  "{{count}} открыто"
-    other: "{{count}} открыто"
+    few:   "%{count} открыто"
+    many:  "%{count} открыто"
+    other: "%{count} открыто"
   label_x_open_issues_abbr_on_total:
-    zero:  "0 открыто / {{total}}"
-    one:   "1 открыт / {{total}}"
-    few:   "{{count}} открыто / {{total}}"
-    many:  "{{count}} открыто / {{total}}"
-    other: "{{count}} открыто / {{total}}"
+    zero:  "0 открыто / %{total}"
+    one:   "1 открыт / %{total}"
+    few:   "%{count} открыто / %{total}"
+    many:  "%{count} открыто / %{total}"
+    other: "%{count} открыто / %{total}"
   label_x_projects:
     zero:  "нет проектов"
     one:   "1 проект"
-    few:   "{{count}} проекта"
-    many:  "{{count}} проектов"
-    other: "{{count}} проектов"
+    few:   "%{count} проекта"
+    many:  "%{count} проектов"
+    other: "%{count} проектов"
   label_year: Год
   label_yesterday: вчера
 
-  mail_body_account_activation_request: "ЗарегиÑтрирован новый пользователь ({{value}}). Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ожидает Вашего утверждениÑ:"
+  mail_body_account_activation_request: "ЗарегиÑтрирован новый пользователь (%{value}). Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ожидает Вашего утверждениÑ:"
   mail_body_account_information: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Вашей учетной запиÑи
-  mail_body_account_information_external: "Ð’Ñ‹ можете иÑпользовать Вашу {{value}} учетную запиÑÑŒ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°."
+  mail_body_account_information_external: "Ð’Ñ‹ можете иÑпользовать Вашу %{value} учетную запиÑÑŒ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°."
   mail_body_lost_password: 'Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð¹Ð´Ð¸Ñ‚Ðµ по Ñледующей ÑÑылке:'
   mail_body_register: 'Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ учетной запиÑи зайдите по Ñледующей ÑÑылке:'
-  mail_body_reminder: "{{count}} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ на Ñледующие {{days}} дней:"
-  mail_subject_account_activation_request: "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° активацию Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтеме {{value}}"
-  mail_subject_lost_password: "Ваш {{value}} пароль"
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи {{value}}"
-  mail_subject_reminder: "{{count}} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ в ближайшие {{days}} дней"
+  mail_body_reminder: "%{count} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ на Ñледующие %{days} дней:"
+  mail_subject_account_activation_request: "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° активацию Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтеме %{value}"
+  mail_subject_lost_password: "Ваш %{value} пароль"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи %{value}"
+  mail_subject_reminder: "%{count} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ в ближайшие %{days} дней"
 
   notice_account_activated: Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ активирована. Ð’Ñ‹ можете войти.
   notice_account_invalid_creditentials: Ðеправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль
@@ -775,10 +775,10 @@
   notice_account_wrong_password: Ðеверный пароль
   notice_can_t_change_password: Ð”Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ учетной запиÑи иÑпользуетÑÑ Ð¸Ñточник внешней аутентификации. Ðевозможно изменить пароль.
   notice_default_data_loaded: Была загружена ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию.
-  notice_email_error: "Во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ пиÑьма произошла ошибка ({{value}})"
-  notice_email_sent: "Отправлено пиÑьмо {{value}}"
-  notice_failed_to_save_issues: "Ðе удалоÑÑŒ Ñохранить {{count}} пункт(ов) из {{total}} выбранных: {{ids}}."
-  notice_failed_to_save_members: "Ðе удалоÑÑŒ Ñохранить учаÑтника(ов): {{errors}}."
+  notice_email_error: "Во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ пиÑьма произошла ошибка (%{value})"
+  notice_email_sent: "Отправлено пиÑьмо %{value}"
+  notice_failed_to_save_issues: "Ðе удалоÑÑŒ Ñохранить %{count} пункт(ов) из %{total} выбранных: %{ids}."
+  notice_failed_to_save_members: "Ðе удалоÑÑŒ Ñохранить учаÑтника(ов): %{errors}."
   notice_feeds_access_key_reseted: Ваш ключ доÑтупа RSS был перезапущен.
   notice_file_not_found: Страница, на которую Ð’Ñ‹ пытаетеÑÑŒ зайти, не ÑущеÑтвует или удалена.
   notice_locking_conflict: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° другим пользователем.
@@ -859,7 +859,7 @@
   setting_attachment_max_size: МакÑимальный размер вложениÑ
   setting_autofetch_changesets: ÐвтоматичеÑки Ñледить за изменениÑми хранилища
   setting_autologin: ÐвтоматичеÑкий вход
-  setting_bcc_recipients: ИÑпользовать Ñкрытые ÑпиÑки (bcc)
+  setting_bcc_recipients: ИÑпользовать Ñкрытые ÑпиÑки (BCC)
   setting_cache_formatted_text: Кешировать форматированный текÑÑ‚
   setting_commit_fix_keywords: Ðазначение ключевых Ñлов
   setting_commit_logs_encoding: Кодировка комментариев в хранилище
@@ -871,7 +871,7 @@
   setting_default_projects_public: Ðовые проекты ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñ‰ÐµÐ´Ð¾Ñтупными
   setting_diff_max_lines_displayed: МакÑимальное чиÑло Ñтрок Ð´Ð»Ñ diff
   setting_display_subprojects_issues: Отображение подпроектов по умолчанию
-  setting_emails_footer: ПодÑтрочные Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Email
+  setting_emails_footer: ПодÑтрочные Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ð¸Ñьма
   setting_enabled_scm: Разрешенные SCM
   setting_feeds_limit: Ограничение количеÑтва заголовков Ð´Ð»Ñ RSS потока
   setting_file_max_size_displayed: МакÑимальный размер текÑтового файла Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ
@@ -905,29 +905,29 @@
   text_are_you_sure_with_children: Удалить задачу и вÑе ее подзадачи?
   text_are_you_sure: Подтвердите
   text_assign_time_entries_to_project: Прикрепить зарегиÑтрированное Ð²Ñ€ÐµÐ¼Ñ Ðº проекту
-  text_caracters_maximum: "МакÑимум {{count}} Ñимволов(а)."
-  text_caracters_minimum: "Должно быть не менее {{count}} Ñимволов."
+  text_caracters_maximum: "МакÑимум %{count} Ñимволов(а)."
+  text_caracters_minimum: "Должно быть не менее %{count} Ñимволов."
   text_comma_separated: ДопуÑтимы неÑколько значений (через запÑтую).
   text_custom_field_possible_values_info: 'По одному значению в каждой Ñтроке'
   text_default_administrator_account_changed: Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ админиÑтратора по умолчанию изменена
-  text_destroy_time_entries_question: Ð’Ñ‹ ÑобираетеÑÑŒ удалить {{hours}} чаÑа(ов), прикрепленных за Ñтой задачей.
+  text_destroy_time_entries_question: Ð’Ñ‹ ÑобираетеÑÑŒ удалить %{hours} чаÑа(ов), прикрепленных за Ñтой задачей.
   text_destroy_time_entries: Удалить зарегиÑтрированное времÑ
   text_diff_truncated: '... Этот diff ограничен, так как превышает макÑимальный отображаемый размер.'
   text_email_delivery_not_configured: "Параметры работы Ñ Ð¿Ð¾Ñ‡Ñ‚Ð¾Ð²Ñ‹Ð¼ Ñервером не наÑтроены и Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ email не активна.\nÐаÑтроить параметры Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ SMTP-Ñервера Ð’Ñ‹ можете в файле config/email.yml. Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ перезапуÑтите приложение."
   text_enumeration_category_reassign_to: 'Ðазначить им Ñледующее значение:'
-  text_enumeration_destroy_question: "{{count}} объект(а,ов) ÑвÑзаны Ñ Ñтим значением."
+  text_enumeration_destroy_question: "%{count} объект(а,ов) ÑвÑзаны Ñ Ñтим значением."
   text_file_repository_writable: Хранилище Ñ Ð´Ð¾Ñтупом на запиÑÑŒ
-  text_issue_added: "По задаче {{id}} был Ñоздан отчет ({{author}})."
+  text_issue_added: "По задаче %{id} был Ñоздан отчет (%{author})."
   text_issue_category_destroy_assignments: Удалить Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸
-  text_issue_category_destroy_question: "ÐеÑколько задач ({{count}}) назначено в данную категорию. Что Ð’Ñ‹ хотите предпринÑть?"
+  text_issue_category_destroy_question: "ÐеÑколько задач (%{count}) назначено в данную категорию. Что Ð’Ñ‹ хотите предпринÑть?"
   text_issue_category_reassign_to: Переназначить задачи Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ категории
   text_issues_destroy_confirmation: 'Вы уверены, что хотите удалить выбранные задачи?'
   text_issues_ref_in_commit_messages: СопоÑтавление и изменение ÑтатуÑа задач иÑÑ…Ð¾Ð´Ñ Ð¸Ð· текÑта Ñообщений
-  text_issue_updated: "Задача {{id}} была обновлена ({{author}})."
-  text_journal_changed: "Параметр {{label}} изменилÑÑ Ñ {{old}} на {{new}}"
-  text_journal_deleted: "Значение {{old}} параметра {{label}} удалено"
-  text_journal_set_to: "Параметр {{label}} изменилÑÑ Ð½Ð° {{value}}"
-  text_length_between: "Длина между {{min}} и {{max}} Ñимволов."
+  text_issue_updated: "Задача %{id} была обновлена (%{author})."
+  text_journal_changed: "Параметр %{label} изменилÑÑ Ñ %{old} на %{new}"
+  text_journal_deleted: "Значение %{old} параметра %{label} удалено"
+  text_journal_set_to: "Параметр %{label} изменилÑÑ Ð½Ð° %{value}"
+  text_length_between: "Длина между %{min} и %{max} Ñимволов."
   text_load_default_configuration: Загрузить конфигурацию по умолчанию
   text_min_max_length_info: 0 означает отÑутÑтвие запретов
   text_no_configuration_data: "Роли, трекеры, ÑтатуÑÑ‹ задач и оперативный план не были Ñконфигурированы.\nÐаÑтоÑтельно рекомендуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ конфигурацию по-умолчанию. Ð’Ñ‹ Ñможете её изменить потом."
@@ -940,31 +940,31 @@
   text_rmagick_available: ДоÑтупно иÑпользование RMagick (опционально)
   text_select_mail_notifications: Выберите дейÑтвиÑ, на которые будет отÑылатьÑÑ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ на Ñлектронную почту.
   text_select_project_modules: 'Выберите модули, которые будут иÑпользованы в проекте:'
-  text_status_changed_by_changeset: "Реализовано в {{value}} редакции."
-  text_subprojects_destroy_warning: "Подпроекты: {{value}} также будут удалены."
+  text_status_changed_by_changeset: "Реализовано в %{value} редакции."
+  text_subprojects_destroy_warning: "Подпроекты: %{value} также будут удалены."
   text_tip_issue_begin_day: дата начала задачи
   text_tip_issue_begin_end_day: начало задачи и окончание ее в Ñтот день
   text_tip_issue_end_day: дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸
   text_tracker_no_workflow: Ð”Ð»Ñ Ñтого трекера поÑледовательноÑть дейÑтвий не определена
   text_unallowed_characters: Запрещенные Ñимволы
   text_user_mail_option: "Ð”Ð»Ñ Ð½ÐµÐ²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… проектов, Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ о том что проÑматриваете или в чем учаÑтвуете (например, вопроÑÑ‹, автором которых Ð’Ñ‹ ÑвлÑетеÑÑŒ или которые Вам назначены)."
-  text_user_wrote: "{{value}} пиÑал(а):"
+  text_user_wrote: "%{value} пиÑал(а):"
   text_wiki_destroy_confirmation: Ð’Ñ‹ уверены, что хотите удалить данную Wiki и вÑе ее Ñодержимое?
   text_workflow_edit: Выберите роль и трекер Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледовательноÑти ÑоÑтоÑний
 
-  warning_attachments_not_saved: "{{count}} файл(ов) невозможно Ñохранить."
-  text_wiki_page_destroy_question: Эта Ñтраница имеет {{descendants}} дочерних Ñтраниц и их потомков. Что вы хотите Ñделать?
+  warning_attachments_not_saved: "%{count} файл(ов) невозможно Ñохранить."
+  text_wiki_page_destroy_question: Эта Ñтраница имеет %{descendants} дочерних Ñтраниц и их потомков. Что вы хотите Ñделать?
   text_wiki_page_reassign_children: Переопределить дочерние Ñтраницы на текущую Ñтраницу
   text_wiki_page_nullify_children: Сделать дочерние Ñтраницы главными Ñтраницами
   text_wiki_page_destroy_children: Удалить дочерние Ñтраницы и вÑех их потомков
   setting_password_min_length: ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° паролÑ
   field_group_by: Группировать результаты по
-  mail_subject_wiki_content_updated: "Wiki-Ñтраница '{{id}}' была обновлена"
+  mail_subject_wiki_content_updated: "Wiki-Ñтраница '%{id}' была обновлена"
   label_wiki_content_added: Добавлена wiki-Ñтраница
-  mail_subject_wiki_content_added: "Wiki-Ñтраница  '{{id}}' была добавлена"
-  mail_body_wiki_content_added: "{{author}} добавил(а) wiki-Ñтраницу '{{id}}'."
+  mail_subject_wiki_content_added: "Wiki-Ñтраница  '%{id}' была добавлена"
+  mail_body_wiki_content_added: "%{author} добавил(а) wiki-Ñтраницу '%{id}'."
   label_wiki_content_updated: Обновлена wiki-Ñтраница
-  mail_body_wiki_content_updated: "{{author}} обновил(а) wiki-Ñтраницу '{{id}}'."
+  mail_body_wiki_content_updated: "%{author} обновил(а) wiki-Ñтраницу '%{id}'."
   permission_add_project: Создание проекта
   setting_new_project_user_role_id: Роль, Ð½Ð°Ð·Ð½Ð°Ñ‡Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ, Ñоздавшему проект
   label_view_all_revisions: Показать вÑе ревизии
@@ -976,7 +976,7 @@
   label_group: Группа
   label_group_new: ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°
   label_time_entry_plural: Затраченное времÑ
-  text_journal_added: "{{label}} {{value}} добавлен"
+  text_journal_added: "%{label} %{value} добавлен"
   field_active: Ðктивно
   enumeration_system_activity: СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñть
   permission_delete_issue_watchers: Удаление наблюдателей
@@ -1011,10 +1011,10 @@
   setting_start_of_week: День начала недели
   label_api_access_key: Ключ доÑтупа к API
   text_line_separated: Разрешено неÑколько значений (по одному значению в Ñтроку).
-  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}
+  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}
   permission_view_issues: ПроÑмотр задач
   label_display_used_statuses_only: Отображать только те ÑтатуÑÑ‹, которые иÑпользуютÑÑ Ð² Ñтом трекере
-  label_api_access_key_created_on: Ключ доÑтуп к API был Ñоздан {{value}} назад
+  label_api_access_key_created_on: Ключ доÑтуп к API был Ñоздан %{value} назад
   label_feeds_access_key: Ключ доÑтупа к RSS
   notice_api_access_key_reseted: Ваш ключ доÑтупа к API был Ñброшен.
   setting_rest_api_enabled: Включить веб-ÑÐµÑ€Ð²Ð¸Ñ REST
@@ -1035,13 +1035,17 @@
   text_zoom_in: Приблизить
   notice_unable_delete_time_entry: Ðевозможно удалить запиÑÑŒ журнала.
   label_overall_spent_time: Ð’Ñего затрачено времени
-
   label_user_mail_option_none: Ðет Ñобытий
   field_member_of_group: Группа назначенного
   field_assigned_to_role: Роль назначенного
   notice_not_authorized_archived_project: Запрашиваемый проект был архивирован.
+  label_principal_search: "Ðайти Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группу:"
+  label_user_search: "Ðайти пользователÑ:"
+  field_visible: Видимый
+  setting_emails_header: Заголовок пиÑьма
 
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/sk.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/sk.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "pol minúty"
       less_than_x_seconds:
         one:   "menej ako 1 sekunda"
-        other: "menej ako {{count}} sekúnd"
+        other: "menej ako %{count} sekúnd"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekúnd"
+        other: "%{count} sekúnd"
       less_than_x_minutes:
         one:   "menej ako minúta"
-        other: "menej ako {{count}} minút"
+        other: "menej ako %{count} minút"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minút"
+        other: "%{count} minút"
       about_x_hours:
         one:   "okolo 1 hodiny"
-        other: "okolo {{count}} hodín"
+        other: "okolo %{count} hodín"
       x_days:
         one:   "1 deň"
-        other: "{{count}} dní"
+        other: "%{count} dní"
       about_x_months:
         one:   "okolo 1 mesiaca"
-        other: "okolo {{count}} mesiace/ov"
+        other: "okolo %{count} mesiace/ov"
       x_months:
         one:   "1 mesiac"
-        other: "{{count}} mesiace/ov"
+        other: "%{count} mesiace/ov"
       about_x_years:
         one:   "okolo 1 roka"
-        other: "okolo {{count}} roky/ov"
+        other: "okolo %{count} roky/ov"
       over_x_years:
         one:   "cez 1 rok"
-        other: "cez {{count}} roky/ov"
+        other: "cez %{count} roky/ov"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     human: 
@@ -88,6 +88,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nieje zahrnuté v zozname"
         exclusion: "je rezervované"
@@ -102,11 +106,11 @@
         taken: "je už použité"
         not_a_number: "nieje Äíslo"
         not_a_date: "nieje platný dátum"
-        greater_than: "musí byÅ¥ väÄšíe ako {{count}}"
-        greater_than_or_equal_to: "musí byÅ¥ väÄÅ¡ie alebo rovné {{count}}"
-        equal_to: "musí byť rovné {{count}}"
-        less_than: "musí byť menej ako {{count}}"
-        less_than_or_equal_to: "musí byť menej alebo rovné {{count}}"
+        greater_than: "musí byÅ¥ väÄšíe ako %{count}"
+        greater_than_or_equal_to: "musí byÅ¥ väÄÅ¡ie alebo rovné %{count}"
+        equal_to: "musí byť rovné %{count}"
+        less_than: "musí byť menej ako %{count}"
+        less_than_or_equal_to: "musí byť menej alebo rovné %{count}"
         odd: "musí byť nepárne"
         even: "musí byť párne"
         greater_than_start_date: "musí byÅ¥ neskôr ako poÄiatoÄný dátum"
@@ -146,30 +150,30 @@
   notice_locking_conflict: Údaje boli zmenené iným užívateľom.
   notice_scm_error: Položka a/alebo revízia neexistuje v repozitári.
   notice_not_authorized: Nemáte dostatoÄné práva pre zobrazenie tejto stránky.
-  notice_email_sent: "Na adresu {{value}} bol odeslaný email"
-  notice_email_error: "Pri odosielaní emailu nastala chyba ({{value}})"
+  notice_email_sent: "Na adresu %{value} bol odeslaný email"
+  notice_email_error: "Pri odosielaní emailu nastala chyba (%{value})"
   notice_feeds_access_key_reseted: Váš klÃºÄ pre prístup k Atomu bol resetovaný.
-  notice_failed_to_save_issues: "Nastala chyba pri ukládaní {{count}} úloh na {{total}} zvolený: {{ids}}."
+  notice_failed_to_save_issues: "Nastala chyba pri ukládaní %{count} úloh na %{total} zvolený: %{ids}."
   notice_no_issue_selected: "Nebola zvolená žiadná úloha. Prosím, zvoľte úlohy, ktoré chcete upraviť"
   notice_account_pending: "Váš úÄet bol vytvorený, teraz Äaká na schválenie administrátorom."
   notice_default_data_loaded: Výchozia konfigurácia úspešne nahraná.
   
-  error_can_t_load_default_data: "Výchozia konfigurácia nebola nahraná: {{value}}"
+  error_can_t_load_default_data: "Výchozia konfigurácia nebola nahraná: %{value}"
   error_scm_not_found: "Položka a/alebo revízia neexistuje v repozitári."
-  error_scm_command_failed: "Pri pokuse o prístup k repozitári došlo k chybe: {{value}}"
+  error_scm_command_failed: "Pri pokuse o prístup k repozitári došlo k chybe: %{value}"
   error_issue_not_found_in_project: 'Úloha nebola nájdená alebo nepatrí k tomuto projektu'
   
-  mail_subject_lost_password: "Vaše heslo ({{value}})"
+  mail_subject_lost_password: "Vaše heslo (%{value})"
   mail_body_lost_password: 'Pre zmenu vašeho hesla kliknite na následujúci odkaz:'
-  mail_subject_register: "Aktivácia úÄtu ({{value}})"
+  mail_subject_register: "Aktivácia úÄtu (%{value})"
   mail_body_register: 'Pre aktiváciu vaÅ¡eho úÄtu kliknite na následujúci odkaz:'
-  mail_body_account_information_external: "Pomocou vaÅ¡eho úÄtu {{value}} se môžete prihlásiÅ¥."
+  mail_body_account_information_external: "Pomocou vaÅ¡eho úÄtu %{value} se môžete prihlásiÅ¥."
   mail_body_account_information: Informácie o vaÅ¡om úÄte
-  mail_subject_account_activation_request: "Aktivácia {{value}} úÄtu"
-  mail_body_account_activation_request: "Bol zaregistrovaný nový uživateľ {{value}}. Aktivácia jeho úÄtu závisí na vaÅ¡om potvrdení."
+  mail_subject_account_activation_request: "Aktivácia %{value} úÄtu"
+  mail_body_account_activation_request: "Bol zaregistrovaný nový uživateľ %{value}. Aktivácia jeho úÄtu závisí na vaÅ¡om potvrdení."
   
   gui_validation_error: 1 chyba
-  gui_validation_error_plural: "{{count}} chyb(y)"
+  gui_validation_error_plural: "%{count} chyb(y)"
   
   field_name: Názov
   field_description: Popis
@@ -231,6 +235,7 @@
   field_attr_lastname: Priezvisko (atribut)
   field_attr_mail: Email (atribut)
   field_onthefly: Automatické vytváranie užívateľov
+  field_start_date: ZaÄiatok
   field_done_ratio: % hotovo
   field_auth_source: AutentifikaÄný mód
   field_hide_mail: Nezobrazovať môj email
@@ -304,14 +309,14 @@
   label_x_projects:
     zero:  žiadne projekty
     one:   1 projekt
-    other: "{{count}} projekty/ov"
+    other: "%{count} projekty/ov"
   label_project_all: Všetky projekty
   label_project_latest: Posledné projekty
   label_issue: Úloha
   label_issue_new: Nová úloha
   label_issue_plural: Úlohy
   label_issue_view_all: Všetky úlohy
-  label_issues_by: "Úlohy od užívateľa {{value}}"
+  label_issues_by: "Úlohy od užívateľa %{value}"
   label_issue_added: Úloha pridaná
   label_issue_updated: Úloha aktualizovaná
   label_document: Dokument
@@ -377,8 +382,8 @@
   label_text: Dlhý text
   label_attribute: Atribut
   label_attribute_plural: Atributy
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloady"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloady"
   label_no_data: Žiadné položky
   label_change_status: Zmeniť stav
   label_history: História
@@ -409,17 +414,17 @@
   label_closed_issues: Uzavrený
   label_closed_issues_plural: Uzavrené
   label_x_open_issues_abbr_on_total:
-    zero:  0 otvorených z celkovo {{total}}
-    one:   1 otvorený z celkovo {{total}}
-    other: "{{count}} otvorené/ých z celkovo {{total}}"
+    zero:  0 otvorených z celkovo %{total}
+    one:   1 otvorený z celkovo %{total}
+    other: "%{count} otvorené/ých z celkovo %{total}"
   label_x_open_issues_abbr:
     zero:  0 otvorených
     one:   1 otvorený
-    other: "{{count}} otvorené/ých"
+    other: "%{count} otvorené/ých"
   label_x_closed_issues_abbr:
     zero:  0 zavretých
     one:   1 zavretý
-    other: "{{count}} zavreté/ých"
+    other: "%{count} zavreté/ých"
   label_total: Celkovo
   label_permissions: Práva
   label_current_status: Aktuálny stav
@@ -437,7 +442,7 @@
   label_months_from: mesiacov od
   label_gantt: Ganttov graf
   label_internal: Interný
-  label_last_changes: "posledných {{count}} zmien"
+  label_last_changes: "posledných %{count} zmien"
   label_change_view_all: Zobraziť všetky zmeny
   label_personalize_page: Prispôsobiť túto stránku
   label_comment: Komentár
@@ -445,7 +450,7 @@
   label_x_comments:
     zero: žiaden komentár
     one: 1 komentár
-    other: "{{count}} komentáre/ov"
+    other: "%{count} komentáre/ov"
   label_comment_add: Pridať komentár
   label_comment_added: Komentár pridaný
   label_comment_delete: Odstrániť komentár
@@ -464,7 +469,7 @@
   label_yesterday: vÄera
   label_this_week: tento týždeň
   label_last_week: minulý týždeň
-  label_last_n_days: "posledných {{count}} dní"
+  label_last_n_days: "posledných %{count} dní"
   label_this_month: tento mesiac
   label_last_month: minulý mesiac
   label_this_year: tento rok
@@ -478,8 +483,8 @@
   label_repository: Repozitár
   label_repository_plural: Repozitáre
   label_browse: Prechádzať
-  label_modification: "{{count}} zmena"
-  label_modification_plural: "{{count}} zmien"
+  label_modification: "%{count} zmena"
+  label_modification_plural: "%{count} zmien"
   label_revision: Revízia
   label_revision_plural: Revízií
   label_associated_revisions: Súvisiace verzie
@@ -495,8 +500,8 @@
   label_sort_lower: Presunúť dole
   label_sort_lowest: Presunúť na koniec
   label_roadmap: Plán
-  label_roadmap_due_in: "Zostáva {{value}}"
-  label_roadmap_overdue: "{{value}} neskoro"
+  label_roadmap_due_in: "Zostáva %{value}"
+  label_roadmap_overdue: "%{value} neskoro"
   label_roadmap_no_issues: Pre túto verziu niesú žiadne úlohy
   label_search: Hľadať
   label_result_plural: Výsledky
@@ -514,8 +519,8 @@
   label_changes_details: Detail všetkých zmien
   label_issue_tracking: Sledovanie úloh
   label_spent_time: Strávený Äas
-  label_f_hour: "{{value}} hodina"
-  label_f_hour_plural: "{{value}} hodín"
+  label_f_hour: "%{value} hodina"
+  label_f_hour_plural: "%{value} hodín"
   label_time_tracking: Sledovánie Äasu
   label_change_plural: Zmeny
   label_statistics: Å tatistiky
@@ -563,12 +568,12 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Podľa výchozieho jazyka
-  label_sort_by: "Zoradenie podľa {{value}}"
+  label_sort_by: "Zoradenie podľa %{value}"
   label_send_test_email: Poslať testovací email
-  label_feeds_access_key_created_on: "Prístupový klÃºÄ pre RSS bol vytvorený pred {{value}}"
+  label_feeds_access_key_created_on: "Prístupový klÃºÄ pre RSS bol vytvorený pred %{value}"
   label_module_plural: Moduly
-  label_added_time_by: "Pridané užívateľom {{author}} pred {{age}}"
-  label_updated_time: "Aktualizované pred {{value}}"
+  label_added_time_by: "Pridané užívateľom %{author} pred %{age}"
+  label_updated_time: "Aktualizované pred %{value}"
   label_jump_to_a_project: Zvoliť projekt...
   label_file_plural: Súbory
   label_changeset_plural: Sady zmien
@@ -584,7 +589,7 @@
   label_registration_activation_by_email: aktivácia úÄtu emailom
   label_registration_manual_activation: manuálna aktivácia úÄtu
   label_registration_automatic_activation: automatická aktivácia úÄtu
-  label_display_per_page: "{{value}} na stránku"
+  label_display_per_page: "%{value} na stránku"
   label_age: Vek
   label_change_properties: Zmeniť vlastnosti
   label_general: Všeobecné
@@ -651,23 +656,23 @@
   text_tip_issue_end_day: úloha konÄí v tento deň
   text_tip_issue_begin_end_day: úloha zaÄína a konÄí v tento deň
   text_project_identifier_info: 'Povolené znaky sú malé písmena (a-z), Äísla a pomlÄka.<br />Po uložení už nieje možné identifikátor zmeniÅ¥.'
-  text_caracters_maximum: "{{count}} znakov maximálne."
-  text_caracters_minimum: "Musí byť aspoň {{count}} znaky/ov dlhé."
-  text_length_between: "Dĺžka medzi {{min}} až {{max}} znakmi."
+  text_caracters_maximum: "%{count} znakov maximálne."
+  text_caracters_minimum: "Musí byť aspoň %{count} znaky/ov dlhé."
+  text_length_between: "Dĺžka medzi %{min} až %{max} znakmi."
   text_tracker_no_workflow: Pre tuto frontu nieje definovaný žiadný workflow
   text_unallowed_characters: Nepovolené znaky
   text_comma_separated: Je povolené viacero hodnôt (oddelené navzájom Äiarkou).
   text_issues_ref_in_commit_messages: Odkazovať a upravovať úlohy v správach s následovnym obsahom
-  text_issue_added: "úloha {{id}} bola vytvorená užívateľom {{author}}."
-  text_issue_updated: "Úloha {{id}} byla aktualizovaná užívateľom {{author}}."
+  text_issue_added: "úloha %{id} bola vytvorená užívateľom %{author}."
+  text_issue_updated: "Úloha %{id} byla aktualizovaná užívateľom %{author}."
   text_wiki_destroy_confirmation: Naozaj si prajete odstrániť túto Wiki a celý jej obsah?
-  text_issue_category_destroy_question: "Niektoré úlohy ({{count}}) sú priradené k tejto kategórii. Čo chtete  s nimi spraviť?"
+  text_issue_category_destroy_question: "Niektoré úlohy (%{count}) sú priradené k tejto kategórii. Čo chtete  s nimi spraviť?"
   text_issue_category_destroy_assignments: Zrušiť priradenie ku kategórii
   text_issue_category_reassign_to: Priradiť úlohy do tejto kategórie
   text_user_mail_option: "U projektov, které neboli vybrané, budete dostávaÅ¥ oznamenie iba o vaÅ¡ich Äi o sledovaných položkách (napr. o položkách, ktorých ste autor, alebo ku ktorým ste priradený/á)."
   text_no_configuration_data: "Role, fronty, stavy úloh ani workflow neboli zatiaľ nakonfigurované.\nVelmi doporuÄujeme nahraÅ¥ východziu konfiguráciu. Potom si môžete vÅ¡etko upraviÅ¥"
   text_load_default_configuration: Nahrať východziu konfiguráciu
-  text_status_changed_by_changeset: "Aktualizované v sade zmien {{value}}."
+  text_status_changed_by_changeset: "Aktualizované v sade zmien %{value}."
   text_issues_destroy_confirmation: 'Naozaj si prajete odstrániť všetky zvolené úlohy?'
   text_select_project_modules: 'Aktivne moduly v tomto projekte:'
   text_default_administrator_account_changed: Zmenené výchozie nastavenie administrátorského úÄtu
@@ -705,15 +710,15 @@
   enumeration_activities: Aktivity (sledovanie Äasu)
   error_scm_annotate: "Položka neexistuje alebo nemôže byť komentovaná."
   label_planning: Plánovanie
-  text_subprojects_destroy_warning: "Jeho podprojekt(y): {{value}} budú takisto vymazané."
-  label_and_its_subprojects: "{{value}} a jeho podprojekty"
-  mail_body_reminder: "{{count}} úloha(y), ktorá(é) je(sú) vám priradený(é), ma(jú) byť hotova(é) za {{days}} dní:"
-  mail_subject_reminder: "{{count}} úloha(y) ma(jú) byť hotova(é) za pár {{days}} dní"
-  text_user_wrote: "{{value}} napísal:"
+  text_subprojects_destroy_warning: "Jeho podprojekt(y): %{value} budú takisto vymazané."
+  label_and_its_subprojects: "%{value} a jeho podprojekty"
+  mail_body_reminder: "%{count} úloha(y), ktorá(é) je(sú) vám priradený(é), ma(jú) byť hotova(é) za %{days} dní:"
+  mail_subject_reminder: "%{count} úloha(y) ma(jú) byť hotova(é) za pár %{days} dní"
+  text_user_wrote: "%{value} napísal:"
   label_duplicated_by: duplikovaný
   setting_enabled_scm: Zapnúť SCM
   text_enumeration_category_reassign_to: 'Prenastaviť na túto hodnotu:'
-  text_enumeration_destroy_question: "{{count}} objekty sú nastavené na túto hodnotu."
+  text_enumeration_destroy_question: "%{count} objekty sú nastavené na túto hodnotu."
   label_incoming_emails: Príchádzajúce emaily
   label_generate_key: VygenerovaÅ¥ kľúÄ
   setting_mail_handler_api_enabled: Zapnúť Webovú Službu (WS) pre príchodzie emaily
@@ -779,12 +784,12 @@
   permission_delete_own_messages: Mazanie vlastných správ
   text_repository_usernames_mapping: "Vyberte alebo upravte mapovanie medzi užívateľmi systému Redmine a užívateľskými menami nájdenými v logu repozitára.\nUžívatelia s rovnakým prihlasovacím menom alebo emailom v systéme Redmine a repozitára sú mapovaní automaticky."
   label_example: Príklad
-  label_user_activity: "Aktivita užívateľa {{value}}"
-  label_updated_time_by: "Aktualizované užívateľom {{author}} pred {{age}}"
+  label_user_activity: "Aktivita užívateľa %{value}"
+  label_updated_time_by: "Aktualizované užívateľom %{author} pred %{age}"
   text_diff_truncated: '... Tento rozdielový výpis bol skratený, pretože prekraÄuje maximálnu veľkosÅ¥, ktorá môže byÅ¥ zobrazená.'
   setting_diff_max_lines_displayed: Maximálne množstvo zobrazených riadkov rozdielového výpisu
   text_plugin_assets_writable: Adresár pre pluginy s možnosťou zápisu
-  warning_attachments_not_saved: "{{count}} súbor(y) nemohol(li) byť uložené."
+  warning_attachments_not_saved: "%{count} súbor(y) nemohol(li) byť uložené."
   field_editable: Editovateľné
   label_display: Zobrazenie
   button_create_and_continue: VytvoriÅ¥ a pokraÄovaÅ¥
@@ -799,22 +804,22 @@
   label_descending: Zostupné
   label_sort: Zoradenie
   label_ascending: Rastúce
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Táto stránka má {{descendants}} podstránku/y a potomka/ov. Čo chcete vykonať?
+  text_wiki_page_destroy_question: Táto stránka má %{descendants} podstránku/y a potomka/ov. Čo chcete vykonať?
   text_wiki_page_reassign_children: Preradiť podstránky k tejto hlavnej stránke
   text_wiki_page_nullify_children: Zachovať podstránky ako hlavné stránky
   text_wiki_page_destroy_children: Vymazať podstránky a všetkých ich potomkov
   setting_password_min_length: Minimálna dĺžka hesla
   field_group_by: Skupinové výsledky podľa
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki stránka bola aktualizovaná"
+  mail_subject_wiki_content_updated: "'%{id}' Wiki stránka bola aktualizovaná"
   label_wiki_content_added: Wiki stránka pridaná
-  mail_subject_wiki_content_added: "'{{id}}' Wiki stránka bola pridaná"
-  mail_body_wiki_content_added: The '{{id}}' Wiki stránka bola pridaná užívateľom {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' Wiki stránka bola pridaná"
+  mail_body_wiki_content_added: The '%{id}' Wiki stránka bola pridaná užívateľom %{author}.
   permission_add_project: Vytvorenie projektu
   label_wiki_content_updated: Wiki stránka aktualizovaná
-  mail_body_wiki_content_updated: Wiki stránka '{{id}}' bola aktualizovaná užívateľom {{author}}.
+  mail_body_wiki_content_updated: Wiki stránka '%{id}' bola aktualizovaná užívateľom %{author}.
   setting_repositories_encodings: Kódovanie repozitára
   setting_new_project_user_role_id: Rola dána non-admin užívateľovi, ktorý vytvorí projekt
   label_view_all_revisions: Zobraziť všetkz revízie
@@ -822,14 +827,14 @@
   label_branch: Vetva
   error_no_tracker_in_project: K tomuto projektu nieje priradená žiadna fronta. Prosím skontrolujte nastavenie projektu.
   error_no_default_issue_status: Nieje definovaný východzí stav úlohy. Prosím skontrolujte vase nastavenie (ChoÄte na "Administrácia -> Stavz úloh").
-  text_journal_changed: "{{label}} zmenené z {{old}} na {{new}}"
-  text_journal_set_to: "{{label}} nastavené na {{value}}"
-  text_journal_deleted: "{{label}} zmazané ({{old}})"
+  text_journal_changed: "%{label} zmenené z %{old} na %{new}"
+  text_journal_set_to: "%{label} nastavené na %{value}"
+  text_journal_deleted: "%{label} zmazané (%{old})"
   label_group_plural: Skupiny
   label_group: Skupina
   label_group_new: Nová skupina
   label_time_entry_plural: Strávený Äas
-  text_journal_added: "{{label}} {{value}} pridané"
+  text_journal_added: "%{label} %{value} pridané"
   field_active: Aktívne
   enumeration_system_activity: Aktivita systému
   permission_delete_issue_watchers: Odstrániť pozorovateľov
@@ -864,9 +869,9 @@
   setting_start_of_week: Štart pracovného týždňa v
   permission_view_issues: Zobraziť úlohy
   label_display_used_statuses_only: Zobraziť len stavy, ktoré sú priradené k tejto fronte
-  label_revision_id: Revízia {{value}}
+  label_revision_id: Revízia %{value}
   label_api_access_key: API prístupový kľúÄ
-  label_api_access_key_created_on: API prístupový kÄ¾ÃºÄ vytvorený pred {{value}}
+  label_api_access_key_created_on: API prístupový kÄ¾ÃºÄ vytvorený pred %{value}
   label_feeds_access_key: RSS prístupový kľúÄ
   notice_api_access_key_reseted: Váš API prístupový kÄ¾ÃºÄ bol resetovaný.
   setting_rest_api_enabled: Zapnúť REST web službu
@@ -893,12 +898,12 @@
   label_subtask_plural: Podúlohy
   label_project_copy_notifications: Zaslať emailové upozornenie behom kopírovania projektu
   error_can_not_delete_custom_field: Nieje možné vymazať užívateľské pole
-  error_unable_to_connect: Nieje možné vymazať ({{value}})
+  error_unable_to_connect: Nieje možné vymazať (%{value})
   error_can_not_remove_role: Táto roľa sa používa a nemôže byť vymazaná.
   error_can_not_delete_tracker: Táto fronta obsahuje úlohy a nemôže byť vymazaná.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -906,7 +911,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -917,8 +922,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/sl.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/sl.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "ni vkljuÄen na seznamu"
         exclusion: "je rezerviran"
@@ -106,11 +110,11 @@
         taken: "je že zaseden"
         not_a_number: "ni število"
         not_a_date: "ni veljaven datum"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "mora biti kasnejÅ¡i kot zaÄeten datum"
@@ -147,34 +151,34 @@
   notice_file_not_found: Stran na katero se želite povezati ne obstaja ali pa je bila umaknjena.
   notice_locking_conflict: Drug uporabnik je posodobil podatke.
   notice_not_authorized: Nimate privilegijev za dostop do te strani.
-  notice_email_sent: "E-poÅ¡tno sporoÄilo je bilo poslano {{value}}"
-  notice_email_error: "Ob poÅ¡iljanju e-sporoÄila je priÅ¡lo do napake ({{value}})"
+  notice_email_sent: "E-poÅ¡tno sporoÄilo je bilo poslano %{value}"
+  notice_email_error: "Ob poÅ¡iljanju e-sporoÄila je priÅ¡lo do napake (%{value})"
   notice_feeds_access_key_reseted: VaÅ¡ RSS dostopni kljuÄ je bil ponastavljen.
-  notice_failed_to_save_issues: "Neuspelo shranjevanje {{count}} zahtevka na {{total}} izbranem: {{ids}}."
+  notice_failed_to_save_issues: "Neuspelo shranjevanje %{count} zahtevka na %{total} izbranem: %{ids}."
   notice_no_issue_selected: "Izbran ni noben zahtevek! Prosimo preverite zahtevke, ki jih želite urediti."
   notice_account_pending: "VaÅ¡ raÄun je bil ustvarjen in Äaka na potrditev s strani administratorja."
   notice_default_data_loaded: Privzete nastavitve so bile uspešno naložene.
   notice_unable_delete_version: Verzije ni bilo mogoÄe izbrisati.
   
-  error_can_t_load_default_data: "Privzetih nastavitev ni bilo mogoÄe naložiti: {{value}}"
+  error_can_t_load_default_data: "Privzetih nastavitev ni bilo mogoÄe naložiti: %{value}"
   error_scm_not_found: "Vnos ali revizija v shrambi ni bila najdena ."
-  error_scm_command_failed: "Med vzpostavljem povezave s shrambo je prišlo do napake: {{value}}"
+  error_scm_command_failed: "Med vzpostavljem povezave s shrambo je prišlo do napake: %{value}"
   error_scm_annotate: "Vnos ne obstaja ali pa ga ni mogoÄe komentirati."
   error_issue_not_found_in_project: 'Zahtevek ni bil najden ali pa ne pripada temu projektu'
   
-  mail_subject_lost_password: "Vaše {{value}} geslo"
+  mail_subject_lost_password: "Vaše %{value} geslo"
   mail_body_lost_password: 'Za spremembo glesla kliknite na naslednjo povezavo:'
-  mail_subject_register: "Aktivacija {{value}} vaÅ¡ega raÄuna"
+  mail_subject_register: "Aktivacija %{value} vaÅ¡ega raÄuna"
   mail_body_register: 'Za aktivacijo vaÅ¡ega raÄuna kliknite na naslednjo povezavo:'
-  mail_body_account_information_external: "Za prijavo lahko uporabite vaÅ¡ {{value}} raÄun."
+  mail_body_account_information_external: "Za prijavo lahko uporabite vaÅ¡ %{value} raÄun."
   mail_body_account_information: Informacije o vaÅ¡em raÄunu
-  mail_subject_account_activation_request: "{{value}} zahtevek za aktivacijo raÄuna"
-  mail_body_account_activation_request: "Registriral se je nov uporabnik ({{value}}). RaÄun Äaka na vaÅ¡o odobritev:"
-  mail_subject_reminder: "{{count}} zahtevek(zahtevki) zapadejo v naslednjih {{days}} dneh"
-  mail_body_reminder: "{{count}} zahtevek(zahtevki), ki so vam dodeljeni bodo zapadli v naslednjih {{days}} dneh:"
+  mail_subject_account_activation_request: "%{value} zahtevek za aktivacijo raÄuna"
+  mail_body_account_activation_request: "Registriral se je nov uporabnik (%{value}). RaÄun Äaka na vaÅ¡o odobritev:"
+  mail_subject_reminder: "%{count} zahtevek(zahtevki) zapadejo v naslednjih %{days} dneh"
+  mail_body_reminder: "%{count} zahtevek(zahtevki), ki so vam dodeljeni bodo zapadli v naslednjih %{days} dneh:"
   
   gui_validation_error: 1 napaka
-  gui_validation_error_plural: "{{count}} napak"
+  gui_validation_error_plural: "%{count} napak"
   
   field_name: Ime
   field_description: Opis
@@ -236,6 +240,7 @@
   field_attr_lastname: Oznaka za priimek
   field_attr_mail: Oznaka za e-naslov
   field_onthefly: Sprotna izdelava uporabnikov
+  field_start_date: ZaÄetek
   field_done_ratio: % Narejeno
   field_auth_source: NaÄin overovljanja
   field_hide_mail: Skrij moj e-naslov
@@ -367,14 +372,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Vsi projekti
   label_project_latest: Zadnji projekti
   label_issue: Zahtevek
   label_issue_new: Nov zahtevek
   label_issue_plural: Zahtevki
   label_issue_view_all: Poglej vse zahtevke
-  label_issues_by: "Zahtevki od {{value}}"
+  label_issues_by: "Zahtevki od %{value}"
   label_issue_added: Zahtevek dodan
   label_issue_updated: Zahtevek posodobljen
   label_document: Dokument
@@ -422,7 +427,7 @@
   label_registered_on: Registriran
   label_activity: Aktivnost
   label_overall_activity: Celotna aktivnost
-  label_user_activity: "Aktivnost {{value}}"
+  label_user_activity: "Aktivnost %{value}"
   label_new: Nov
   label_logged_as: Prijavljen(a) kot
   label_environment: Okolje
@@ -431,7 +436,7 @@
   label_auth_source_new: Nov naÄin overovitve
   label_auth_source_plural: NaÄini overovitve
   label_subproject_plural: Podprojekti
-  label_and_its_subprojects: "{{value}} in njegovi podprojekti"
+  label_and_its_subprojects: "%{value} in njegovi podprojekti"
   label_min_max_length: Min - Max dolžina
   label_list: Seznam
   label_date: Datum
@@ -442,8 +447,8 @@
   label_text: Dolgo besedilo
   label_attribute: Lastnost
   label_attribute_plural: Lastnosti
-  label_download: "{{count}} Prenos"
-  label_download_plural: "{{count}} Prenosi"
+  label_download: "%{count} Prenos"
+  label_download_plural: "%{count} Prenosi"
   label_no_data: Ni podatkov za prikaz
   label_change_status: Spremeni stanje
   label_history: Zgodovina
@@ -474,17 +479,17 @@
   label_closed_issues: zapri zahtevek
   label_closed_issues_plural: zapri zahtevke
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Skupaj
   label_permissions: Dovoljenja
   label_current_status: Trenutno stanje
@@ -502,7 +507,7 @@
   label_months_from: mesecev od
   label_gantt: Gantt
   label_internal: Notranji
-  label_last_changes: "zadnjih {{count}} sprememb"
+  label_last_changes: "zadnjih %{count} sprememb"
   label_change_view_all: Poglej vse spremembe
   label_personalize_page: Individualiziraj to stran
   label_comment: Komentar
@@ -510,7 +515,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar dodan
   label_comment_delete: Izbriši komentarje
@@ -529,7 +534,7 @@
   label_yesterday: vÄeraj
   label_this_week: ta teden
   label_last_week: pretekli teden
-  label_last_n_days: "zadnjih {{count}} dni"
+  label_last_n_days: "zadnjih %{count} dni"
   label_this_month: ta mesec
   label_last_month: zadnji mesec
   label_this_year: to leto
@@ -543,8 +548,8 @@
   label_repository: Shramba
   label_repository_plural: Shrambe
   label_browse: Prebrskaj
-  label_modification: "{{count}} sprememba"
-  label_modification_plural: "{{count}} spremembe"
+  label_modification: "%{count} sprememba"
+  label_modification_plural: "%{count} spremembe"
   label_revision: Revizija
   label_revision_plural: Revizije
   label_associated_revisions: Povezane revizije
@@ -562,8 +567,8 @@
   label_sort_lower: Premakni dol
   label_sort_lowest: Premakni na dno
   label_roadmap: NaÄrt
-  label_roadmap_due_in: "Do {{value}}"
-  label_roadmap_overdue: "{{value}} zakasnel"
+  label_roadmap_due_in: "Do %{value}"
+  label_roadmap_overdue: "%{value} zakasnel"
   label_roadmap_no_issues: Ni zahtevkov za to verzijo
   label_search: IÅ¡Äi
   label_result_plural: Rezultati
@@ -581,8 +586,8 @@
   label_changes_details: Podrobnosti o vseh spremembah
   label_issue_tracking: Sledenje zahtevkom
   label_spent_time: Porabljen Äas
-  label_f_hour: "{{value}} ura"
-  label_f_hour_plural: "{{value}} ur"
+  label_f_hour: "%{value} ura"
+  label_f_hour_plural: "%{value} ur"
   label_time_tracking: Sledenje Äasu
   label_change_plural: Spremembe
   label_statistics: Statistika
@@ -631,13 +636,13 @@
   label_date_from: Do
   label_date_to: Do
   label_language_based: Glede na uporabnikov jezik
-  label_sort_by: "Razporedi po {{value}}"
+  label_sort_by: "Razporedi po %{value}"
   label_send_test_email: Pošlji testno e-pismo
-  label_feeds_access_key_created_on: "RSS dostopni kljuÄ narejen {{value}} nazaj"
+  label_feeds_access_key_created_on: "RSS dostopni kljuÄ narejen %{value} nazaj"
   label_module_plural: Moduli
-  label_added_time_by: "Dodan {{author}} {{age}} nazaj"
-  label_updated_time_by: "Posodobljen od {{author}} {{age}} nazaj"
-  label_updated_time: "Posodobljen {{value}} nazaj"
+  label_added_time_by: "Dodan %{author} %{age} nazaj"
+  label_updated_time_by: "Posodobljen od %{author} %{age} nazaj"
+  label_updated_time: "Posodobljen %{value} nazaj"
   label_jump_to_a_project: SkoÄi na projekt...
   label_file_plural: Datoteke
   label_changeset_plural: Zapisi sprememb
@@ -653,7 +658,7 @@
   label_registration_activation_by_email: aktivacija raÄuna po e-poÅ¡ti
   label_registration_manual_activation: roÄna aktivacija raÄuna
   label_registration_automatic_activation: samodejna aktivacija raÄuna
-  label_display_per_page: "Na stran: {{value}}"
+  label_display_per_page: "Na stran: %{value}"
   label_age: Starost
   label_change_properties: Sprememba lastnosti
   label_general: Splošno
@@ -720,41 +725,41 @@
   text_regexp_info: npr. ^[A-Z0-9]+$
   text_min_max_length_info: 0 pomeni brez omejitev
   text_project_destroy_confirmation: Ali ste prepriÄani da želite izbrisati izbrani projekt in vse z njim povezane podatke?
-  text_subprojects_destroy_warning: "Njegov(i) podprojekt(i): {{value}} bodo prav tako izbrisani."
+  text_subprojects_destroy_warning: "Njegov(i) podprojekt(i): %{value} bodo prav tako izbrisani."
   text_workflow_edit: Izberite vlogo in zahtevek za urejanje poteka dela
   text_are_you_sure: Ali ste prepriÄani?
   text_tip_issue_begin_day: naloga z zaÄetkom na ta dan
   text_tip_issue_end_day: naloga z zakljuÄkom na ta dan
   text_tip_issue_begin_end_day: naloga ki se zaÄne in konÄa ta dan
   text_project_identifier_info: 'Dovoljene so samo male Ärke (a-z), Å¡tevilke in vezaji.<br />Enkrat shranjen identifikator ne more biti spremenjen.'
-  text_caracters_maximum: "najveÄ {{count}} znakov."
-  text_caracters_minimum: "Mora biti vsaj dolg vsaj {{count}} znakov."
-  text_length_between: "Dolžina med {{min}} in {{max}} znakov."
+  text_caracters_maximum: "najveÄ %{count} znakov."
+  text_caracters_minimum: "Mora biti vsaj dolg vsaj %{count} znakov."
+  text_length_between: "Dolžina med %{min} in %{max} znakov."
   text_tracker_no_workflow: Potek dela za to vrsto zahtevka ni doloÄen
   text_unallowed_characters: Nedovoljeni znaki
   text_comma_separated: Dovoljenih je veÄ vrednosti (loÄenih z vejico).
   text_issues_ref_in_commit_messages: Zahtevki sklicev in popravkov v sporoÄilu predaje
-  text_issue_added: "Zahtevek {{id}} je sporoÄil(a) {{author}}."
-  text_issue_updated: "Zahtevek {{id}} je posodobil(a) {{author}}."
+  text_issue_added: "Zahtevek %{id} je sporoÄil(a) %{author}."
+  text_issue_updated: "Zahtevek %{id} je posodobil(a) %{author}."
   text_wiki_destroy_confirmation: Ali ste prepriÄani da želite izbrisati ta wiki in vso njegovo vsebino?
-  text_issue_category_destroy_question: "Nekateri zahtevki ({{count}}) so dodeljeni tej kategoriji. Kaj želite storiti?"
+  text_issue_category_destroy_question: "Nekateri zahtevki (%{count}) so dodeljeni tej kategoriji. Kaj želite storiti?"
   text_issue_category_destroy_assignments: Odstrani naloge v kategoriji
   text_issue_category_reassign_to: Ponovno dodeli zahtevke tej kategoriji
   text_user_mail_option: "Na neizbrane projekte boste prejemali le obvestila o zadevah ki jih spremljate ali v katere ste vkljuÄeni (npr. zahtevki katerih avtor(ica) ste)"
   text_no_configuration_data: "Vloge, vrste zahtevkov, statusi zahtevkov in potek dela Å¡e niso bili doloÄeni. \nZelo priporoÄljivo je, da naložite privzeto  konfiguracijo, ki jo lahko kasneje tudi prilagodite."
   text_load_default_configuration: Naloži privzeto konfiguracijo
-  text_status_changed_by_changeset: "Dodano v zapis sprememb {{value}}."
+  text_status_changed_by_changeset: "Dodano v zapis sprememb %{value}."
   text_issues_destroy_confirmation: 'Ali ste prepriÄani, da želite izbrisati izbrani(e) zahtevek(ke)?'
   text_select_project_modules: 'Izberite module, ki jih želite omogoÄiti za ta projekt:'
   text_default_administrator_account_changed: Spremenjen privzeti administratorski raÄun
   text_file_repository_writable: OmogoÄeno pisanje v shrambo datotek
   text_rmagick_available: RMagick je na voljo(neobvezno)
-  text_destroy_time_entries_question: "{{hours}} ur je bilo opravljenih na zahtevku, ki ga želite izbrisati. Kaj želite storiti?"
+  text_destroy_time_entries_question: "%{hours} ur je bilo opravljenih na zahtevku, ki ga želite izbrisati. Kaj želite storiti?"
   text_destroy_time_entries: Izbriši opravljene ure
   text_assign_time_entries_to_project: Predaj opravljene ure projektu
   text_reassign_time_entries: 'Prenesi opravljene ure na ta zahtevek:'
-  text_user_wrote: "{{value}} je napisal(a):"
-  text_enumeration_destroy_question: "{{count}} objektov je doloÄenih tej vrednosti."
+  text_user_wrote: "%{value} je napisal(a):"
+  text_enumeration_destroy_question: "%{count} objektov je doloÄenih tej vrednosti."
   text_enumeration_category_reassign_to: 'Ponastavi jih na to vrednost:'
   text_email_delivery_not_configured: "E-poÅ¡tna dostava ni nastavljena in oznanila so onemogoÄena.\nNastavite vaÅ¡ SMTP strežnik v config/email.yml in ponovno zaženite aplikacijo da ga omogoÄite.\n"
   text_repository_usernames_mapping: "Izberite ali posodobite Redmine uporabnika dodeljenega vsakemu uporabniškemu imenu najdenemu v zapisniku shrambe.\n Uporabniki z enakim Redmine ali shrambinem uporabniškem imenu ali e-poštnem naslovu so samodejno dodeljeni."
@@ -785,7 +790,7 @@
   enumeration_issue_priorities: Prioritete zahtevkov
   enumeration_doc_categories: Kategorije dokumentov
   enumeration_activities: Aktivnosti (sledenje Äasa)
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   field_editable: Editable
   text_plugin_assets_writable: Plugin assets directory writable
   label_display: Display
@@ -801,21 +806,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -823,14 +828,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -865,9 +870,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -894,12 +899,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -907,7 +912,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -918,8 +923,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/sr-YU.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/sr-YU.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,929 +1,938 @@
-# Serbian translations for Redmine
-# by Vladimir Medarović (vlada@medarovic.com)
-sr-YU:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d.%m.%Y."
-      short: "%e %b"
-      long: "%B %e, %Y"
-      
-    day_names: [nedelja, ponedeljak, utorak, sreda, Äetvrtak, petak, subota]
-    abbr_day_names: [ned, pon, uto, sre, Äet, pet, sub]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, januar, februar, mart, april, maj, jun, jul, avgust, septembar, oktobar, novembar, decembar]
-    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%d.%m.%Y. u %H:%M"
-      time: "%H:%M"
-      short: "%d. %b u %H:%M"
-      long: "%d. %B %Y u %H:%M"
-    am: "am"
-    pm: "pm"
-
-  datetime:
-    distance_in_words:
-      half_a_minute: "pola minuta"
-      less_than_x_seconds:
-        one:   "manje od jedne sekunde"
-        other: "manje od {{count}} sek."
-      x_seconds:
-        one:   "jedna sekunda"
-        other: "{{count}} sek."
-      less_than_x_minutes:
-        one:   "manje od minuta"
-        other: "manje od {{count}} min."
-      x_minutes:
-        one:   "jedan minut"
-        other: "{{count}} min."
-      about_x_hours:
-        one:   "približno jedan sat"
-        other: "približno {{count}} sati"
-      x_days:
-        one:   "jedan dan"
-        other: "{{count}} dana"
-      about_x_months:
-        one:   "približno jedan mesec"
-        other: "približno {{count}} meseci"
-      x_months:
-        one:   "jedan mesec"
-        other: "{{count}} meseci"
-      about_x_years:
-        one:   "približno godinu dana"
-        other: "približno {{count}} god."
-      over_x_years:
-        one:   "preko godinu dana"
-        other: "preko {{count}} god."
-      almost_x_years:
-        one:   "skoro godinu dana"
-        other: "skoro {{count}} god."
-
-  number:
-    format:
-      separator: ","
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "i"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "nije ukljuÄen u spisak"
-        exclusion: "je rezervisan"
-        invalid: "je neispravan"
-        confirmation: "potvrda ne odgovara"
-        accepted: "mora biti prihvaćen"
-        empty: "ne može biti prazno"
-        blank: "ne može biti prazno"
-        too_long: "je predugaÄka (maksimum znakova je {{count}})"
-        too_short: "je prekratka (minimum znakova je {{count}})"
-        wrong_length: "je pogrešne dužine (broj znakova mora biti {{count}})"
-        taken: "je već u upotrebi"
-        not_a_number: "nije broj"
-        not_a_date: "nije ispravan datum"
-        greater_than: "mora biti veći od {{count}}"
-        greater_than_or_equal_to: "mora biti veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora biti manji ili jednak {{count}}"
-        odd: "mora biti paran"
-        even: "mora biti neparan"
-        greater_than_start_date: "mora biti veći od poÄetnog datuma"
-        not_same_project: "ne pripada istom projektu"
-        circular_dependency: "Ova veza će stvoriti kružnu referencu"
-        cant_link_an_issue_with_a_descendant: "Problem ne može biti povezan sa jednim od svojih podzadataka"
-
-  actionview_instancetag_blank_option: Molim odaberite
-  
-  general_text_No: 'Ne'
-  general_text_Yes: 'Da'
-  general_text_no: 'ne'
-  general_text_yes: 'da'
-  general_lang_name: 'Srpski'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Nalog je uspešno ažuriran.
-  notice_account_invalid_creditentials: Neispravno korisniÄko ime ili lozinka.
-  notice_account_password_updated: Lozinka je uspešno ažurirana.
-  notice_account_wrong_password: Pogrešna lozinka
-  notice_account_register_done: KorisniÄki nalog je uspeÅ¡no kreiran. Kliknite na link koji ste dobili u e-poruci za aktivaciju.
-  notice_account_unknown_email: Nepoznat korisnik.
-  notice_can_t_change_password: Ovaj korisniÄki nalog za potvrdu identiteta koristi spoljni izvor. Nemoguće je promeniti lozinku.
-  notice_account_lost_email_sent: Poslata vam je e-poruka sa uputstvom za izbor nove lozinke
-  notice_account_activated: VaÅ¡ korisniÄki nalog je aktiviran. Sada se možete prijaviti.
-  notice_successful_create: Uspešno kreiranje.
-  notice_successful_update: Uspešno ažuriranje.
-  notice_successful_delete: Uspešno brisanje.
-  notice_successful_connection: Uspešno povezivanje.
-  notice_file_not_found: Strana kojoj želite pristupiti ne postoji ili je uklonjena.
-  notice_locking_conflict: Podatak je ažuriran od strane drugog korisnika.
-  notice_not_authorized: Niste ovlašćeni za pristup ovoj strani.
-  notice_email_sent: "E-poruka je poslata na {{value}}"
-  notice_email_error: "Dogodila se greška prilikom slanja e-poruke ({{value}})"
-  notice_feeds_access_key_reseted: VaÅ¡ RSS pristupni kljuÄ je poniÅ¡ten.
-  notice_api_access_key_reseted: VaÅ¡ API pristupni kljuÄ je poniÅ¡ten.
-  notice_failed_to_save_issues: "Neuspešno snimanje {{count}} problema od {{total}} odabranih: {{ids}}."
-  notice_failed_to_save_members: "NeuspeÅ¡no snimanje Älana(ova): {{errors}}."
-  notice_no_issue_selected: "Ni jedan problem nije odabran! Molimo, odaberite problem koji želite da menjate."
-  notice_account_pending: "VaÅ¡ nalog je kreiran i Äeka na odobrenje administratora."
-  notice_default_data_loaded: Podrazumevano konfigurisanje je uspeÅ¡no uÄitano.
-  notice_unable_delete_version: Verziju je nemoguće izbrisati.
-  notice_unable_delete_time_entry: Stavku evidencije vremena je nemoguće izbrisati.
-  notice_issue_done_ratios_updated: Odnos rešenih problema je ažuriran.
-  
-  error_can_t_load_default_data: "Podrazumevano konfigurisanje je nemoguće uÄitati: {{value}}"
-  error_scm_not_found: "Stavka ili ispravka nisu pronađene u spremištu."
-  error_scm_command_failed: "Greška se javila prilikom pokušaja pristupa spremištu: {{value}}"
-  error_scm_annotate: "Stavka ne postoji ili ne može biti oznaÄena."
-  error_issue_not_found_in_project: 'Problem nije pronađen ili ne pripada ovom projektu.'
-  error_no_tracker_in_project: 'Ni jedno praćenje nije povezano sa ovim projektom. Molimo proverite podešavanja projekta.'
-  error_no_default_issue_status: 'Podrazumevani status problema nije definisan. Molimo proverite vaše konfigurisanje (idite na "Administracija -> Statusi problema").'
-  error_can_not_delete_custom_field: Nemoguće je izbrisati prilagođeno polje
-  error_can_not_delete_tracker: "Ovo praćenje sadrži probleme i ne može biti obrisano."
-  error_can_not_remove_role: "Ova uloga je u upotrebi i ne može biti obrisana."
-  error_can_not_reopen_issue_on_closed_version: 'Problem dodeljen zatvorenoj verziji ne može biti ponovo otvoren'
-  error_can_not_archive_project: Ovaj projekat se ne može arhivirati
-  error_issue_done_ratios_not_updated: "Odnos rešenih problema nije ažuriran."
-  error_workflow_copy_source: 'Molimo odaberite izvorno praćenje ili ulogu'
-  error_workflow_copy_target: 'Molimo odaberite odredišno praćenje i ulogu'
-  error_unable_delete_issue_status: 'Status problema je nemoguće obrisati'
-  error_unable_to_connect: "Povezivanje sa ({{value}}) je nemoguće"  
-  warning_attachments_not_saved: "{{count}} datoteka ne može biti snimljena."
-  
-  mail_subject_lost_password: "Vaša {{value}} lozinka"
-  mail_body_lost_password: 'Za promenu vaše lozinke, kliknite na sledeći link:'
-  mail_subject_register: "Aktivacija vašeg {{value}} naloga"
-  mail_body_register: 'Za aktivaciju vašeg naloga, kliknite na sledeći link:'
-  mail_body_account_information_external: "Vaš nalog {{value}} možete koristiti za prijavu."
-  mail_body_account_information: Informacije o vašem nalogu
-  mail_subject_account_activation_request: "Zahtev za aktivaciju naloga {{value}}"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) je registrovan. Nalog Äeka na vaÅ¡e odobrenje:"
-  mail_subject_reminder: "{{count}} problema dospeva narednih {{days}} dana"
-  mail_body_reminder: "{{count}} problema dodeljenih vama dospeva u narednih {{days}} dana:"
-  mail_subject_wiki_content_added: "Wiki stranica '{{id}}' je dodata"
-  mail_body_wiki_content_added: "{{author}} je dodao wiki stranicu '{{id}}'."
-  mail_subject_wiki_content_updated: "Wiki stranica '{{id}}' je ažurirana"
-  mail_body_wiki_content_updated: "{{author}} je ažurirao wiki stranicu '{{id}}'."
-  
-  gui_validation_error: jedna greška
-  gui_validation_error_plural: "{{count}} grešaka"
-  
-  field_name: Naziv
-  field_description: Opis
-  field_summary: Rezime
-  field_is_required: Obavezno
-  field_firstname: Ime
-  field_lastname: Prezime
-  field_mail: E-adresa
-  field_filename: Datoteka
-  field_filesize: VeliÄina
-  field_downloads: Preuzimanja
-  field_author: Autor
-  field_created_on: Kreirano
-  field_updated_on: Ažurirano
-  field_field_format: Format
-  field_is_for_all: Za sve projekte
-  field_possible_values: Moguće vrednosti
-  field_regexp: Regularan izraz
-  field_min_length: Minimalna dužina
-  field_max_length: Maksimalna dužina
-  field_value: Vrednost
-  field_category: Kategorija
-  field_title: Naslov
-  field_project: Projekat
-  field_issue: Problem
-  field_status: Status
-  field_notes: Beleške
-  field_is_closed: Zatvoren problem
-  field_is_default: Podrazumevana vrednost
-  field_tracker: Praćenje
-  field_subject: Predmet
-  field_due_date: Krajnji rok
-  field_assigned_to: Dodeljeno
-  field_priority: Prioritet
-  field_fixed_version: Odredišna verzija
-  field_user: Korisnik
-  field_principal: Glavni
-  field_role: Uloga
-  field_homepage: PoÄetna stranica
-  field_is_public: Javno objavljivanje
-  field_parent: Potprojekat od
-  field_is_in_roadmap: Problemi prikazani u planu rada
-  field_login: KorisniÄko ime
-  field_mail_notification: Obaveštenja putem e-pošte
-  field_admin: Administrator
-  field_last_login_on: Poslednje povezivanje
-  field_language: Jezik
-  field_effective_date: Datum
-  field_password: Lozinka
-  field_new_password: Nova lozinka
-  field_password_confirmation: Potvrda lozinke
-  field_version: Verzija
-  field_type: Tip
-  field_host: Glavni raÄunar
-  field_port: Port
-  field_account: KorisniÄki nalog
-  field_base_dn: Bazni DN
-  field_attr_login: Atribut prijavljivanja
-  field_attr_firstname: Atribut imena
-  field_attr_lastname: Atribut prezimena
-  field_attr_mail: Atribut e-adrese
-  field_onthefly: Kreiranje korisnika u toku rada
-  field_done_ratio: % urađeno
-  field_auth_source: Režim potvrde identiteta
-  field_hide_mail: Sakrij moju e-adresu
-  field_comments: Komentar
-  field_url: URL
-  field_start_page: PoÄetna stranica
-  field_subproject: Potprojekat
-  field_hours: sati
-  field_activity: Aktivnost
-  field_spent_on: Datum
-  field_identifier: Identifikator
-  field_is_filter: Upotrebi kao filter
-  field_issue_to: Srodni problemi
-  field_delay: Kašnjenje
-  field_assignable: Problem može biti dodeljen ovoj ulozi
-  field_redirect_existing_links: Preusmeri postojeće veze
-  field_estimated_hours: Proteklo vreme
-  field_column_names: Kolone
-  field_time_zone: Vremenska zona
-  field_searchable: Može da se pretražuje
-  field_default_value: Podrazumevana vrednost
-  field_comments_sorting: Prikaži komentare
-  field_parent_title: MatiÄna stranica
-  field_editable: Izmenljivo
-  field_watcher: PosmatraÄ
-  field_identity_url: OpenID URL
-  field_content: Sadržaj
-  field_group_by: Grupisanje rezultata po
-  field_sharing: Deljenje
-  field_parent_issue: MatiÄni zadatak
-  
-  setting_app_title: Naslov aplikacije
-  setting_app_subtitle: Podnaslov aplikacije
-  setting_welcome_text: Tekst dobrodošlice
-  setting_default_language: Podrazumevani jezik
-  setting_login_required: Obavezna potvrda identiteta
-  setting_self_registration: Samoregistracija
-  setting_attachment_max_size: Maks. veliÄina priložene datoteke
-  setting_issues_export_limit: OgraniÄenje izvoza „problema“
-  setting_mail_from: E-adresa pošiljaoca
-  setting_bcc_recipients: Primaoci „Bcc“ kopije
-  setting_plain_text_mail: Poruka sa Äistim tekstom (bez HTML-a)
-  setting_host_name: Putanja i naziv glavnog raÄunara
-  setting_text_formatting: Oblikovanje teksta
-  setting_wiki_compression: Kompresija Wiki istorije
-  setting_feeds_limit: OgraniÄenje sadržaja izvora vesti
-  setting_default_projects_public: Podrazumeva se javno prikazivanje novih projekata
-  setting_autofetch_changesets: Izvršavanje automatskog preuzimanja
-  setting_sys_api_enabled: Omogućavanje WS za upravljanje spremištem
-  setting_commit_ref_keywords: Referenciranje kljuÄnih reÄi
-  setting_commit_fix_keywords: Popravljanje kljuÄnih reÄi
-  setting_autologin: Automatska prijava
-  setting_date_format: Format datuma
-  setting_time_format: Format vremena
-  setting_cross_project_issue_relations: Dozvoli povezivanje problema iz unakrsnih projekata
-  setting_issue_list_default_columns: Podrazumevane kolone prikazane na spisku problema
-  setting_repositories_encodings: Kodiranje spremišta
-  setting_commit_logs_encoding: Kodiranje izvršnih poruka
-  setting_emails_footer: Podnožje stranice e-poruke
-  setting_protocol: Protokol
-  setting_per_page_options: Opcije prikaza objekata po stranici
-  setting_user_format: Format prikaza korisnika
-  setting_activity_days_default: Broj dana prikazanih na projektnoj aktivnosti
-  setting_display_subprojects_issues: Prikazuj probleme iz potprojekata na glavnom projektu, ukoliko nije drugaÄije navedeno
-  setting_enabled_scm: Omogućavanje SCM
-  setting_mail_handler_body_delimiters: "Skraćivanje e-poruke nakon jedne od ovih linija"
-  setting_mail_handler_api_enabled: Omogućavanje WS dolazne e-poruke
-  setting_mail_handler_api_key: API kljuÄ
-  setting_sequential_project_identifiers: Generisanje sekvencijalnog imena projekta
-  setting_gravatar_enabled: Koristi Gravatar korisniÄke ikone
-  setting_gravatar_default: Podrazumevana Gravatar slika
-  setting_diff_max_lines_displayed: Maks. broj prikazanih razliÄitih linija
-  setting_file_max_size_displayed: Maks. veliÄina tekst. datoteka prikazanih umetnuto
-  setting_repository_log_display_limit: Maks. broj revizija prikazanih u datoteci za evidenciju
-  setting_openid: Dozvoli OpenID prijavu i registraciju
-  setting_password_min_length: Minimalna dužina lozinke
-  setting_new_project_user_role_id: Kreatoru projekta (koji nije administrator) dodeljuje je uloga
-  setting_default_projects_modules: Podrazumevano omogućeni moduli za nove projekte
-  setting_issue_done_ratio: IzraÄunaj odnos reÅ¡enih problema
-  setting_issue_done_ratio_issue_field: koristeći polje problema
-  setting_issue_done_ratio_issue_status: koristeći status problema
-  setting_start_of_week: Prvi dan u sedmici
-  setting_rest_api_enabled: Omogući REST web usluge
-  setting_cache_formatted_text: Keširanje obrađenog teksta
-  
-  permission_add_project: Kreiranje projekta
-  permission_add_subprojects: Kreiranje potpojekta
-  permission_edit_project: Izmena projekata
-  permission_select_project_modules: Odabiranje modula projekta
-  permission_manage_members: Upravljanje Älanovima
-  permission_manage_project_activities: Upravljanje projektnim aktivnostima
-  permission_manage_versions: Upravljanje verzijama
-  permission_manage_categories: Upravljanje kategorijama problema
-  permission_view_issues: Pregled problema
-  permission_add_issues: Dodavanje problema
-  permission_edit_issues: Izmena problema
-  permission_manage_issue_relations: Upravljanje vezama između problema
-  permission_add_issue_notes: Dodavanje beleški
-  permission_edit_issue_notes: Izmena beleški
-  permission_edit_own_issue_notes: Izmena sopstvenih beleški
-  permission_move_issues: Pomeranje problema
-  permission_delete_issues: Brisanje problema
-  permission_manage_public_queries: Upravljanje javnim upitima
-  permission_save_queries: Snimanje upita
-  permission_view_gantt: Pregledanje Gantovog dijagrama
-  permission_view_calendar: Pregledanje kalendara
-  permission_view_issue_watchers: Pregledanje spiska posmatraÄa
-  permission_add_issue_watchers: Dodavanje posmatraÄa
-  permission_delete_issue_watchers: Brisanje posmatraÄa
-  permission_log_time: Beleženje utrošenog vremena
-  permission_view_time_entries: Pregledanje utrošenog vremena
-  permission_edit_time_entries: Izmena utrošenog vremena
-  permission_edit_own_time_entries: Izmena sopstvenog utrošenog vremena
-  permission_manage_news: Upravljanje vestima
-  permission_comment_news: Komentarisanje vesti
-  permission_manage_documents: Upravljanje dokumentima
-  permission_view_documents: Pregledanje dokumenata
-  permission_manage_files: Upravljanje datotekama
-  permission_view_files: Pregledanje datoteka
-  permission_manage_wiki: Upravljanje wiki stranicama
-  permission_rename_wiki_pages: Promena imena wiki stranicama
-  permission_delete_wiki_pages: Brisanje wiki stranica
-  permission_view_wiki_pages: Pregledanje wiki stranica
-  permission_view_wiki_edits: Pregledanje wiki istorije
-  permission_edit_wiki_pages: Izmena wiki stranica
-  permission_delete_wiki_pages_attachments: Brisanje priloženih datoteka
-  permission_protect_wiki_pages: Zaštita wiki stranica
-  permission_manage_repository: Upravljanje spremištem
-  permission_browse_repository: Pregledanje spremišta
-  permission_view_changesets: Pregledanje skupa promena
-  permission_commit_access: Potvrda pristupa
-  permission_manage_boards: Upravljanje forumima
-  permission_view_messages: Pregledanje poruka
-  permission_add_messages: Slanje poruka
-  permission_edit_messages: Izmena poruka
-  permission_edit_own_messages: Izmena sopstvenih poruka
-  permission_delete_messages: Brisanje poruka
-  permission_delete_own_messages: Brisanje sopstvenih poruka
-  permission_export_wiki_pages: Izvoz wiki stranica
-  permission_manage_subtasks: Upravljanje podzadacima
-  
-  project_module_issue_tracking: Praćenje problema
-  project_module_time_tracking: Praćenje vremena
-  project_module_news: Vesti
-  project_module_documents: Dokumenti
-  project_module_files: Datoteke
-  project_module_wiki: Wiki
-  project_module_repository: Spremište
-  project_module_boards: Forumi
-  
-  label_user: Korisnik
-  label_user_plural: Korisnici
-  label_user_new: Novi korisnik
-  label_user_anonymous: Anoniman
-  label_project: Projekat
-  label_project_new: Novi projekat
-  label_project_plural: Projekti
-  label_x_projects:
-    zero:  nema projekata
-    one:   jedan projekat
-    other: "{{count}} projekata"
-  label_project_all: Svi projekti
-  label_project_latest: Poslednji projekti
-  label_issue: Problem
-  label_issue_new: Novi problem
-  label_issue_plural: Problemi
-  label_issue_view_all: Prikaz svih problema
-  label_issues_by: "Problemi ({{value}})"
-  label_issue_added: Problem je dodat
-  label_issue_updated: Problem je ažuriran
-  label_document: Dokument
-  label_document_new: Novi dokument
-  label_document_plural: Dokumenti
-  label_document_added: Dokument je dodat
-  label_role: Uloga
-  label_role_plural: Uloge
-  label_role_new: Nova uloga
-  label_role_and_permissions: Uloge i dozvole
-  label_member: ÄŒlan
-  label_member_new: Novi Älan
-  label_member_plural: ÄŒlanovi
-  label_tracker: Praćenje
-  label_tracker_plural: Praćenja
-  label_tracker_new: Novo praćenje
-  label_workflow: Tok posla
-  label_issue_status: Status problema
-  label_issue_status_plural: Statusi problema
-  label_issue_status_new: Novi status
-  label_issue_category: Kategorija problema
-  label_issue_category_plural: Kategorije problema
-  label_issue_category_new: Nova kategorija
-  label_custom_field: Prilagođeno polje
-  label_custom_field_plural: Prilagođena polja
-  label_custom_field_new: Novo prilagođeno polje
-  label_enumerations: Nabrojiva lista
-  label_enumeration_new: Nova vrednost
-  label_information: Informacija
-  label_information_plural: Informacije
-  label_please_login: Molimo, prijavite se
-  label_register: Registracija
-  label_login_with_open_id_option: ili prijava sa OpenID
-  label_password_lost: Izgubljena lozinka
-  label_home: PoÄetak
-  label_my_page: Moja stranica
-  label_my_account: Moj nalog
-  label_my_projects: Moji projekti
-  label_my_page_block: My page block
-  label_administration: Administracija
-  label_login: Prijava
-  label_logout: Odjava
-  label_help: Pomoć
-  label_reported_issues: Prijavljeni problemi
-  label_assigned_to_me_issues: Problemi dodeljeni meni
-  label_last_login: Poslednje povezivanje
-  label_registered_on: Registrovan
-  label_activity: Aktivnost
-  label_overall_activity: Celokupna aktivnost
-  label_user_activity: "Aktivnost korisnika {{value}}"
-  label_new: Novo
-  label_logged_as: Prijavljeni ste kao
-  label_environment: Okruženje
-  label_authentication: Potvrda identiteta
-  label_auth_source: Režim potvrde identiteta
-  label_auth_source_new: Novi režim potvrde identiteta
-  label_auth_source_plural: Režimi potvrde identiteta
-  label_subproject_plural: Potprojekti
-  label_subproject_new: Novi potprojekat
-  label_and_its_subprojects: "{{value}} i njegovi potprojekti"
-  label_min_max_length: Min. - Maks. dužina
-  label_list: Spisak
-  label_date: Datum
-  label_integer: Ceo broj
-  label_float: Sa pokretnim zarezom
-  label_boolean: LogiÄki operator
-  label_string: Tekst
-  label_text: Dugi tekst
-  label_attribute: Osobina
-  label_attribute_plural: Osobine
-  label_download: "{{count}} preuzimanje"
-  label_download_plural: "{{count}} preuzimanja"
-  label_no_data: Nema podataka za prikazivanje
-  label_change_status: Promena statusa
-  label_history: Istorija
-  label_attachment: Datoteka
-  label_attachment_new: Nova datoteka
-  label_attachment_delete: Brisanje datoteke
-  label_attachment_plural: Datoteke
-  label_file_added: Datoteka je dodata
-  label_report: Izveštaj
-  label_report_plural: Izveštaji
-  label_news: Vesti
-  label_news_new: Dodavanje vesti
-  label_news_plural: Vesti
-  label_news_latest: Poslednje vesti
-  label_news_view_all: Prikaz svih vesti
-  label_news_added: Vesti su dodate
-  label_settings: Podešavanja
-  label_overview: Pregled
-  label_version: Verzija
-  label_version_new: Nova verzija
-  label_version_plural: Verzije
-  label_close_versions: Zatvori završene verzije
-  label_confirmation: Potvrda
-  label_export_to: 'Takođe dostupno i u varijanti:'
-  label_read: ÄŒitanje...
-  label_public_projects: Javni projekti
-  label_open_issues: otvoren
-  label_open_issues_plural: otvorenih
-  label_closed_issues: zatvoren
-  label_closed_issues_plural: zatvorenih
-  label_x_open_issues_abbr_on_total:
-    zero:  0 otvorenih / {{total}}
-    one:   1 otvoren / {{total}}
-    other: "{{count}} otvorenih / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 otvorenih
-    one:   1 otvoren
-    other: "{{count}} otvorenih"
-  label_x_closed_issues_abbr:
-    zero:  0 zatvorenih
-    one:   1 zatvoren
-    other: "{{count}} zatvorenih"
-  label_total: Ukupno
-  label_permissions: Dozvole
-  label_current_status: Trenutni status
-  label_new_statuses_allowed: Novi statusi dozvoljeni
-  label_all: svi
-  label_none: nijedan
-  label_nobody: nikome
-  label_next: Sledeće
-  label_previous: Prethodno
-  label_used_by: Koristio
-  label_details: Detalji
-  label_add_note: Dodaj belešku
-  label_per_page: Po strani
-  label_calendar: Kalendar
-  label_months_from: meseci od
-  label_gantt: Gantov dijagram
-  label_internal: Unutrašnji
-  label_last_changes: "poslednjih {{count}} promena"
-  label_change_view_all: Prikaži sve promene
-  label_personalize_page: Personalizuj ovu stranu
-  label_comment: Komentar
-  label_comment_plural: Komentari
-  label_x_comments:
-    zero: bez komentara
-    one: jedan komentar
-    other: "{{count}} komentara"
-  label_comment_add: Dodaj komentar
-  label_comment_added: Komentar dodat
-  label_comment_delete: Obriši komentare
-  label_query: Prilagođen upit
-  label_query_plural: Prilagođeni upiti
-  label_query_new: Novi upit
-  label_filter_add: Dodavanje filtera
-  label_filter_plural: Filteri
-  label_equals: je
-  label_not_equals: nije
-  label_in_less_than: manje od
-  label_in_more_than: više od
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: u
-  label_today: danas
-  label_all_time: sve vreme
-  label_yesterday: juÄe
-  label_this_week: ove sedmice
-  label_last_week: poslednje sedmice
-  label_last_n_days: "poslednjih {{count}} dana"
-  label_this_month: ovog meseca
-  label_last_month: poslednjeg meseca
-  label_this_year: ove godine
-  label_date_range: Vremenski period
-  label_less_than_ago: pre manje od nekoliko dana
-  label_more_than_ago: pre više od nekoliko dana
-  label_ago: pre nekoliko dana
-  label_contains: sadrži
-  label_not_contains: ne sadrži
-  label_day_plural: dana
-  label_repository: Spremište
-  label_repository_plural: Spremišta
-  label_browse: Pregledanje
-  label_modification: "{{count}} promena"
-  label_modification_plural: "{{count}} promena"
-  label_branch: Grana
-  label_tag: Oznaka
-  label_revision: Revizija
-  label_revision_plural: Revizije
-  label_revision_id: "Revizija {{value}}"
-  label_associated_revisions: Pridružene revizije
-  label_added: dodato
-  label_modified: promenjeno
-  label_copied: kopirano
-  label_renamed: preimenovano
-  label_deleted: izbrisano
-  label_latest_revision: Poslednja revizija
-  label_latest_revision_plural: Poslednje revizije
-  label_view_revisions: Pregled revizija
-  label_view_all_revisions: Pregled svih revizija
-  label_max_size: Maksimalna veliÄina
-  label_sort_highest: Premeštanje na vrh
-  label_sort_higher: Premeštanje na gore
-  label_sort_lower: Premeštanje na dole
-  label_sort_lowest: Premeštanje na dno
-  label_roadmap: Plan rada
-  label_roadmap_due_in: "Dospeva {{value}}"
-  label_roadmap_overdue: "{{value}} najkasnije"
-  label_roadmap_no_issues: Nema problema za ovu verziju
-  label_search: Pretraga
-  label_result_plural: Rezultati
-  label_all_words: Sve reÄi
-  label_wiki: Wiki
-  label_wiki_edit: Wiki izmena
-  label_wiki_edit_plural: Wiki izmene
-  label_wiki_page: Wiki stranica
-  label_wiki_page_plural: Wiki stranice
-  label_index_by_title: Indeksiranje po naslovu
-  label_index_by_date: Indeksiranje po datumu
-  label_current_version: Trenutna verzija
-  label_preview: Pregled
-  label_feed_plural: Izvori vesti
-  label_changes_details: Detalji svih promena
-  label_issue_tracking: Praćenje problema
-  label_spent_time: Utrošeno vreme
-  label_overall_spent_time: Celokupno utrošeno vreme
-  label_f_hour: "{{value}} sat"
-  label_f_hour_plural: "{{value}} sati"
-  label_time_tracking: Praćenje vremena
-  label_change_plural: Promene
-  label_statistics: Statistika
-  label_commits_per_month: IzvrÅ¡enja meseÄno
-  label_commits_per_author: Izvršenja po autoru
-  label_view_diff: Pogledaj razlike
-  label_diff_inline: unutra
-  label_diff_side_by_side: uporedo
-  label_options: Opcije
-  label_copy_workflow_from: Kopiranje toka posla od
-  label_permissions_report: Izveštaj o dozvolama
-  label_watched_issues: Posmatrani problemi
-  label_related_issues: Srodni problemi
-  label_applied_status: Primenjeni statusi
-  label_loading: UÄitavanje...
-  label_relation_new: Nova relacija
-  label_relation_delete: Brisanje relacije
-  label_relates_to: srodnih sa
-  label_duplicates: dupliranih
-  label_duplicated_by: dupliranih od
-  label_blocks: odbijenih
-  label_blocked_by: odbijenih od
-  label_precedes: prethodi
-  label_follows: praćenih
-  label_end_to_start: od kraja do poÄetka
-  label_end_to_end: od kraja do kraja
-  label_start_to_start: od poÄetka do poÄetka
-  label_start_to_end: od poÄetka do kraja
-  label_stay_logged_in: Ostanite prijavljeni
-  label_disabled: onemogućeno
-  label_show_completed_versions: Prikazivanje završene verzije
-  label_me: meni
-  label_board: Forum
-  label_board_new: Novi forum
-  label_board_plural: Forumi
-  label_board_locked: ZakljuÄana
-  label_board_sticky: Lepljiva
-  label_topic_plural: Teme
-  label_message_plural: Poruke
-  label_message_last: Poslednja poruka
-  label_message_new: Nova poruka
-  label_message_posted: Poruka je dodata
-  label_reply_plural: Odgovori
-  label_send_information: Pošalji korisniku detalje naloga
-  label_year: Godina
-  label_month: Mesec
-  label_week: Sedmica
-  label_date_from: Å alje
-  label_date_to: Prima
-  label_language_based: Bazirano na jeziku korisnika
-  label_sort_by: "Sortirano po {{value}}"
-  label_send_test_email: Slanje probne e-poruke
-  label_feeds_access_key: RSS pristupni kljuÄ
-  label_missing_feeds_access_key: RSS pristupni kljuÄ nedostaje
-  label_feeds_access_key_created_on: "RSS pristupni kljuÄ je napravljen pre {{value}}"
-  label_module_plural: Moduli
-  label_added_time_by: "Dodao {{author}} pre {{age}}"
-  label_updated_time_by: "Ažurirao {{author}} pre {{age}}"
-  label_updated_time: "Ažurirano pre {{value}}"
-  label_jump_to_a_project: Skok na projekat...
-  label_file_plural: Datoteke
-  label_changeset_plural: Skupovi promena
-  label_default_columns: Podrazumevane kolone
-  label_no_change_option: (Bez promena)
-  label_bulk_edit_selected_issues: Grupna izmena odabranih problema
-  label_theme: Tema
-  label_default: Podrazumevano
-  label_search_titles_only: Pretražuj samo naslove
-  label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
-  label_user_mail_option_selected: "Za bilo koji događaj na samo odabranim projektima..."
-  label_user_mail_no_self_notified: "Ne želim biti obaveštavan za promene koje sam pravim"
-  label_registration_activation_by_email: aktivacija naloga putem e-poruke
-  label_registration_manual_activation: ruÄna aktivacija naloga
-  label_registration_automatic_activation: automatska aktivacija naloga
-  label_display_per_page: "Broj stavki po stranici: {{value}}"
-  label_age: Starost
-  label_change_properties: Promeni svojstva
-  label_general: Opšti
-  label_more: Više
-  label_scm: SCM
-  label_plugins: Dodatne komponente
-  label_ldap_authentication: LDAP potvrda identiteta
-  label_downloads_abbr: D/L
-  label_optional_description: Opciono opis
-  label_add_another_file: Dodaj još jednu datoteku
-  label_preferences: Podešavanja
-  label_chronological_order: po hronološkom redosledu
-  label_reverse_chronological_order: po obrnutom hronološkom redosledu
-  label_planning: Planiranje
-  label_incoming_emails: Dolazne e-poruke
-  label_generate_key: Generisanje kljuÄa
-  label_issue_watchers: PosmatraÄi
-  label_example: Primer
-  label_display: Prikaz
-  label_sort: Sortiranje
-  label_ascending: Rastući niz
-  label_descending: Opadajući niz
-  label_date_from_to: Od {{start}} do {{end}}
-  label_wiki_content_added: Wiki stranica je dodata
-  label_wiki_content_updated: Wiki stranica je ažurirana
-  label_group: Grupa
-  label_group_plural: Grupe
-  label_group_new: Nova grupa
-  label_time_entry_plural: Utrošeno vreme
-  label_version_sharing_none: Nije deljeno
-  label_version_sharing_descendants: Sa potprojektima
-  label_version_sharing_hierarchy: Sa hijerarhijom projekta
-  label_version_sharing_tree: Sa stablom projekta
-  label_version_sharing_system: Sa svim projektima
-  label_update_issue_done_ratios: Ažuriraj odnos rešenih problema
-  label_copy_source: Izvor
-  label_copy_target: Odredište
-  label_copy_same_as_target: Isto kao odredište
-  label_display_used_statuses_only: Prikazuj statuse korišćene samo od strane ovog praćenja
-  label_api_access_key: API pristupni kljuÄ
-  label_missing_api_access_key: Nedostaje API pristupni kljuÄ
-  label_api_access_key_created_on: "API pristupni kljuÄ je kreiran pre {{value}}"
-  label_profile: Profil
-  label_subtask_plural: Podzadatak
-  label_project_copy_notifications: Pošalji e-poruku sa obaveštenjem prilikom kopiranja projekta 
-  
-  button_login: Prijava
-  button_submit: Pošalji
-  button_save: Snimi
-  button_check_all: UkljuÄi sve
-  button_uncheck_all: IskljuÄi sve
-  button_delete: Izbriši
-  button_create: Kreiraj
-  button_create_and_continue: Kreiraj i nastavi
-  button_test: Test
-  button_edit: Izmeni
-  button_add: Dodaj
-  button_change: Promeni
-  button_apply: Primeni
-  button_clear: Obriši
-  button_lock: ZakljuÄaj
-  button_unlock: OtkljuÄaj
-  button_download: Preuzmi
-  button_list: Spisak
-  button_view: Prikaži
-  button_move: Pomeri
-  button_move_and_follow: Pomeri i prati
-  button_back: Nazad
-  button_cancel: Poništi
-  button_activate: Aktiviraj
-  button_sort: Sortiraj
-  button_log_time: Evidentiraj vreme
-  button_rollback: Povratak na ovu verziju
-  button_watch: Prati
-  button_unwatch: Ne prati više
-  button_reply: Odgovori
-  button_archive: Arhiviraj
-  button_unarchive: Vrati iz arhive
-  button_reset: Poništi
-  button_rename: Preimenuj
-  button_change_password: Promeni lozinku
-  button_copy: Kopiraj
-  button_copy_and_follow: Kopiraj i prati
-  button_annotate: Pribeleži
-  button_update: Ažuriraj
-  button_configure: Podesi
-  button_quote: Pod navodnicima
-  button_duplicate: Dupliraj
-  button_show: Prikaži
-  
-  status_active: aktivni
-  status_registered: registrovani
-  status_locked: zakljuÄani
-  
-  version_status_open: otvoren
-  version_status_locked: zakljuÄan
-  version_status_closed: zatvoren
-
-  field_active: Aktivan
-  
-  text_select_mail_notifications: Odaberi akcije za koje će obaveštenje biti poslato putem e-pošte.
-  text_regexp_info: npr. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 znaÄi bez ograniÄenja
-  text_project_destroy_confirmation: Jeste li sigurni da želite da izbrišete ovaj projekat i sve pripadajuće podatke?
-  text_subprojects_destroy_warning: "Potprojekti: {{value}} će takođe biti izbrisan."
-  text_workflow_edit: Odaberite ulogu i praćenje za izmenu toka posla
-  text_are_you_sure: Jeste li sigurni?
-  text_journal_changed: "{{label}} promenjen od {{old}} u {{new}}"
-  text_journal_set_to: "{{label}} postavljen u {{value}}"
-  text_journal_deleted: "{{label}} izbrisano ({{old}})"
-  text_journal_added: "{{label}} {{value}} dodato"
-  text_tip_issue_begin_day: zadatak poÄinje ovog dana
-  text_tip_issue_end_day: zadatak se završava ovog dana
-  text_tip_issue_begin_end_day: zadatak poÄinje i zavrÅ¡ava ovog dana
-  text_project_identifier_info: 'Dozvoljena su samo mala slova (a-š), brojevi i crtice.<br />Jednom snimljen identifikator više se ne može promeniti.'
-  text_caracters_maximum: "Najviše {{count}} znak(ova)."
-  text_caracters_minimum: "Broj znakova mora biti najmanje {{count}}."
-  text_length_between: "Broj znakova mora biti između {{min}} i {{max}}."
-  text_tracker_no_workflow: Ovo praćenje nema definisan tok posla
-  text_unallowed_characters: Nedozvoljeni znakovi
-  text_comma_separated: Dozvoljene su višestruke vrednosti (odvojene zarezom).
-  text_line_separated: Dozvoljene su višestruke vrednosti (jedan red za svaku vrednost).
-  text_issues_ref_in_commit_messages: Referenciranje i popravljanje problema u izvršnim porukama
-  text_issue_added: "{{author}} je prijavio problem {{id}}."
-  text_issue_updated: "{{author}} je ažurirao problem {{id}}."
-  text_wiki_destroy_confirmation: Jeste li sigurni da želite da obrišete wiki i sav sadržaj?
-  text_issue_category_destroy_question: "Nekoliko problema ({{count}}) je dodeljeno ovoj kategoriji. Šta želite da uradite?"
-  text_issue_category_destroy_assignments: Ukloni dodeljene kategorije
-  text_issue_category_reassign_to: Dodeli ponovo probleme ovoj kategoriji
-  text_user_mail_option: "Za neizabrane projekte, dobićete samo obaveÅ¡tenje o stvarima koje pratite ili ste ukljuÄeni (npr. problemi Äiji ste vi autor ili zastupnik)."
-  text_no_configuration_data: "Uloge, praćenja, statusi problema i toka posla joÅ¡ uvek nisu podeÅ¡eni.\nPreporuÄljivo je da uÄitate podrazumevano konfigurisanje. Izmena je moguća nakon prvog uÄitavanja."
-  text_load_default_configuration: UÄitaj podrazumevano konfigurisanje
-  text_status_changed_by_changeset: "Primenjeno u skupu sa promenama {{value}}."
-  text_issues_destroy_confirmation: 'Jeste li sigurni da želite da izbrišete odabrane probleme?'
-  text_select_project_modules: 'Odaberite module koje želite omogućiti za ovaj projekat:'
-  text_default_administrator_account_changed: Podrazumevani administratorski nalog je promenjen
-  text_file_repository_writable: Fascikla priloženih datoteka je upisiva
-  text_plugin_assets_writable: Fascikla elemenata dodatnih komponenti je upisiva
-  text_rmagick_available: RMagick je dostupan (opciono)
-  text_destroy_time_entries_question: "{{hours}} sati je prijavljeno za ovaj problem koji želite izbrisati. Šta želite da uradite?"
-  text_destroy_time_entries: Izbriši prijavljene sate
-  text_assign_time_entries_to_project: Dodeli prijavljene sate projektu
-  text_reassign_time_entries: 'Dodeli ponovo prijavljene sate ovom problemu:'
-  text_user_wrote: "{{value}} je napisao:"
-  text_enumeration_destroy_question: "{{count}} objekat(a) je dodeljeno ovoj vrednosti."
-  text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
-  text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
-  text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisniÄkog imena pronaÄ‘enog u evidenciji spremiÅ¡ta.\nKorisnici sa istim Redmine imenom i imenom spremiÅ¡ta ili e-adresom su automatski mapirani."
-  text_diff_truncated: '... Ova razlika je iseÄena jer je dostignuta maksimalna veliÄina prikaza.'
-  text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
-  text_wiki_page_destroy_question: "Ova stranica ima {{descendants}} podređenih stranica i podstranica. Šta želite da uradite?"
-  text_wiki_page_nullify_children: "Zadrži podređene stranice kao korene stranice"
-  text_wiki_page_destroy_children: "Izbriši podređene stranice i sve njihove podstranice"
-  text_wiki_page_reassign_children: "Dodeli ponovo podreÄ‘ene stranice ovoj matiÄnoj stranici"
-  text_own_membership_delete_confirmation: "Nakon uklanjanja pojedinih ili svih vaših dozvola nećete više moći da uređujete ovaj projekat.\nŽelite li da nastavite?"
-  text_zoom_in: Uvećaj
-  text_zoom_out: Umanji
-  
-  default_role_manager: Menadžer
-  default_role_developer: Programer
-  default_role_reporter: IzveÅ¡taÄ
-  default_tracker_bug: Greška
-  default_tracker_feature: Funkcionalnost
-  default_tracker_support: Podrška
-  default_issue_status_new: Novo
-  default_issue_status_in_progress: U toku
-  default_issue_status_resolved: Rešeno
-  default_issue_status_feedback: Povratna informacija
-  default_issue_status_closed: Zatvoreno
-  default_issue_status_rejected: Odbijeno
-  default_doc_category_user: KorisniÄka dokumentacija
-  default_doc_category_tech: TehniÄka dokumentacija
-  default_priority_low: Nizak
-  default_priority_normal: Normalan
-  default_priority_high: Visok
-  default_priority_urgent: Hitno
-  default_priority_immediate: Neposredno
-  default_activity_design: Dizajn
-  default_activity_development: Razvoj
-  
-  enumeration_issue_priorities: Prioriteti problema
-  enumeration_doc_categories: Kategorije dokumenta
-  enumeration_activities: Aktivnosti (praćenje vremena)
-  enumeration_system_activity: Sistemska aktivnost
-  
-  field_time_entries: Vreme evidencije
-  project_module_gantt: Gantov dijagram
-  project_module_calendar: Kalendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# Serbian translations for Redmine
+# by Vladimir Medarović (vlada@medarovic.com)
+sr-YU:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d.%m.%Y."
+      short: "%e %b"
+      long: "%B %e, %Y"
+      
+    day_names: [nedelja, ponedeljak, utorak, sreda, Äetvrtak, petak, subota]
+    abbr_day_names: [ned, pon, uto, sre, Äet, pet, sub]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, januar, februar, mart, april, maj, jun, jul, avgust, septembar, oktobar, novembar, decembar]
+    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%d.%m.%Y. u %H:%M"
+      time: "%H:%M"
+      short: "%d. %b u %H:%M"
+      long: "%d. %B %Y u %H:%M"
+    am: "am"
+    pm: "pm"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "pola minuta"
+      less_than_x_seconds:
+        one:   "manje od jedne sekunde"
+        other: "manje od %{count} sek."
+      x_seconds:
+        one:   "jedna sekunda"
+        other: "%{count} sek."
+      less_than_x_minutes:
+        one:   "manje od minuta"
+        other: "manje od %{count} min."
+      x_minutes:
+        one:   "jedan minut"
+        other: "%{count} min."
+      about_x_hours:
+        one:   "približno jedan sat"
+        other: "približno %{count} sati"
+      x_days:
+        one:   "jedan dan"
+        other: "%{count} dana"
+      about_x_months:
+        one:   "približno jedan mesec"
+        other: "približno %{count} meseci"
+      x_months:
+        one:   "jedan mesec"
+        other: "%{count} meseci"
+      about_x_years:
+        one:   "približno godinu dana"
+        other: "približno %{count} god."
+      over_x_years:
+        one:   "preko godinu dana"
+        other: "preko %{count} god."
+      almost_x_years:
+        one:   "skoro godinu dana"
+        other: "skoro %{count} god."
+
+  number:
+    format:
+      separator: ","
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "i"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "nije ukljuÄen u spisak"
+        exclusion: "je rezervisan"
+        invalid: "je neispravan"
+        confirmation: "potvrda ne odgovara"
+        accepted: "mora biti prihvaćen"
+        empty: "ne može biti prazno"
+        blank: "ne može biti prazno"
+        too_long: "je predugaÄka (maksimum znakova je %{count})"
+        too_short: "je prekratka (minimum znakova je %{count})"
+        wrong_length: "je pogrešne dužine (broj znakova mora biti %{count})"
+        taken: "je već u upotrebi"
+        not_a_number: "nije broj"
+        not_a_date: "nije ispravan datum"
+        greater_than: "mora biti veći od %{count}"
+        greater_than_or_equal_to: "mora biti veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora biti manji ili jednak %{count}"
+        odd: "mora biti paran"
+        even: "mora biti neparan"
+        greater_than_start_date: "mora biti veći od poÄetnog datuma"
+        not_same_project: "ne pripada istom projektu"
+        circular_dependency: "Ova veza će stvoriti kružnu referencu"
+        cant_link_an_issue_with_a_descendant: "Problem ne može biti povezan sa jednim od svojih podzadataka"
+
+  actionview_instancetag_blank_option: Molim odaberite
+  
+  general_text_No: 'Ne'
+  general_text_Yes: 'Da'
+  general_text_no: 'ne'
+  general_text_yes: 'da'
+  general_lang_name: 'Srpski'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Nalog je uspešno ažuriran.
+  notice_account_invalid_creditentials: Neispravno korisniÄko ime ili lozinka.
+  notice_account_password_updated: Lozinka je uspešno ažurirana.
+  notice_account_wrong_password: Pogrešna lozinka
+  notice_account_register_done: KorisniÄki nalog je uspeÅ¡no kreiran. Kliknite na link koji ste dobili u e-poruci za aktivaciju.
+  notice_account_unknown_email: Nepoznat korisnik.
+  notice_can_t_change_password: Ovaj korisniÄki nalog za potvrdu identiteta koristi spoljni izvor. Nemoguće je promeniti lozinku.
+  notice_account_lost_email_sent: Poslata vam je e-poruka sa uputstvom za izbor nove lozinke
+  notice_account_activated: VaÅ¡ korisniÄki nalog je aktiviran. Sada se možete prijaviti.
+  notice_successful_create: Uspešno kreiranje.
+  notice_successful_update: Uspešno ažuriranje.
+  notice_successful_delete: Uspešno brisanje.
+  notice_successful_connection: Uspešno povezivanje.
+  notice_file_not_found: Strana kojoj želite pristupiti ne postoji ili je uklonjena.
+  notice_locking_conflict: Podatak je ažuriran od strane drugog korisnika.
+  notice_not_authorized: Niste ovlašćeni za pristup ovoj strani.
+  notice_email_sent: "E-poruka je poslata na %{value}"
+  notice_email_error: "Dogodila se greška prilikom slanja e-poruke (%{value})"
+  notice_feeds_access_key_reseted: VaÅ¡ RSS pristupni kljuÄ je poniÅ¡ten.
+  notice_api_access_key_reseted: VaÅ¡ API pristupni kljuÄ je poniÅ¡ten.
+  notice_failed_to_save_issues: "Neuspešno snimanje %{count} problema od %{total} odabranih: %{ids}."
+  notice_failed_to_save_members: "NeuspeÅ¡no snimanje Älana(ova): %{errors}."
+  notice_no_issue_selected: "Ni jedan problem nije odabran! Molimo, odaberite problem koji želite da menjate."
+  notice_account_pending: "VaÅ¡ nalog je kreiran i Äeka na odobrenje administratora."
+  notice_default_data_loaded: Podrazumevano konfigurisanje je uspeÅ¡no uÄitano.
+  notice_unable_delete_version: Verziju je nemoguće izbrisati.
+  notice_unable_delete_time_entry: Stavku evidencije vremena je nemoguće izbrisati.
+  notice_issue_done_ratios_updated: Odnos rešenih problema je ažuriran.
+  
+  error_can_t_load_default_data: "Podrazumevano konfigurisanje je nemoguće uÄitati: %{value}"
+  error_scm_not_found: "Stavka ili ispravka nisu pronađene u spremištu."
+  error_scm_command_failed: "Greška se javila prilikom pokušaja pristupa spremištu: %{value}"
+  error_scm_annotate: "Stavka ne postoji ili ne može biti oznaÄena."
+  error_issue_not_found_in_project: 'Problem nije pronađen ili ne pripada ovom projektu.'
+  error_no_tracker_in_project: 'Ni jedno praćenje nije povezano sa ovim projektom. Molimo proverite podešavanja projekta.'
+  error_no_default_issue_status: 'Podrazumevani status problema nije definisan. Molimo proverite vaše konfigurisanje (idite na "Administracija -> Statusi problema").'
+  error_can_not_delete_custom_field: Nemoguće je izbrisati prilagođeno polje
+  error_can_not_delete_tracker: "Ovo praćenje sadrži probleme i ne može biti obrisano."
+  error_can_not_remove_role: "Ova uloga je u upotrebi i ne može biti obrisana."
+  error_can_not_reopen_issue_on_closed_version: 'Problem dodeljen zatvorenoj verziji ne može biti ponovo otvoren'
+  error_can_not_archive_project: Ovaj projekat se ne može arhivirati
+  error_issue_done_ratios_not_updated: "Odnos rešenih problema nije ažuriran."
+  error_workflow_copy_source: 'Molimo odaberite izvorno praćenje ili ulogu'
+  error_workflow_copy_target: 'Molimo odaberite odredišno praćenje i ulogu'
+  error_unable_delete_issue_status: 'Status problema je nemoguće obrisati'
+  error_unable_to_connect: "Povezivanje sa (%{value}) je nemoguće"  
+  warning_attachments_not_saved: "%{count} datoteka ne može biti snimljena."
+  
+  mail_subject_lost_password: "Vaša %{value} lozinka"
+  mail_body_lost_password: 'Za promenu vaše lozinke, kliknite na sledeći link:'
+  mail_subject_register: "Aktivacija vašeg %{value} naloga"
+  mail_body_register: 'Za aktivaciju vašeg naloga, kliknite na sledeći link:'
+  mail_body_account_information_external: "Vaš nalog %{value} možete koristiti za prijavu."
+  mail_body_account_information: Informacije o vašem nalogu
+  mail_subject_account_activation_request: "Zahtev za aktivaciju naloga %{value}"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) je registrovan. Nalog Äeka na vaÅ¡e odobrenje:"
+  mail_subject_reminder: "%{count} problema dospeva narednih %{days} dana"
+  mail_body_reminder: "%{count} problema dodeljenih vama dospeva u narednih %{days} dana:"
+  mail_subject_wiki_content_added: "Wiki stranica '%{id}' je dodata"
+  mail_body_wiki_content_added: "%{author} je dodao wiki stranicu '%{id}'."
+  mail_subject_wiki_content_updated: "Wiki stranica '%{id}' je ažurirana"
+  mail_body_wiki_content_updated: "%{author} je ažurirao wiki stranicu '%{id}'."
+  
+  gui_validation_error: jedna greška
+  gui_validation_error_plural: "%{count} grešaka"
+  
+  field_name: Naziv
+  field_description: Opis
+  field_summary: Rezime
+  field_is_required: Obavezno
+  field_firstname: Ime
+  field_lastname: Prezime
+  field_mail: E-adresa
+  field_filename: Datoteka
+  field_filesize: VeliÄina
+  field_downloads: Preuzimanja
+  field_author: Autor
+  field_created_on: Kreirano
+  field_updated_on: Ažurirano
+  field_field_format: Format
+  field_is_for_all: Za sve projekte
+  field_possible_values: Moguće vrednosti
+  field_regexp: Regularan izraz
+  field_min_length: Minimalna dužina
+  field_max_length: Maksimalna dužina
+  field_value: Vrednost
+  field_category: Kategorija
+  field_title: Naslov
+  field_project: Projekat
+  field_issue: Problem
+  field_status: Status
+  field_notes: Beleške
+  field_is_closed: Zatvoren problem
+  field_is_default: Podrazumevana vrednost
+  field_tracker: Praćenje
+  field_subject: Predmet
+  field_due_date: Krajnji rok
+  field_assigned_to: Dodeljeno
+  field_priority: Prioritet
+  field_fixed_version: Odredišna verzija
+  field_user: Korisnik
+  field_principal: Glavni
+  field_role: Uloga
+  field_homepage: PoÄetna stranica
+  field_is_public: Javno objavljivanje
+  field_parent: Potprojekat od
+  field_is_in_roadmap: Problemi prikazani u planu rada
+  field_login: KorisniÄko ime
+  field_mail_notification: Obaveštenja putem e-pošte
+  field_admin: Administrator
+  field_last_login_on: Poslednje povezivanje
+  field_language: Jezik
+  field_effective_date: Datum
+  field_password: Lozinka
+  field_new_password: Nova lozinka
+  field_password_confirmation: Potvrda lozinke
+  field_version: Verzija
+  field_type: Tip
+  field_host: Glavni raÄunar
+  field_port: Port
+  field_account: KorisniÄki nalog
+  field_base_dn: Bazni DN
+  field_attr_login: Atribut prijavljivanja
+  field_attr_firstname: Atribut imena
+  field_attr_lastname: Atribut prezimena
+  field_attr_mail: Atribut e-adrese
+  field_onthefly: Kreiranje korisnika u toku rada
+  field_start_date: PoÄetak
+  field_done_ratio: % urađeno
+  field_auth_source: Režim potvrde identiteta
+  field_hide_mail: Sakrij moju e-adresu
+  field_comments: Komentar
+  field_url: URL
+  field_start_page: PoÄetna stranica
+  field_subproject: Potprojekat
+  field_hours: sati
+  field_activity: Aktivnost
+  field_spent_on: Datum
+  field_identifier: Identifikator
+  field_is_filter: Upotrebi kao filter
+  field_issue_to: Srodni problemi
+  field_delay: Kašnjenje
+  field_assignable: Problem može biti dodeljen ovoj ulozi
+  field_redirect_existing_links: Preusmeri postojeće veze
+  field_estimated_hours: Proteklo vreme
+  field_column_names: Kolone
+  field_time_zone: Vremenska zona
+  field_searchable: Može da se pretražuje
+  field_default_value: Podrazumevana vrednost
+  field_comments_sorting: Prikaži komentare
+  field_parent_title: MatiÄna stranica
+  field_editable: Izmenljivo
+  field_watcher: PosmatraÄ
+  field_identity_url: OpenID URL
+  field_content: Sadržaj
+  field_group_by: Grupisanje rezultata po
+  field_sharing: Deljenje
+  field_parent_issue: MatiÄni zadatak
+  
+  setting_app_title: Naslov aplikacije
+  setting_app_subtitle: Podnaslov aplikacije
+  setting_welcome_text: Tekst dobrodošlice
+  setting_default_language: Podrazumevani jezik
+  setting_login_required: Obavezna potvrda identiteta
+  setting_self_registration: Samoregistracija
+  setting_attachment_max_size: Maks. veliÄina priložene datoteke
+  setting_issues_export_limit: OgraniÄenje izvoza „problema“
+  setting_mail_from: E-adresa pošiljaoca
+  setting_bcc_recipients: Primaoci „Bcc“ kopije
+  setting_plain_text_mail: Poruka sa Äistim tekstom (bez HTML-a)
+  setting_host_name: Putanja i naziv glavnog raÄunara
+  setting_text_formatting: Oblikovanje teksta
+  setting_wiki_compression: Kompresija Wiki istorije
+  setting_feeds_limit: OgraniÄenje sadržaja izvora vesti
+  setting_default_projects_public: Podrazumeva se javno prikazivanje novih projekata
+  setting_autofetch_changesets: Izvršavanje automatskog preuzimanja
+  setting_sys_api_enabled: Omogućavanje WS za upravljanje spremištem
+  setting_commit_ref_keywords: Referenciranje kljuÄnih reÄi
+  setting_commit_fix_keywords: Popravljanje kljuÄnih reÄi
+  setting_autologin: Automatska prijava
+  setting_date_format: Format datuma
+  setting_time_format: Format vremena
+  setting_cross_project_issue_relations: Dozvoli povezivanje problema iz unakrsnih projekata
+  setting_issue_list_default_columns: Podrazumevane kolone prikazane na spisku problema
+  setting_repositories_encodings: Kodiranje spremišta
+  setting_commit_logs_encoding: Kodiranje izvršnih poruka
+  setting_emails_footer: Podnožje stranice e-poruke
+  setting_protocol: Protokol
+  setting_per_page_options: Opcije prikaza objekata po stranici
+  setting_user_format: Format prikaza korisnika
+  setting_activity_days_default: Broj dana prikazanih na projektnoj aktivnosti
+  setting_display_subprojects_issues: Prikazuj probleme iz potprojekata na glavnom projektu, ukoliko nije drugaÄije navedeno
+  setting_enabled_scm: Omogućavanje SCM
+  setting_mail_handler_body_delimiters: "Skraćivanje e-poruke nakon jedne od ovih linija"
+  setting_mail_handler_api_enabled: Omogućavanje WS dolazne e-poruke
+  setting_mail_handler_api_key: API kljuÄ
+  setting_sequential_project_identifiers: Generisanje sekvencijalnog imena projekta
+  setting_gravatar_enabled: Koristi Gravatar korisniÄke ikone
+  setting_gravatar_default: Podrazumevana Gravatar slika
+  setting_diff_max_lines_displayed: Maks. broj prikazanih razliÄitih linija
+  setting_file_max_size_displayed: Maks. veliÄina tekst. datoteka prikazanih umetnuto
+  setting_repository_log_display_limit: Maks. broj revizija prikazanih u datoteci za evidenciju
+  setting_openid: Dozvoli OpenID prijavu i registraciju
+  setting_password_min_length: Minimalna dužina lozinke
+  setting_new_project_user_role_id: Kreatoru projekta (koji nije administrator) dodeljuje je uloga
+  setting_default_projects_modules: Podrazumevano omogućeni moduli za nove projekte
+  setting_issue_done_ratio: IzraÄunaj odnos reÅ¡enih problema
+  setting_issue_done_ratio_issue_field: koristeći polje problema
+  setting_issue_done_ratio_issue_status: koristeći status problema
+  setting_start_of_week: Prvi dan u sedmici
+  setting_rest_api_enabled: Omogući REST web usluge
+  setting_cache_formatted_text: Keširanje obrađenog teksta
+  
+  permission_add_project: Kreiranje projekta
+  permission_add_subprojects: Kreiranje potpojekta
+  permission_edit_project: Izmena projekata
+  permission_select_project_modules: Odabiranje modula projekta
+  permission_manage_members: Upravljanje Älanovima
+  permission_manage_project_activities: Upravljanje projektnim aktivnostima
+  permission_manage_versions: Upravljanje verzijama
+  permission_manage_categories: Upravljanje kategorijama problema
+  permission_view_issues: Pregled problema
+  permission_add_issues: Dodavanje problema
+  permission_edit_issues: Izmena problema
+  permission_manage_issue_relations: Upravljanje vezama između problema
+  permission_add_issue_notes: Dodavanje beleški
+  permission_edit_issue_notes: Izmena beleški
+  permission_edit_own_issue_notes: Izmena sopstvenih beleški
+  permission_move_issues: Pomeranje problema
+  permission_delete_issues: Brisanje problema
+  permission_manage_public_queries: Upravljanje javnim upitima
+  permission_save_queries: Snimanje upita
+  permission_view_gantt: Pregledanje Gantovog dijagrama
+  permission_view_calendar: Pregledanje kalendara
+  permission_view_issue_watchers: Pregledanje spiska posmatraÄa
+  permission_add_issue_watchers: Dodavanje posmatraÄa
+  permission_delete_issue_watchers: Brisanje posmatraÄa
+  permission_log_time: Beleženje utrošenog vremena
+  permission_view_time_entries: Pregledanje utrošenog vremena
+  permission_edit_time_entries: Izmena utrošenog vremena
+  permission_edit_own_time_entries: Izmena sopstvenog utrošenog vremena
+  permission_manage_news: Upravljanje vestima
+  permission_comment_news: Komentarisanje vesti
+  permission_manage_documents: Upravljanje dokumentima
+  permission_view_documents: Pregledanje dokumenata
+  permission_manage_files: Upravljanje datotekama
+  permission_view_files: Pregledanje datoteka
+  permission_manage_wiki: Upravljanje wiki stranicama
+  permission_rename_wiki_pages: Promena imena wiki stranicama
+  permission_delete_wiki_pages: Brisanje wiki stranica
+  permission_view_wiki_pages: Pregledanje wiki stranica
+  permission_view_wiki_edits: Pregledanje wiki istorije
+  permission_edit_wiki_pages: Izmena wiki stranica
+  permission_delete_wiki_pages_attachments: Brisanje priloženih datoteka
+  permission_protect_wiki_pages: Zaštita wiki stranica
+  permission_manage_repository: Upravljanje spremištem
+  permission_browse_repository: Pregledanje spremišta
+  permission_view_changesets: Pregledanje skupa promena
+  permission_commit_access: Potvrda pristupa
+  permission_manage_boards: Upravljanje forumima
+  permission_view_messages: Pregledanje poruka
+  permission_add_messages: Slanje poruka
+  permission_edit_messages: Izmena poruka
+  permission_edit_own_messages: Izmena sopstvenih poruka
+  permission_delete_messages: Brisanje poruka
+  permission_delete_own_messages: Brisanje sopstvenih poruka
+  permission_export_wiki_pages: Izvoz wiki stranica
+  permission_manage_subtasks: Upravljanje podzadacima
+  
+  project_module_issue_tracking: Praćenje problema
+  project_module_time_tracking: Praćenje vremena
+  project_module_news: Vesti
+  project_module_documents: Dokumenti
+  project_module_files: Datoteke
+  project_module_wiki: Wiki
+  project_module_repository: Spremište
+  project_module_boards: Forumi
+  
+  label_user: Korisnik
+  label_user_plural: Korisnici
+  label_user_new: Novi korisnik
+  label_user_anonymous: Anoniman
+  label_project: Projekat
+  label_project_new: Novi projekat
+  label_project_plural: Projekti
+  label_x_projects:
+    zero:  nema projekata
+    one:   jedan projekat
+    other: "%{count} projekata"
+  label_project_all: Svi projekti
+  label_project_latest: Poslednji projekti
+  label_issue: Problem
+  label_issue_new: Novi problem
+  label_issue_plural: Problemi
+  label_issue_view_all: Prikaz svih problema
+  label_issues_by: "Problemi (%{value})"
+  label_issue_added: Problem je dodat
+  label_issue_updated: Problem je ažuriran
+  label_document: Dokument
+  label_document_new: Novi dokument
+  label_document_plural: Dokumenti
+  label_document_added: Dokument je dodat
+  label_role: Uloga
+  label_role_plural: Uloge
+  label_role_new: Nova uloga
+  label_role_and_permissions: Uloge i dozvole
+  label_member: ÄŒlan
+  label_member_new: Novi Älan
+  label_member_plural: ÄŒlanovi
+  label_tracker: Praćenje
+  label_tracker_plural: Praćenja
+  label_tracker_new: Novo praćenje
+  label_workflow: Tok posla
+  label_issue_status: Status problema
+  label_issue_status_plural: Statusi problema
+  label_issue_status_new: Novi status
+  label_issue_category: Kategorija problema
+  label_issue_category_plural: Kategorije problema
+  label_issue_category_new: Nova kategorija
+  label_custom_field: Prilagođeno polje
+  label_custom_field_plural: Prilagođena polja
+  label_custom_field_new: Novo prilagođeno polje
+  label_enumerations: Nabrojiva lista
+  label_enumeration_new: Nova vrednost
+  label_information: Informacija
+  label_information_plural: Informacije
+  label_please_login: Molimo, prijavite se
+  label_register: Registracija
+  label_login_with_open_id_option: ili prijava sa OpenID
+  label_password_lost: Izgubljena lozinka
+  label_home: PoÄetak
+  label_my_page: Moja stranica
+  label_my_account: Moj nalog
+  label_my_projects: Moji projekti
+  label_my_page_block: My page block
+  label_administration: Administracija
+  label_login: Prijava
+  label_logout: Odjava
+  label_help: Pomoć
+  label_reported_issues: Prijavljeni problemi
+  label_assigned_to_me_issues: Problemi dodeljeni meni
+  label_last_login: Poslednje povezivanje
+  label_registered_on: Registrovan
+  label_activity: Aktivnost
+  label_overall_activity: Celokupna aktivnost
+  label_user_activity: "Aktivnost korisnika %{value}"
+  label_new: Novo
+  label_logged_as: Prijavljeni ste kao
+  label_environment: Okruženje
+  label_authentication: Potvrda identiteta
+  label_auth_source: Režim potvrde identiteta
+  label_auth_source_new: Novi režim potvrde identiteta
+  label_auth_source_plural: Režimi potvrde identiteta
+  label_subproject_plural: Potprojekti
+  label_subproject_new: Novi potprojekat
+  label_and_its_subprojects: "%{value} i njegovi potprojekti"
+  label_min_max_length: Min. - Maks. dužina
+  label_list: Spisak
+  label_date: Datum
+  label_integer: Ceo broj
+  label_float: Sa pokretnim zarezom
+  label_boolean: LogiÄki operator
+  label_string: Tekst
+  label_text: Dugi tekst
+  label_attribute: Osobina
+  label_attribute_plural: Osobine
+  label_download: "%{count} preuzimanje"
+  label_download_plural: "%{count} preuzimanja"
+  label_no_data: Nema podataka za prikazivanje
+  label_change_status: Promena statusa
+  label_history: Istorija
+  label_attachment: Datoteka
+  label_attachment_new: Nova datoteka
+  label_attachment_delete: Brisanje datoteke
+  label_attachment_plural: Datoteke
+  label_file_added: Datoteka je dodata
+  label_report: Izveštaj
+  label_report_plural: Izveštaji
+  label_news: Vesti
+  label_news_new: Dodavanje vesti
+  label_news_plural: Vesti
+  label_news_latest: Poslednje vesti
+  label_news_view_all: Prikaz svih vesti
+  label_news_added: Vesti su dodate
+  label_settings: Podešavanja
+  label_overview: Pregled
+  label_version: Verzija
+  label_version_new: Nova verzija
+  label_version_plural: Verzije
+  label_close_versions: Zatvori završene verzije
+  label_confirmation: Potvrda
+  label_export_to: 'Takođe dostupno i u varijanti:'
+  label_read: ÄŒitanje...
+  label_public_projects: Javni projekti
+  label_open_issues: otvoren
+  label_open_issues_plural: otvorenih
+  label_closed_issues: zatvoren
+  label_closed_issues_plural: zatvorenih
+  label_x_open_issues_abbr_on_total:
+    zero:  0 otvorenih / %{total}
+    one:   1 otvoren / %{total}
+    other: "%{count} otvorenih / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 otvorenih
+    one:   1 otvoren
+    other: "%{count} otvorenih"
+  label_x_closed_issues_abbr:
+    zero:  0 zatvorenih
+    one:   1 zatvoren
+    other: "%{count} zatvorenih"
+  label_total: Ukupno
+  label_permissions: Dozvole
+  label_current_status: Trenutni status
+  label_new_statuses_allowed: Novi statusi dozvoljeni
+  label_all: svi
+  label_none: nijedan
+  label_nobody: nikome
+  label_next: Sledeće
+  label_previous: Prethodno
+  label_used_by: Koristio
+  label_details: Detalji
+  label_add_note: Dodaj belešku
+  label_per_page: Po strani
+  label_calendar: Kalendar
+  label_months_from: meseci od
+  label_gantt: Gantov dijagram
+  label_internal: Unutrašnji
+  label_last_changes: "poslednjih %{count} promena"
+  label_change_view_all: Prikaži sve promene
+  label_personalize_page: Personalizuj ovu stranu
+  label_comment: Komentar
+  label_comment_plural: Komentari
+  label_x_comments:
+    zero: bez komentara
+    one: jedan komentar
+    other: "%{count} komentara"
+  label_comment_add: Dodaj komentar
+  label_comment_added: Komentar dodat
+  label_comment_delete: Obriši komentare
+  label_query: Prilagođen upit
+  label_query_plural: Prilagođeni upiti
+  label_query_new: Novi upit
+  label_filter_add: Dodavanje filtera
+  label_filter_plural: Filteri
+  label_equals: je
+  label_not_equals: nije
+  label_in_less_than: manje od
+  label_in_more_than: više od
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: u
+  label_today: danas
+  label_all_time: sve vreme
+  label_yesterday: juÄe
+  label_this_week: ove sedmice
+  label_last_week: poslednje sedmice
+  label_last_n_days: "poslednjih %{count} dana"
+  label_this_month: ovog meseca
+  label_last_month: poslednjeg meseca
+  label_this_year: ove godine
+  label_date_range: Vremenski period
+  label_less_than_ago: pre manje od nekoliko dana
+  label_more_than_ago: pre više od nekoliko dana
+  label_ago: pre nekoliko dana
+  label_contains: sadrži
+  label_not_contains: ne sadrži
+  label_day_plural: dana
+  label_repository: Spremište
+  label_repository_plural: Spremišta
+  label_browse: Pregledanje
+  label_modification: "%{count} promena"
+  label_modification_plural: "%{count} promena"
+  label_branch: Grana
+  label_tag: Oznaka
+  label_revision: Revizija
+  label_revision_plural: Revizije
+  label_revision_id: "Revizija %{value}"
+  label_associated_revisions: Pridružene revizije
+  label_added: dodato
+  label_modified: promenjeno
+  label_copied: kopirano
+  label_renamed: preimenovano
+  label_deleted: izbrisano
+  label_latest_revision: Poslednja revizija
+  label_latest_revision_plural: Poslednje revizije
+  label_view_revisions: Pregled revizija
+  label_view_all_revisions: Pregled svih revizija
+  label_max_size: Maksimalna veliÄina
+  label_sort_highest: Premeštanje na vrh
+  label_sort_higher: Premeštanje na gore
+  label_sort_lower: Premeštanje na dole
+  label_sort_lowest: Premeštanje na dno
+  label_roadmap: Plan rada
+  label_roadmap_due_in: "Dospeva %{value}"
+  label_roadmap_overdue: "%{value} najkasnije"
+  label_roadmap_no_issues: Nema problema za ovu verziju
+  label_search: Pretraga
+  label_result_plural: Rezultati
+  label_all_words: Sve reÄi
+  label_wiki: Wiki
+  label_wiki_edit: Wiki izmena
+  label_wiki_edit_plural: Wiki izmene
+  label_wiki_page: Wiki stranica
+  label_wiki_page_plural: Wiki stranice
+  label_index_by_title: Indeksiranje po naslovu
+  label_index_by_date: Indeksiranje po datumu
+  label_current_version: Trenutna verzija
+  label_preview: Pregled
+  label_feed_plural: Izvori vesti
+  label_changes_details: Detalji svih promena
+  label_issue_tracking: Praćenje problema
+  label_spent_time: Utrošeno vreme
+  label_overall_spent_time: Celokupno utrošeno vreme
+  label_f_hour: "%{value} sat"
+  label_f_hour_plural: "%{value} sati"
+  label_time_tracking: Praćenje vremena
+  label_change_plural: Promene
+  label_statistics: Statistika
+  label_commits_per_month: IzvrÅ¡enja meseÄno
+  label_commits_per_author: Izvršenja po autoru
+  label_view_diff: Pogledaj razlike
+  label_diff_inline: unutra
+  label_diff_side_by_side: uporedo
+  label_options: Opcije
+  label_copy_workflow_from: Kopiranje toka posla od
+  label_permissions_report: Izveštaj o dozvolama
+  label_watched_issues: Posmatrani problemi
+  label_related_issues: Srodni problemi
+  label_applied_status: Primenjeni statusi
+  label_loading: UÄitavanje...
+  label_relation_new: Nova relacija
+  label_relation_delete: Brisanje relacije
+  label_relates_to: srodnih sa
+  label_duplicates: dupliranih
+  label_duplicated_by: dupliranih od
+  label_blocks: odbijenih
+  label_blocked_by: odbijenih od
+  label_precedes: prethodi
+  label_follows: praćenih
+  label_end_to_start: od kraja do poÄetka
+  label_end_to_end: od kraja do kraja
+  label_start_to_start: od poÄetka do poÄetka
+  label_start_to_end: od poÄetka do kraja
+  label_stay_logged_in: Ostanite prijavljeni
+  label_disabled: onemogućeno
+  label_show_completed_versions: Prikazivanje završene verzije
+  label_me: meni
+  label_board: Forum
+  label_board_new: Novi forum
+  label_board_plural: Forumi
+  label_board_locked: ZakljuÄana
+  label_board_sticky: Lepljiva
+  label_topic_plural: Teme
+  label_message_plural: Poruke
+  label_message_last: Poslednja poruka
+  label_message_new: Nova poruka
+  label_message_posted: Poruka je dodata
+  label_reply_plural: Odgovori
+  label_send_information: Pošalji korisniku detalje naloga
+  label_year: Godina
+  label_month: Mesec
+  label_week: Sedmica
+  label_date_from: Å alje
+  label_date_to: Prima
+  label_language_based: Bazirano na jeziku korisnika
+  label_sort_by: "Sortirano po %{value}"
+  label_send_test_email: Slanje probne e-poruke
+  label_feeds_access_key: RSS pristupni kljuÄ
+  label_missing_feeds_access_key: RSS pristupni kljuÄ nedostaje
+  label_feeds_access_key_created_on: "RSS pristupni kljuÄ je napravljen pre %{value}"
+  label_module_plural: Moduli
+  label_added_time_by: "Dodao %{author} pre %{age}"
+  label_updated_time_by: "Ažurirao %{author} pre %{age}"
+  label_updated_time: "Ažurirano pre %{value}"
+  label_jump_to_a_project: Skok na projekat...
+  label_file_plural: Datoteke
+  label_changeset_plural: Skupovi promena
+  label_default_columns: Podrazumevane kolone
+  label_no_change_option: (Bez promena)
+  label_bulk_edit_selected_issues: Grupna izmena odabranih problema
+  label_theme: Tema
+  label_default: Podrazumevano
+  label_search_titles_only: Pretražuj samo naslove
+  label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
+  label_user_mail_option_selected: "Za bilo koji događaj na samo odabranim projektima..."
+  label_user_mail_no_self_notified: "Ne želim biti obaveštavan za promene koje sam pravim"
+  label_registration_activation_by_email: aktivacija naloga putem e-poruke
+  label_registration_manual_activation: ruÄna aktivacija naloga
+  label_registration_automatic_activation: automatska aktivacija naloga
+  label_display_per_page: "Broj stavki po stranici: %{value}"
+  label_age: Starost
+  label_change_properties: Promeni svojstva
+  label_general: Opšti
+  label_more: Više
+  label_scm: SCM
+  label_plugins: Dodatne komponente
+  label_ldap_authentication: LDAP potvrda identiteta
+  label_downloads_abbr: D/L
+  label_optional_description: Opciono opis
+  label_add_another_file: Dodaj još jednu datoteku
+  label_preferences: Podešavanja
+  label_chronological_order: po hronološkom redosledu
+  label_reverse_chronological_order: po obrnutom hronološkom redosledu
+  label_planning: Planiranje
+  label_incoming_emails: Dolazne e-poruke
+  label_generate_key: Generisanje kljuÄa
+  label_issue_watchers: PosmatraÄi
+  label_example: Primer
+  label_display: Prikaz
+  label_sort: Sortiranje
+  label_ascending: Rastući niz
+  label_descending: Opadajući niz
+  label_date_from_to: Od %{start} do %{end}
+  label_wiki_content_added: Wiki stranica je dodata
+  label_wiki_content_updated: Wiki stranica je ažurirana
+  label_group: Grupa
+  label_group_plural: Grupe
+  label_group_new: Nova grupa
+  label_time_entry_plural: Utrošeno vreme
+  label_version_sharing_none: Nije deljeno
+  label_version_sharing_descendants: Sa potprojektima
+  label_version_sharing_hierarchy: Sa hijerarhijom projekta
+  label_version_sharing_tree: Sa stablom projekta
+  label_version_sharing_system: Sa svim projektima
+  label_update_issue_done_ratios: Ažuriraj odnos rešenih problema
+  label_copy_source: Izvor
+  label_copy_target: Odredište
+  label_copy_same_as_target: Isto kao odredište
+  label_display_used_statuses_only: Prikazuj statuse korišćene samo od strane ovog praćenja
+  label_api_access_key: API pristupni kljuÄ
+  label_missing_api_access_key: Nedostaje API pristupni kljuÄ
+  label_api_access_key_created_on: "API pristupni kljuÄ je kreiran pre %{value}"
+  label_profile: Profil
+  label_subtask_plural: Podzadatak
+  label_project_copy_notifications: Pošalji e-poruku sa obaveštenjem prilikom kopiranja projekta 
+  
+  button_login: Prijava
+  button_submit: Pošalji
+  button_save: Snimi
+  button_check_all: UkljuÄi sve
+  button_uncheck_all: IskljuÄi sve
+  button_delete: Izbriši
+  button_create: Kreiraj
+  button_create_and_continue: Kreiraj i nastavi
+  button_test: Test
+  button_edit: Izmeni
+  button_add: Dodaj
+  button_change: Promeni
+  button_apply: Primeni
+  button_clear: Obriši
+  button_lock: ZakljuÄaj
+  button_unlock: OtkljuÄaj
+  button_download: Preuzmi
+  button_list: Spisak
+  button_view: Prikaži
+  button_move: Pomeri
+  button_move_and_follow: Pomeri i prati
+  button_back: Nazad
+  button_cancel: Poništi
+  button_activate: Aktiviraj
+  button_sort: Sortiraj
+  button_log_time: Evidentiraj vreme
+  button_rollback: Povratak na ovu verziju
+  button_watch: Prati
+  button_unwatch: Ne prati više
+  button_reply: Odgovori
+  button_archive: Arhiviraj
+  button_unarchive: Vrati iz arhive
+  button_reset: Poništi
+  button_rename: Preimenuj
+  button_change_password: Promeni lozinku
+  button_copy: Kopiraj
+  button_copy_and_follow: Kopiraj i prati
+  button_annotate: Pribeleži
+  button_update: Ažuriraj
+  button_configure: Podesi
+  button_quote: Pod navodnicima
+  button_duplicate: Dupliraj
+  button_show: Prikaži
+  
+  status_active: aktivni
+  status_registered: registrovani
+  status_locked: zakljuÄani
+  
+  version_status_open: otvoren
+  version_status_locked: zakljuÄan
+  version_status_closed: zatvoren
+
+  field_active: Aktivan
+  
+  text_select_mail_notifications: Odaberi akcije za koje će obaveštenje biti poslato putem e-pošte.
+  text_regexp_info: npr. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 znaÄi bez ograniÄenja
+  text_project_destroy_confirmation: Jeste li sigurni da želite da izbrišete ovaj projekat i sve pripadajuće podatke?
+  text_subprojects_destroy_warning: "Potprojekti: %{value} će takođe biti izbrisan."
+  text_workflow_edit: Odaberite ulogu i praćenje za izmenu toka posla
+  text_are_you_sure: Jeste li sigurni?
+  text_journal_changed: "%{label} promenjen od %{old} u %{new}"
+  text_journal_set_to: "%{label} postavljen u %{value}"
+  text_journal_deleted: "%{label} izbrisano (%{old})"
+  text_journal_added: "%{label} %{value} dodato"
+  text_tip_issue_begin_day: zadatak poÄinje ovog dana
+  text_tip_issue_end_day: zadatak se završava ovog dana
+  text_tip_issue_begin_end_day: zadatak poÄinje i zavrÅ¡ava ovog dana
+  text_project_identifier_info: 'Dozvoljena su samo mala slova (a-š), brojevi i crtice.<br />Jednom snimljen identifikator više se ne može promeniti.'
+  text_caracters_maximum: "Najviše %{count} znak(ova)."
+  text_caracters_minimum: "Broj znakova mora biti najmanje %{count}."
+  text_length_between: "Broj znakova mora biti između %{min} i %{max}."
+  text_tracker_no_workflow: Ovo praćenje nema definisan tok posla
+  text_unallowed_characters: Nedozvoljeni znakovi
+  text_comma_separated: Dozvoljene su višestruke vrednosti (odvojene zarezom).
+  text_line_separated: Dozvoljene su višestruke vrednosti (jedan red za svaku vrednost).
+  text_issues_ref_in_commit_messages: Referenciranje i popravljanje problema u izvršnim porukama
+  text_issue_added: "%{author} je prijavio problem %{id}."
+  text_issue_updated: "%{author} je ažurirao problem %{id}."
+  text_wiki_destroy_confirmation: Jeste li sigurni da želite da obrišete wiki i sav sadržaj?
+  text_issue_category_destroy_question: "Nekoliko problema (%{count}) je dodeljeno ovoj kategoriji. Šta želite da uradite?"
+  text_issue_category_destroy_assignments: Ukloni dodeljene kategorije
+  text_issue_category_reassign_to: Dodeli ponovo probleme ovoj kategoriji
+  text_user_mail_option: "Za neizabrane projekte, dobićete samo obaveÅ¡tenje o stvarima koje pratite ili ste ukljuÄeni (npr. problemi Äiji ste vi autor ili zastupnik)."
+  text_no_configuration_data: "Uloge, praćenja, statusi problema i toka posla joÅ¡ uvek nisu podeÅ¡eni.\nPreporuÄljivo je da uÄitate podrazumevano konfigurisanje. Izmena je moguća nakon prvog uÄitavanja."
+  text_load_default_configuration: UÄitaj podrazumevano konfigurisanje
+  text_status_changed_by_changeset: "Primenjeno u skupu sa promenama %{value}."
+  text_issues_destroy_confirmation: 'Jeste li sigurni da želite da izbrišete odabrane probleme?'
+  text_select_project_modules: 'Odaberite module koje želite omogućiti za ovaj projekat:'
+  text_default_administrator_account_changed: Podrazumevani administratorski nalog je promenjen
+  text_file_repository_writable: Fascikla priloženih datoteka je upisiva
+  text_plugin_assets_writable: Fascikla elemenata dodatnih komponenti je upisiva
+  text_rmagick_available: RMagick je dostupan (opciono)
+  text_destroy_time_entries_question: "%{hours} sati je prijavljeno za ovaj problem koji želite izbrisati. Šta želite da uradite?"
+  text_destroy_time_entries: Izbriši prijavljene sate
+  text_assign_time_entries_to_project: Dodeli prijavljene sate projektu
+  text_reassign_time_entries: 'Dodeli ponovo prijavljene sate ovom problemu:'
+  text_user_wrote: "%{value} je napisao:"
+  text_enumeration_destroy_question: "%{count} objekat(a) je dodeljeno ovoj vrednosti."
+  text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
+  text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
+  text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisniÄkog imena pronaÄ‘enog u evidenciji spremiÅ¡ta.\nKorisnici sa istim Redmine imenom i imenom spremiÅ¡ta ili e-adresom su automatski mapirani."
+  text_diff_truncated: '... Ova razlika je iseÄena jer je dostignuta maksimalna veliÄina prikaza.'
+  text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
+  text_wiki_page_destroy_question: "Ova stranica ima %{descendants} podređenih stranica i podstranica. Šta želite da uradite?"
+  text_wiki_page_nullify_children: "Zadrži podređene stranice kao korene stranice"
+  text_wiki_page_destroy_children: "Izbriši podređene stranice i sve njihove podstranice"
+  text_wiki_page_reassign_children: "Dodeli ponovo podreÄ‘ene stranice ovoj matiÄnoj stranici"
+  text_own_membership_delete_confirmation: "Nakon uklanjanja pojedinih ili svih vaših dozvola nećete više moći da uređujete ovaj projekat.\nŽelite li da nastavite?"
+  text_zoom_in: Uvećaj
+  text_zoom_out: Umanji
+  
+  default_role_manager: Menadžer
+  default_role_developer: Programer
+  default_role_reporter: IzveÅ¡taÄ
+  default_tracker_bug: Greška
+  default_tracker_feature: Funkcionalnost
+  default_tracker_support: Podrška
+  default_issue_status_new: Novo
+  default_issue_status_in_progress: U toku
+  default_issue_status_resolved: Rešeno
+  default_issue_status_feedback: Povratna informacija
+  default_issue_status_closed: Zatvoreno
+  default_issue_status_rejected: Odbijeno
+  default_doc_category_user: KorisniÄka dokumentacija
+  default_doc_category_tech: TehniÄka dokumentacija
+  default_priority_low: Nizak
+  default_priority_normal: Normalan
+  default_priority_high: Visok
+  default_priority_urgent: Hitno
+  default_priority_immediate: Neposredno
+  default_activity_design: Dizajn
+  default_activity_development: Razvoj
+  
+  enumeration_issue_priorities: Prioriteti problema
+  enumeration_doc_categories: Kategorije dokumenta
+  enumeration_activities: Aktivnosti (praćenje vremena)
+  enumeration_system_activity: Sistemska aktivnost
+  
+  field_time_entries: Vreme evidencije
+  project_module_gantt: Gantov dijagram
+  project_module_calendar: Kalendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/sr.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/sr.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -34,37 +34,37 @@
       half_a_minute: "пола минута"
       less_than_x_seconds:
         one:   "мање од једне Ñекунде"
-        other: "мање од {{count}} Ñек."
+        other: "мање од %{count} Ñек."
       x_seconds:
         one:   "једна Ñекунда"
-        other: "{{count}} Ñек."
+        other: "%{count} Ñек."
       less_than_x_minutes:
         one:   "мање од минута"
-        other: "мање од {{count}} мин."
+        other: "мање од %{count} мин."
       x_minutes:
         one:   "један минут"
-        other: "{{count}} мин."
+        other: "%{count} мин."
       about_x_hours:
         one:   "приближно један Ñат"
-        other: "приближно {{count}} Ñати"
+        other: "приближно %{count} Ñати"
       x_days:
         one:   "један дан"
-        other: "{{count}} дана"
+        other: "%{count} дана"
       about_x_months:
         one:   "приближно један меÑец"
-        other: "приближно {{count}} меÑеци"
+        other: "приближно %{count} меÑеци"
       x_months:
         one:   "један меÑец"
-        other: "{{count}} меÑеци"
+        other: "%{count} меÑеци"
       about_x_years:
         one:   "приближно годину дана"
-        other: "приближно {{count}} год."
+        other: "приближно %{count} год."
       over_x_years:
         one:   "преко годину дана"
-        other: "преко {{count}} год."
+        other: "преко %{count} год."
       almost_x_years:
         one:   "Ñкоро годину дана"
-        other: "Ñкоро {{count}} год."
+        other: "Ñкоро %{count} год."
 
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "није укључен у ÑпиÑак"
         exclusion: "је резервиÑан"
@@ -103,17 +107,17 @@
         accepted: "мора бити прихваћен"
         empty: "не може бити празно"
         blank: "не може бити празно"
-        too_long: "је предугачка (макÑимум знакова је {{count}})"
-        too_short: "је прекратка (минимум знакова је {{count}})"
-        wrong_length: "је погрешне дужине (број знакова мора бити {{count}})"
+        too_long: "је предугачка (макÑимум знакова је %{count})"
+        too_short: "је прекратка (минимум знакова је %{count})"
+        wrong_length: "је погрешне дужине (број знакова мора бити %{count})"
         taken: "је већ у употреби"
         not_a_number: "није број"
         not_a_date: "није иÑправан датум"
-        greater_than: "мора бити већи од {{count}}"
-        greater_than_or_equal_to: "мора бити већи или једнак {{count}}"
-        equal_to: "мора бити једнак {{count}}"
-        less_than: "мора бити мањи од {{count}}"
-        less_than_or_equal_to: "мора бити мањи или једнак {{count}}"
+        greater_than: "мора бити већи од %{count}"
+        greater_than_or_equal_to: "мора бити већи или једнак %{count}"
+        equal_to: "мора бити једнак %{count}"
+        less_than: "мора бити мањи од %{count}"
+        less_than_or_equal_to: "мора бити мањи или једнак %{count}"
         odd: "мора бити паран"
         even: "мора бити непаран"
         greater_than_start_date: "мора бити већи од почетног датума"
@@ -150,12 +154,12 @@
   notice_file_not_found: Страна којој желите приÑтупити не поÑтоји или је уклоњена.
   notice_locking_conflict: Податак је ажуриран од Ñтране другог кориÑника.
   notice_not_authorized: ÐиÑте овлашћени за приÑтуп овој Ñтрани.
-  notice_email_sent: "E-порука је поÑлата на {{value}}"
-  notice_email_error: "Догодила Ñе грешка приликом Ñлања е-поруке ({{value}})"
+  notice_email_sent: "E-порука је поÑлата на %{value}"
+  notice_email_error: "Догодила Ñе грешка приликом Ñлања е-поруке (%{value})"
   notice_feeds_access_key_reseted: Ваш RSS приÑтупни кључ је поништен.
   notice_api_access_key_reseted: Ваш API приÑтупни кључ је поништен.
-  notice_failed_to_save_issues: "ÐеуÑпешно Ñнимање {{count}} проблема од {{total}} одабраних: {{ids}}."
-  notice_failed_to_save_members: "ÐеуÑпешно Ñнимање члана(ова): {{errors}}."
+  notice_failed_to_save_issues: "ÐеуÑпешно Ñнимање %{count} проблема од %{total} одабраних: %{ids}."
+  notice_failed_to_save_members: "ÐеуÑпешно Ñнимање члана(ова): %{errors}."
   notice_no_issue_selected: "Ðи један проблем није одабран! Молимо, одаберите проблем који желите да мењате."
   notice_account_pending: "Ваш налог је креиран и чека на одобрење админиÑтратора."
   notice_default_data_loaded: Подразумевано конфигуриÑање је уÑпешно учитано.
@@ -163,9 +167,9 @@
   notice_unable_delete_time_entry: Ставку евиденције времена је немогуће избриÑати.
   notice_issue_done_ratios_updated: ÐžÐ´Ð½Ð¾Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ… проблема је ажуриран.
   
-  error_can_t_load_default_data: "Подразумевано конфигуриÑање је немогуће учитати: {{value}}"
+  error_can_t_load_default_data: "Подразумевано конфигуриÑање је немогуће учитати: %{value}"
   error_scm_not_found: "Ставка или иÑправка ниÑу пронађене у Ñпремишту."
-  error_scm_command_failed: "Грешка Ñе јавила приликом покушаја приÑтупа Ñпремишту: {{value}}"
+  error_scm_command_failed: "Грешка Ñе јавила приликом покушаја приÑтупа Ñпремишту: %{value}"
   error_scm_annotate: "Ставка не поÑтоји или не може бити означена."
   error_issue_not_found_in_project: 'Проблем није пронађен или не припада овом пројекту.'
   error_no_tracker_in_project: 'Ðи једно праћење није повезано Ñа овим пројектом. Молимо проверите подешавања пројекта.'
@@ -179,26 +183,26 @@
   error_workflow_copy_source: 'Молимо одаберите изворно праћење или улогу'
   error_workflow_copy_target: 'Молимо одаберите одредишно праћење и улогу'
   error_unable_delete_issue_status: 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° је немогуће обриÑати'
-  error_unable_to_connect: "Повезивање Ñа ({{value}}) је немогуће"  
-  warning_attachments_not_saved: "{{count}} датотека не може бити Ñнимљена."
+  error_unable_to_connect: "Повезивање Ñа (%{value}) је немогуће"  
+  warning_attachments_not_saved: "%{count} датотека не може бити Ñнимљена."
   
-  mail_subject_lost_password: "Ваша {{value}} лозинка"
+  mail_subject_lost_password: "Ваша %{value} лозинка"
   mail_body_lost_password: 'За промену ваше лозинке, кликните на Ñледећи линк:'
-  mail_subject_register: "Ðктивација вашег {{value}} налога"
+  mail_subject_register: "Ðктивација вашег %{value} налога"
   mail_body_register: 'За активацију вашег налога, кликните на Ñледећи линк:'
-  mail_body_account_information_external: "Ваш налог {{value}} можете кориÑтити за пријаву."
+  mail_body_account_information_external: "Ваш налог %{value} можете кориÑтити за пријаву."
   mail_body_account_information: Информације о вашем налогу
-  mail_subject_account_activation_request: "Захтев за активацију налога {{value}}"
-  mail_body_account_activation_request: "Ðови кориÑник ({{value}}) је региÑтрован. Ðалог чека на ваше одобрење:"
-  mail_subject_reminder: "{{count}} проблема доÑпева наредних {{days}} дана"
-  mail_body_reminder: "{{count}} проблема додељених вама доÑпева у наредних {{days}} дана:"
-  mail_subject_wiki_content_added: "Wiki Ñтраница '{{id}}' је додата"
-  mail_body_wiki_content_added: "{{author}} је додао wiki Ñтраницу '{{id}}'."
-  mail_subject_wiki_content_updated: "Wiki Ñтраница '{{id}}' је ажурирана"
-  mail_body_wiki_content_updated: "{{author}} је ажурирао wiki Ñтраницу '{{id}}'."
+  mail_subject_account_activation_request: "Захтев за активацију налога %{value}"
+  mail_body_account_activation_request: "Ðови кориÑник (%{value}) је региÑтрован. Ðалог чека на ваше одобрење:"
+  mail_subject_reminder: "%{count} проблема доÑпева наредних %{days} дана"
+  mail_body_reminder: "%{count} проблема додељених вама доÑпева у наредних %{days} дана:"
+  mail_subject_wiki_content_added: "Wiki Ñтраница '%{id}' је додата"
+  mail_body_wiki_content_added: "%{author} је додао wiki Ñтраницу '%{id}'."
+  mail_subject_wiki_content_updated: "Wiki Ñтраница '%{id}' је ажурирана"
+  mail_body_wiki_content_updated: "%{author} је ажурирао wiki Ñтраницу '%{id}'."
   
   gui_validation_error: једна грешка
-  gui_validation_error_plural: "{{count}} грешака"
+  gui_validation_error_plural: "%{count} грешака"
   
   field_name: Ðазив
   field_description: ОпиÑ
@@ -261,6 +265,7 @@
   field_attr_lastname: Ðтрибут презимена
   field_attr_mail: Ðтрибут е-адреÑе
   field_onthefly: Креирање кориÑника у току рада
+  field_start_date: Почетак
   field_done_ratio: % урађено
   field_auth_source: Режим потврде идентитета
   field_hide_mail: Сакриј моју е-адреÑу
@@ -421,14 +426,14 @@
   label_x_projects:
     zero:  нема пројеката
     one:   један пројекат
-    other: "{{count}} пројеката"
+    other: "%{count} пројеката"
   label_project_all: Сви пројекти
   label_project_latest: ПоÑледњи пројекти
   label_issue: Проблем
   label_issue_new: Ðови проблем
   label_issue_plural: Проблеми
   label_issue_view_all: Приказ Ñвих проблема
-  label_issues_by: "Проблеми ({{value}})"
+  label_issues_by: "Проблеми (%{value})"
   label_issue_added: Проблем је додат
   label_issue_updated: Проблем је ажуриран
   label_document: Документ
@@ -478,7 +483,7 @@
   label_registered_on: РегиÑтрован
   label_activity: ÐктивноÑÑ‚
   label_overall_activity: Целокупна активноÑÑ‚
-  label_user_activity: "ÐктивноÑÑ‚ кориÑника {{value}}"
+  label_user_activity: "ÐктивноÑÑ‚ кориÑника %{value}"
   label_new: Ðово
   label_logged_as: Пријављени Ñте као
   label_environment: Окружење
@@ -488,7 +493,7 @@
   label_auth_source_plural: Режими потврде идентитета
   label_subproject_plural: Потпројекти
   label_subproject_new: Ðови потпројекат
-  label_and_its_subprojects: "{{value}} и његови потпројекти"
+  label_and_its_subprojects: "%{value} и његови потпројекти"
   label_min_max_length: Мин. - МакÑ. дужина
   label_list: СпиÑак
   label_date: Датум
@@ -499,8 +504,8 @@
   label_text: Дуги текÑÑ‚
   label_attribute: ОÑобина
   label_attribute_plural: ОÑобине
-  label_download: "{{count}} преузимање"
-  label_download_plural: "{{count}} преузимања"
+  label_download: "%{count} преузимање"
+  label_download_plural: "%{count} преузимања"
   label_no_data: Ðема података за приказивање
   label_change_status: Промена ÑтатуÑа
   label_history: ИÑторија
@@ -532,17 +537,17 @@
   label_closed_issues: затворен
   label_closed_issues_plural: затворених
   label_x_open_issues_abbr_on_total:
-    zero:  0 отворених / {{total}}
-    one:   1 отворен / {{total}}
-    other: "{{count}} отворених / {{total}}"
+    zero:  0 отворених / %{total}
+    one:   1 отворен / %{total}
+    other: "%{count} отворених / %{total}"
   label_x_open_issues_abbr:
     zero:  0 отворених
     one:   1 отворен
-    other: "{{count}} отворених"
+    other: "%{count} отворених"
   label_x_closed_issues_abbr:
     zero:  0 затворених
     one:   1 затворен
-    other: "{{count}} затворених"
+    other: "%{count} затворених"
   label_total: Укупно
   label_permissions: Дозволе
   label_current_status: Тренутни ÑтатуÑ
@@ -560,7 +565,7 @@
   label_months_from: меÑеци од
   label_gantt: Гантов дијаграм
   label_internal: Унутрашњи
-  label_last_changes: "поÑледњих {{count}} промена"
+  label_last_changes: "поÑледњих %{count} промена"
   label_change_view_all: Прикажи Ñве промене
   label_personalize_page: ПерÑонализуј ову Ñтрану
   label_comment: Коментар
@@ -568,7 +573,7 @@
   label_x_comments:
     zero: без коментара
     one: један коментар
-    other: "{{count}} коментара"
+    other: "%{count} коментара"
   label_comment_add: Додај коментар
   label_comment_added: Коментар додат
   label_comment_delete: Обриши коментаре
@@ -589,7 +594,7 @@
   label_yesterday: јуче
   label_this_week: ове Ñедмице
   label_last_week: поÑледње Ñедмице
-  label_last_n_days: "поÑледњих {{count}} дана"
+  label_last_n_days: "поÑледњих %{count} дана"
   label_this_month: овог меÑеца
   label_last_month: поÑледњег меÑеца
   label_this_year: ове године
@@ -603,13 +608,13 @@
   label_repository: Спремиште
   label_repository_plural: Спремишта
   label_browse: Прегледање
-  label_modification: "{{count}} промена"
-  label_modification_plural: "{{count}} промена"
+  label_modification: "%{count} промена"
+  label_modification_plural: "%{count} промена"
   label_branch: Грана
   label_tag: Ознака
   label_revision: Ревизија
   label_revision_plural: Ревизије
-  label_revision_id: "Ревизија {{value}}"
+  label_revision_id: "Ревизија %{value}"
   label_associated_revisions: Придружене ревизије
   label_added: додато
   label_modified: промењено
@@ -626,8 +631,8 @@
   label_sort_lower: Премештање на доле
   label_sort_lowest: Премештање на дно
   label_roadmap: План рада
-  label_roadmap_due_in: "ДоÑпева {{value}}"
-  label_roadmap_overdue: "{{value}} најкаÑније"
+  label_roadmap_due_in: "ДоÑпева %{value}"
+  label_roadmap_overdue: "%{value} најкаÑније"
   label_roadmap_no_issues: Ðема проблема за ову верзију
   label_search: Претрага
   label_result_plural: Резултати
@@ -646,8 +651,8 @@
   label_issue_tracking: Праћење проблема
   label_spent_time: Утрошено време
   label_overall_spent_time: Целокупно утрошено време
-  label_f_hour: "{{value}} Ñат"
-  label_f_hour_plural: "{{value}} Ñати"
+  label_f_hour: "%{value} Ñат"
+  label_f_hour_plural: "%{value} Ñати"
   label_time_tracking: Праћење времена
   label_change_plural: Промене
   label_statistics: СтатиÑтика
@@ -698,15 +703,15 @@
   label_date_from: Шаље
   label_date_to: Прима
   label_language_based: Базирано на језику кориÑника
-  label_sort_by: "Сортирано по {{value}}"
+  label_sort_by: "Сортирано по %{value}"
   label_send_test_email: Слање пробне е-поруке
   label_feeds_access_key: RSS приÑтупни кључ
   label_missing_feeds_access_key: RSS приÑтупни кључ недоÑтаје
-  label_feeds_access_key_created_on: "RSS приÑтупни кључ је направљен пре {{value}}"
+  label_feeds_access_key_created_on: "RSS приÑтупни кључ је направљен пре %{value}"
   label_module_plural: Модули
-  label_added_time_by: "Додао {{author}} пре {{age}}"
-  label_updated_time_by: "Ðжурирао {{author}} пре {{age}}"
-  label_updated_time: "Ðжурирано пре {{value}}"
+  label_added_time_by: "Додао %{author} пре %{age}"
+  label_updated_time_by: "Ðжурирао %{author} пре %{age}"
+  label_updated_time: "Ðжурирано пре %{value}"
   label_jump_to_a_project: Скок на пројекат...
   label_file_plural: Датотеке
   label_changeset_plural: Скупови промена
@@ -722,7 +727,7 @@
   label_registration_activation_by_email: активација налога путем е-поруке
   label_registration_manual_activation: ручна активација налога
   label_registration_automatic_activation: аутоматÑка активација налога
-  label_display_per_page: "Број Ñтавки по Ñтраници: {{value}}"
+  label_display_per_page: "Број Ñтавки по Ñтраници: %{value}"
   label_age: СтароÑÑ‚
   label_change_properties: Промени ÑвојÑтва
   label_general: Општи
@@ -745,7 +750,7 @@
   label_sort: Сортирање
   label_ascending: РаÑтући низ
   label_descending: Опадајући низ
-  label_date_from_to: Од {{start}} до {{end}}
+  label_date_from_to: Од %{start} до %{end}
   label_wiki_content_added: Wiki Ñтраница је додата
   label_wiki_content_updated: Wiki Ñтраница је ажурирана
   label_group: Група
@@ -764,7 +769,7 @@
   label_display_used_statuses_only: Приказуј ÑтатуÑе коришћене Ñамо од Ñтране овог праћења
   label_api_access_key: API приÑтупни кључ
   label_missing_api_access_key: ÐедоÑтаје API приÑтупни кључ
-  label_api_access_key_created_on: "API приÑтупни кључ је креиран пре {{value}}"
+  label_api_access_key_created_on: "API приÑтупни кључ је креиран пре %{value}"
   label_profile: Профил
   label_subtask_plural: Подзадатак
   label_project_copy_notifications: Пошаљи е-поруку Ñа обавештењем приликом копирања пројекта 
@@ -827,53 +832,53 @@
   text_regexp_info: нпр. ^[A-Z0-9]+$
   text_min_max_length_info: 0 значи без ограничења
   text_project_destroy_confirmation: ЈеÑте ли Ñигурни да желите да избришете овај пројекат и Ñве припадајуће податке?
-  text_subprojects_destroy_warning: "Потпројекти: {{value}} ће такође бити избриÑан."
+  text_subprojects_destroy_warning: "Потпројекти: %{value} ће такође бити избриÑан."
   text_workflow_edit: Одаберите улогу и праћење за измену тока поÑла
   text_are_you_sure: ЈеÑте ли Ñигурни?
-  text_journal_changed: "{{label}} промењен од {{old}} у {{new}}"
-  text_journal_set_to: "{{label}} поÑтављен у {{value}}"
-  text_journal_deleted: "{{label}} избриÑано ({{old}})"
-  text_journal_added: "{{label}} {{value}} додато"
+  text_journal_changed: "%{label} промењен од %{old} у %{new}"
+  text_journal_set_to: "%{label} поÑтављен у %{value}"
+  text_journal_deleted: "%{label} избриÑано (%{old})"
+  text_journal_added: "%{label} %{value} додато"
   text_tip_issue_begin_day: задатак почиње овог дана
   text_tip_issue_end_day: задатак Ñе завршава овог дана
   text_tip_issue_begin_end_day: задатак почиње и завршава овог дана
   text_project_identifier_info: 'Дозвољена Ñу Ñамо мала Ñлова (a-ш), бројеви и цртице.<br />Једном Ñнимљен идентификатор више Ñе не може променити.'
-  text_caracters_maximum: "Ðајвише {{count}} знак(ова)."
-  text_caracters_minimum: "Број знакова мора бити најмање {{count}}."
-  text_length_between: "Број знакова мора бити између {{min}} и {{max}}."
+  text_caracters_maximum: "Ðајвише %{count} знак(ова)."
+  text_caracters_minimum: "Број знакова мора бити најмање %{count}."
+  text_length_between: "Број знакова мора бити између %{min} и %{max}."
   text_tracker_no_workflow: Ово праћење нема дефиниÑан ток поÑла
   text_unallowed_characters: Ðедозвољени знакови
   text_comma_separated: Дозвољене Ñу вишеÑтруке вредноÑти (одвојене зарезом).
   text_line_separated: Дозвољене Ñу вишеÑтруке вредноÑти (један ред за Ñваку вредноÑÑ‚).
   text_issues_ref_in_commit_messages: Референцирање и поправљање проблема у извршним порукама
-  text_issue_added: "{{author}} је пријавио проблем {{id}}."
-  text_issue_updated: "{{author}} је ажурирао проблем {{id}}."
+  text_issue_added: "%{author} је пријавио проблем %{id}."
+  text_issue_updated: "%{author} је ажурирао проблем %{id}."
   text_wiki_destroy_confirmation: ЈеÑте ли Ñигурни да желите да обришете wiki и Ñав Ñадржај?
-  text_issue_category_destroy_question: "Ðеколико проблема ({{count}}) је додељено овој категорији. Шта желите да урадите?"
+  text_issue_category_destroy_question: "Ðеколико проблема (%{count}) је додељено овој категорији. Шта желите да урадите?"
   text_issue_category_destroy_assignments: Уклони додељене категорије
   text_issue_category_reassign_to: Додели поново проблеме овој категорији
   text_user_mail_option: "За неизабране пројекте, добићете Ñамо обавештење о Ñтварима које пратите или Ñте укључени (нпр. проблеми чији Ñте ви аутор или заÑтупник)."
   text_no_configuration_data: "Улоге, праћења, ÑтатуÑи проблема и тока поÑла још увек ниÑу подешени.\nПрепоручљиво је да учитате подразумевано конфигуриÑање. Измена је могућа након првог учитавања."
   text_load_default_configuration: Учитај подразумевано конфигуриÑање
-  text_status_changed_by_changeset: "Примењено у Ñкупу Ñа променама {{value}}."
+  text_status_changed_by_changeset: "Примењено у Ñкупу Ñа променама %{value}."
   text_issues_destroy_confirmation: 'ЈеÑте ли Ñигурни да желите да избришете одабране проблеме?'
   text_select_project_modules: 'Одаберите модуле које желите омогућити за овај пројекат:'
   text_default_administrator_account_changed: Подразумевани админиÑтраторÑки налог је промењен
   text_file_repository_writable: ФаÑцикла приложених датотека је упиÑива
   text_plugin_assets_writable: ФаÑцикла елемената додатних компоненти је упиÑива
   text_rmagick_available: RMagick је доÑтупан (опционо)
-  text_destroy_time_entries_question: "{{hours}} Ñати је пријављено за овај проблем који желите избриÑати. Шта желите да урадите?"
+  text_destroy_time_entries_question: "%{hours} Ñати је пријављено за овај проблем који желите избриÑати. Шта желите да урадите?"
   text_destroy_time_entries: Избриши пријављене Ñате
   text_assign_time_entries_to_project: Додели пријављене Ñате пројекту
   text_reassign_time_entries: 'Додели поново пријављене Ñате овом проблему:'
-  text_user_wrote: "{{value}} је напиÑао:"
-  text_enumeration_destroy_question: "{{count}} објекат(а) је додељено овој вредноÑти."
+  text_user_wrote: "%{value} је напиÑао:"
+  text_enumeration_destroy_question: "%{count} објекат(а) је додељено овој вредноÑти."
   text_enumeration_category_reassign_to: 'Додели их поново овој вредноÑти:'
   text_email_delivery_not_configured: "ИÑпорука е-порука није конфигуриÑана и обавештења Ñу онемогућена.\nПодеÑите ваш SMTP Ñервер у config/email.yml и покрените поново апликацију за њихово омогућавање."
   text_repository_usernames_mapping: "Одаберите или ажурирајте Redmine кориÑнике мапирањем Ñваког кориÑничког имена пронађеног у евиденцији Ñпремишта.\nКориÑници Ñа иÑтим Redmine именом и именом Ñпремишта или е-адреÑом Ñу аутоматÑки мапирани."
   text_diff_truncated: '... Ова разлика је иÑечена јер је доÑтигнута макÑимална величина приказа.'
   text_custom_field_possible_values_info: 'Један ред за Ñваку вредноÑÑ‚'
-  text_wiki_page_destroy_question: "Ова Ñтраница има {{descendants}} подређених Ñтраница и подÑтраница. Шта желите да урадите?"
+  text_wiki_page_destroy_question: "Ова Ñтраница има %{descendants} подређених Ñтраница и подÑтраница. Шта желите да урадите?"
   text_wiki_page_nullify_children: "Задржи подређене Ñтранице као корене Ñтранице"
   text_wiki_page_destroy_children: "Избриши подређене Ñтранице и Ñве њихове подÑтранице"
   text_wiki_page_reassign_children: "Додели поново подређене Ñтранице овој матичној Ñтраници"
@@ -912,7 +917,7 @@
   project_module_gantt: Гантов дијаграм
   project_module_calendar: Календар
 
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -923,8 +928,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/sv.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/sv.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -54,7 +54,7 @@
           byte:
             one: "Byte"
             other: "Bytes"
-          kb: "KB"
+          kb: "kB"
           mb: "MB"
           gb: "GB"
           tb: "TB"
@@ -65,44 +65,44 @@
       half_a_minute: "en halv minut"
       less_than_x_seconds:
         one:   "mindre än en sekund"
-        other: "mindre än {{count}} sekunder"
+        other: "mindre än %{count} sekunder"
       x_seconds:
         one:   "en sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one:   "mindre än en minut"
-        other: "mindre än {{count}} minuter"
+        other: "mindre än %{count} minuter"
       x_minutes:
         one:   "en minut"
-        other: "{{count}} minuter"
+        other: "%{count} minuter"
       about_x_hours:
         one:   "ungefär en timme"
-        other: "ungefär {{count}} timmar"
+        other: "ungefär %{count} timmar"
       x_days:
         one:   "en dag"
-        other: "{{count}} dagar"
+        other: "%{count} dagar"
       about_x_months:
         one:   "ungefär en månad"
-        other: "ungefär {{count}} månader"
+        other: "ungefär %{count} månader"
       x_months:
         one:   "en månad"
-        other: "{{count}} månader"
+        other: "%{count} månader"
       about_x_years:
         one:   "ungefär ett år"
-        other: "ungefär {{count}} år"
+        other: "ungefär %{count} år"
       over_x_years:
         one:   "mer än ett år"
-        other: "mer än {{count}} år"
+        other: "mer än %{count} år"
       almost_x_years:
         one:   "nästan 1 år"
-        other: "nästan {{count}} år"
+        other: "nästan %{count} år"
         
   activerecord:
     errors:
       template:
         header:
-          one:    "Ett fel förhindrade denna {{model}} från att sparas"
-          other:  "{{count}} fel förhindrade denna {{model}} från att sparas"
+          one:    "Ett fel förhindrade denna %{model} från att sparas"
+          other:  "%{count} fel förhindrade denna %{model} från att sparas"
         # The variable :count is also available
         body: "Det var problem med följande fält:"
       # The values :model, :attribute and :value are always available for interpolation
@@ -115,16 +115,16 @@
         accepted : "måste vara accepterad"
         empty: "får ej vara tom"
         blank: "måste anges"
-        too_long: "är för lång (maximum är {{count}} tecken)"
-        too_short: "är för kort (minimum är {{count}} tecken)"
-        wrong_length: "har fel längd (ska vara {{count}} tecken)"
+        too_long: "är för lång (maximum är %{count} tecken)"
+        too_short: "är för kort (minimum är %{count} tecken)"
+        wrong_length: "har fel längd (ska vara %{count} tecken)"
         taken: "har redan tagits"
         not_a_number: "är inte ett nummer"
-        greater_than: "måste vara större än {{count}}"
-        greater_than_or_equal_to: "måste vara större än eller lika med {{count}}"
+        greater_than: "måste vara större än %{count}"
+        greater_than_or_equal_to: "måste vara större än eller lika med %{count}"
         equal_to: "måste vara samma som"
-        less_than: "måste vara mindre än {{count}}"
-        less_than_or_equal_to: "måste vara mindre än eller lika med {{count}}"
+        less_than: "måste vara mindre än %{count}"
+        less_than_or_equal_to: "måste vara mindre än eller lika med %{count}"
         odd: "måste vara udda"
         even: "måste vara jämnt"
         greater_than_start_date: "måste vara senare än startdatumet"
@@ -196,12 +196,12 @@
   notice_locking_conflict: Data har uppdaterats av en annan användare.
   notice_not_authorized: Du saknar behörighet att komma åt den här sidan.
   notice_not_authorized_archived_project: Projektet du försöker komma åt har arkiverats.
-  notice_email_sent: "Ett mail skickades till {{value}}"
-  notice_email_error: "Ett fel inträffade när mail skickades ({{value}})"
+  notice_email_sent: "Ett mail skickades till %{value}"
+  notice_email_error: "Ett fel inträffade när mail skickades (%{value})"
   notice_feeds_access_key_reseted: Din RSS-nyckel återställdes.
   notice_api_access_key_reseted: Din API-nyckel återställdes.
-  notice_failed_to_save_issues: "Misslyckades med att spara {{count}} ärende(n) på {{total}} valt: {{ids}}."
-  notice_failed_to_save_members: "Misslyckades med att spara medlem(mar): {{errors}}."
+  notice_failed_to_save_issues: "Misslyckades med att spara %{count} ärende(n) på %{total} valt: %{ids}."
+  notice_failed_to_save_members: "Misslyckades med att spara medlem(mar): %{errors}."
   notice_no_issue_selected: "Inget ärende är markerat! Var vänlig, markera de ärenden du vill ändra."
   notice_account_pending: "Ditt konto skapades och avvaktar nu administratörens godkännande."
   notice_default_data_loaded: Standardkonfiguration inläst.
@@ -209,9 +209,9 @@
   notice_unable_delete_time_entry: Tidloggning kunde inte tas bort.
   notice_issue_done_ratios_updated: % klart uppdaterade.
   
-  error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: {{value}}"
+  error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
   error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
-  error_scm_command_failed: "Ett fel inträffade vid försök att nå versionsarkivet: {{value}}"
+  error_scm_command_failed: "Ett fel inträffade vid försök att nå versionsarkivet: %{value}"
   error_scm_annotate: "Inlägget existerar inte eller kan inte kommenteras."
   error_issue_not_found_in_project: 'Ärendet hittades inte eller så tillhör det inte detta projekt'
   error_no_tracker_in_project: 'Ingen ärendetyp är associerad med projektet. Vänligen kontrollera projektinställningarna.'
@@ -225,27 +225,27 @@
   error_workflow_copy_source: 'Vänligen välj källans ärendetyp eller roll'
   error_workflow_copy_target: 'Vänligen välj ärendetyp(er) och roll(er) för mål'
   error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
-  error_unable_to_connect: Kan inte ansluta ({{value}})
+  error_unable_to_connect: Kan inte ansluta (%{value})
   
-  warning_attachments_not_saved: "{{count}} fil(er) kunde inte sparas."
+  warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
   
-  mail_subject_lost_password: "Ditt {{value}} lösenord"
+  mail_subject_lost_password: "Ditt %{value} lösenord"
   mail_body_lost_password: 'För att ändra ditt lösenord, klicka på följande länk:'
-  mail_subject_register: "Din {{value}} kontoaktivering"
+  mail_subject_register: "Din %{value} kontoaktivering"
   mail_body_register: 'För att aktivera ditt konto, klicka på följande länk:'
-  mail_body_account_information_external: "Du kan använda ditt {{value}}-konto för att logga in."
+  mail_body_account_information_external: "Du kan använda ditt %{value}-konto för att logga in."
   mail_body_account_information: Din kontoinformation
-  mail_subject_account_activation_request: "{{value}} begäran om kontoaktivering"
-  mail_body_account_activation_request: "En ny användare ({{value}}) har registrerat sig och avvaktar ditt godkännande:"
-  mail_subject_reminder: "{{count}} ärende(n) har deadline under de kommande {{days}} dagarna"
-  mail_body_reminder: "{{count}} ärende(n) som är tilldelat dig har deadline under de {{days}} dagarna:"
-  mail_subject_wiki_content_added: "'{{id}}' wikisida has lagts till"
-  mail_body_wiki_content_added: The '{{id}}' wikisida has lagts till av {{author}}.
-  mail_subject_wiki_content_updated: "'{{id}}' wikisida har uppdaterats"
-  mail_body_wiki_content_updated: The '{{id}}' wikisida har uppdaterats av {{author}}.
+  mail_subject_account_activation_request: "%{value} begäran om kontoaktivering"
+  mail_body_account_activation_request: "En ny användare (%{value}) har registrerat sig och avvaktar ditt godkännande:"
+  mail_subject_reminder: "%{count} ärende(n) har deadline under de kommande %{days} dagarna"
+  mail_body_reminder: "%{count} ärende(n) som är tilldelat dig har deadline under de %{days} dagarna:"
+  mail_subject_wiki_content_added: "'%{id}' wikisida has lagts till"
+  mail_body_wiki_content_added: The '%{id}' wikisida has lagts till av %{author}.
+  mail_subject_wiki_content_updated: "'%{id}' wikisida har uppdaterats"
+  mail_body_wiki_content_updated: The '%{id}' wikisida har uppdaterats av %{author}.
   
   gui_validation_error: 1 fel
-  gui_validation_error_plural: "{{count}} fel"
+  gui_validation_error_plural: "%{count} fel"
   
   field_name: Namn
   field_description: Beskrivning
@@ -308,6 +308,7 @@
   field_attr_lastname: Efternamnsattribut
   field_attr_mail: Mailattribut
   field_onthefly: Skapa användare on-the-fly
+  field_start_date: Startdatum
   field_done_ratio: % Klart
   field_auth_source: Autentiseringsläge
   field_hide_mail: Dölj min mailadress
@@ -342,6 +343,7 @@
   field_member_of_group: Tilldelad användares grupp
   field_assigned_to_role: Tilldelad användares roll
   field_text: Textfält
+  field_visible: Synlig
   
   setting_app_title: Applikationsrubrik
   setting_app_subtitle: Applikationsunderrubrik
@@ -351,14 +353,14 @@
   setting_self_registration: Självregistrering
   setting_attachment_max_size: Maxstorlek på bilaga
   setting_issues_export_limit: Exportgräns för ärenden
-  setting_mail_from: Avsändare
+  setting_mail_from: Avsändaradress
   setting_bcc_recipients: Hemlig kopia (bcc) till mottagare
   setting_plain_text_mail: Oformaterad text i mail (ingen HTML)
   setting_host_name: Värddatornamn
   setting_text_formatting: Textformatering
   setting_wiki_compression: Komprimering av wikihistorik
   setting_feeds_limit: Innehållsgräns för Feed
-  setting_default_projects_public: Nya projekt är publika som standard
+  setting_default_projects_public: Nya projekt är publika
   setting_autofetch_changesets: Automatisk hämtning av commits
   setting_sys_api_enabled: Aktivera WS för versionsarkivhantering
   setting_commit_ref_keywords: Referens-nyckelord
@@ -370,12 +372,13 @@
   setting_issue_list_default_columns: Standardkolumner i ärendelistan
   setting_repositories_encodings: Teckenuppsättningar för versionsarkiv
   setting_commit_logs_encoding: Teckenuppsättning för commit-meddelanden
+  setting_emails_header: Mail-header
   setting_emails_footer: Signatur
   setting_protocol: Protokoll
   setting_per_page_options: Alternativ, objekt per sida
   setting_user_format: Visningsformat för användare
   setting_activity_days_default: Dagar som visas på projektaktivitet
-  setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt som standard
+  setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt
   setting_enabled_scm: Aktivera SCM
   setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
   setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
@@ -389,7 +392,7 @@
   setting_openid: Tillåt inloggning och registrering med OpenID
   setting_password_min_length: Minsta tillåtna lösenordslängd
   setting_new_project_user_role_id: Tilldelad roll för en icke-administratör som skapar ett projekt
-  setting_default_projects_modules: Standardaktiverade moduler för nya projekt
+  setting_default_projects_modules: Aktiverade moduler för nya projekt
   setting_issue_done_ratio: Beräkna % klart med
   setting_issue_done_ratio_issue_field: Använd ärendefältet
   setting_issue_done_ratio_issue_status: Använd ärendestatus
@@ -475,14 +478,14 @@
   label_x_projects:
     zero:  inga projekt
     one:   1 projekt
-    other: "{{count}} projekt"
+    other: "%{count} projekt"
   label_project_all: Alla projekt
   label_project_latest: Senaste projekt
   label_issue: Ärende
   label_issue_new: Nytt ärende
   label_issue_plural: Ärenden
   label_issue_view_all: Visa alla ärenden
-  label_issues_by: "Ärenden {{value}}"
+  label_issues_by: "Ärenden %{value}"
   label_issue_added: Ärende tillagt
   label_issue_updated: Ärende uppdaterat
   label_document: Dokument
@@ -532,7 +535,7 @@
   label_registered_on: Registrerad
   label_activity: Aktivitet
   label_overall_activity: All aktivitet
-  label_user_activity: "Aktiviteter för {{value}}"
+  label_user_activity: "Aktiviteter för %{value}"
   label_new: Ny
   label_logged_as: Inloggad som
   label_environment: Miljö
@@ -542,7 +545,7 @@
   label_auth_source_plural: Autentiseringslägen
   label_subproject_plural: Underprojekt
   label_subproject_new: Nytt underprojekt
-  label_and_its_subprojects: "{{value}} och dess underprojekt"
+  label_and_its_subprojects: "%{value} och dess underprojekt"
   label_min_max_length: Min./Max.-längd
   label_list: Lista
   label_date: Datum
@@ -553,8 +556,8 @@
   label_text: LÃ¥ng text
   label_attribute: Attribut
   label_attribute_plural: Attribut
-  label_download: "{{count}} Nerladdning"
-  label_download_plural: "{{count}} Nerladdningar"
+  label_download: "%{count} Nerladdning"
+  label_download_plural: "%{count} Nerladdningar"
   label_no_data: Ingen data att visa
   label_change_status: Ändra status
   label_history: Historia
@@ -586,17 +589,17 @@
   label_closed_issues: stängd
   label_closed_issues_plural: stängda
   label_x_open_issues_abbr_on_total:
-    zero:  0 öppna av {{total}}
-    one:   1 öppen av {{total}}
-    other: "{{count}} öppna av {{total}}"
+    zero:  0 öppna av %{total}
+    one:   1 öppen av %{total}
+    other: "%{count} öppna av %{total}"
   label_x_open_issues_abbr:
     zero:  0 öppna
     one:   1 öppen
-    other: "{{count}} öppna"
+    other: "%{count} öppna"
   label_x_closed_issues_abbr:
     zero:  0 stängda
     one:   1 stängd
-    other: "{{count}} stängda"
+    other: "%{count} stängda"
   label_total: Total
   label_permissions: Behörigheter
   label_current_status: Nuvarande status
@@ -614,7 +617,7 @@
   label_months_from: månader från
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "senaste {{count}} ändringar"
+  label_last_changes: "senaste %{count} ändringar"
   label_change_view_all: Visa alla ändringar
   label_personalize_page: Anpassa denna sida
   label_comment: Kommentar
@@ -622,7 +625,7 @@
   label_x_comments:
     zero: inga kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Lägg till kommentar
   label_comment_added: Kommentar tillagd
   label_comment_delete: Ta bort kommentar
@@ -643,7 +646,7 @@
   label_yesterday: igår
   label_this_week: denna vecka
   label_last_week: senaste veckan
-  label_last_n_days: "senaste {{count}} dagarna"
+  label_last_n_days: "senaste %{count} dagarna"
   label_this_month: denna månad
   label_last_month: senaste månaden
   label_this_year: detta året
@@ -657,13 +660,13 @@
   label_repository: Versionsarkiv
   label_repository_plural: Versionsarkiv
   label_browse: Bläddra
-  label_modification: "{{count}} ändring"
-  label_modification_plural: "{{count}} ändringar"
+  label_modification: "%{count} ändring"
+  label_modification_plural: "%{count} ändringar"
   label_branch: Branch
   label_tag: Tag
   label_revision: Revision
   label_revision_plural: Revisioner
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_associated_revisions: Associerade revisioner
   label_added: tillagd
   label_modified: modifierad
@@ -680,8 +683,8 @@
   label_sort_lower: Flytta ner
   label_sort_lowest: Flytta till botten
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Färdig om {{value}}"
-  label_roadmap_overdue: "{{value}} sen"
+  label_roadmap_due_in: "Färdig om %{value}"
+  label_roadmap_overdue: "%{value} sen"
   label_roadmap_no_issues: Inga ärenden för denna version
   label_search: Sök
   label_result_plural: Resultat
@@ -700,8 +703,8 @@
   label_issue_tracking: Ärendeuppföljning
   label_spent_time: Spenderad tid
   label_overall_spent_time: Total tid spenderad
-  label_f_hour: "{{value}} timme"
-  label_f_hour_plural: "{{value}} timmar"
+  label_f_hour: "%{value} timme"
+  label_f_hour_plural: "%{value} timmar"
   label_time_tracking: Tidsuppföljning
   label_change_plural: Ändringar
   label_statistics: Statistik
@@ -752,15 +755,15 @@
   label_date_from: Från
   label_date_to: Till
   label_language_based: Språkbaserad
-  label_sort_by: "Sortera på {{value}}"
+  label_sort_by: "Sortera på %{value}"
   label_send_test_email: Skicka testmail
   label_feeds_access_key: RSS-nyckel
   label_missing_feeds_access_key: Saknar en RSS-nyckel
-  label_feeds_access_key_created_on: "RSS-nyckel skapad för {{value}} sedan"
+  label_feeds_access_key_created_on: "RSS-nyckel skapad för %{value} sedan"
   label_module_plural: Moduler
-  label_added_time_by: "Tillagd av {{author}} för {{age}} sedan"
-  label_updated_time_by: "Uppdaterad av {{author}} för {{age}} sedan"
-  label_updated_time: "Uppdaterad för {{value}} sedan"
+  label_added_time_by: "Tillagd av %{author} för %{age} sedan"
+  label_updated_time_by: "Uppdaterad av %{author} för %{age} sedan"
+  label_updated_time: "Uppdaterad för %{value} sedan"
   label_jump_to_a_project: GÃ¥ till projekt...
   label_file_plural: Filer
   label_changeset_plural: Changesets
@@ -780,7 +783,7 @@
   label_registration_activation_by_email: kontoaktivering med mail
   label_registration_manual_activation: manuell kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Per sida: {{value}}"
+  label_display_per_page: "Per sida: %{value}"
   label_age: Ã…lder
   label_change_properties: Ändra inställningar
   label_general: Allmänt
@@ -803,7 +806,7 @@
   label_sort: Sortera
   label_descending: Fallande
   label_ascending: Stigande
-  label_date_from_to: Från {{start}} till {{end}}
+  label_date_from_to: Från %{start} till %{end}
   label_wiki_content_added: Wikisida tillagd
   label_wiki_content_updated: Wikisida uppdaterad
   label_group: Grupp
@@ -822,10 +825,12 @@
   label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
   label_api_access_key: API-nyckel
   label_missing_api_access_key: Saknar en API-nyckel
-  label_api_access_key_created_on: API-nyckel skapad för {{value}} sedan
+  label_api_access_key_created_on: API-nyckel skapad för %{value} sedan
   label_profile: Profil
   label_subtask_plural: Underaktiviteter
   label_project_copy_notifications: Skicka mailnotifieringar när projektet kopieras
+  label_principal_search: "Sök efter användare eller grupp:"
+  label_user_search: "Sök efter användare:"
   
   button_login: Logga in
   button_submit: Skicka
@@ -837,7 +842,7 @@
   button_create_and_continue: Skapa och fortsätt
   button_test: Testa
   button_edit: Ändra
-  button_edit_associated_wikipage: "Ändra associerad Wikisida: {{page_title}}"
+  button_edit_associated_wikipage: "Ändra associerad Wikisida: %{page_title}"
   button_add: Lägg till
   button_change: Ändra
   button_apply: Verkställ
@@ -886,54 +891,54 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 betyder ingen gräns
   text_project_destroy_confirmation: Är du säker på att du vill ta bort detta projekt och all relaterad data?
-  text_subprojects_destroy_warning: "Alla underprojekt: {{value}} kommer också tas bort."
+  text_subprojects_destroy_warning: "Alla underprojekt: %{value} kommer också tas bort."
   text_workflow_edit: Välj en roll och en ärendetyp för att ändra arbetsflöde
   text_are_you_sure: Är du säker ?
   text_are_you_sure_with_children: Ta bort ärende och alla underärenden?
-  text_journal_changed: "{{label}} ändrad från {{old}} till {{new}}"
-  text_journal_set_to: "{{label}} satt till {{value}}"
-  text_journal_deleted: "{{label}} borttagen ({{old}})"
-  text_journal_added: "{{label}} {{value}} tillagd"
-  text_tip_issue_begin_day: arbetsuppgift som börjar denna dag
-  text_tip_issue_end_day: arbetsuppgift som slutar denna dag
-  text_tip_issue_begin_end_day: arbetsuppgift börjar och slutar denna dag
+  text_journal_changed: "%{label} ändrad från %{old} till %{new}"
+  text_journal_set_to: "%{label} satt till %{value}"
+  text_journal_deleted: "%{label} borttagen (%{old})"
+  text_journal_added: "%{label} %{value} tillagd"
+  text_tip_issue_begin_day: ärende som börjar denna dag
+  text_tip_issue_end_day: ärende som slutar denna dag
+  text_tip_issue_begin_end_day: ärende som börjar och slutar denna dag
   text_project_identifier_info: 'Små bokstäver (a-z), siffror och streck tillåtna.<br />När den är sparad kan identifieraren inte ändras.'
-  text_caracters_maximum: "max {{count}} tecken."
-  text_caracters_minimum: "Måste vara minst {{count}} tecken lång."
-  text_length_between: "Längd mellan {{min}} och {{max}} tecken."
+  text_caracters_maximum: "max %{count} tecken."
+  text_caracters_minimum: "Måste vara minst %{count} tecken lång."
+  text_length_between: "Längd mellan %{min} och %{max} tecken."
   text_tracker_no_workflow: Inget arbetsflöde definerat för denna ärendetyp
   text_unallowed_characters: Otillåtna tecken
   text_comma_separated: Flera värden tillåtna (kommaseparerade).
   text_line_separated: Flera värden tillåtna (ett värde per rad).
   text_issues_ref_in_commit_messages: Referera och fixa ärenden i commit-meddelanden
-  text_issue_added: "Ärende {{id}} har rapporterats (av {{author}})."
-  text_issue_updated: "Ärende {{id}} har uppdaterats (av {{author}})."
+  text_issue_added: "Ärende %{id} har rapporterats (av %{author})."
+  text_issue_updated: "Ärende %{id} har uppdaterats (av %{author})."
   text_wiki_destroy_confirmation: Är du säker på att du vill ta bort denna wiki och allt dess innehåll ?
-  text_issue_category_destroy_question: "Några ärenden ({{count}}) är tilldelade till denna kategori. Vad vill du göra ?"
+  text_issue_category_destroy_question: "Några ärenden (%{count}) är tilldelade till denna kategori. Vad vill du göra ?"
   text_issue_category_destroy_assignments: Ta bort kategoritilldelningar
   text_issue_category_reassign_to: Återtilldela ärenden till denna kategori
   text_user_mail_option: "För omarkerade projekt kommer du bara bli underrättad om saker du bevakar eller är inblandad i (T.ex. ärenden du skapat eller tilldelats)."
   text_no_configuration_data: "Roller, ärendetyper, ärendestatus och arbetsflöden har inte konfigurerats ännu.\nDet rekommenderas att läsa in standardkonfigurationen. Du kommer att kunna göra ändringar efter att den blivit inläst."
   text_load_default_configuration: Läs in standardkonfiguration
-  text_status_changed_by_changeset: "Tilldelad i changeset {{value}}."
+  text_status_changed_by_changeset: "Tilldelad i changeset %{value}."
   text_issues_destroy_confirmation: 'Är du säker på att du vill radera markerade ärende(n) ?'
   text_select_project_modules: 'Välj vilka moduler som ska vara aktiva för projektet:'
   text_default_administrator_account_changed: Standardadministratörens konto ändrat
   text_file_repository_writable: Arkivet för bifogade filer är skrivbart
   text_plugin_assets_writable: Arkivet för plug-ins är skrivbart
   text_rmagick_available: RMagick tillgängligt (ej obligatoriskt)
-  text_destroy_time_entries_question: "{{hours}} timmar har rapporterats på ärendena du är på väg att ta bort. Vad vill du göra ?"
+  text_destroy_time_entries_question: "%{hours} timmar har rapporterats på ärendena du är på väg att ta bort. Vad vill du göra ?"
   text_destroy_time_entries: Ta bort rapporterade timmar
   text_assign_time_entries_to_project: Tilldela rapporterade timmar till projektet
   text_reassign_time_entries: 'Återtilldela rapporterade timmar till detta ärende:'
-  text_user_wrote: "{{value}} skrev:"
-  text_enumeration_destroy_question: "{{count}} objekt är tilldelade till detta värde."
+  text_user_wrote: "%{value} skrev:"
+  text_enumeration_destroy_question: "%{count} objekt är tilldelade till detta värde."
   text_enumeration_category_reassign_to: 'Återtilldela till detta värde:'
   text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/email.yml och starta om applikationen för att aktivera dem."
-  text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller emailadress i både Redmine och versionsarkivet mappas automatiskt."
+  text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller mailadress i både Redmine och versionsarkivet mappas automatiskt."
   text_diff_truncated: '... Denna diff har förminskats eftersom den överskrider den maximala storlek som kan visas.'
   text_custom_field_possible_values_info: 'Ett värde per rad'
-  text_wiki_page_destroy_question: Denna sida har {{descendants}} underliggande sidor. Vad vill du göra?
+  text_wiki_page_destroy_question: Denna sida har %{descendants} underliggande sidor. Vad vill du göra?
   text_wiki_page_nullify_children: Behåll undersidor som rotsidor
   text_wiki_page_destroy_children: Ta bort alla underliggande sidor
   text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
@@ -967,8 +972,8 @@
   enumeration_doc_categories: Dokumentkategorier
   enumeration_activities: Aktiviteter (tidsuppföljning)
   enumeration_system_activity: Systemaktivitet
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/th.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/th.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "ไม่อยู่ในรายà¸à¸²à¸£"
         exclusion: "ถูà¸à¸ªà¸‡à¸§à¸™à¹„ว้"
@@ -106,11 +110,11 @@
         taken: "ถูà¸à¹ƒà¸Šà¹‰à¹„ปà¹à¸¥à¹‰à¸§"
         not_a_number: "ไม่ใช่ตัวเลข"
         not_a_date: "ไม่ใช่วันที่ ที่ถูà¸à¸•้อง"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "ต้องมาà¸à¸à¸§à¹ˆà¸²à¸§à¸±à¸™à¹€à¸£à¸´à¹ˆà¸¡"
@@ -147,31 +151,31 @@
   notice_file_not_found: หน้าที่คุณต้องà¸à¸²à¸£à¸”ูไม่มีอยู่จริง หรือถูà¸à¸¥à¸šà¹„ปà¹à¸¥à¹‰à¸§.
   notice_locking_conflict: ข้อมูลถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดยผู้ใช้คนอื่น.
   notice_not_authorized: คุณไม่มีสิทธิเข้าถึงหน้านี้.
-  notice_email_sent: "อีเมล์ได้ถูà¸à¸ªà¹ˆà¸‡à¸–ึง {{value}}"
-  notice_email_error: "เà¸à¸´à¸”ความผิดพลาดขณะà¸à¸³à¸ªà¹ˆà¸‡à¸­à¸µà¹€à¸¡à¸¥à¹Œ ({{value}})"
+  notice_email_sent: "อีเมล์ได้ถูà¸à¸ªà¹ˆà¸‡à¸–ึง %{value}"
+  notice_email_error: "เà¸à¸´à¸”ความผิดพลาดขณะà¸à¸³à¸ªà¹ˆà¸‡à¸­à¸µà¹€à¸¡à¸¥à¹Œ (%{value})"
   notice_feeds_access_key_reseted: RSS access key ของคุณถูภreset à¹à¸¥à¹‰à¸§.
-  notice_failed_to_save_issues: "{{count}} ปัà¸à¸«à¸²à¸ˆà¸²à¸ {{total}} ปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸à¹„ม่สามารถจัดเà¸à¹‡à¸š: {{ids}}."
+  notice_failed_to_save_issues: "%{count} ปัà¸à¸«à¸²à¸ˆà¸²à¸ %{total} ปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸à¹„ม่สามารถจัดเà¸à¹‡à¸š: %{ids}."
   notice_no_issue_selected: "ไม่มีปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸! à¸à¸£à¸¸à¸“าเลือà¸à¸›à¸±à¸à¸«à¸²à¸—ี่คุณต้องà¸à¸²à¸£à¹à¸à¹‰à¹„ข."
   notice_account_pending: "บัà¸à¸Šà¸µà¸‚องคุณสร้างเสร็จà¹à¸¥à¹‰à¸§ ขณะนี้รอà¸à¸²à¸£à¸­à¸™à¸¸à¸¡à¸±à¸•ิจาà¸à¸œà¸¹à¹‰à¸šà¸£à¸´à¸«à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£."
   notice_default_data_loaded: ค่าเริ่มต้นโหลดเสร็จà¹à¸¥à¹‰à¸§.
   
-  error_can_t_load_default_data: "ค่าเริ่มต้นโหลดไม่สำเร็จ: {{value}}"
+  error_can_t_load_default_data: "ค่าเริ่มต้นโหลดไม่สำเร็จ: %{value}"
   error_scm_not_found: "ไม่พบรุ่นที่ต้องà¸à¸²à¸£à¹ƒà¸™à¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ."
-  error_scm_command_failed: "เà¸à¸´à¸”ความผิดพลาดในà¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ: {{value}}"
+  error_scm_command_failed: "เà¸à¸´à¸”ความผิดพลาดในà¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ: %{value}"
   error_scm_annotate: "entry ไม่มีอยู่จริง หรือไม่สามารถเขียนหมายเหตุประà¸à¸­à¸š."
   error_issue_not_found_in_project: 'ไม่พบปัà¸à¸«à¸²à¸™à¸µà¹‰ หรือปัà¸à¸«à¸²à¹„ม่ได้อยู่ในโครงà¸à¸²à¸£à¸™à¸µà¹‰'
   
-  mail_subject_lost_password: "รหัสผ่าน {{value}} ของคุณ"
+  mail_subject_lost_password: "รหัสผ่าน %{value} ของคุณ"
   mail_body_lost_password: 'คลิ๊à¸à¸—ี่ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่าน:'
-  mail_subject_register: "เปิดบัà¸à¸Šà¸µ {{value}} ของคุณ"
+  mail_subject_register: "เปิดบัà¸à¸Šà¸µ %{value} ของคุณ"
   mail_body_register: 'คลิ๊à¸à¸—ี่ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่าน:'
-  mail_body_account_information_external: "คุณสามารถใช้บัà¸à¸Šà¸µ {{value}} เพื่อเข้าสู่ระบบ."
+  mail_body_account_information_external: "คุณสามารถใช้บัà¸à¸Šà¸µ %{value} เพื่อเข้าสู่ระบบ."
   mail_body_account_information: ข้อมูลบัà¸à¸Šà¸µà¸‚องคุณ
-  mail_subject_account_activation_request: "à¸à¸£à¸¸à¸“าเปิดบัà¸à¸Šà¸µ {{value}}"
-  mail_body_account_activation_request: "ผู้ใช้ใหม่ ({{value}}) ได้ลงทะเบียน. บัà¸à¸Šà¸µà¸‚องเขาà¸à¸³à¸¥à¸±à¸‡à¸£à¸­à¸­à¸™à¸¸à¸¡à¸±à¸•ิ:"
+  mail_subject_account_activation_request: "à¸à¸£à¸¸à¸“าเปิดบัà¸à¸Šà¸µ %{value}"
+  mail_body_account_activation_request: "ผู้ใช้ใหม่ (%{value}) ได้ลงทะเบียน. บัà¸à¸Šà¸µà¸‚องเขาà¸à¸³à¸¥à¸±à¸‡à¸£à¸­à¸­à¸™à¸¸à¸¡à¸±à¸•ิ:"
   
   gui_validation_error: 1 ข้อผิดพลาด
-  gui_validation_error_plural: "{{count}} ข้อผิดพลาด"
+  gui_validation_error_plural: "%{count} ข้อผิดพลาด"
   
   field_name: ชื่อ
   field_description: รายละเอียด
@@ -233,6 +237,7 @@
   field_attr_lastname: นามสà¸à¸¸à¸¥ attribute
   field_attr_mail: อีเมล์ attribute
   field_onthefly: สร้างผู้ใช้ทันที
+  field_start_date: เริ่ม
   field_done_ratio: % สำเร็จ
   field_auth_source: วิธีà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸•ัวตน
   field_hide_mail: ซ่อนอีเมล์ของฉัน
@@ -306,14 +311,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: โครงà¸à¸²à¸£à¸—ั้งหมด
   label_project_latest: โครงà¸à¸²à¸£à¸¥à¹ˆà¸²à¸ªà¸¸à¸”
   label_issue: ปัà¸à¸«à¸²
   label_issue_new: ปัà¸à¸«à¸²à¹ƒà¸«à¸¡à¹ˆ
   label_issue_plural: ปัà¸à¸«à¸²
   label_issue_view_all: ดูปัà¸à¸«à¸²à¸—ั้งหมด
-  label_issues_by: "ปัà¸à¸«à¸²à¹‚ดย {{value}}"
+  label_issues_by: "ปัà¸à¸«à¸²à¹‚ดย %{value}"
   label_issue_added: ปัà¸à¸«à¸²à¸–ูà¸à¹€à¸žà¸´à¹ˆà¸¡
   label_issue_updated: ปัà¸à¸«à¸²à¸–ูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡
   label_document: เอà¸à¸ªà¸²à¸£
@@ -381,8 +386,8 @@
   label_text: ข้อความขนาดยาว
   label_attribute: คุณลัà¸à¸©à¸“ะ
   label_attribute_plural: คุณลัà¸à¸©à¸“ะ
-  label_download: "{{count}} ดาวน์โหลด"
-  label_download_plural: "{{count}} ดาวน์โหลด"
+  label_download: "%{count} ดาวน์โหลด"
+  label_download_plural: "%{count} ดาวน์โหลด"
   label_no_data: จำนวนข้อมูลที่à¹à¸ªà¸”ง
   label_change_status: เปลี่ยนสถานะ
   label_history: ประวัติ
@@ -413,17 +418,17 @@
   label_closed_issues: ปิด
   label_closed_issues_plural: ปิด
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: จำนวนรวม
   label_permissions: สิทธิ
   label_current_status: สถานะปัจจุบัน
@@ -441,7 +446,7 @@
   label_months_from: เดือนจาà¸
   label_gantt: Gantt
   label_internal: ภายใน
-  label_last_changes: "last {{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_last_changes: "last %{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
   label_change_view_all: ดูà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ั้งหมด
   label_personalize_page: ปรับà¹à¸•่งหน้านี้
   label_comment: ความเห็น
@@ -449,7 +454,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: เพิ่มความเห็น
   label_comment_added: ความเห็นถูà¸à¹€à¸žà¸´à¹ˆà¸¡
   label_comment_delete: ลบความเห็น
@@ -468,7 +473,7 @@
   label_yesterday: เมื่อวาน
   label_this_week: อาทิตย์นี้
   label_last_week: อาทิตย์ที่à¹à¸¥à¹‰à¸§
-  label_last_n_days: "{{count}} วันย้อนหลัง"
+  label_last_n_days: "%{count} วันย้อนหลัง"
   label_this_month: เดือนนี้
   label_last_month: เดือนที่à¹à¸¥à¹‰à¸§
   label_this_year: ปีนี้
@@ -482,8 +487,8 @@
   label_repository: ที่เà¸à¹‡à¸šà¸•้นฉบับ
   label_repository_plural: ที่เà¸à¹‡à¸šà¸•้นฉบับ
   label_browse: เปิดหา
-  label_modification: "{{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
-  label_modification_plural: "{{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_modification: "%{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_modification_plural: "%{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
   label_revision: à¸à¸²à¸£à¹à¸à¹‰à¹„ข
   label_revision_plural: à¸à¸²à¸£à¹à¸à¹‰à¹„ข
   label_associated_revisions: à¸à¸²à¸£à¹à¸à¹‰à¹„ขที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง
@@ -499,8 +504,8 @@
   label_sort_lower: ย้ายลง
   label_sort_lowest: ย้ายไปล่างสุด
   label_roadmap: à¹à¸œà¸™à¸‡à¸²à¸™
-  label_roadmap_due_in: "ถึงà¸à¸³à¸«à¸™à¸”ใน {{value}}"
-  label_roadmap_overdue: "{{value}} ช้าà¸à¸§à¹ˆà¸²à¸à¸³à¸«à¸™à¸”"
+  label_roadmap_due_in: "ถึงà¸à¸³à¸«à¸™à¸”ใน %{value}"
+  label_roadmap_overdue: "%{value} ช้าà¸à¸§à¹ˆà¸²à¸à¸³à¸«à¸™à¸”"
   label_roadmap_no_issues: ไม่มีปัà¸à¸«à¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¸™à¸µà¹‰
   label_search: ค้นหา
   label_result_plural: ผลà¸à¸²à¸£à¸„้นหา
@@ -518,8 +523,8 @@
   label_changes_details: รายละเอียดà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ั้งหมด
   label_issue_tracking: ติดตามปัà¸à¸«à¸²
   label_spent_time: เวลาที่ใช้
-  label_f_hour: "{{value}} ชั่วโมง"
-  label_f_hour_plural: "{{value}} ชั่วโมง"
+  label_f_hour: "%{value} ชั่วโมง"
+  label_f_hour_plural: "%{value} ชั่วโมง"
   label_time_tracking: ติดตามà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹€à¸§à¸¥à¸²
   label_change_plural: เปลี่ยนà¹à¸›à¸¥à¸‡
   label_statistics: สถิติ
@@ -567,12 +572,12 @@
   label_date_from: จาà¸
   label_date_to: ถึง
   label_language_based: ขึ้นอยู่à¸à¸±à¸šà¸ à¸²à¸©à¸²à¸‚องผู้ใช้
-  label_sort_by: "เรียงโดย {{value}}"
+  label_sort_by: "เรียงโดย %{value}"
   label_send_test_email: ส่งจดหมายทดสอบ
-  label_feeds_access_key_created_on: "RSS access key สร้างเมื่อ {{value}} ที่ผ่านมา"
+  label_feeds_access_key_created_on: "RSS access key สร้างเมื่อ %{value} ที่ผ่านมา"
   label_module_plural: ส่วนประà¸à¸­à¸š
-  label_added_time_by: "เพิ่มโดย {{author}} {{age}} ที่ผ่านมา"
-  label_updated_time: "ปรับปรุง {{value}} ที่ผ่านมา"
+  label_added_time_by: "เพิ่มโดย %{author} %{age} ที่ผ่านมา"
+  label_updated_time: "ปรับปรุง %{value} ที่ผ่านมา"
   label_jump_to_a_project: ไปที่โครงà¸à¸²à¸£...
   label_file_plural: à¹à¸Ÿà¹‰à¸¡
   label_changeset_plural: à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡
@@ -588,7 +593,7 @@
   label_registration_activation_by_email: เปิดบัà¸à¸Šà¸µà¸œà¹ˆà¸²à¸™à¸­à¸µà¹€à¸¡à¸¥à¹Œ
   label_registration_manual_activation: อนุมัติโดยผู้บริหารจัดà¸à¸²à¸£
   label_registration_automatic_activation: เปิดบัà¸à¸Šà¸µà¸­à¸±à¸•โนมัติ
-  label_display_per_page: "ต่อหน้า: {{value}}"
+  label_display_per_page: "ต่อหน้า: %{value}"
   label_age: อายุ
   label_change_properties: เปลี่ยนคุณสมบัติ
   label_general: ทั่วๆ ไป
@@ -650,36 +655,36 @@
   text_regexp_info: ตัวอย่าง ^[A-Z0-9]+$
   text_min_max_length_info: 0 หมายถึงไม่จำà¸à¸±à¸”
   text_project_destroy_confirmation: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หมว่าต้องà¸à¸²à¸£à¸¥à¸šà¹‚ครงà¸à¸²à¸£à¹à¸¥à¸°à¸‚้อมูลที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้่อง ?
-  text_subprojects_destroy_warning: "โครงà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢: {{value}} จะถูà¸à¸¥à¸šà¸”้วย."
+  text_subprojects_destroy_warning: "โครงà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢: %{value} จะถูà¸à¸¥à¸šà¸”้วย."
   text_workflow_edit: เลือà¸à¸šà¸—บาทà¹à¸¥à¸°à¸à¸²à¸£à¸•ิดตาม เพื่อà¹à¸à¹‰à¹„ขลำดับงาน
   text_are_you_sure: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หม ?
   text_tip_issue_begin_day: งานที่เริ่มวันนี้
   text_tip_issue_end_day: งานที่จบวันนี้
   text_tip_issue_begin_end_day: งานที่เริ่มà¹à¸¥à¸°à¸ˆà¸šà¸§à¸±à¸™à¸™à¸µà¹‰
   text_project_identifier_info: 'ภาษาอังà¸à¸¤à¸©à¸•ัวเล็à¸(a-z), ตัวเลข(0-9) à¹à¸¥à¸°à¸‚ีด (-) เท่านั้น.<br />เมื่อจัดเà¸à¹‡à¸šà¹à¸¥à¹‰à¸§, ชื่อเฉพาะไม่สามารถเปลี่ยนà¹à¸›à¸¥à¸‡à¹„ด้'
-  text_caracters_maximum: "สูงสุด {{count}} ตัวอัà¸à¸©à¸£."
-  text_caracters_minimum: "ต้องยาวอย่างน้อย {{count}} ตัวอัà¸à¸©à¸£."
-  text_length_between: "ความยาวระหว่าง {{min}} ถึง {{max}} ตัวอัà¸à¸©à¸£."
+  text_caracters_maximum: "สูงสุด %{count} ตัวอัà¸à¸©à¸£."
+  text_caracters_minimum: "ต้องยาวอย่างน้อย %{count} ตัวอัà¸à¸©à¸£."
+  text_length_between: "ความยาวระหว่าง %{min} ถึง %{max} ตัวอัà¸à¸©à¸£."
   text_tracker_no_workflow: ไม่ได้บัà¸à¸à¸±à¸•ิลำดับงานสำหรับà¸à¸²à¸£à¸•ิดตามนี้
   text_unallowed_characters: ตัวอัà¸à¸©à¸£à¸•้องห้าม
   text_comma_separated: ใส่ได้หลายค่า โดยคั่นด้วยลูà¸à¸™à¹‰à¸³( ,).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "ปัà¸à¸«à¸² {{id}} ถูà¸à¹à¸ˆà¹‰à¸‡à¹‚ดย {{author}}."
-  text_issue_updated: "ปัà¸à¸«à¸² {{id}} ถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดย {{author}}."
+  text_issue_added: "ปัà¸à¸«à¸² %{id} ถูà¸à¹à¸ˆà¹‰à¸‡à¹‚ดย %{author}."
+  text_issue_updated: "ปัà¸à¸«à¸² %{id} ถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดย %{author}."
   text_wiki_destroy_confirmation: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸¥à¸š wiki นี้พร้อมทั้งเนี้อหา?
-  text_issue_category_destroy_question: "บางปัà¸à¸«à¸² ({{count}}) อยู่ในประเภทนี้. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร ?"
+  text_issue_category_destroy_question: "บางปัà¸à¸«à¸² (%{count}) อยู่ในประเภทนี้. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร ?"
   text_issue_category_destroy_assignments: ลบประเภทนี้
   text_issue_category_reassign_to: ระบุปัà¸à¸«à¸²à¹ƒà¸™à¸›à¸£à¸°à¹€à¸ à¸—นี้
   text_user_mail_option: "ในโครงà¸à¸²à¸£à¸—ี่ไม่ได้เลือà¸, คุณจะได้รับà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸ªà¸´à¹ˆà¸‡à¸—ี่คุณเà¸à¹‰à¸²à¸”ูหรือมีส่วนเà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง (เช่นปัà¸à¸«à¸²à¸—ี่คุณà¹à¸ˆà¹‰à¸‡à¹„ว้หรือได้รับมอบหมาย)."
   text_no_configuration_data: "บทบาท, à¸à¸²à¸£à¸•ิดตาม, สถานะปัà¸à¸«à¸² à¹à¸¥à¸°à¸¥à¸³à¸”ับงานยังไม่ได้ถูà¸à¸•ั้งค่า.\nขอà¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¹‚หลดค่าเริ่มต้น. คุณสามารถà¹à¸à¹‰à¹„ขค่าได้หลังจาà¸à¹‚หลดà¹à¸¥à¹‰à¸§."
   text_load_default_configuration: โหลดค่าเริ่มต้น
-  text_status_changed_by_changeset: "ประยุà¸à¸•์ใช้ในà¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡ {{value}}."
+  text_status_changed_by_changeset: "ประยุà¸à¸•์ใช้ในà¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡ %{value}."
   text_issues_destroy_confirmation: 'คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หมว่าต้องà¸à¸²à¸£à¸¥à¸šà¸›à¸±à¸à¸«à¸²(ทั้งหลาย)ที่เลือà¸à¹„ว้?'
   text_select_project_modules: 'เลือà¸à¸ªà¹ˆà¸§à¸™à¸›à¸£à¸°à¸à¸­à¸šà¸—ี่ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹‚ครงà¸à¸²à¸£à¸™à¸µà¹‰:'
   text_default_administrator_account_changed: ค่าเริ่มต้นของบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¸šà¸£à¸´à¸«à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£à¸–ูà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡
   text_file_repository_writable: ที่เà¸à¹‡à¸šà¸•้นฉบับสามารถเขียนได้
   text_rmagick_available: RMagick มีให้ใช้ (เป็นตัวเลือà¸)
-  text_destroy_time_entries_question: "{{hours}} ชั่วโมงที่ถูà¸à¹à¸ˆà¹‰à¸‡à¹ƒà¸™à¸›à¸±à¸à¸«à¸²à¸™à¸µà¹‰à¸ˆà¸°à¹‚ดนลบ. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร?"
+  text_destroy_time_entries_question: "%{hours} ชั่วโมงที่ถูà¸à¹à¸ˆà¹‰à¸‡à¹ƒà¸™à¸›à¸±à¸à¸«à¸²à¸™à¸µà¹‰à¸ˆà¸°à¹‚ดนลบ. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร?"
   text_destroy_time_entries: ลบเวลาที่รายงานไว้
   text_assign_time_entries_to_project: ระบุเวลาที่ใช้ในโครงà¸à¸²à¸£à¸™à¸µà¹‰
   text_reassign_time_entries: 'ระบุเวลาที่ใช้ในโครงà¸à¸²à¸£à¸™à¸µà¹ˆà¸­à¸µà¸à¸„รั้ง:'
@@ -709,14 +714,14 @@
   enumeration_issue_priorities: ความสำคัà¸à¸‚องปัà¸à¸«à¸²
   enumeration_doc_categories: ประเภทเอà¸à¸ªà¸²à¸£
   enumeration_activities: à¸à¸´à¸ˆà¸à¸£à¸£à¸¡ (ใช้ในà¸à¸²à¸£à¸•ิดตามเวลา)
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  text_user_wrote: "{{value}} wrote:"
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  text_user_wrote: "%{value} 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: "{{count}} objects are assigned to this value."
+  text_enumeration_destroy_question: "%{count} 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
@@ -782,12 +787,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -802,21 +807,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -824,14 +829,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -866,9 +871,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -895,12 +900,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -908,7 +913,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -919,8 +924,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/tr.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/tr.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -37,38 +37,38 @@
       less_than_x_seconds:
         zero: '1 saniyeden az'
         one: '1 saniyeden az'
-        other: '{{count}} saniyeden az'
+        other: '%{count} saniyeden az'
       x_seconds:
         one: '1 saniye'
-        other: '{{count}} saniye'
+        other: '%{count} saniye'
       less_than_x_minutes:
         zero: '1 dakikadan az'
         one: '1 dakikadan az'
-        other: '{{count}} dakikadan az'
+        other: '%{count} dakikadan az'
       x_minutes:
         one: '1 dakika'
-        other: '{{count}} dakika'
+        other: '%{count} dakika'
       about_x_hours:
         one: '1 saat civarında'
-        other: '{{count}} saat civarında'
+        other: '%{count} saat civarında'
       x_days:
         one: '1 gün'
-        other: '{{count}} gün'
+        other: '%{count} gün'
       about_x_months:
         one: '1 ay civarında'
-        other: '{{count}} ay civarında'
+        other: '%{count} ay civarında'
       x_months:
         one: '1 ay'
-        other: '{{count}} ay'
+        other: '%{count} ay'
       about_x_years:
         one: '1 yıl civarında'
-        other: '{{count}} yıl civarında'
+        other: '%{count} yıl civarında'
       over_x_years:
         one: '1 yıldan fazla'
-        other: '{{count}} yıldan fazla'
+        other: '%{count} yıldan fazla'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
       
   number:
     format:
@@ -116,8 +116,8 @@
     errors:
       template:
         header:
-          one:    "{{model}} giriÅŸi kaydedilemedi: 1 hata."
-          other:  "{{model}} giriÅŸi kadedilemedi: {{count}} hata."
+          one:    "%{model} giriÅŸi kaydedilemedi: 1 hata."
+          other:  "%{model} giriÅŸi kadedilemedi: %{count} hata."
         body: "Lütfen aşağıdaki hataları düzeltiniz:"
 
       messages:
@@ -128,16 +128,16 @@
         accepted: "kabul edilmeli"
         empty: "doldurulmalı"
         blank: "doldurulmalı"
-        too_long: "çok uzun (en fazla {{count}} karakter)"
-        too_short: "çok kısa (en az {{count}} karakter)"
-        wrong_length: "yanlış uzunlukta (tam olarak {{count}} karakter olmalı)"
+        too_long: "çok uzun (en fazla %{count} karakter)"
+        too_short: "çok kısa (en az %{count} karakter)"
+        wrong_length: "yanlış uzunlukta (tam olarak %{count} karakter olmalı)"
         taken: "hali hazırda kullanılmakta"
         not_a_number: "geçerli bir sayı değil"
-        greater_than: "{{count}} sayısından büyük olmalı"
-        greater_than_or_equal_to: "{{count}} sayısına eşit veya büyük olmalı"
-        equal_to: "tam olarak {{count}} olmalı"
-        less_than: "{{count}} sayısından küçük olmalı"
-        less_than_or_equal_to: "{{count}} sayısına eşit veya küçük olmalı"
+        greater_than: "%{count} sayısından büyük olmalı"
+        greater_than_or_equal_to: "%{count} sayısına eşit veya büyük olmalı"
+        equal_to: "tam olarak %{count} olmalı"
+        less_than: "%{count} sayısından küçük olmalı"
+        less_than_or_equal_to: "%{count} sayısına eşit veya küçük olmalı"
         odd: "tek olmalı"
         even: "çift olmalı"
         greater_than_start_date: "başlangıç tarihinden büyük olmalı"
@@ -174,31 +174,31 @@
   notice_file_not_found: Erişmek istediğiniz sayfa mevcut değil ya da kaldırılmış.
   notice_locking_conflict: Veri başka bir kullanıcı tarafından güncellendi.
   notice_not_authorized: Bu sayfaya eriÅŸme yetkiniz yok.
-  notice_email_sent: "E-posta gönderildi {{value}}"
-  notice_email_error: "E-posta gönderilirken bir hata oluştu ({{value}})"
+  notice_email_sent: "E-posta gönderildi %{value}"
+  notice_email_error: "E-posta gönderilirken bir hata oluştu (%{value})"
   notice_feeds_access_key_reseted: RSS erişim anahtarınız sıfırlandı.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
   notice_no_issue_selected: "Seçili ileti yok! Lütfen, düzenlemek istediğiniz iletileri işaretleyin."
   notice_account_pending: "Hesabınız oluşturuldu ve yönetici onayı bekliyor."
   notice_default_data_loaded: Varasayılan konfigürasyon başarılıyla yüklendi.
   
-  error_can_t_load_default_data: "Varsayılan konfigürasyon yüklenemedi: {{value}}"
+  error_can_t_load_default_data: "Varsayılan konfigürasyon yüklenemedi: %{value}"
   error_scm_not_found: "Depoda, giriÅŸ ya da revizyon yok."
-  error_scm_command_failed: "Depoya erişmeye çalışırken bir hata meydana geldi: {{value}}"
+  error_scm_command_failed: "Depoya erişmeye çalışırken bir hata meydana geldi: %{value}"
   error_scm_annotate: "GiriÅŸ mevcut deÄŸil veya izah edilemedi."
   error_issue_not_found_in_project: 'İleti bilgisi bulunamadı veya bu projeye ait değil'
   
-  mail_subject_lost_password: "Parolanız {{value}}"
+  mail_subject_lost_password: "Parolanız %{value}"
   mail_body_lost_password: 'Parolanızı değiştirmek için, aşağıdaki bağlantıya tıklayın:'
-  mail_subject_register: "Your {{value}} hesap aktivasyonu"
+  mail_subject_register: "Your %{value} hesap aktivasyonu"
   mail_body_register: 'Hesabınızı etkinleştirmek için, aşağıdaki bağlantıya tıklayın:'
-  mail_body_account_information_external: "Hesabınızı {{value}} giriş yapmak için kullanabilirsiniz."
+  mail_body_account_information_external: "Hesabınızı %{value} giriş yapmak için kullanabilirsiniz."
   mail_body_account_information: Hesap bilgileriniz
-  mail_subject_account_activation_request: "{{value}} hesabı etkinleştirme isteği"
-  mail_body_account_activation_request: "Yeni bir kullanıcı ({{value}}) kaydedildi. Hesap onaylanmayı bekliyor:"
+  mail_subject_account_activation_request: "%{value} hesabı etkinleştirme isteği"
+  mail_body_account_activation_request: "Yeni bir kullanıcı (%{value}) kaydedildi. Hesap onaylanmayı bekliyor:"
   
   gui_validation_error: 1 hata
-  gui_validation_error_plural: "{{count}} hata"
+  gui_validation_error_plural: "%{count} hata"
   
   field_name: İsim
   field_description: Açıklama
@@ -260,6 +260,7 @@
   field_attr_lastname: Soyad NiteliÄŸi
   field_attr_mail: E-Posta NiteliÄŸi
   field_onthefly: Anında kullanıcı oluşturma
+  field_start_date: Başlangıç
   field_done_ratio: % tamamlandı
   field_auth_source: Kimlik Denetim Modu
   field_hide_mail: E-posta adresimi gizle
@@ -333,14 +334,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Tüm Projeler
   label_project_latest: En son projeler
   label_issue: İleti
   label_issue_new: Yeni İleti
   label_issue_plural: İletiler
   label_issue_view_all: Tüm iletileri izle
-  label_issues_by: "{{value}} tarafından gönderilmiş iletiler"
+  label_issues_by: "%{value} tarafından gönderilmiş iletiler"
   label_issue_added: İleti eklendi
   label_issue_updated: İleti güncellendi
   label_document: Belge
@@ -406,8 +407,8 @@
   label_text: Uzun Metin
   label_attribute: Nitelik
   label_attribute_plural: Nitelikler
-  label_download: "{{count}} indirilen"
-  label_download_plural: "{{count}} indirilen"
+  label_download: "%{count} indirilen"
+  label_download_plural: "%{count} indirilen"
   label_no_data: Gösterilecek veri yok
   label_change_status: DeÄŸiÅŸim Durumu
   label_history: Geçmiş
@@ -438,17 +439,17 @@
   label_closed_issues: kapalı
   label_closed_issues_plural: kapalı
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Toplam
   label_permissions: İzinler
   label_current_status: Mevcut Durum
@@ -466,7 +467,7 @@
   label_months_from: aylardan itibaren
   label_gantt: Gantt
   label_internal: Dahili
-  label_last_changes: "Son {{count}} deÄŸiÅŸiklik"
+  label_last_changes: "Son %{count} deÄŸiÅŸiklik"
   label_change_view_all: Tüm Değişiklikleri gör
   label_personalize_page: Bu sayfayı kişiselleştir
   label_comment: Açıklama
@@ -474,7 +475,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Açıklama Ekle
   label_comment_added: Açıklama Eklendi
   label_comment_delete: Açıklamaları sil
@@ -493,7 +494,7 @@
   label_yesterday: Dün
   label_this_week: Bu hafta
   label_last_week: Geçen hafta
-  label_last_n_days: "Son {{count}} gün"
+  label_last_n_days: "Son %{count} gün"
   label_this_month: Bu ay
   label_last_month: Geçen ay
   label_this_year: Bu yıl
@@ -507,8 +508,8 @@
   label_repository: Depo
   label_repository_plural: Depolar
   label_browse: Tara
-  label_modification: "{{count}} deÄŸiÅŸim"
-  label_modification_plural: "{{count}} deÄŸiÅŸim"
+  label_modification: "%{count} deÄŸiÅŸim"
+  label_modification_plural: "%{count} deÄŸiÅŸim"
   label_revision: Revizyon
   label_revision_plural: Revizyonlar
   label_associated_revisions: BirleÅŸtirilmiÅŸ revizyonlar
@@ -524,8 +525,8 @@
   label_sort_lower: Aşağı taşı
   label_sort_lowest: Dibe taşı
   label_roadmap: Yol Haritası
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} geç"
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} geç"
   label_roadmap_no_issues: Bu versiyon için ileti yok
   label_search: Ara
   label_result_plural: Sonuçlar
@@ -543,8 +544,8 @@
   label_changes_details: Bütün değişikliklerin detayları
   label_issue_tracking: İleti Takibi
   label_spent_time: Harcanan zaman
-  label_f_hour: "{{value}} saat"
-  label_f_hour_plural: "{{value}} saat"
+  label_f_hour: "%{value} saat"
+  label_f_hour_plural: "%{value} saat"
   label_time_tracking: Zaman Takibi
   label_change_plural: DeÄŸiÅŸiklikler
   label_statistics: İstatistikler
@@ -592,12 +593,12 @@
   label_date_from: Başlangıç
   label_date_to: BitiÅŸ
   label_language_based: Kullanıcı diline istinaden
-  label_sort_by: "{{value}} göre sırala"
+  label_sort_by: "%{value} göre sırala"
   label_send_test_email: Test e-postası gönder
-  label_feeds_access_key_created_on: "RSS erişim anahtarı {{value}} önce oluşturuldu"
+  label_feeds_access_key_created_on: "RSS erişim anahtarı %{value} önce oluşturuldu"
   label_module_plural: Modüller
-  label_added_time_by: "{{author}} tarafından {{age}} önce eklendi"
-  label_updated_time: "{{value}} önce güncellendi"
+  label_added_time_by: "%{author} tarafından %{age} önce eklendi"
+  label_updated_time: "%{value} önce güncellendi"
   label_jump_to_a_project: Projeye git...
   label_file_plural: Dosyalar
   label_changeset_plural: DeÄŸiÅŸiklik Listeleri
@@ -613,7 +614,7 @@
   label_registration_activation_by_email: e-posta ile hesap etkinleÅŸtirme
   label_registration_manual_activation: Elle hesap etkinleÅŸtirme
   label_registration_automatic_activation: Otomatik hesap etkinleÅŸtirme
-  label_display_per_page: "Sayfa başına: {{value}}"
+  label_display_per_page: "Sayfa başına: %{value}"
   label_age: YaÅŸ
   label_change_properties: Özellikleri değiştir
   label_general: Genel
@@ -675,36 +676,36 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 sınırlama yok demektir
   text_project_destroy_confirmation: Bu projeyi ve bağlantılı verileri silmek istediğinizden emin misiniz?
-  text_subprojects_destroy_warning: "Ayrıca {{value}} alt proje silinecek."
+  text_subprojects_destroy_warning: "Ayrıca %{value} alt proje silinecek."
   text_workflow_edit: İşakışını düzenlemek için bir rol ve takipçi seçin
   text_are_you_sure: Emin misiniz ?
   text_tip_issue_begin_day: Bugün başlayan görevler
   text_tip_issue_end_day: Bugün sona eren görevler
   text_tip_issue_begin_end_day: Bugün başlayan ve sona eren görevler
   text_project_identifier_info: 'Küçük harfler (a-z), sayılar ve noktalar kabul edilir.<br />Bir kere kaydedildiğinde,tanımlayıcı değiştirilemez.'
-  text_caracters_maximum: "En çok {{count}} karakter."
-  text_caracters_minimum: "En az {{count}} karakter uzunluğunda olmalı."
-  text_length_between: "{{min}} ve {{max}} karakterleri arasındaki uzunluk."
+  text_caracters_maximum: "En çok %{count} karakter."
+  text_caracters_minimum: "En az %{count} karakter uzunluğunda olmalı."
+  text_length_between: "%{min} ve %{max} karakterleri arasındaki uzunluk."
   text_tracker_no_workflow: Bu takipçi için işakışı tanımlanmamış
   text_unallowed_characters: Yasaklı karakterler
   text_comma_separated: Çoklu değer uygundur(Virgül ile ayrılmış).
   text_issues_ref_in_commit_messages: Teslim mesajlarındaki iletileri çözme ve başvuruda bulunma
-  text_issue_added: "İleti {{id}}, {{author}} tarafından rapor edildi."
-  text_issue_updated: "İleti {{id}}, {{author}} tarafından güncellendi."
+  text_issue_added: "İleti %{id}, %{author} tarafından rapor edildi."
+  text_issue_updated: "İleti %{id}, %{author} tarafından güncellendi."
   text_wiki_destroy_confirmation: bu wikiyi ve tüm içeriğini silmek istediğinizden emin misiniz?
-  text_issue_category_destroy_question: "Bazı iletiler ({{count}}) bu kategoriye atandı. Ne yapmak istersiniz?"
+  text_issue_category_destroy_question: "Bazı iletiler (%{count}) bu kategoriye atandı. Ne yapmak istersiniz?"
   text_issue_category_destroy_assignments: Kategori atamalarını kaldır
   text_issue_category_reassign_to: İletileri bu kategoriye tekrar ata
   text_user_mail_option: "Seçili olmayan projeler için, sadece dahil olduğunuz ya da izlediğiniz öğeler hakkında uyarılar alacaksınız (örneğin,yazarı veya atandığınız iletiler)."
   text_no_configuration_data: "Roller, takipçiler, ileti durumları ve işakışı henüz yapılandırılmadı.\nVarsayılan yapılandırılmanın yüklenmesi şiddetle tavsiye edilir. Bir kez yüklendiğinde yapılandırmayı değiştirebileceksiniz."
   text_load_default_configuration: Varsayılan yapılandırmayı yükle
-  text_status_changed_by_changeset: "Değişiklik listesi {{value}} içinde uygulandı."
+  text_status_changed_by_changeset: "Değişiklik listesi %{value} içinde uygulandı."
   text_issues_destroy_confirmation: 'Seçili iletileri silmek istediğinizden emin misiniz ?'
   text_select_project_modules: 'Bu proje için etkinleştirmek istediğiniz modülleri seçin:'
   text_default_administrator_account_changed: Varsayılan yönetici hesabı değişti
   text_file_repository_writable: Dosya deposu yazılabilir
   text_rmagick_available: RMagick Kullanılabilir (isteğe bağlı)
-  text_destroy_time_entries_question: Silmek üzere olduğunuz iletiler üzerine {{hours}} saat raporlandı.Ne yapmak istersiniz ?
+  text_destroy_time_entries_question: Silmek üzere olduğunuz iletiler üzerine %{hours} saat raporlandı.Ne yapmak istersiniz ?
   text_destroy_time_entries: Raporlanmış saatleri sil
   text_assign_time_entries_to_project: Raporlanmış saatleri projeye ata
   text_reassign_time_entries: 'Raporlanmış saatleri bu iletiye tekrar ata:'
@@ -743,13 +744,13 @@
   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."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   label_issue_watchers: Watchers
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
   label_duplicated_by: duplicated by
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_user_wrote: "{{value}} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
   setting_mail_handler_api_enabled: Enable WS for incoming emails
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
   setting_mail_handler_api_key: API key
   setting_commit_logs_encoding: Commit messages encoding
   general_csv_decimal_separator: '.'
@@ -808,12 +809,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -828,21 +829,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -854,10 +855,10 @@
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -892,9 +893,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -921,12 +922,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -934,7 +935,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -945,8 +946,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/uk.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/uk.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "немає в ÑпиÑку"
         exclusion: "зарезервовано"
@@ -106,11 +110,11 @@
         taken: "вже викориÑтовуєтьÑÑ"
         not_a_number: "не Ñ” чиÑлом"
         not_a_date: "Ñ” недійÑною датою"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "повинна бути пізніша за дату початку"
@@ -148,24 +152,24 @@
   notice_locking_conflict: Дані оновлено іншим кориÑтувачем.
   notice_scm_error: ЗапиÑу та/або Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ” в репозиторії.
   notice_not_authorized: У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав Ð´Ð»Ñ Ð²Ñ–Ð´Ð²Ñ–Ð´Ð¸Ð½Ð¸ даної Ñторінки.
-  notice_email_sent: "Відправлено лиÑта {{value}}"
-  notice_email_error: "Під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта відбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° ({{value}})"
+  notice_email_sent: "Відправлено лиÑта %{value}"
+  notice_email_error: "Під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта відбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° (%{value})"
   notice_feeds_access_key_reseted: Ваш ключ доÑтупу RSS було Ñкинуто.
-  notice_failed_to_save_issues: "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ {{count}} пункт(ів) з {{total}} вибраних: {{ids}}."
+  notice_failed_to_save_issues: "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ %{count} пункт(ів) з %{total} вибраних: %{ids}."
   notice_no_issue_selected: "Ðе вибрано жодної задачі! Будь лаÑка, відзначте задачу, Ñку ви хочете відредагувати."
   notice_account_pending: "Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñтворено Ñ– він чекає на Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратором."
   
-  mail_subject_lost_password: "Ваш {{value}} пароль"
+  mail_subject_lost_password: "Ваш %{value} пароль"
   mail_body_lost_password: 'Ð”Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ паролÑ, зайдіть за наÑтупним поÑиланнÑм:'
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу {{value}}"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу %{value}"
   mail_body_register: 'Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— облікового запиÑу, зайдіть за наÑтупним поÑиланнÑм:'
-  mail_body_account_information_external: "Ви можете викориÑтовувати ваш {{value}} обліковий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ."
+  mail_body_account_information_external: "Ви можете викориÑтовувати ваш %{value} обліковий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ."
   mail_body_account_information: Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ð¾ Вашому обліковому запиÑу
-  mail_subject_account_activation_request: "Запит на активацію облікового запиÑу {{value}}"
-  mail_body_account_activation_request: "Ðовий кориÑтувач ({{value}}) зареєÑтрувавÑÑ. Його обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‡ÐµÐºÐ°Ñ” на ваше підтвердженнÑ:"
+  mail_subject_account_activation_request: "Запит на активацію облікового запиÑу %{value}"
+  mail_body_account_activation_request: "Ðовий кориÑтувач (%{value}) зареєÑтрувавÑÑ. Його обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‡ÐµÐºÐ°Ñ” на ваше підтвердженнÑ:"
   
   gui_validation_error: 1 помилка
-  gui_validation_error_plural: "{{count}} помилки(ок)"
+  gui_validation_error_plural: "%{count} помилки(ок)"
   
   field_name: Ім'Ñ
   field_description: ОпиÑ
@@ -227,6 +231,7 @@
   field_attr_lastname: Ðтрибут Прізвище
   field_attr_mail: Ðтрибут Email
   field_onthefly: Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача на льоту
+  field_start_date: Початок
   field_done_ratio: % зроблено
   field_auth_source: Режим аутентифікації
   field_hide_mail: Приховувати мій email
@@ -284,14 +289,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: УÑÑ– проекти
   label_project_latest: ОÑтанні проекти
   label_issue: ПитаннÑ
   label_issue_new: Ðові питаннÑ
   label_issue_plural: ПитаннÑ
   label_issue_view_all: ПроглÑнути вÑÑ– питаннÑ
-  label_issues_by: "ÐŸÐ¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° {{value}}"
+  label_issues_by: "ÐŸÐ¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° %{value}"
   label_document: Документ
   label_document_new: Ðовий документ
   label_document_plural: Документи
@@ -353,8 +358,8 @@
   label_text: Довгий текÑÑ‚
   label_attribute: Ðтрибут
   label_attribute_plural: атрибути
-  label_download: "{{count}} Завантажено"
-  label_download_plural: "{{count}} Завантажень"
+  label_download: "%{count} Завантажено"
+  label_download_plural: "%{count} Завантажень"
   label_no_data: Ðемає даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ
   label_change_status: Змінити ÑтатуÑ
   label_history: ІÑторіÑ
@@ -383,17 +388,17 @@
   label_closed_issues: закрите
   label_closed_issues_plural: закриті
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Ð’Ñього
   label_permissions: Права доÑтупу
   label_current_status: Поточний ÑтатуÑ
@@ -411,7 +416,7 @@
   label_months_from: міÑÑців(цÑ) з
   label_gantt: Діаграма Ганта
   label_internal: Внутрішній
-  label_last_changes: "оÑтанні {{count}} змін"
+  label_last_changes: "оÑтанні %{count} змін"
   label_change_view_all: ПроглÑнути вÑÑ– зміни
   label_personalize_page: ПерÑоналізувати цю Ñторінку
   label_comment: Коментувати
@@ -419,7 +424,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Залишити коментар
   label_comment_added: Коментар додано
   label_comment_delete: Видалити коментарі
@@ -443,8 +448,8 @@
   label_day_plural: днів(Ñ)
   label_repository: Репозиторій
   label_browse: ПроглÑнути
-  label_modification: "{{count}} зміна"
-  label_modification_plural: "{{count}} змін"
+  label_modification: "%{count} зміна"
+  label_modification_plural: "%{count} змін"
   label_revision: ВерÑÑ–Ñ
   label_revision_plural: ВерÑій
   label_added: додано
@@ -459,8 +464,8 @@
   label_sort_lower: Вниз
   label_sort_lowest: У кінець
   label_roadmap: Оперативний план
-  label_roadmap_due_in: "Строк {{value}}"
-  label_roadmap_overdue: "{{value}} запізненнÑ"
+  label_roadmap_due_in: "Строк %{value}"
+  label_roadmap_overdue: "%{value} запізненнÑ"
   label_roadmap_no_issues: Ðемає питань Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ—
   label_search: Пошук
   label_result_plural: Результати 
@@ -478,8 +483,8 @@
   label_changes_details: Подробиці по вÑÑ–Ñ… змінах 
   label_issue_tracking: ÐšÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ†Ñ–Ñ Ð¿Ð¸Ñ‚Ð°Ð½ÑŒ
   label_spent_time: Витрачений чаÑ
-  label_f_hour: "{{value}} година"
-  label_f_hour_plural: "{{value}} годин(и)"
+  label_f_hour: "%{value} година"
+  label_f_hour_plural: "%{value} годин(и)"
   label_time_tracking: Облік чаÑу
   label_change_plural: Зміни
   label_statistics: СтатиÑтика
@@ -526,12 +531,12 @@
   label_date_from: З
   label_date_to: Кому
   label_language_based: Ðа оÑнові мови кориÑтувача
-  label_sort_by: "Сортувати за {{value}}"
+  label_sort_by: "Сортувати за %{value}"
   label_send_test_email: ПоÑлати email Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸
-  label_feeds_access_key_created_on: "Ключ доÑтупу RSS Ñтворений {{value}} назад "
+  label_feeds_access_key_created_on: "Ключ доÑтупу RSS Ñтворений %{value} назад "
   label_module_plural: Модулі
-  label_added_time_by: "Доданий {{author}} {{age}} назад"
-  label_updated_time: "Оновлений {{value}} назад"
+  label_added_time_by: "Доданий %{author} %{age} назад"
+  label_updated_time: "Оновлений %{value} назад"
   label_jump_to_a_project: Перейти до проекту...
   label_file_plural: Файли
   label_changeset_plural: Ðабори змін
@@ -599,17 +604,17 @@
   text_tip_issue_end_day: день Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ–
   text_tip_issue_begin_end_day: початок задачі Ñ– Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ днÑ
   text_project_identifier_info: 'РÑдкові букви (a-z), допуÑтимі цифри Ñ– дефіÑ.<br />Збережений ідентифікатор не може бути змінений.'
-  text_caracters_maximum: "{{count}} Ñимволів(а) макÑимум."
-  text_caracters_minimum: "Повинно мати Ñкнайменше  {{count}} Ñимволів(а) у довжину."
-  text_length_between: "Довжина між {{min}} Ñ– {{max}} Ñимволів."
+  text_caracters_maximum: "%{count} Ñимволів(а) макÑимум."
+  text_caracters_minimum: "Повинно мати Ñкнайменше  %{count} Ñимволів(а) у довжину."
+  text_length_between: "Довжина між %{min} Ñ– %{max} Ñимволів."
   text_tracker_no_workflow: Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ координатора поÑлідовніÑть дій не визначена
   text_unallowed_characters: Заборонені Ñимволи
   text_comma_separated: ДопуÑтимі декілька значень (розділені комою).
   text_issues_ref_in_commit_messages: ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ‚Ð° зміна питань у повідомленнÑÑ… до подавань
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Ви впевнені, що хочете видалити цю wiki Ñ– веÑÑŒ зміÑÑ‚?
-  text_issue_category_destroy_question: "Декілька питань ({{count}}) призначено в цю категорію. Що ви хочете зробити?"
+  text_issue_category_destroy_question: "Декілька питань (%{count}) призначено в цю категорію. Що ви хочете зробити?"
   text_issue_category_destroy_assignments: Видалити Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ—
   text_issue_category_reassign_to: Перепризначити задачі до даної категорії
   text_user_mail_option: "Ð”Ð»Ñ Ð½ÐµÐ²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… проектів ви отримуватимете Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ про те, що проглÑдаєте або в чому берете учаÑть (наприклад, Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼ Ñких ви Ñ” або Ñкі вам призначені)."
@@ -639,8 +644,8 @@
   enumeration_issue_priorities: Пріоритети питань
   enumeration_doc_categories: Категорії документів
   enumeration_activities: Дії (облік чаÑу)
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  label_display_per_page: "Per page: {{value}}"
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  label_display_per_page: "Per page: %{value}"
   label_issue_added: Issue added
   label_issue_updated: Issue updated
   setting_per_page_options: Objects per page options
@@ -650,7 +655,7 @@
   label_document_added: Document added
   label_message_posted: Message added
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
   setting_user_format: Users display format
   label_age: Age
   label_file_added: File added
@@ -666,7 +671,7 @@
   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."
   label_news_added: News added
   label_repository_plural: Repositories
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
   project_module_boards: Boards
   project_module_issue_tracking: Issue tracking
   project_module_wiki: Wiki
@@ -683,7 +688,7 @@
   label_ldap_authentication: LDAP authentication
   label_downloads_abbr: D/L
   label_this_month: this month
-  label_last_n_days: "last {{count}} days"
+  label_last_n_days: "last %{count} days"
   label_all_time: all time
   label_this_year: this year
   label_date_range: Date range
@@ -692,7 +697,7 @@
   label_last_month: last month
   label_add_another_file: Add another file
   label_optional_description: Optional description
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} 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
@@ -707,15 +712,15 @@
   setting_default_projects_public: New projects are public by default
   error_scm_annotate: "The entry does not exist or can not be annotated."
   label_planning: Planning
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  text_user_wrote: "{{value}} wrote:"
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  text_user_wrote: "%{value} 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: "{{count}} objects are assigned to this value."
+  text_enumeration_destroy_question: "%{count} 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
@@ -781,12 +786,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -801,21 +806,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -823,14 +828,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -865,9 +870,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -894,12 +899,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -907,7 +912,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -918,8 +923,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/vi.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/vi.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -66,37 +66,37 @@
       half_a_minute: "30 giây"
       less_than_x_seconds:
         one:   "chưa tới 1 giây"
-        other: "chưa tới {{count}} giây"
+        other: "chưa tới %{count} giây"
       x_seconds:
         one:   "1 giây"
-        other: "{{count}} giây"
+        other: "%{count} giây"
       less_than_x_minutes:
         one:   "chưa tới 1 phút"
-        other: "chưa tới {{count}} phút"
+        other: "chưa tới %{count} phút"
       x_minutes:
         one:   "1 phút"
-        other: "{{count}} phút"
+        other: "%{count} phút"
       about_x_hours:
         one:   "khoảng 1 giá»"
-        other: "khoảng {{count}} giá»"
+        other: "khoảng %{count} giá»"
       x_days:
         one:   "1 ngày"
-        other: "{{count}} ngày"
+        other: "%{count} ngày"
       about_x_months:
         one:   "khoảng 1 tháng"
-        other: "khoảng {{count}} tháng"
+        other: "khoảng %{count} tháng"
       x_months:
         one:   "1 tháng"
-        other: "{{count}} tháng"
+        other: "%{count} tháng"
       about_x_years:
         one:   "khoảng 1 năm"
-        other: "khoảng {{count}} năm"
+        other: "khoảng %{count} năm"
       over_x_years:
         one:   "hơn 1 năm"
-        other: "hơn {{count}} năm"
+        other: "hơn %{count} năm"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Năm"
       month:  "Tháng"
@@ -109,8 +109,8 @@
     errors:
       template:
         header:
-          one:   "1 lỗi ngăn không cho lưu {{model}} này"
-          other: "{{count}} lỗi ngăn không cho lưu {{model}} này"
+          one:   "1 lỗi ngăn không cho lưu %{model} này"
+          other: "%{count} lỗi ngăn không cho lưu %{model} này"
         # The variable :count is also available
         body: "Có lỗi với các mục sau:"
 
@@ -124,16 +124,16 @@
         accepted: "phải được đồng ý"
         empty: "không thể rỗng"
         blank: "không thể để trắng"
-        too_long: "quá dài (tối đa {{count}} ký tự)"
-        too_short: "quá ngắn (tối thiểu {{count}} ký tự)"
-        wrong_length: "độ dài không đúng (phải là {{count}} ký tự)"
+        too_long: "quá dài (tối đa %{count} ký tự)"
+        too_short: "quá ngắn (tối thiểu %{count} ký tự)"
+        wrong_length: "độ dài không đúng (phải là %{count} ký tự)"
         taken: "đã có"
         not_a_number: "không phải là số"
-        greater_than: "phải lớn hơn {{count}}"
-        greater_than_or_equal_to: "phải lớn hơn hoặc bằng {{count}}"
-        equal_to: "phải bằng {{count}}"
-        less_than: "phải nhỠhơn {{count}}"
-        less_than_or_equal_to: "phải nhỠhơn hoặc bằng {{count}}"
+        greater_than: "phải lớn hơn %{count}"
+        greater_than_or_equal_to: "phải lớn hơn hoặc bằng %{count}"
+        equal_to: "phải bằng %{count}"
+        less_than: "phải nhỠhơn %{count}"
+        less_than_or_equal_to: "phải nhỠhơn hoặc bằng %{count}"
         odd: "phải là số chẵn"
         even: "phải là số lẻ"
         greater_than_start_date: "phải đi sau ngày bắt đầu"
@@ -205,34 +205,34 @@
   notice_file_not_found: Trang bạn cố xem không tồn tại hoặc đã chuyển.
   notice_locking_conflict: Thông tin Ä‘ang được cập nhật bởi ngưá»i khác. Hãy chép ná»™i dung cập nhật cá»§a bạn vào clipboard.
   notice_not_authorized: Bạn không có quyá»n xem trang này.
-  notice_email_sent: "Email đã được gửi tới {{value}}"
-  notice_email_error: "Lỗi xảy ra khi gửi email ({{value}})"
+  notice_email_sent: "Email đã được gửi tới %{value}"
+  notice_email_error: "Lỗi xảy ra khi gửi email (%{value})"
   notice_feeds_access_key_reseted: Mã số chứng thực RSS đã được tạo lại.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
   notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
   notice_account_pending: "Thông tin tài khoản đã được tạo ra và đang chỠchứng thực từ ban quản trị."
   notice_default_data_loaded: Äã nạp cấu hình mặc định.
   notice_unable_delete_version: Không thể xóa phiên bản.
   
-  error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: {{value}}"
+  error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: %{value}"
   error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: {{value}}"
+  error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: %{value}"
   error_scm_annotate: "The entry does not exist or can not be annotated."
   error_issue_not_found_in_project: 'Vấn đỠkhông tồn tại hoặc không thuộc dự án'
   
-  mail_subject_lost_password: "{{value}}: mật mã của bạn"
+  mail_subject_lost_password: "%{value}: mật mã của bạn"
   mail_body_lost_password: "Äể đổi mật mã, hãy click chuá»™t vào liên kết sau:"
-  mail_subject_register: "{{value}}: kích hoạt tài khoản"
+  mail_subject_register: "%{value}: kích hoạt tài khoản"
   mail_body_register: "Äể kích hoạt tài khoản, hãy click chuá»™t vào liên kết sau:"
-  mail_body_account_information_external: " Bạn có thể dùng tài khoản {{value}} để đăng nhập."
+  mail_body_account_information_external: " Bạn có thể dùng tài khoản %{value} để đăng nhập."
   mail_body_account_information: Thông tin vỠtài khoản
-  mail_subject_account_activation_request: "{{value}}: Yêu cầu chứng thực tài khoản"
-  mail_body_account_activation_request: "Ngưá»i dùng ({{value}}) má»›i đăng ký và cần bạn xác nhận:"
-  mail_subject_reminder: "{{count}} vấn đỠhết hạn trong các {{days}} ngày tới"
-  mail_body_reminder: "{{count}} vấn đỠgán cho bạn sẽ hết hạn trong {{days}} ngày tới:"
+  mail_subject_account_activation_request: "%{value}: Yêu cầu chứng thực tài khoản"
+  mail_body_account_activation_request: "Ngưá»i dùng (%{value}) má»›i đăng ký và cần bạn xác nhận:"
+  mail_subject_reminder: "%{count} vấn đỠhết hạn trong các %{days} ngày tới"
+  mail_body_reminder: "%{count} vấn đỠgán cho bạn sẽ hết hạn trong %{days} ngày tới:"
   
   gui_validation_error: 1 lá»—i
-  gui_validation_error_plural: "{{count}} lá»—i"
+  gui_validation_error_plural: "%{count} lá»—i"
   
   field_name: Tên
   field_description: Mô tả
@@ -294,6 +294,7 @@
   field_attr_lastname: Lastname attribute
   field_attr_mail: Email attribute
   field_onthefly: On-the-fly user creation
+  field_start_date: Bắt đầu
   field_done_ratio: Tiến độ
   field_auth_source: Authentication mode
   field_hide_mail: Không làm lộ email của bạn
@@ -373,14 +374,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Má»i dá»± án
   label_project_latest: Dự án mới nhất
   label_issue: Vấn Ä‘á»
   label_issue_new: Tạo vấn đỠmới
   label_issue_plural: Vấn Ä‘á»
   label_issue_view_all: Tất cả vấn Ä‘á»
-  label_issues_by: "Vấn đỠcủa {{value}}"
+  label_issues_by: "Vấn đỠcủa %{value}"
   label_issue_added: Äã thêm vấn Ä‘á»
   label_issue_updated: Vấn đỠđược cập nhật
   label_document: Tài liệu
@@ -436,7 +437,7 @@
   label_auth_source_new: New authentication mode
   label_auth_source_plural: Authentication modes
   label_subproject_plural: Dự án con
-  label_and_its_subprojects: "{{value}} và dự án con"
+  label_and_its_subprojects: "%{value} và dự án con"
   label_min_max_length: Min - Max length
   label_list: List
   label_date: Ngày
@@ -447,8 +448,8 @@
   label_text: Long text
   label_attribute: Attribute
   label_attribute_plural: Attributes
-  label_download: "{{count}} lần tải"
-  label_download_plural: "{{count}} lần tải"
+  label_download: "%{count} lần tải"
+  label_download_plural: "%{count} lần tải"
   label_no_data: Chưa có thông tin gì
   label_change_status: Äổi trạng thái
   label_history: Lược sử
@@ -479,17 +480,17 @@
   label_closed_issues: đóng
   label_closed_issues_plural: đóng
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Tổng cộng
   label_permissions: Quyá»n
   label_current_status: Trạng thái hiện tại
@@ -507,7 +508,7 @@
   label_months_from: tháng từ
   label_gantt: Biểu đồ sự kiện
   label_internal: Ná»™i bá»™
-  label_last_changes: "{{count}} thay đổi cuối"
+  label_last_changes: "%{count} thay đổi cuối"
   label_change_view_all: Xem má»i thay đổi
   label_personalize_page: Äiá»u chỉnh trang này
   label_comment: Bình luận
@@ -515,7 +516,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Thêm bình luận
   label_comment_added: Äã thêm bình luận
   label_comment_delete: Xóa bình luận
@@ -534,7 +535,7 @@
   label_yesterday: hôm qua
   label_this_week: tuần này
   label_last_week: tuần trước
-  label_last_n_days: "{{count}} ngày cuối"
+  label_last_n_days: "%{count} ngày cuối"
   label_this_month: tháng này
   label_last_month: tháng cuối
   label_this_year: năm này
@@ -548,8 +549,8 @@
   label_repository: Kho lưu trữ
   label_repository_plural: Kho lưu trữ
   label_browse: Duyệt
-  label_modification: "{{count}} thay đổi"
-  label_modification_plural: "{{count}} thay đổi"
+  label_modification: "%{count} thay đổi"
+  label_modification_plural: "%{count} thay đổi"
   label_revision: Bản Ä‘iá»u chỉnh
   label_revision_plural: Bản Ä‘iá»u chỉnh
   label_associated_revisions: Associated revisions
@@ -567,8 +568,8 @@
   label_sort_lower: Dịch xuống
   label_sort_lowest: Xuống dưới cùng
   label_roadmap: Kế hoạch
-  label_roadmap_due_in: "Hết hạn trong {{value}}"
-  label_roadmap_overdue: "Trá»… {{value}}"
+  label_roadmap_due_in: "Hết hạn trong %{value}"
+  label_roadmap_overdue: "Trá»… %{value}"
   label_roadmap_no_issues: Không có vấn đỠcho phiên bản này
   label_search: Tìm
   label_result_plural: Kết quả
@@ -586,8 +587,8 @@
   label_changes_details: Chi tiết cá»§a má»i thay đổi
   label_issue_tracking: Vấn Ä‘á»
   label_spent_time: Thá»i gian
-  label_f_hour: "{{value}} giá»"
-  label_f_hour_plural: "{{value}} giá»"
+  label_f_hour: "%{value} giá»"
+  label_f_hour_plural: "%{value} giá»"
   label_time_tracking: Theo dõi thá»i gian
   label_change_plural: Thay đổi
   label_statistics: Thống kê
@@ -636,12 +637,12 @@
   label_date_from: Từ
   label_date_to: Äến
   label_language_based: Theo ngôn ngữ ngưá»i dùng
-  label_sort_by: "Sắp xếp theo {{value}}"
+  label_sort_by: "Sắp xếp theo %{value}"
   label_send_test_email: Send a test email
-  label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây {{value}}"
+  label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây %{value}"
   label_module_plural: Mô-đun
-  label_added_time_by: "thêm bởi {{author}} cách đây {{age}}"
-  label_updated_time: "Cập nhật cách đây {{value}}"
+  label_added_time_by: "thêm bởi %{author} cách đây %{age}"
+  label_updated_time: "Cập nhật cách đây %{value}"
   label_jump_to_a_project: Nhảy đến dự án...
   label_file_plural: Tập tin
   label_changeset_plural: Thay đổi
@@ -657,7 +658,7 @@
   label_registration_activation_by_email: account activation by email
   label_registration_manual_activation: manual account activation
   label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "má»—i trang: {{value}}"
+  label_display_per_page: "má»—i trang: %{value}"
   label_age: Age
   label_change_properties: Thay đổi thuộc tính
   label_general: Tổng quan
@@ -723,41 +724,41 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 để chỉ không hạn chế
   text_project_destroy_confirmation: Are you sure you want to delete this project and related data ?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Bạn chắc chứ?
   text_tip_issue_begin_day: ngày bắt đầu
   text_tip_issue_end_day: ngày kết thúc
   text_tip_issue_begin_end_day: bắt đầu và kết thúc cùng ngày
   text_project_identifier_info: 'Chỉ cho phép chữ cái thưá»ng (a-z), con số và dấu gạch ngang.<br />Sau khi lưu, chỉ số ID không thể thay đổi.'
-  text_caracters_maximum: "Tối đa {{count}} ký tự."
-  text_caracters_minimum: "Phải gồm ít nhất {{count}} ký tự."
-  text_length_between: "Length between {{min}} and {{max}} characters."
+  text_caracters_maximum: "Tối đa %{count} ký tự."
+  text_caracters_minimum: "Phải gồm ít nhất %{count} ký tự."
+  text_length_between: "Length between %{min} and %{max} characters."
   text_tracker_no_workflow: No workflow defined for this tracker
   text_unallowed_characters: Ký tự không hợp lệ
   text_comma_separated: Multiple values allowed (comma separated).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do ?"
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do ?"
   text_issue_category_destroy_assignments: Remove category assignments
   text_issue_category_reassign_to: Reassign issues to this category
   text_user_mail_option: "Vá»›i các dá»± án không được chá»n, bạn chỉ có thể nhận được thông báo vá» các vấn đỠbạn đăng ký theo dõi hoặc có liên quan đến bạn (chẳng hạn, vấn đỠđược gán cho bạn)."
   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."
   text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
   text_select_project_modules: 'Chá»n các mô-Ä‘un cho dá»± án:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: File repository writable
   text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
   text_destroy_time_entries: Delete reported hours
   text_assign_time_entries_to_project: Assign reported hours to the project
   text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   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."
   
@@ -840,12 +841,12 @@
   label_example: Ví dụ
   text_repository_usernames_mapping: "Chá»n hoặc cập nhật ánh xạ ngưá»i dùng hệ thống vá»›i ngưá»i dùng trong kho lưu trữ.\nNhững trưá»ng hợp trùng hợp vá» tên và email sẽ được tá»± động ánh xạ."
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -860,21 +861,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -882,14 +883,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -924,9 +925,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -953,12 +954,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -966,7 +967,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -977,8 +978,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/.svn/text-base/zh-TW.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/zh-TW.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -104,37 +104,37 @@
       half_a_minute: "åŠåˆ†é˜"
       less_than_x_seconds:
         one: "å°æ–¼ 1 ç§’"
-        other: "å°æ–¼ {{count}} ç§’"
+        other: "å°æ–¼ %{count} ç§’"
       x_seconds:
         one: "1 ç§’"
-        other: "{{count}} ç§’"
+        other: "%{count} ç§’"
       less_than_x_minutes:
         one: "å°æ–¼ 1 分é˜"
-        other: "å°æ–¼ {{count}} 分é˜"
+        other: "å°æ–¼ %{count} 分é˜"
       x_minutes:
         one: "1 分é˜"
-        other: "{{count}} 分é˜"
+        other: "%{count} 分é˜"
       about_x_hours:
         one: "ç´„ 1 å°æ™‚"
-        other: "ç´„ {{count}} å°æ™‚"
+        other: "ç´„ %{count} å°æ™‚"
       x_days:
         one: "1 天"
-        other: "{{count}} 天"
+        other: "%{count} 天"
       about_x_months:
         one: "約 1 個月"
-        other: "約 {{count}} 個月"
+        other: "約 %{count} 個月"
       x_months:
         one: "1 個月"
-        other: "{{count}} 個月"
+        other: "%{count} 個月"
       about_x_years:
         one: "ç´„ 1 å¹´"
-        other: "ç´„ {{count}} å¹´"
+        other: "ç´„ %{count} å¹´"
       over_x_years:
         one: "è¶…éŽ 1 å¹´"
-        other: "è¶…éŽ {{count}} å¹´"
+        other: "è¶…éŽ %{count} å¹´"
       almost_x_years:
         one:   "將近 1 年"
-        other: "將近 {{count}} 年"
+        other: "將近 %{count} 年"
     prompts:
       year:   "å¹´"
       month:  "月"
@@ -147,8 +147,8 @@
     errors:
       template:
         header: 
-          one:   "有 1 個錯誤發生使得「{{model}}ã€ç„¡æ³•被儲存。"
-          other: "有 {{count}} 個錯誤發生使得「{{model}}ã€ç„¡æ³•被儲存。"
+          one:   "有 1 個錯誤發生使得「%{model}ã€ç„¡æ³•被儲存。"
+          other: "有 %{count} 個錯誤發生使得「%{model}ã€ç„¡æ³•被儲存。"
         # The variable :count is also available
         body: "䏋颿‰€åˆ—æ¬„ä½æœ‰å•題:"
       # The values :model, :attribute and :value are always available for interpolation
@@ -161,16 +161,16 @@
         accepted: "必须是å¯è¢«æŽ¥å—çš„"
         empty: "ä¸èƒ½ç•™ç©º"
         blank: "ä¸èƒ½æ˜¯ç©ºç™½å­—å…ƒ"
-        too_long: "éŽé•·ï¼ˆæœ€é•·æ˜¯ {{count}} 個字)"
-        too_short: "éŽçŸ­ï¼ˆæœ€çŸ­æ˜¯ {{count}} 個字)"
-        wrong_length: "字數錯誤(必須是 {{count}} 個字)"
+        too_long: "éŽé•·ï¼ˆæœ€é•·æ˜¯ %{count} 個字)"
+        too_short: "éŽçŸ­ï¼ˆæœ€çŸ­æ˜¯ %{count} 個字)"
+        wrong_length: "字數錯誤(必須是 %{count} 個字)"
         taken: "已經被使用"
         not_a_number: "䏿˜¯æ•¸å­—"
-        greater_than: "必須大於 {{count}}"
-        greater_than_or_equal_to: "必須大於或等於 {{count}}"
-        equal_to: "必須等於 {{count}}"
-        less_than: "å¿…é ˆå°æ–¼ {{count}}"
-        less_than_or_equal_to: "å¿…é ˆå°æ–¼æˆ–等於 {{count}}"
+        greater_than: "必須大於 %{count}"
+        greater_than_or_equal_to: "必須大於或等於 %{count}"
+        equal_to: "必須等於 %{count}"
+        less_than: "å¿…é ˆå°æ–¼ %{count}"
+        less_than_or_equal_to: "å¿…é ˆå°æ–¼æˆ–等於 %{count}"
         odd: "必須是奇數"
         even: "å¿…é ˆæ˜¯å¶æ•¸"
         # Append your own errors here or at the model/attributes scope.
@@ -185,7 +185,7 @@
       # For example,
       #   models:
       #     user:
-      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       blank: "This is a custom blank message for %{model}: %{attribute}"
       #       attributes:
       #         login:
       #           blank: "This is a custom blank message for User login"
@@ -236,22 +236,23 @@
   notice_locking_conflict: 資料已被其他使用者更新。
   notice_not_authorized: ä½ æœªè¢«æŽˆæ¬Šå­˜å–æ­¤é é¢ã€‚
   notice_not_authorized_archived_project: 您欲存å–的專案已經被歸檔å°å­˜ã€‚
-  notice_email_sent: "郵件已經æˆåŠŸå¯„é€è‡³ä»¥ä¸‹æ”¶ä»¶è€…: {{value}}"
-  notice_email_error: "寄é€éƒµä»¶çš„éŽç¨‹ä¸­ç™¼ç”ŸéŒ¯èª¤ ({{value}})"
+  notice_email_sent: "郵件已經æˆåŠŸå¯„é€è‡³ä»¥ä¸‹æ”¶ä»¶è€…: %{value}"
+  notice_email_error: "寄é€éƒµä»¶çš„éŽç¨‹ä¸­ç™¼ç”ŸéŒ¯èª¤ (%{value})"
   notice_feeds_access_key_reseted: 您的 RSS å­˜å–é‡‘é‘°å·²è¢«é‡æ–°è¨­å®šã€‚
   notice_api_access_key_reseted: 您的 API å­˜å–é‡‘é‘°å·²è¢«é‡æ–°è¨­å®šã€‚
-  notice_failed_to_save_issues: " {{count}} 個項目儲存失敗(總共é¸å– {{total}} 個項目): {{ids}} 。"
-  notice_failed_to_save_members: "æˆå“¡å„²å­˜å¤±æ•—: {{errors}}."
+  notice_failed_to_save_issues: " %{count} 個項目儲存失敗(總共é¸å– %{total} 個項目): %{ids} 。"
+  notice_failed_to_save_members: "æˆå“¡å„²å­˜å¤±æ•—: %{errors}."
   notice_no_issue_selected: "æœªé¸æ“‡ä»»ä½•é …ç›®ï¼è«‹å‹¾é¸æ‚¨æƒ³è¦ç·¨è¼¯çš„項目。"
   notice_account_pending: "您的帳號已經建立,正在等待管ç†å“¡çš„審核。"
   notice_default_data_loaded: é è¨­çµ„態已載入æˆåŠŸã€‚
   notice_unable_delete_version: 無法刪除版本。
   notice_unable_delete_time_entry: 無法刪除工時記錄項目。
   notice_issue_done_ratios_updated: 項目完æˆç™¾åˆ†æ¯”已更新。
+  notice_gantt_chart_truncated: "由於項目數é‡è¶…éŽå¯é¡¯ç¤ºæ•¸é‡çš„æœ€å¤§å€¼ (%{max}),故此甘特圖尾部已被截斷"
 
-  error_can_t_load_default_data: "無法載入é è¨­çµ„態: {{value}}"
+  error_can_t_load_default_data: "無法載入é è¨­çµ„態: %{value}"
   error_scm_not_found: "在 SCM 儲存庫中找ä¸åˆ°é€™å€‹é …目或版次。"
-  error_scm_command_failed: "å˜—è©¦å­˜å– SCM 儲存庫時發生錯誤: {{value}}"
+  error_scm_command_failed: "å˜—è©¦å­˜å– SCM 儲存庫時發生錯誤: %{value}"
   error_scm_annotate: "SCM 儲存庫中無此項目或此項目無法被加註。"
   error_issue_not_found_in_project: '該項目ä¸å­˜åœ¨æˆ–ä¸å±¬æ–¼æ­¤å°ˆæ¡ˆ'
   error_no_tracker_in_project: '此專案尚未指定追蹤標籤。請檢查專案的設定資訊。'
@@ -265,26 +266,26 @@
   error_workflow_copy_source: 'è«‹é¸æ“‡ä¸€å€‹ä¾†æºé …目追蹤標籤或角色'
   error_workflow_copy_target: 'è«‹é¸æ“‡ä¸€å€‹ï¼ˆæˆ–多個)目的項目追蹤標籤或角色'
   error_unable_delete_issue_status: '無法刪除項目狀態'
-  error_unable_to_connect: "無法連線至({{value}})"
-  warning_attachments_not_saved: "{{count}} 個附加檔案無法被儲存。"
+  error_unable_to_connect: "無法連線至(%{value})"
+  warning_attachments_not_saved: "%{count} 個附加檔案無法被儲存。"
   
   mail_subject_lost_password: 您的 Redmine 網站密碼
   mail_body_lost_password: '欲變更您的 Redmine 網站密碼, 請點é¸ä»¥ä¸‹éˆçµ:'
   mail_subject_register: 啟用您的 Redmine 帳號
   mail_body_register: '欲啟用您的 Redmine 帳號, 請點é¸ä»¥ä¸‹éˆçµ:'
-  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨ {{value}} 帳號登入 Redmine 網站。"
+  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨ %{value} 帳號登入 Redmine 網站。"
   mail_body_account_information: 您的 Redmine 帳號資訊
   mail_subject_account_activation_request: Redmine 帳號啟用需求通知
-  mail_body_account_activation_request: "æœ‰ä½æ–°ç”¨æˆ¶ ({{value}}) 已經完æˆè¨»å†Šï¼Œæ­£ç­‰å€™æ‚¨çš„審核:"
-  mail_subject_reminder: "您有 {{count}} 個項目å³å°‡åˆ°æœŸ ({{days}})"
-  mail_body_reminder: "{{count}} 個指派給您的項目,將於 {{days}} 天之內到期:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki é é¢å·²è¢«æ–°å¢ž"
-  mail_body_wiki_content_added: "The '{{id}}' wiki é é¢å·²è¢« {{author}} 新增。"
-  mail_subject_wiki_content_updated: "'{{id}}' wiki é é¢å·²è¢«æ›´æ–°"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki é é¢å·²è¢« {{author}} 更新。"
+  mail_body_account_activation_request: "æœ‰ä½æ–°ç”¨æˆ¶ (%{value}) 已經完æˆè¨»å†Šï¼Œæ­£ç­‰å€™æ‚¨çš„審核:"
+  mail_subject_reminder: "您有 %{count} 個項目å³å°‡åˆ°æœŸ (%{days})"
+  mail_body_reminder: "%{count} 個指派給您的項目,將於 %{days} 天之內到期:"
+  mail_subject_wiki_content_added: "'%{id}' wiki é é¢å·²è¢«æ–°å¢ž"
+  mail_body_wiki_content_added: "æ­¤ '%{id}' wiki é é¢å·²è¢« %{author} 新增。"
+  mail_subject_wiki_content_updated: "'%{id}' wiki é é¢å·²è¢«æ›´æ–°"
+  mail_body_wiki_content_updated: "æ­¤ '%{id}' wiki é é¢å·²è¢« %{author} 更新。"
   
   gui_validation_error: 1 個錯誤
-  gui_validation_error_plural: "{{count}} 個錯誤"
+  gui_validation_error_plural: "%{count} 個錯誤"
   
   field_name: å稱
   field_description: 概述
@@ -383,6 +384,7 @@
   field_member_of_group: "被指派者的群組"
   field_assigned_to_role: "被指派者的角色"
   field_text: 內容文字
+  field_visible: å¯è¢«çœ‹è¦‹
   
   setting_app_title: 標題
   setting_app_subtitle: 副標題
@@ -411,6 +413,7 @@
   setting_issue_list_default_columns: é è¨­é¡¯ç¤ºæ–¼é …目清單的欄ä½
   setting_repositories_encodings: 版本庫編碼
   setting_commit_logs_encoding: é€äº¤è¨Šæ¯ç·¨ç¢¼
+  setting_emails_header: é›»å­éƒµä»¶å‰é ­èªªæ˜Ž
   setting_emails_footer: é›»å­éƒµä»¶é™„帶說明
   setting_protocol: å”定
   setting_per_page_options: æ¯é é¡¯ç¤ºå€‹æ•¸é¸é …
@@ -438,6 +441,9 @@
   setting_rest_api_enabled: 啟用 REST 網路æœå‹™æŠ€è¡“(Web Service)
   setting_cache_formatted_text: å¿«å–已格å¼åŒ–文字
   setting_default_notification_option: é è¨­é€šçŸ¥é¸é …
+  setting_commit_logtime_enabled: 啟用é€äº¤ä¸­çš„æ™‚間記錄
+  setting_commit_logtime_activity_id: æ™‚é–“è¨˜éŒ„å°æ‡‰çš„æ´»å‹•
+  setting_gantt_items_limit: 甘特圖中項目顯示數é‡çš„æœ€å¤§å€¼
   
   permission_add_project: 建立專案
   permission_add_subprojects: 建立å­å°ˆæ¡ˆ
@@ -516,14 +522,14 @@
   label_x_projects:
     zero:  無專案
     one:   1 個專案
-    other: "{{count}} 個專案"
+    other: "%{count} 個專案"
   label_project_all: 全部的專案
   label_project_latest: 最近的專案
   label_issue: é …ç›®
   label_issue_new: 建立新項目
   label_issue_plural: 項目清單
   label_issue_view_all: 檢視所有項目
-  label_issues_by: "項目按 {{value}} 分組顯示"
+  label_issues_by: "項目按 %{value} 分組顯示"
   label_issue_added: 項目已新增
   label_issue_updated: 項目已更新
   label_document: 文件
@@ -573,7 +579,7 @@
   label_registered_on: 註冊於
   label_activity: 活動
   label_overall_activity: 整體活動
-  label_user_activity: "{{value}} 的活動"
+  label_user_activity: "%{value} 的活動"
   label_new: 建立新的...
   label_logged_as: ç›®å‰ç™»å…¥
   label_environment: 環境
@@ -583,7 +589,7 @@
   label_auth_source_plural: èªè­‰æ¨¡å¼æ¸…å–®
   label_subproject_plural: å­å°ˆæ¡ˆ
   label_subproject_new: 建立å­å°ˆæ¡ˆ
-  label_and_its_subprojects: "{{value}} 與其å­å°ˆæ¡ˆ"
+  label_and_its_subprojects: "%{value} 與其å­å°ˆæ¡ˆ"
   label_min_max_length: æœ€å° - 最大 長度
   label_list: 清單
   label_date: 日期
@@ -594,8 +600,8 @@
   label_text: 長文字
   label_attribute: 屬性
   label_attribute_plural: 屬性
-  label_download: "{{count}} 個下載"
-  label_download_plural: "{{count}} 個下載"
+  label_download: "%{count} 個下載"
+  label_download_plural: "%{count} 個下載"
   label_no_data: 沒有任何資料å¯ä¾›é¡¯ç¤º
   label_change_status: 變更狀態
   label_history: æ­·å²
@@ -627,17 +633,17 @@
   label_closed_issues: å·²çµæŸ
   label_closed_issues_plural: å·²çµæŸ
   label_x_open_issues_abbr_on_total:
-    zero:  0 進行中 / 共 {{total}}
-    one:   1 進行中 / 共 {{total}}
-    other: "{{count}} 進行中 / 共 {{total}}"
+    zero:  0 進行中 / 共 %{total}
+    one:   1 進行中 / 共 %{total}
+    other: "%{count} 進行中 / 共 %{total}"
   label_x_open_issues_abbr:
     zero:  0 進行中
     one:   1 進行中
-    other: "{{count}} 進行中"
+    other: "%{count} 進行中"
   label_x_closed_issues_abbr:
     zero:  0 å·²çµæŸ
     one:   1 å·²çµæŸ
-    other: "{{count}} å·²çµæŸ"
+    other: "%{count} å·²çµæŸ"
   label_total: 總計
   label_permissions: 權é™
   label_current_status: ç›®å‰ç‹€æ…‹
@@ -655,7 +661,7 @@
   label_months_from: 個月, 開始月份
   label_gantt: 甘特圖
   label_internal: 內部
-  label_last_changes: "最近 {{count}} 個變更"
+  label_last_changes: "最近 %{count} 個變更"
   label_change_view_all: 檢視全部的變更
   label_personalize_page: 自訂版é¢
   label_comment: 註解
@@ -663,7 +669,7 @@
   label_x_comments:
     zero: 無註解
     one: 1 個註解
-    other: "{{count}} 個註解"
+    other: "%{count} 個註解"
   label_comment_add: 加入新註解
   label_comment_added: 新註解已加入
   label_comment_delete: 刪除註解
@@ -684,7 +690,7 @@
   label_yesterday: 昨天
   label_this_week: 本週
   label_last_week: 上週
-  label_last_n_days: "éŽåŽ» {{count}} 天"
+  label_last_n_days: "éŽåŽ» %{count} 天"
   label_this_month: 這個月
   label_last_month: 上個月
   label_this_year: 今年
@@ -698,13 +704,13 @@
   label_repository: 版本控管
   label_repository_plural: 版本控管
   label_browse: ç€è¦½
-  label_modification: "{{count}} 變更"
-  label_modification_plural: "{{count}} 變更"
+  label_modification: "%{count} 變更"
+  label_modification_plural: "%{count} 變更"
   label_branch: 分支
   label_tag: 標籤 
   label_revision: 版次
   label_revision_plural: 版次清單
-  label_revision_id: "版次 {{value}}"
+  label_revision_id: "版次 %{value}"
   label_associated_revisions: 相關版次
   label_added: 已新增
   label_modified: 已修改
@@ -721,8 +727,8 @@
   label_sort_lower: 往下移動
   label_sort_lowest: 移動至çµå°¾
   label_roadmap: 版本è—圖
-  label_roadmap_due_in: "剩餘 {{value}}"
-  label_roadmap_overdue: "逾期 {{value}}"
+  label_roadmap_due_in: "剩餘 %{value}"
+  label_roadmap_overdue: "逾期 %{value}"
   label_roadmap_no_issues: 此版本尚未包å«ä»»ä½•é …ç›®
   label_search: æœå°‹
   label_result_plural: çµæžœ
@@ -741,8 +747,8 @@
   label_issue_tracking: 項目追蹤
   label_spent_time: 耗用工時
   label_overall_spent_time: 整體耗用工時
-  label_f_hour: "{{value}} å°æ™‚"
-  label_f_hour_plural: "{{value}} å°æ™‚"
+  label_f_hour: "%{value} å°æ™‚"
+  label_f_hour_plural: "%{value} å°æ™‚"
   label_time_tracking: 工時追蹤
   label_change_plural: 變更
   label_statistics: 統計資訊
@@ -793,15 +799,15 @@
   label_date_from: é–‹å§‹
   label_date_to: çµæŸ
   label_language_based: ä¾ç”¨æˆ¶ä¹‹èªžç³»æ±ºå®š
-  label_sort_by: "按 {{value}} 排åº"
+  label_sort_by: "按 %{value} 排åº"
   label_send_test_email: 坄逿¸¬è©¦éƒµä»¶
   label_feeds_access_key: RSS å­˜å–金鑰
   label_missing_feeds_access_key: 找ä¸åˆ° RSS å­˜å–金鑰
-  label_feeds_access_key_created_on: "RSS å­˜å–éµå»ºç«‹æ–¼ {{value}} 之å‰"
+  label_feeds_access_key_created_on: "RSS å­˜å–éµå»ºç«‹æ–¼ %{value} 之å‰"
   label_module_plural: 模組
-  label_added_time_by: "是由 {{author}} æ–¼ {{age}} å‰åŠ å…¥"
-  label_updated_time_by: "是由 {{author}} æ–¼ {{age}} 剿›´æ–°"
-  label_updated_time: "æ–¼ {{value}} 剿›´æ–°"
+  label_added_time_by: "是由 %{author} æ–¼ %{age} å‰åŠ å…¥"
+  label_updated_time_by: "是由 %{author} æ–¼ %{age} 剿›´æ–°"
+  label_updated_time: "æ–¼ %{value} 剿›´æ–°"
   label_jump_to_a_project: 鏿“‡æ¬²å‰å¾€çš„專案...
   label_file_plural: 檔案清單
   label_changeset_plural: 變更集清單
@@ -821,7 +827,7 @@
   label_registration_activation_by_email: é€éŽé›»å­éƒµä»¶å•Ÿç”¨å¸³æˆ¶
   label_registration_manual_activation: 手動啟用帳戶
   label_registration_automatic_activation: 自動啟用帳戶
-  label_display_per_page: "æ¯é é¡¯ç¤º: {{value}} 個"
+  label_display_per_page: "æ¯é é¡¯ç¤º: %{value} 個"
   label_age: 年齡
   label_change_properties: 變更屬性
   label_general: 一般
@@ -844,7 +850,7 @@
   label_sort: 排åº
   label_ascending: éžå¢žæŽ’åº
   label_descending: éžæ¸›æŽ’åº
-  label_date_from_to: èµ· {{start}} è¿„ {{end}}
+  label_date_from_to: èµ· %{start} è¿„ %{end}
   label_wiki_content_added: Wiki é é¢å·²æ–°å¢ž
   label_wiki_content_updated: Wiki é é¢å·²æ›´æ–°
   label_group: 群組
@@ -863,10 +869,12 @@
   label_display_used_statuses_only: 僅顯示此追蹤標籤所使用之狀態
   label_api_access_key: API å­˜å–金鑰
   label_missing_api_access_key: 找ä¸åˆ° API å­˜å–金鑰
-  label_api_access_key_created_on: "API å­˜å–金鑰建立於 {{value}} 之å‰"
+  label_api_access_key_created_on: "API å­˜å–金鑰建立於 %{value} 之å‰"
   label_profile: é…置概æ³
   label_subtask_plural: å­å·¥ä½œé …ç›®
   label_project_copy_notifications: 在複製專案的éŽç¨‹ä¸­ï¼Œå‚³é€é€šçŸ¥éƒµä»¶
+  label_principal_search: "æœå°‹ç”¨æˆ¶æˆ–群組:"
+  label_user_search: "æœå°‹ç”¨æˆ¶ï¼š"
 
   button_login: 登入
   button_submit: é€å‡º
@@ -878,7 +886,7 @@
   button_create_and_continue: 繼續建立
   button_test: 測試
   button_edit: 編輯
-  button_edit_associated_wikipage: "編輯相關 Wiki é é¢: {{page_title}}"
+  button_edit_associated_wikipage: "編輯相關 Wiki é é¢: %{page_title}"
   button_add: 新增
   button_change: 修改
   button_apply: 套用
@@ -927,54 +935,55 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 代表「ä¸é™åˆ¶ã€
   text_project_destroy_confirmation: 您確定è¦åˆªé™¤é€™å€‹å°ˆæ¡ˆå’Œå…¶ä»–相關資料?
-  text_subprojects_destroy_warning: "下列å­å°ˆæ¡ˆï¼š {{value}} 將一併被刪除。"
+  text_subprojects_destroy_warning: "下列å­å°ˆæ¡ˆï¼š %{value} 將一併被刪除。"
   text_workflow_edit: 鏿“‡è§’色與追蹤標籤以設定其工作æµç¨‹
   text_are_you_sure: 確定執行?
   text_are_you_sure_with_children: "確定刪除此工作項目åŠå…¶å­é …目?"
-  text_journal_changed: "{{label}} 從 {{old}} 變更為 {{new}}"
-  text_journal_set_to: "{{label}} 設定為 {{value}}"
-  text_journal_deleted: "{{label}} 已刪除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} 已新增"
+  text_journal_changed: "%{label} 從 %{old} 變更為 %{new}"
+  text_journal_set_to: "%{label} 設定為 %{value}"
+  text_journal_deleted: "%{label} 已刪除 (%{old})"
+  text_journal_added: "%{label} %{value} 已新增"
   text_tip_issue_begin_day: 今天起始的工作
   text_tip_issue_end_day: 今天截止的的工作
   text_tip_issue_begin_end_day: 今天起始與截止的工作
   text_project_identifier_info: 'åªå…許å°å¯«è‹±æ–‡å­—æ¯ï¼ˆa-z)ã€é˜¿æ‹‰ä¼¯æ•¸å­—與連字符號(-)。<br />儲存後,代碼ä¸å¯å†è¢«æ›´æ”¹ã€‚'
-  text_caracters_maximum: "最多 {{count}} 個字元."
-  text_caracters_minimum: "長度必須大於 {{count}} 個字元."
-  text_length_between: "長度必須介於 {{min}} 至 {{max}} 個字元之間."
+  text_caracters_maximum: "最多 %{count} 個字元."
+  text_caracters_minimum: "長度必須大於 %{count} 個字元."
+  text_length_between: "長度必須介於 %{min} 至 %{max} 個字元之間."
   text_tracker_no_workflow: 此追蹤標籤尚未定義工作æµç¨‹
   text_unallowed_characters: ä¸å…許的字元
   text_comma_separated: å¯è¼¸å…¥å¤šå€‹å€¼ï¼ˆé ˆä»¥é€—號分隔)。
   text_line_separated: å¯è¼¸å…¥å¤šå€‹å€¼ï¼ˆé ˆä»¥æ›è¡Œç¬¦è™Ÿåˆ†éš”ï¼Œå³æ¯åˆ—åªèƒ½è¼¸å…¥ä¸€å€‹å€¼ï¼‰ã€‚
   text_issues_ref_in_commit_messages: é€äº¤è¨Šæ¯ä¸­åƒç…§(或修正)項目之關éµå­—
-  text_issue_added: "項目 {{id}} 已被 {{author}} 通報。"
-  text_issue_updated: "項目 {{id}} 已被 {{author}} 更新。"
+  text_issue_added: "項目 %{id} 已被 %{author} 通報。"
+  text_issue_updated: "項目 %{id} 已被 %{author} 更新。"
   text_wiki_destroy_confirmation: 您確定è¦åˆªé™¤é€™å€‹ wiki 和其中的所有內容?
-  text_issue_category_destroy_question: "有 ({{count}}) 個項目被指派到此分類. è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
+  text_issue_category_destroy_question: "有 (%{count}) 個項目被指派到此分類. è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
   text_issue_category_destroy_assignments: 移除這些項目的分類
   text_issue_category_reassign_to: 釿–°æŒ‡æ´¾é€™äº›é …目至其它分類
   text_user_mail_option: "å°æ–¼é‚£äº›æœªè¢«é¸æ“‡çš„å°ˆæ¡ˆï¼Œå°‡åªæœƒæŽ¥æ”¶åˆ°æ‚¨æ­£åœ¨è§€å¯Ÿä¸­ï¼Œæˆ–是åƒèˆ‡ä¸­çš„項目通知。(「åƒèˆ‡ä¸­çš„é …ç›®ã€åŒ…嫿‚¨å»ºç«‹çš„æˆ–是指派給您的項目)"
   text_no_configuration_data: "角色ã€è¿½è¹¤æ¨™ç±¤ã€é …目狀態與æµç¨‹å°šæœªè¢«è¨­å®šå®Œæˆã€‚\n強烈建議您先載入é è¨­çš„組態。將é è¨­çµ„態載入之後,您å¯å†è®Šæ›´å…¶ä¸­ä¹‹å€¼ã€‚"
   text_load_default_configuration: 載入é è¨­çµ„æ…‹
-  text_status_changed_by_changeset: "已套用至變更集 {{value}}."
+  text_status_changed_by_changeset: "已套用至變更集 %{value}."
+  text_time_logged_by_changeset: "紀錄於變更集 %{value}."
   text_issues_destroy_confirmation: 'ç¢ºå®šåˆªé™¤å·²é¸æ“‡çš„項目?'
   text_select_project_modules: '鏿“‡æ­¤å°ˆæ¡ˆå¯ä½¿ç”¨ä¹‹æ¨¡çµ„:'
   text_default_administrator_account_changed: 已變更é è¨­ç®¡ç†å“¡å¸³è™Ÿå…§å®¹
   text_file_repository_writable: å¯å¯«å…¥é™„加檔案目錄
   text_plugin_assets_writable: å¯å¯«å…¥é™„加元件目錄
   text_rmagick_available: å¯ä½¿ç”¨ RMagick (é¸é…)
-  text_destroy_time_entries_question: 您å³å°‡åˆªé™¤çš„項目已報工 {{hours}} å°æ™‚. æ‚¨çš„é¸æ“‡æ˜¯ï¼Ÿ
+  text_destroy_time_entries_question: 您å³å°‡åˆªé™¤çš„項目已報工 %{hours} å°æ™‚. æ‚¨çš„é¸æ“‡æ˜¯ï¼Ÿ
   text_destroy_time_entries: 刪除已報工的時數
   text_assign_time_entries_to_project: 指定已報工的時數至專案中
   text_reassign_time_entries: '釿–°æŒ‡å®šå·²å ±å·¥çš„æ™‚數至此項目:'
-  text_user_wrote: "{{value}} å…ˆå‰æåˆ°:"
-  text_enumeration_destroy_question: "ç›®å‰æœ‰ {{count}} 個物件使用此列舉值。"
+  text_user_wrote: "%{value} å…ˆå‰æåˆ°:"
+  text_enumeration_destroy_question: "ç›®å‰æœ‰ %{count} 個物件使用此列舉值。"
   text_enumeration_category_reassign_to: '釿–°è¨­å®šå…¶åˆ—舉值為:'
   text_email_delivery_not_configured: "您尚未設定電å­éƒµä»¶å‚³é€æ–¹å¼ï¼Œå› æ­¤æé†’é¸é …已被åœç”¨ã€‚\n請在 config/email.yml 中設定 SMTP ä¹‹å¾Œï¼Œé‡æ–°å•Ÿå‹• Redmine,以啟用電å­éƒµä»¶æé†’é¸é …。"
   text_repository_usernames_mapping: "鏿“‡æˆ–æ›´æ–° Redmine ä½¿ç”¨è€…èˆ‡ç‰ˆæœ¬åº«ä½¿ç”¨è€…ä¹‹å°æ‡‰é—œä¿‚。\n版本庫中之使用者帳號或電å­éƒµä»¶ä¿¡ç®±ï¼Œèˆ‡ Redmine 設定相åŒè€…ï¼Œå°‡è‡ªå‹•ç”¢ç”Ÿå°æ‡‰é—œä¿‚。"
   text_diff_truncated: '... 這份差異已被截短以符åˆé¡¯ç¤ºè¡Œæ•¸ä¹‹æœ€å¤§å€¼'
   text_custom_field_possible_values_info: '一列輸入一個值'
-  text_wiki_page_destroy_question: "æ­¤é é¢åŒ…å« {{descendants}} 個å­é é¢åŠå»¶ä¼¸é é¢ã€‚ è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
+  text_wiki_page_destroy_question: "æ­¤é é¢åŒ…å« %{descendants} 個å­é é¢åŠå»¶ä¼¸é é¢ã€‚ è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
   text_wiki_page_nullify_children: "ä¿ç•™æ‰€æœ‰å­é é¢ç•¶ä½œæ ¹é é¢"
   text_wiki_page_destroy_children: "刪除所有å­é é¢åŠå…¶å»¶ä¼¸é é¢"
   text_wiki_page_reassign_children: "釿–°æŒ‡å®šæ‰€æœ‰çš„å­é é¢ä¹‹çˆ¶é é¢è‡³æ­¤é é¢"
@@ -1008,8 +1017,3 @@
   enumeration_doc_categories: 文件分類
   enumeration_activities: 活動 (時間追蹤)
   enumeration_system_activity: 系統活動
-
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
--- a/config/locales/.svn/text-base/zh.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/.svn/text-base/zh.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,37 +29,37 @@
       half_a_minute: "åŠåˆ†é’Ÿ"
       less_than_x_seconds:
         one: "一秒内"
-        other: "少于 {{count}} 秒"
+        other: "少于 %{count} 秒"
       x_seconds:
         one: "一秒"
-        other: "{{count}} ç§’"
+        other: "%{count} ç§’"
       less_than_x_minutes:
         one: "一分钟内"
-        other: "少于 {{count}} 分钟"
+        other: "少于 %{count} 分钟"
       x_minutes:
         one: "一分钟"
-        other: "{{count}} 分钟"
+        other: "%{count} 分钟"
       about_x_hours:
         one: "å¤§çº¦ä¸€å°æ—¶"
-        other: "大约 {{count}} å°æ—¶"
+        other: "大约 %{count} å°æ—¶"
       x_days:
         one: "一天"
-        other: "{{count}} 天"
+        other: "%{count} 天"
       about_x_months:
         one: "大约一个月"
-        other: "大约 {{count}} 个月"
+        other: "大约 %{count} 个月"
       x_months:
         one: "一个月"
-        other: "{{count}} 个月"
+        other: "%{count} 个月"
       about_x_years:
         one: "大约一年"
-        other: "大约 {{count}} 年"
+        other: "大约 %{count} 年"
       over_x_years:
         one: "一年以上"
-        other: "{{count}} 年以上"
+        other: "%{count} 年以上"
       almost_x_years:
         one:   "将近 1 年"
-        other: "将近 {{count}} 年"
+        other: "将近 %{count} 年"
     prompts:
       year:   "å¹´"
       month:  "月"
@@ -111,8 +111,8 @@
     errors:
       template:
         header: 
-          one: "有 1 个错误å‘生导致「{{model}}ã€æ— æ³•被ä¿å­˜ã€‚"
-          other: "有 {{count}} 个错误å‘生导致「{{model}}ã€æ— æ³•被ä¿å­˜ã€‚"
+          one: "有 1 个错误å‘生导致「%{model}ã€æ— æ³•被ä¿å­˜ã€‚"
+          other: "有 %{count} 个错误å‘生导致「%{model}ã€æ— æ³•被ä¿å­˜ã€‚"
         body: "如下字段出现错误:"
       messages:
         inclusion: "ä¸åŒ…å«äºŽåˆ—表中"
@@ -122,16 +122,16 @@
         accepted: "必须是å¯è¢«æŽ¥å—çš„"
         empty: "ä¸èƒ½ç•™ç©º"
         blank: "ä¸èƒ½ä¸ºç©ºå­—符"
-        too_long: "过长(最长为 {{count}} 个字符)"
-        too_short: "过短(最短为 {{count}} 个字符)"
-        wrong_length: "é•¿åº¦éžæ³•(必须为 {{count}} 个字符)"
+        too_long: "过长(最长为 %{count} 个字符)"
+        too_short: "过短(最短为 %{count} 个字符)"
+        wrong_length: "é•¿åº¦éžæ³•(必须为 %{count} 个字符)"
         taken: "å·²ç»è¢«ä½¿ç”¨"
         not_a_number: "䏿˜¯æ•°å­—"
-        greater_than: "必须大于 {{count}}"
-        greater_than_or_equal_to: "必须大于或等于 {{count}}"
-        equal_to: "必须等于 {{count}}"
-        less_than: "å¿…é¡»å°äºŽ {{count}}"
-        less_than_or_equal_to: "å¿…é¡»å°äºŽæˆ–等于 {{count}}"
+        greater_than: "必须大于 %{count}"
+        greater_than_or_equal_to: "必须大于或等于 %{count}"
+        equal_to: "必须等于 %{count}"
+        less_than: "å¿…é¡»å°äºŽ %{count}"
+        less_than_or_equal_to: "å¿…é¡»å°äºŽæˆ–等于 %{count}"
         odd: "å¿…é¡»ä¸ºå•æ•°"
         even: "å¿…é¡»ä¸ºåŒæ•°"
         greater_than_start_date: "必须在起始日期之åŽ"
@@ -168,20 +168,20 @@
   notice_file_not_found: 您访问的页é¢ä¸å­˜åœ¨æˆ–已被删除。
   notice_locking_conflict: æ•°æ®å·²è¢«å¦ä¸€ä½ç”¨æˆ·æ›´æ–°
   notice_not_authorized: 对ä¸èµ·ï¼Œæ‚¨æ— æƒè®¿é—®æ­¤é¡µé¢ã€‚
-  notice_email_sent: "邮件已æˆåŠŸå‘é€åˆ° {{value}}"
-  notice_email_error: "å‘é€é‚®ä»¶æ—¶å‘生错误 ({{value}})"
+  notice_email_sent: "邮件已æˆåŠŸå‘é€åˆ° %{value}"
+  notice_email_error: "å‘é€é‚®ä»¶æ—¶å‘生错误 (%{value})"
   notice_feeds_access_key_reseted: 您的RSSå­˜å–键已被é‡ç½®ã€‚
   notice_api_access_key_reseted: 您的API访问键已被é‡ç½®ã€‚
-  notice_failed_to_save_issues: "{{count}} 个问题ä¿å­˜å¤±è´¥ï¼ˆå…±é€‰æ‹© {{total}} 个问题):{{ids}}."
+  notice_failed_to_save_issues: "%{count} 个问题ä¿å­˜å¤±è´¥ï¼ˆå…±é€‰æ‹© %{total} 个问题):%{ids}."
   notice_no_issue_selected: "未选择任何问题ï¼è¯·é€‰æ‹©æ‚¨è¦ç¼–辑的问题。"
   notice_account_pending: "您的å¸å·å·²è¢«æˆåŠŸåˆ›å»ºï¼Œæ­£åœ¨ç­‰å¾…ç®¡ç†å‘˜çš„审核。"
   notice_default_data_loaded: æˆåŠŸè½½å…¥é»˜è®¤è®¾ç½®ã€‚
   notice_unable_delete_version: 无法删除版本
   notice_issue_done_ratios_updated: 问题完æˆåº¦å·²æ›´æ–°ã€‚
 
-  error_can_t_load_default_data: "无法载入默认设置:{{value}}"
+  error_can_t_load_default_data: "无法载入默认设置:%{value}"
   error_scm_not_found: "版本库中ä¸å­˜åœ¨è¯¥æ¡ç›®å’Œï¼ˆæˆ–)其修订版本。"
-  error_scm_command_failed: "访问版本库时å‘生错误:{{value}}"
+  error_scm_command_failed: "访问版本库时å‘生错误:%{value}"
   error_scm_annotate: "该æ¡ç›®ä¸å­˜åœ¨æˆ–无法追溯。"
   error_issue_not_found_in_project: '问题ä¸å­˜åœ¨æˆ–ä¸å±žäºŽæ­¤é¡¹ç›®'
   error_no_tracker_in_project: 该项目未设定跟踪标签,请检查项目é…置。
@@ -192,25 +192,25 @@
   error_workflow_copy_source: 请选择一个æºè·Ÿè¸ªæ ‡ç­¾æˆ–者角色
   error_workflow_copy_target: 请选择目标跟踪标签和角色
 
-  warning_attachments_not_saved: "{{count}} 个文件ä¿å­˜å¤±è´¥ã€‚"
+  warning_attachments_not_saved: "%{count} 个文件ä¿å­˜å¤±è´¥ã€‚"
   
-  mail_subject_lost_password: "您的 {{value}} 密ç "
+  mail_subject_lost_password: "您的 %{value} 密ç "
   mail_body_lost_password: '请点击以下链接æ¥ä¿®æ”¹æ‚¨çš„密ç ï¼š'
-  mail_subject_register: "{{value}}å¸å·æ¿€æ´»"
+  mail_subject_register: "%{value}å¸å·æ¿€æ´»"
   mail_body_register: 'è¯·ç‚¹å‡»ä»¥ä¸‹é“¾æŽ¥æ¥æ¿€æ´»æ‚¨çš„å¸å·ï¼š'
-  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨æ‚¨çš„ {{value}} å¸å·æ¥ç™»å½•。"
+  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨æ‚¨çš„ %{value} å¸å·æ¥ç™»å½•。"
   mail_body_account_information: 您的å¸å·ä¿¡æ¯
-  mail_subject_account_activation_request: "{{value}}å¸å·æ¿€æ´»è¯·æ±‚"
-  mail_body_account_activation_request: "新用户({{value}}ï¼‰å·²å®Œæˆæ³¨å†Œï¼Œæ­£åœ¨ç­‰å€™æ‚¨çš„审核:"
-  mail_subject_reminder: "{{count}} 个问题需è¦å°½å¿«è§£å†³ ({{days}})"
-  mail_body_reminder: "指派给您的 {{count}} 个问题需è¦åœ¨ {{days}} 天内完æˆï¼š"
-  mail_subject_wiki_content_added: "'{{id}}' wiki页é¢å·²æ·»åŠ "
-  mail_body_wiki_content_added: "'{{id}}' wiki页é¢å·²ç”± {{author}} 添加。"
-  mail_subject_wiki_content_updated: "'{{id}}' wiki页é¢å·²æ›´æ–°"
-  mail_body_wiki_content_updated: "'{{id}}' wiki页é¢å·²ç”± {{author}} 更新。"
+  mail_subject_account_activation_request: "%{value}å¸å·æ¿€æ´»è¯·æ±‚"
+  mail_body_account_activation_request: "新用户(%{value}ï¼‰å·²å®Œæˆæ³¨å†Œï¼Œæ­£åœ¨ç­‰å€™æ‚¨çš„审核:"
+  mail_subject_reminder: "%{count} 个问题需è¦å°½å¿«è§£å†³ (%{days})"
+  mail_body_reminder: "指派给您的 %{count} 个问题需è¦åœ¨ %{days} 天内完æˆï¼š"
+  mail_subject_wiki_content_added: "'%{id}' wiki页é¢å·²æ·»åŠ "
+  mail_body_wiki_content_added: "'%{id}' wiki页é¢å·²ç”± %{author} 添加。"
+  mail_subject_wiki_content_updated: "'%{id}' wiki页é¢å·²æ›´æ–°"
+  mail_body_wiki_content_updated: "'%{id}' wiki页é¢å·²ç”± %{author} 更新。"
 
   gui_validation_error: 1 个错误
-  gui_validation_error_plural: "{{count}} 个错误"
+  gui_validation_error_plural: "%{count} 个错误"
   
   field_name: åç§°
   field_description: æè¿°
@@ -272,6 +272,7 @@
   field_attr_lastname: å§“æ°å±žæ€§
   field_attr_mail: 邮件属性
   field_onthefly: 峿—¶ç”¨æˆ·ç”Ÿæˆ
+  field_start_date: 开始
   field_done_ratio: 完æˆåº¦
   field_auth_source: è®¤è¯æ¨¡å¼
   field_hide_mail: éšè—我的邮件地å€
@@ -427,14 +428,14 @@
   label_x_projects:
     zero:  无项目
     one:   1 个项目
-    other: "{{count}} 个项目"
+    other: "%{count} 个项目"
   label_project_all: 所有的项目
   label_project_latest: 最近的项目
   label_issue: 问题
   label_issue_new: 新建问题
   label_issue_plural: 问题
   label_issue_view_all: 查看所有问题
-  label_issues_by: "按 {{value}} 分组显示问题"
+  label_issues_by: "按 %{value} 分组显示问题"
   label_issue_added: 问题已添加
   label_issue_updated: 问题已更新
   label_document: 文档
@@ -483,7 +484,7 @@
   label_registered_on: 注册于
   label_activity: 活动
   label_overall_activity: 全部活动
-  label_user_activity: "{{value}} 的活动"
+  label_user_activity: "%{value} 的活动"
   label_new: 新建
   label_logged_as: 登录为
   label_environment: 环境
@@ -493,7 +494,7 @@
   label_auth_source_plural: è®¤è¯æ¨¡å¼
   label_subproject_plural: å­é¡¹ç›®
   label_subproject_new: 新建å­é¡¹ç›®
-  label_and_its_subprojects: "{{value}} åŠå…¶å­é¡¹ç›®"
+  label_and_its_subprojects: "%{value} åŠå…¶å­é¡¹ç›®"
   label_min_max_length: æœ€å° - 最大 长度
   label_list: 列表
   label_date: 日期
@@ -504,8 +505,8 @@
   label_text: 文本
   label_attribute: 属性
   label_attribute_plural: 属性
-  label_download: "{{count}} 次下载"
-  label_download_plural: "{{count}} 次下载"
+  label_download: "%{count} 次下载"
+  label_download_plural: "%{count} 次下载"
   label_no_data: 没有任何数æ®å¯ä¾›æ˜¾ç¤º
   label_change_status: å˜æ›´çжæ€
   label_history: 历å²è®°å½•
@@ -537,17 +538,17 @@
   label_closed_issues: 已关闭
   label_closed_issues_plural: 已关闭
   label_x_open_issues_abbr_on_total:
-    zero:  0 打开 / {{total}}
-    one:   1 打开 / {{total}}
-    other: "{{count}} 打开 / {{total}}"
+    zero:  0 打开 / %{total}
+    one:   1 打开 / %{total}
+    other: "%{count} 打开 / %{total}"
   label_x_open_issues_abbr:
     zero:  0 打开
     one:   1 打开
-    other: "{{count}} 打开"
+    other: "%{count} 打开"
   label_x_closed_issues_abbr:
     zero:  0 关闭
     one:   1 关闭
-    other: "{{count}} 关闭"
+    other: "%{count} 关闭"
   label_total: åˆè®¡
   label_permissions: æƒé™
   label_current_status: 当å‰çжæ€
@@ -565,7 +566,7 @@
   label_months_from: 个月以æ¥
   label_gantt: 甘特图
   label_internal: 内部
-  label_last_changes: "最近的 {{count}} æ¬¡å˜æ›´"
+  label_last_changes: "最近的 %{count} æ¬¡å˜æ›´"
   label_change_view_all: æŸ¥çœ‹æ‰€æœ‰å˜æ›´
   label_personalize_page: 个性化定制本页
   label_comment: 评论
@@ -573,7 +574,7 @@
   label_x_comments:
     zero: 无评论
     one: 1 æ¡è¯„论
-    other: "{{count}} æ¡è¯„论"
+    other: "%{count} æ¡è¯„论"
   label_comment_add: 添加评论
   label_comment_added: 评论已添加
   label_comment_delete: 删除评论
@@ -594,7 +595,7 @@
   label_yesterday: 昨天
   label_this_week: 本周
   label_last_week: 上周
-  label_last_n_days: "æœ€åŽ {{count}} 天"
+  label_last_n_days: "æœ€åŽ %{count} 天"
   label_this_month: 本月
   label_last_month: 上月
   label_this_year: 今年
@@ -608,13 +609,13 @@
   label_repository: 版本库
   label_repository_plural: 版本库
   label_browse: æµè§ˆ
-  label_modification: "{{count}} 个更新"
-  label_modification_plural: "{{count}} 个更新"
+  label_modification: "%{count} 个更新"
+  label_modification_plural: "%{count} 个更新"
   label_branch: 分支
   label_tag: 标签
   label_revision: 修订
   label_revision_plural: 修订
-  label_revision_id: 修订 {{value}}
+  label_revision_id: 修订 %{value}
   label_associated_revisions: 相关修订版本
   label_added: 已添加
   label_modified: 已修改
@@ -631,8 +632,8 @@
   label_sort_lower: 下移
   label_sort_lowest: 置底
   label_roadmap: 路线图
-  label_roadmap_due_in: "截止日期到  {{value}}"
-  label_roadmap_overdue: "{{value}} 延期"
+  label_roadmap_due_in: "截止日期到  %{value}"
+  label_roadmap_overdue: "%{value} 延期"
   label_roadmap_no_issues: 该版本没有问题
   label_search: æœç´¢
   label_result_plural: 结果
@@ -650,8 +651,8 @@
   label_changes_details: æ‰€æœ‰å˜æ›´çš„详情
   label_issue_tracking: 问题跟踪
   label_spent_time: 耗时
-  label_f_hour: "{{value}} å°æ—¶"
-  label_f_hour_plural: "{{value}} å°æ—¶"
+  label_f_hour: "%{value} å°æ—¶"
+  label_f_hour_plural: "%{value} å°æ—¶"
   label_time_tracking: 时间跟踪
   label_change_plural: å˜æ›´
   label_statistics: 统计
@@ -700,15 +701,15 @@
   label_date_from: 从
   label_date_to: 到
   label_language_based: æ ¹æ®ç”¨æˆ·çš„语言
-  label_sort_by: "æ ¹æ® {{value}} 排åº"
+  label_sort_by: "æ ¹æ® %{value} 排åº"
   label_send_test_email: å‘逿µ‹è¯•邮件
   label_feeds_access_key: RSSå­˜å–é”®
   label_missing_feeds_access_key: 缺少RSSå­˜å–é”®
-  label_feeds_access_key_created_on: "RSSå­˜å–键是在 {{value}} 之å‰å»ºç«‹çš„"
+  label_feeds_access_key_created_on: "RSSå­˜å–键是在 %{value} 之å‰å»ºç«‹çš„"
   label_module_plural: 模å—
-  label_added_time_by: "ç”± {{author}} 在 {{age}} 之剿·»åŠ "
-  label_updated_time: " 更新于 {{value}} 之å‰"
-  label_updated_time_by: "ç”± {{author}} 更新于 {{age}} 之å‰"
+  label_added_time_by: "ç”± %{author} 在 %{age} 之剿·»åŠ "
+  label_updated_time: " 更新于 %{value} 之å‰"
+  label_updated_time_by: "ç”± %{author} 更新于 %{age} 之å‰"
   label_jump_to_a_project: 选择一个项目...
   label_file_plural: 文件
   label_changeset_plural: å˜æ›´
@@ -724,7 +725,7 @@
   label_registration_activation_by_email: é€šè¿‡é‚®ä»¶è®¤è¯æ¿€æ´»å¸å·
   label_registration_manual_activation: 手动激活å¸å·
   label_registration_automatic_activation: 自动激活å¸å·
-  label_display_per_page: "æ¯é¡µæ˜¾ç¤ºï¼š{{value}}"
+  label_display_per_page: "æ¯é¡µæ˜¾ç¤ºï¼š%{value}"
   label_age: 年龄
   label_change_properties: 修改属性
   label_general: 一般
@@ -747,7 +748,7 @@
   label_sort: 排åº
   label_ascending: å‡åº
   label_descending: é™åº
-  label_date_from_to: 从 {{start}} 到 {{end}}
+  label_date_from_to: 从 %{start} 到 %{end}
   label_wiki_content_added: Wiki 页é¢å·²æ·»åŠ 
   label_wiki_content_updated: Wiki 页é¢å·²æ›´æ–°
   label_group: 组
@@ -766,7 +767,7 @@
   label_display_used_statuses_only: åªæ˜¾ç¤ºè¢«æ­¤è·Ÿè¸ªæ ‡ç­¾ä½¿ç”¨çš„状æ€
   label_api_access_key: API访问键
   label_missing_api_access_key: 缺少API访问键
-  label_api_access_key_created_on: API访问键是在 {{value}} 之å‰å»ºç«‹çš„
+  label_api_access_key_created_on: API访问键是在 %{value} 之å‰å»ºç«‹çš„
   
   button_login: 登录
   button_submit: æäº¤
@@ -826,53 +827,53 @@
   text_regexp_info: 例如:^[A-Z0-9]+$
   text_min_max_length_info: 0 表示没有é™åˆ¶
   text_project_destroy_confirmation: 您确信è¦åˆ é™¤è¿™ä¸ªé¡¹ç›®ä»¥åŠæ‰€æœ‰ç›¸å…³çš„æ•°æ®å—?
-  text_subprojects_destroy_warning: "以下å­é¡¹ç›®ä¹Ÿå°†è¢«åŒæ—¶åˆ é™¤ï¼š{{value}}"
+  text_subprojects_destroy_warning: "以下å­é¡¹ç›®ä¹Ÿå°†è¢«åŒæ—¶åˆ é™¤ï¼š%{value}"
   text_workflow_edit: 选择角色和跟踪标签æ¥ç¼–辑工作æµç¨‹
   text_are_you_sure: 您确定?
-  text_journal_changed: "{{label}} 从 {{old}} å˜æ›´ä¸º {{new}}"
-  text_journal_set_to: "{{label}} 被设置为 {{value}}"
-  text_journal_deleted: "{{label}} 已删除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} 已添加"
+  text_journal_changed: "%{label} 从 %{old} å˜æ›´ä¸º %{new}"
+  text_journal_set_to: "%{label} 被设置为 %{value}"
+  text_journal_deleted: "%{label} 已删除 (%{old})"
+  text_journal_added: "%{label} %{value} 已添加"
   text_tip_issue_begin_day: 今天开始的任务
   text_tip_issue_end_day: 今天结æŸçš„任务
   text_tip_issue_begin_end_day: 今天开始并结æŸçš„任务
   text_project_identifier_info: 'åªå…许使用å°å†™å­—æ¯ï¼ˆa-z),数字和连字符(-)。<br />请注æ„,标识符ä¿å­˜åŽå°†ä¸å¯ä¿®æ”¹ã€‚'
-  text_caracters_maximum: "最多 {{count}} 个字符。"
-  text_caracters_minimum: "è‡³å°‘éœ€è¦ {{count}} 个字符。"
-  text_length_between: "长度必须在 {{min}} 到 {{max}} 个字符之间。"
+  text_caracters_maximum: "最多 %{count} 个字符。"
+  text_caracters_minimum: "è‡³å°‘éœ€è¦ %{count} 个字符。"
+  text_length_between: "长度必须在 %{min} 到 %{max} 个字符之间。"
   text_tracker_no_workflow: 此跟踪标签未定义工作æµç¨‹
   text_unallowed_characters: éžæ³•字符
   text_comma_separated: å¯ä»¥ä½¿ç”¨å¤šä¸ªå€¼ï¼ˆç”¨é€—å·,分开)。
   text_line_separated: å¯ä»¥ä½¿ç”¨å¤šä¸ªå€¼ï¼ˆæ¯è¡Œä¸€ä¸ªå€¼ï¼‰ã€‚
   text_issues_ref_in_commit_messages: 在æäº¤ä¿¡æ¯ä¸­å¼•用和解决问题
-  text_issue_added: "问题 {{id}} 已由 {{author}} æäº¤ã€‚"
-  text_issue_updated: "问题 {{id}} 已由 {{author}} 更新。"
+  text_issue_added: "问题 %{id} 已由 %{author} æäº¤ã€‚"
+  text_issue_updated: "问题 %{id} 已由 %{author} 更新。"
   text_wiki_destroy_confirmation: 您确定è¦åˆ é™¤è¿™ä¸ª wiki åŠå…¶æ‰€æœ‰å†…容å—?
-  text_issue_category_destroy_question: "有一些问题({{count}} ä¸ªï¼‰å±žäºŽæ­¤ç±»åˆ«ã€‚æ‚¨æƒ³è¿›è¡Œå“ªç§æ“作?"
+  text_issue_category_destroy_question: "有一些问题(%{count} ä¸ªï¼‰å±žäºŽæ­¤ç±»åˆ«ã€‚æ‚¨æƒ³è¿›è¡Œå“ªç§æ“作?"
   text_issue_category_destroy_assignments: 删除问题的所属类别(问题å˜ä¸ºæ— ç±»åˆ«ï¼‰
   text_issue_category_reassign_to: 为问题选择其它类别
   text_user_mail_option: "对于没有选中的项目,您将åªä¼šæ”¶åˆ°æ‚¨è·Ÿè¸ªæˆ–å‚与的项目的通知(比如说,您是问题的报告者, 或被指派解决此问题)。"
   text_no_configuration_data: "角色ã€è·Ÿè¸ªæ ‡ç­¾ã€é—®é¢˜çжæ€å’Œå·¥ä½œæµç¨‹è¿˜æ²¡æœ‰è®¾ç½®ã€‚\n强烈建议您先载入默认设置,然åŽåœ¨æ­¤åŸºç¡€ä¸Šè¿›è¡Œä¿®æ”¹ã€‚"
   text_load_default_configuration: 载入默认设置
-  text_status_changed_by_changeset: "å·²åº”ç”¨åˆ°å˜æ›´åˆ—表 {{value}}."
+  text_status_changed_by_changeset: "å·²åº”ç”¨åˆ°å˜æ›´åˆ—表 %{value}."
   text_issues_destroy_confirmation: '您确定è¦åˆ é™¤é€‰ä¸­çš„问题å—?'
   text_select_project_modules: '请选择此项目å¯ä»¥ä½¿ç”¨çš„æ¨¡å—:'
   text_default_administrator_account_changed: 默认的管ç†å‘˜å¸å·å·²æ”¹å˜
   text_file_repository_writable: 附件路径å¯å†™
   text_plugin_assets_writable: æ’件的附件路径å¯å†™
   text_rmagick_available: RMagick å¯ç”¨ï¼ˆå¯é€‰çš„)
-  text_destroy_time_entries_question: 您è¦åˆ é™¤çš„问题已ç»ä¸ŠæŠ¥äº† {{hours}} å°æ—¶çš„工作é‡ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
+  text_destroy_time_entries_question: 您è¦åˆ é™¤çš„问题已ç»ä¸ŠæŠ¥äº† %{hours} å°æ—¶çš„工作é‡ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
   text_destroy_time_entries: 删除上报的工作é‡
   text_assign_time_entries_to_project: å°†å·²ä¸ŠæŠ¥çš„å·¥ä½œé‡æäº¤åˆ°é¡¹ç›®ä¸­
   text_reassign_time_entries: 'å°†å·²ä¸ŠæŠ¥çš„å·¥ä½œé‡æŒ‡å®šåˆ°æ­¤é—®é¢˜ï¼š'
-  text_user_wrote: "{{value}} 写到:"
+  text_user_wrote: "%{value} 写到:"
   text_enumeration_category_reassign_to: '将它们关è”到新的枚举值:'
-  text_enumeration_destroy_question: "{{count}} 个对象被关è”到了这个枚举值。"
+  text_enumeration_destroy_question: "%{count} 个对象被关è”到了这个枚举值。"
   text_email_delivery_not_configured: "邮件傿•°å°šæœªé…置,因此邮件通知功能已被ç¦ç”¨ã€‚\n请在config/email.yml中é…置您的SMTPæœåŠ¡å™¨ä¿¡æ¯å¹¶é‡æ–°å¯åŠ¨ä»¥ä½¿å…¶ç”Ÿæ•ˆã€‚"
   text_repository_usernames_mapping: "选择或更新与版本库中的用户å对应的Redmine用户。\n版本库中与Redmine中的åŒå用户将被自动对应。"
   text_diff_truncated: '... å·®åˆ«å†…å®¹è¶…è¿‡äº†å¯æ˜¾ç¤ºçš„æœ€å¤§è¡Œæ•°å¹¶å·²è¢«æˆªæ–­'
   text_custom_field_possible_values_info: 'æ¯é¡¹æ•°å€¼ä¸€è¡Œ'
-  text_wiki_page_destroy_question: æ­¤é¡µé¢æœ‰ {{descendants}} 个å­é¡µé¢å’Œä¸‹çº§é¡µé¢ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
+  text_wiki_page_destroy_question: æ­¤é¡µé¢æœ‰ %{descendants} 个å­é¡µé¢å’Œä¸‹çº§é¡µé¢ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
   text_wiki_page_reassign_children: å°†å­é¡µé¢çš„上级页é¢è®¾ç½®ä¸º
   text_wiki_page_nullify_children: å°†å­é¡µé¢ä¿ç•™ä¸ºæ ¹é¡µé¢
   text_wiki_page_destroy_children: 删除å­é¡µé¢åŠå…¶æ‰€æœ‰ä¸‹çº§é¡µé¢
@@ -916,12 +917,12 @@
   label_subtask_plural: å­ä»»åŠ¡
   label_project_copy_notifications: å¤åˆ¶é¡¹ç›®æ—¶å‘é€é‚®ä»¶é€šçŸ¥
   error_can_not_delete_custom_field: ä¸èƒ½åˆ é™¤è‡ªå®šä¹‰å±žæ€§
-  error_unable_to_connect: ä¸èƒ½è¿žæŽ¥åˆ° ({{value}})
+  error_unable_to_connect: ä¸èƒ½è¿žæŽ¥åˆ° (%{value})
   error_can_not_remove_role: 该角色正在使用中, ä¸èƒ½åˆ é™¤.
   error_can_not_delete_tracker: 该跟踪标签包å«é—®é¢˜, ä¸èƒ½åˆ é™¤.
   field_principal: 用户/用户组
   label_my_page_block: æˆ‘çš„å·¥ä½œå°æ¨¡å—
-  notice_failed_to_save_members: "æˆå‘˜ä¿å­˜å¤±è´¥ï¼š{{errors}}。"
+  notice_failed_to_save_members: "æˆå‘˜ä¿å­˜å¤±è´¥ï¼š%{errors}。"
   text_zoom_out: 缩å°
   text_zoom_in: 放大
   notice_unable_delete_time_entry: 无法删除工时记录。
@@ -929,7 +930,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -940,8 +941,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/bg.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/bg.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "по-малко от 1 Ñекунда"
-        other: "по-малко от {{count}} Ñекунди"
+        other: "по-малко от %{count} Ñекунди"
       x_seconds:
         one:   "1 Ñекунда"
-        other: "{{count}} Ñекунди"
+        other: "%{count} Ñекунди"
       less_than_x_minutes:
         one:   "по-малко от 1 минута"
-        other: "по-малко от {{count}} минути"
+        other: "по-малко от %{count} минути"
       x_minutes:
         one:   "1 минута"
-        other: "{{count}} минути"
+        other: "%{count} минути"
       about_x_hours:
         one:   "около 1 чаÑ"
-        other: "около {{count}} чаÑа"
+        other: "около %{count} чаÑа"
       x_days:
         one:   "1 ден"
-        other: "{{count}} дена"
+        other: "%{count} дена"
       about_x_months:
         one:   "около 1 меÑец"
-        other: "около {{count}} меÑеца"
+        other: "около %{count} меÑеца"
       x_months:
         one:   "1 меÑец"
-        other: "{{count}} меÑеца"
+        other: "%{count} меÑеца"
       about_x_years:
         one:   "около 1 година"
-        other: "около {{count}} години"
+        other: "около %{count} години"
       over_x_years:
         one:   "над 1 година"
-        other: "над {{count}} години"
+        other: "над %{count} години"
       almost_x_years:
         one:   "почти 1 година"
-        other: "почти {{count}} години"
+        other: "почти %{count} години"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "не ÑъщеÑтвува в ÑпиÑъка"
         exclusion: "е запазено"
@@ -106,11 +110,11 @@
         taken: "вече ÑъщеÑтвува"
         not_a_number: "не е чиÑло"
         not_a_date: "е невалидна дата"
-        greater_than: "трÑбва да бъде по-голÑм[a/о] от {{count}}"
-        greater_than_or_equal_to: "трÑбва да бъде по-голÑм[a/о] от или равен[a/o] на {{count}}"
-        equal_to: "трÑбва да бъде равен[a/o] на {{count}}"
-        less_than: "трÑбва да бъде по-малък[a/o] от {{count}}"
-        less_than_or_equal_to: "трÑбва да бъде по-малък[a/o] от или равен[a/o] на {{count}}"
+        greater_than: "трÑбва да бъде по-голÑм[a/о] от %{count}"
+        greater_than_or_equal_to: "трÑбва да бъде по-голÑм[a/о] от или равен[a/o] на %{count}"
+        equal_to: "трÑбва да бъде равен[a/o] на %{count}"
+        less_than: "трÑбва да бъде по-малък[a/o] от %{count}"
+        less_than_or_equal_to: "трÑбва да бъде по-малък[a/o] от или равен[a/o] на %{count}"
         odd: "трÑбва да бъде нечетен[a/o]"
         even: "трÑбва да бъде четен[a/o]"
         greater_than_start_date: "трÑбва да е Ñлед началната дата"
@@ -123,7 +127,7 @@
   general_text_Yes: 'Да'
   general_text_no: 'не'
   general_text_yes: 'да'
-  general_lang_name: 'Bulgarian'
+  general_lang_name: 'Bulgarian (БългарÑки)'
   general_csv_separator: ','
   general_csv_decimal_separator: '.'
   general_csv_encoding: UTF-8
@@ -146,20 +150,20 @@
   notice_file_not_found: ÐеÑъщеÑтвуваща или премеÑтена Ñтраница.
   notice_locking_conflict: Друг потребител Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñ‚ÐµÐ·Ð¸ данни в момента.
   notice_not_authorized: ÐÑмате право на доÑтъп до тази Ñтраница.
-  notice_email_sent: "Изпратен e-mail на {{value}}"
-  notice_email_error: "Грешка при изпращане на e-mail ({{value}})"
+  notice_email_sent: "Изпратен e-mail на %{value}"
+  notice_email_error: "Грешка при изпращане на e-mail (%{value})"
   notice_feeds_access_key_reseted: Ð’Ð°ÑˆÐ¸Ñ ÐºÐ»ÑŽÑ‡ за RSS доÑтъп беше променен.
   
   error_scm_not_found: ÐеÑъщеÑтвуващ обект в хранилището.
-  error_scm_command_failed: "Грешка при опит за ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ: {{value}}"
+  error_scm_command_failed: "Грешка при опит за ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ: %{value}"
   
-  mail_subject_lost_password: "Вашата парола ({{value}})"
+  mail_subject_lost_password: "Вашата парола (%{value})"
   mail_body_lost_password: 'За да Ñмените паролата Ñи, използвайте ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº:'
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° профил ({{value}})"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° профил (%{value})"
   mail_body_register: 'За да активирате профила Ñи използвайте ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº:'
   
   gui_validation_error: 1 грешка
-  gui_validation_error_plural: "{{count}} грешки"
+  gui_validation_error_plural: "%{count} грешки"
   
   field_name: Име
   field_description: ОпиÑание
@@ -270,7 +274,7 @@
   label_x_projects:
     zero:  0 проекти
     one:   1 проект
-    other: "{{count}} проекта"
+    other: "%{count} проекта"
   label_project_all: Ð’Ñички проекти
   label_project_latest: ПоÑледни проекти
   label_issue: Задача
@@ -321,7 +325,7 @@
   label_registered_on: РегиÑтрациÑ
   label_activity: ДейноÑÑ‚
   label_new: Ðов
-  label_logged_as: ВлÑзъл като
+  label_logged_as: Здравейте,
   label_environment: Среда
   label_authentication: ОторизациÑ
   label_auth_source: Ðачин на оторозациÑ
@@ -337,8 +341,8 @@
   label_text: Дълъг текÑÑ‚
   label_attribute: Ðтрибут
   label_attribute_plural: Ðтрибути
-  label_download: "{{count}} изтеглÑне"
-  label_download_plural: "{{count}} изтеглÑниÑ"
+  label_download: "%{count} изтеглÑне"
+  label_download_plural: "%{count} изтеглÑниÑ"
   label_no_data: ÐÑма изходни данни
   label_change_status: ПромÑна на ÑÑŠÑтоÑнието
   label_history: ИÑториÑ
@@ -367,17 +371,17 @@
   label_closed_issues: затворена
   label_closed_issues_plural: затворени
   label_x_open_issues_abbr_on_total:
-    zero:  0 отворени / {{total}}
-    one:   1 отворена / {{total}}
-    other: "{{count}} отворени / {{total}}"
+    zero:  0 отворени / %{total}
+    one:   1 отворена / %{total}
+    other: "%{count} отворени / %{total}"
   label_x_open_issues_abbr:
     zero:  0 отворени
     one:   1 отворена
-    other: "{{count}} отворени"
+    other: "%{count} отворени"
   label_x_closed_issues_abbr:
     zero:  0 затворени
     one:   1 затворена
-    other: "{{count}} затворени"
+    other: "%{count} затворени"
   label_total: Общо
   label_permissions: Права
   label_current_status: Текущо ÑÑŠÑтоÑние
@@ -394,7 +398,7 @@
   label_months_from: меÑеца от
   label_gantt: Мрежов график
   label_internal: Вътрешен
-  label_last_changes: "поÑледни {{count}} промени"
+  label_last_changes: "поÑледни %{count} промени"
   label_change_view_all: Виж вÑички промени
   label_personalize_page: ПерÑонализиране
   label_comment: Коментар
@@ -402,7 +406,7 @@
   label_x_comments:
     zero: 0 коментари
     one: 1 коментар
-    other: "{{count}} коментари"
+    other: "%{count} коментари"
   label_comment_add: ДобавÑне на коментар
   label_comment_added: Добавен коментар
   label_comment_delete: Изтриване на коментари
@@ -426,8 +430,8 @@
   label_day_plural: дни
   label_repository: Хранилище
   label_browse: Разглеждане
-  label_modification: "{{count}} промÑна"
-  label_modification_plural: "{{count}} промени"
+  label_modification: "%{count} промÑна"
+  label_modification_plural: "%{count} промени"
   label_revision: РевизиÑ
   label_revision_plural: Ревизии
   label_added: добавено
@@ -442,8 +446,8 @@
   label_sort_lower: ПремеÑти по-долу
   label_sort_lowest: ПремеÑти най-долу
   label_roadmap: Пътна карта
-  label_roadmap_due_in: "Излиза Ñлед {{value}}"
-  label_roadmap_overdue: "{{value}} закъÑнение"
+  label_roadmap_due_in: "Излиза Ñлед %{value}"
+  label_roadmap_overdue: "%{value} закъÑнение"
   label_roadmap_no_issues: ÐÑма задачи за тази верÑиÑ
   label_search: ТърÑене
   label_result_plural: Pезултати
@@ -461,8 +465,8 @@
   label_changes_details: Подробни промени
   label_issue_tracking: Тракинг
   label_spent_time: Отделено време
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑа"
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑа"
   label_time_tracking: ОтделÑне на време
   label_change_plural: Промени
   label_statistics: СтатиÑтики
@@ -509,12 +513,12 @@
   label_date_from: От
   label_date_to: До
   label_language_based: Ð’ завиÑимоÑÑ‚ от езика
-  label_sort_by: "Сортиране по {{value}}"
+  label_sort_by: "Сортиране по %{value}"
   label_send_test_email: Изпращане на теÑтов e-mail
-  label_feeds_access_key_created_on: "{{value}} от Ñъздаването на RSS ключа"
+  label_feeds_access_key_created_on: "%{value} от Ñъздаването на RSS ключа"
   label_module_plural: Модули
-  label_added_time_by: "Публикувана от {{author}} преди {{age}}"
-  label_updated_time: "Обновена преди {{value}}"
+  label_added_time_by: "Публикувана от %{author} преди %{age}"
+  label_updated_time: "Обновена преди %{value}"
   label_jump_to_a_project: Проект...
   
   button_login: Вход
@@ -564,16 +568,16 @@
   text_tip_task_end_day: задача завършваща този ден
   text_tip_task_begin_end_day: задача започваща и завършваща този ден
   text_project_identifier_info: 'Позволени Ñа малки букви (a-z), цифри и тирета.<br />Ðевъзможна промÑна Ñлед запиÑ.'
-  text_caracters_maximum: "До {{count}} Ñимвола."
-  text_length_between: "От {{min}} до {{max}} Ñимвола."
+  text_caracters_maximum: "До %{count} Ñимвола."
+  text_length_between: "От %{min} до %{max} Ñимвола."
   text_tracker_no_workflow: ÐÑма дефиниран работен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° този тракер
   text_unallowed_characters: Ðепозволени Ñимволи
   text_comma_separated: Позволено е изброÑване (Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ» запетаÑ).
   text_issues_ref_in_commit_messages: ОтбелÑзване и приключване на задачи от ревизии
-  text_issue_added: "Публикувана е нова задача Ñ Ð½Ð¾Ð¼ÐµÑ€ {{id}} (от {{author}})."
-  text_issue_updated: "Задача {{id}} е обновена (от {{author}})."
+  text_issue_added: "Публикувана е нова задача Ñ Ð½Ð¾Ð¼ÐµÑ€ %{id} (от %{author})."
+  text_issue_updated: "Задача %{id} е обновена (от %{author})."
   text_wiki_destroy_confirmation: Сигурни ли Ñте, че иÑкате да изтриете това Wiki и цÑлото му Ñъдържание?
-  text_issue_category_destroy_question: "Има задачи ({{count}}) обвързани Ñ Ñ‚Ð°Ð·Ð¸ категориÑ. Какво ще изберете?"
+  text_issue_category_destroy_question: "Има задачи (%{count}) обвързани Ñ Ñ‚Ð°Ð·Ð¸ категориÑ. Какво ще изберете?"
   text_issue_category_destroy_assignments: Премахване на връзките Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñта
   text_issue_category_reassign_to: Преобвързване Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ
   
@@ -611,7 +615,7 @@
   notice_no_issue_selected: "ÐÑма избрани задачи."
   label_bulk_edit_selected_issues: Редактиране на задачи
   label_no_change_option: (Без промÑна)
-  notice_failed_to_save_issues: "ÐеуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° {{count}} задачи от {{total}} избрани: {{ids}}."
+  notice_failed_to_save_issues: "ÐеуÑпешен Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° %{count} задачи от %{total} избрани: %{ids}."
   label_theme: Тема
   label_default: По подразбиране
   label_search_titles_only: Само в заглавиÑта
@@ -624,37 +628,37 @@
   setting_emails_footer: ПодтекÑÑ‚ за e-mail
   label_float: Дробно
   button_copy: Копиране
-  mail_body_account_information_external: "Можете да използвате Ð²Ð°ÑˆÐ¸Ñ {{value}} профил за вход."
+  mail_body_account_information_external: "Можете да използвате Ð²Ð°ÑˆÐ¸Ñ %{value} профил за вход."
   mail_body_account_information: ИнформациÑта за профила ви
   setting_protocol: Протокол
   label_user_mail_no_self_notified: "Ðе иÑкам извеÑÑ‚Ð¸Ñ Ð·Ð° извършени от мен промени"
   setting_time_format: Формат на чаÑа
   label_registration_activation_by_email: активиране на профила по email
-  mail_subject_account_activation_request: "ЗаÑвка за активиране на профил в {{value}}"
-  mail_body_account_activation_request: "Има новорегиÑтриран потребител ({{value}}), очакващ вашето одобрение:"
+  mail_subject_account_activation_request: "ЗаÑвка за активиране на профил в %{value}"
+  mail_body_account_activation_request: "Има новорегиÑтриран потребител (%{value}), очакващ вашето одобрение:"
   label_registration_automatic_activation: автоматично активиране
   label_registration_manual_activation: ръчно активиране
   notice_account_pending: "Профилът Ви е Ñъздаден и очаква одобрение от админиÑтратор."
   field_time_zone: ЧаÑова зона
-  text_caracters_minimum: "Минимум {{count}} Ñимвола."
+  text_caracters_minimum: "Минимум %{count} Ñимвола."
   setting_bcc_recipients: Получатели на Ñкрито копие (bcc)
   button_annotate: ÐнотациÑ
-  label_issues_by: "Задачи по {{value}}"
+  label_issues_by: "Задачи по %{value}"
   field_searchable: С възможноÑÑ‚ за търÑене
-  label_display_per_page: "Ðа Ñтраница по: {{value}}"
+  label_display_per_page: "Ðа Ñтраница по: %{value}"
   setting_per_page_options: Опции за Ñтраниране
   label_age: ВъзраÑÑ‚
   notice_default_data_loaded: Примерната информациÑта е уÑпешно заредена.
   text_load_default_configuration: Зареждане на примерна информациÑ
   text_no_configuration_data: "Ð’Ñе още не Ñа конфигурирани Роли, тракери, ÑÑŠÑтоÑÐ½Ð¸Ñ Ð½Ð° задачи и работен процеÑ.\nСтрого Ñе препоръчва зареждането на примерната информациÑ. Веднъж заредена ще имате възможноÑÑ‚ да Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ñ‚Ðµ."
-  error_can_t_load_default_data: "Грешка при зареждане на примерната информациÑ: {{value}}"
+  error_can_t_load_default_data: "Грешка при зареждане на примерната информациÑ: %{value}"
   button_update: ОбновÑване
   label_change_properties: ПромÑна на наÑтройки
   label_general: ОÑновни
   label_repository_plural: Хранилища
   label_associated_revisions: ÐÑоциирани ревизии
   setting_user_format: ПотребителÑки формат
-  text_status_changed_by_changeset: "Приложено Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}."
+  text_status_changed_by_changeset: "Приложено Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}."
   label_more: Още
   text_issues_destroy_confirmation: 'Сигурни ли Ñте, че иÑкате да изтриете избраните задачи?'
   label_scm: SCM (СиÑтема за контрол на кода)
@@ -681,7 +685,7 @@
   label_ldap_authentication: LDAP оторизациÑ
   label_downloads_abbr: D/L
   label_this_month: Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¼ÐµÑец
-  label_last_n_days: "поÑледните {{count}} дни"
+  label_last_n_days: "поÑледните %{count} дни"
   label_all_time: вÑички
   label_this_year: текущата година
   label_date_range: Период
@@ -690,7 +694,7 @@
   label_last_month: поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼ÐµÑец
   label_add_another_file: ДобавÑне на друг файл
   label_optional_description: Ðезадължително опиÑание
-  text_destroy_time_entries_question: "{{hours}} чаÑа Ñа отделени на задачите, които иÑкате да изтриете. Какво избирате?"
+  text_destroy_time_entries_question: "%{hours} чаÑа Ñа отделени на задачите, които иÑкате да изтриете. Какво избирате?"
   error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
   text_assign_time_entries_to_project: ПрехвърлÑне на отделеното време към проект
   text_destroy_time_entries: Изтриване на отделеното време
@@ -705,15 +709,15 @@
   setting_default_projects_public: Ðовите проекти Ñа публични по подразбиране
   error_scm_annotate: "Обектът не ÑъщеÑтвува или не може да бъде анотиран."
   label_planning: Планиране
-  text_subprojects_destroy_warning: "Ðеговите подпроекти: {{value}} Ñъщо ще бъдат изтрити."
-  label_and_its_subprojects: "{{value}} и неговите подпроекти"
-  mail_body_reminder: "{{count}} задачи, назначени на Ð²Ð°Ñ Ñа Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок в Ñледващите {{days}} дни:"
-  mail_subject_reminder: "{{count}} задачи Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок Ñ Ñледващите {{days}} дни"
-  text_user_wrote: "{{value}} напиÑа:"
+  text_subprojects_destroy_warning: "Ðеговите подпроекти: %{value} Ñъщо ще бъдат изтрити."
+  label_and_its_subprojects: "%{value} и неговите подпроекти"
+  mail_body_reminder: "%{count} задачи, назначени на Ð²Ð°Ñ Ñа Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок в Ñледващите %{days} дни:"
+  mail_subject_reminder: "%{count} задачи Ñ ÐºÑ€Ð°ÐµÐ½ Ñрок Ñ Ñледващите %{days} дни"
+  text_user_wrote: "%{value} напиÑа:"
   label_duplicated_by: дублирана от
   setting_enabled_scm: Разрешена SCM
   text_enumeration_category_reassign_to: 'ПреÑвържете ги към тази ÑтойноÑÑ‚:'
-  text_enumeration_destroy_question: "{{count}} обекта Ñа Ñвързани Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚."
+  text_enumeration_destroy_question: "%{count} обекта Ñа Ñвързани Ñ Ñ‚Ð°Ð·Ð¸ ÑтойноÑÑ‚."
   label_incoming_emails: ВходÑщи e-mail-и
   label_generate_key: Генериране на ключ
   setting_mail_handler_api_enabled: Разрешаване на WS за входÑщи e-mail-и
@@ -725,8 +729,8 @@
   button_quote: Цитат
   setting_sequential_project_identifiers: Генериране на поÑледователни проектни идентификатори
   notice_unable_delete_version: ÐевъзможноÑÑ‚ за изтриване на верÑиÑ
-  label_renamed: преименуван
-  label_copied: копиран
+  label_renamed: преименувано
+  label_copied: копирано
   setting_plain_text_mail: Ñамо чиÑÑ‚ текÑÑ‚ (без HTML)
   permission_view_files: Разглеждане на файлове
   permission_edit_issues: Редактиране на задачи
@@ -779,12 +783,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Редактиране на ÑобÑтвени ÑъобщениÑ
   permission_delete_own_messages: Изтриване на ÑобÑтвени ÑъобщениÑ
-  label_user_activity: "ÐктивноÑÑ‚ на {{value}}"
-  label_updated_time_by: "Обновена от {{author}} преди {{age}}"
+  label_user_activity: "ÐктивноÑÑ‚ на %{value}"
+  label_updated_time_by: "Обновена от %{author} преди %{age}"
   text_diff_truncated: '... Този diff не е пълен, понеже е Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€, който може да бъде показан.'
   setting_diff_max_lines_displayed: МакÑимален брой показани diff редове
   text_plugin_assets_writable: Папката на приÑтавките е разрешена за запиÑ
-  warning_attachments_not_saved: "{{count}} файла не бÑха запиÑани."
+  warning_attachments_not_saved: "%{count} файла не бÑха запиÑани."
   button_create_and_continue: Създаване и продължаване
   text_custom_field_possible_values_info: 'Една ÑтойноÑÑ‚ на ред'
   label_display: Display
@@ -799,21 +803,21 @@
   label_descending: ÐамалÑващ
   label_sort: Сортиране
   label_ascending: ÐараÑтващ
-  label_date_from_to: От {{start}} до {{end}}
+  label_date_from_to: От %{start} до %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Тази Ñтраница има {{descendants}} Ñтраници деца и descendant(s). Какво желаете да правите?
+  text_wiki_page_destroy_question: Тази Ñтраница има %{descendants} Ñтраници деца и descendant(s). Какво желаете да правите?
   text_wiki_page_reassign_children: Преназначаване на Ñтраниците деца на тази родителÑка Ñтраница
   text_wiki_page_nullify_children: Запазване на тези Ñтраници като коренни Ñтраници
   text_wiki_page_destroy_children: Изтриване на Ñтраниците деца и вÑички техни descendants
   setting_password_min_length: Минимална дължина на парола
   field_group_by: Групиране на резултатите по
-  mail_subject_wiki_content_updated: "Wiki Ñтраницата '{{id}}' не беше обновена"
+  mail_subject_wiki_content_updated: "Wiki Ñтраницата '%{id}' не беше обновена"
   label_wiki_content_added: Wiki Ñтраница беше добавена
-  mail_subject_wiki_content_added: "Wiki Ñтраницата '{{id}}' беше добавена"
-  mail_body_wiki_content_added: Wiki Ñтраницата '{{id}}' беше добавена от {{author}}.
+  mail_subject_wiki_content_added: "Wiki Ñтраницата '%{id}' беше добавена"
+  mail_body_wiki_content_added: Wiki Ñтраницата '%{id}' беше добавена от %{author}.
   label_wiki_content_updated: Wiki Ñтраница беше обновена
-  mail_body_wiki_content_updated: Wiki Ñтраницата '{{id}}' беше обновена от {{author}}.
+  mail_body_wiki_content_updated: Wiki Ñтраницата '%{id}' беше обновена от %{author}.
   permission_add_project: Създаване на проект
   setting_new_project_user_role_id: РолÑ, давана на потребител, Ñъздаващ проекти, който не е админиÑтратор
   label_view_all_revisions: Разглеждане на вÑички ревизии
@@ -821,14 +825,14 @@
   label_branch: работен вариант
   error_no_tracker_in_project: ÐÑма аÑоциирани тракери Ñ Ñ‚Ð¾Ð·Ð¸ проект. Проверете наÑтройките на проекта.
   error_no_default_issue_status: ÐÑма уÑтановено подразбиращо Ñе ÑÑŠÑтоÑние за задачите. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ вашата ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ (Вижте "ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ -> СъÑтоÑÐ½Ð¸Ñ Ð½Ð° задачи").
-  text_journal_changed: "{{label}} променен от {{old}} на {{new}}"
-  text_journal_set_to: "{{label}} уÑтановен на {{value}}"
-  text_journal_deleted: "{{label}} изтрит ({{old}})"
+  text_journal_changed: "%{label} променен от %{old} на %{new}"
+  text_journal_set_to: "%{label} уÑтановен на %{value}"
+  text_journal_deleted: "%{label} изтрит (%{old})"
   label_group_plural: Групи
   label_group: Група
   label_group_new: Ðова група
   label_time_entry_plural: Използвано време
-  text_journal_added: "Добавено {{label}} {{value}}"
+  text_journal_added: "Добавено %{label} %{value}"
   field_active: Ðктивен
   enumeration_system_activity: СиÑтемна активноÑÑ‚
   permission_delete_issue_watchers: Изтриване на наблюдатели
@@ -850,11 +854,11 @@
   button_duplicate: Дублиране
   button_copy_and_follow: Копиране и продължаване
   label_copy_source: Източник
-  setting_issue_done_ratio: ИзчиÑление на процента на готово задачи Ñ
-  setting_issue_done_ratio_issue_status: Използване на ÑÑŠÑтоÑниетона задачите
+  setting_issue_done_ratio: ИзчиÑление на процента на готови задачи Ñ
+  setting_issue_done_ratio_issue_status: Използване на ÑÑŠÑтоÑнието на задачите
   error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
   error_workflow_copy_target: ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ тракер(и) и Ñ€Ð¾Ð»Ñ (роли).
-  setting_issue_done_ratio_issue_field: Използване на поле 'задача'
+  setting_issue_done_ratio_issue_field: Използване на поле '% ПрогреÑ'
   label_copy_same_as_target: Също като целта
   label_copy_target: Цел
   notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
@@ -863,9 +867,9 @@
   setting_start_of_week: Първи ден на Ñедмицата
   permission_view_issues: Разглеждане на задачите
   label_display_used_statuses_only: Показване Ñамо на ÑÑŠÑтоÑниÑта, използвани от този тракер
-  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}
+  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}
   label_api_access_key: API ключ за доÑтъп
-  label_api_access_key_created_on: API ключ за доÑтъп е Ñъздаден преди {{value}}
+  label_api_access_key_created_on: API ключ за доÑтъп е Ñъздаден преди %{value}
   label_feeds_access_key: RSS access ключ
   notice_api_access_key_reseted: ВашиÑÑ‚ API ключ за доÑтъп беше изчиÑтен.
   setting_rest_api_enabled: Разрешаване на REST web ÑървиÑ
@@ -892,34 +896,39 @@
   label_subtask_plural: Подзадачи
   label_project_copy_notifications: Изпращане на Send e-mail извеÑÑ‚Ð¸Ñ Ð¿Ð¾ време на копирането на проекта
   error_can_not_delete_custom_field: ÐевъзможноÑÑ‚ за изтриване на потребителÑко поле
-  error_unable_to_connect: ÐевъзможноÑÑ‚ за Ñвързване Ñ ({{value}})
+  error_unable_to_connect: ÐевъзможноÑÑ‚ за Ñвързване Ñ (%{value})
   error_can_not_remove_role: Тази Ñ€Ð¾Ð»Ñ Ñе използва и не може да бъде изтрита.
   error_can_not_delete_tracker: Този тракер Ñъдържа задачи и не може да бъде изтрит.
   field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "ÐевъзможноÑÑ‚ за Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° член(ове): {{errors}}."
+  label_my_page_block: Блокове в личната Ñтраница
+  notice_failed_to_save_members: "ÐевъзможноÑÑ‚ за Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° член(ове): %{errors}."
   text_zoom_out: ÐамалÑване
   text_zoom_in: Увеличаване
   notice_unable_delete_time_entry: ÐевъзможноÑÑ‚ за изтриване на Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° time log.
   label_overall_spent_time: Общо употребено време
   field_time_entries: Log time
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  text_tip_issue_end_day: issue ending this day
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  field_member_of_group: Assignee's group
-  project_module_gantt: Gantt
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  text_tip_issue_begin_end_day: issue beginning and ending this day
-  setting_default_notification_option: Default notification option
-  project_module_calendar: Calendar
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  text_tip_issue_begin_day: issue beginning this day
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  notice_not_authorized_archived_project: Проектът, който Ñе опитвате да видите е архивиран.
+  text_tip_issue_end_day: задача, завършваща този ден
+  field_text: ТекÑтово поле
+  label_user_mail_option_only_owner: Само за неща, на които аз Ñъм ÑобÑтвеник
+  field_member_of_group: Член на група
+  project_module_gantt: Мрежов график
+  text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
+  text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
+  setting_default_notification_option: Подразбиращ Ñе начин за извеÑÑ‚Ñване
+  project_module_calendar: Календар
+  label_user_mail_option_only_my_events: Само за неща, в които Ñъм включен/а
+  text_tip_issue_begin_day: задача, започваща този ден
+  label_user_mail_option_only_assigned: Само за неща, назначени на мен
+  button_edit_associated_wikipage: "Редактиране на аÑоциираната Wiki Ñтраница: %{page_title}"
   field_assigned_to_role: Assignee's role
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
+  field_start_date: Ðачална дата
+  label_principal_search: "ТърÑене на потребител или група:"
+  label_user_search: "ТърÑене на потребител:"
+  field_visible: Видим
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: ДейноÑÑ‚ при отчитане на работното време
+  text_time_logged_by_changeset: Приложено в Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}.
+  setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
+  notice_gantt_chart_truncated: МрежовиÑÑ‚ график е Ñъкратен, понеже броÑÑ‚ на обектите, които могат да бъдат показани е твърде голÑм (%{max})
+  setting_gantt_items_limit: МакÑимален брой обекти, които да Ñе показват в мрежов график
--- a/config/locales/bs.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/bs.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "pola minute"
       less_than_x_seconds:
         one:   "manje od 1 sekunde"
-        other: "manje od {{count}} sekudni"
+        other: "manje od %{count} sekudni"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekundi"
+        other: "%{count} sekundi"
       less_than_x_minutes:
         one:   "manje od 1 minute"
-        other: "manje od {{count}} minuta"
+        other: "manje od %{count} minuta"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minuta"
+        other: "%{count} minuta"
       about_x_hours:
         one:   "oko 1 sahat"
-        other: "oko {{count}} sahata"
+        other: "oko %{count} sahata"
       x_days:
         one:   "1 dan"
-        other: "{{count}} dana"
+        other: "%{count} dana"
       about_x_months:
         one:   "oko 1 mjesec"
-        other: "oko {{count}} mjeseci"
+        other: "oko %{count} mjeseci"
       x_months:
         one:   "1 mjesec"
-        other: "{{count}} mjeseci"
+        other: "%{count} mjeseci"
       about_x_years:
         one:   "oko 1 godine"
-        other: "oko {{count}} godina"
+        other: "oko %{count} godina"
       over_x_years:
         one:   "preko 1 godine"
-        other: "preko {{count}} godina"
+        other: "preko %{count} godina"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
 
   number:
@@ -106,6 +106,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nije ukljuÄeno u listu"
         exclusion: "je rezervisano"
@@ -120,11 +124,11 @@
         taken: "već je zauzeto"
         not_a_number: "nije broj"
         not_a_date: "nije ispravan datum"
-        greater_than: "mora bit veći od {{count}}"
-        greater_than_or_equal_to: "mora bit veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora bit manji ili jednak {{count}}"
+        greater_than: "mora bit veći od %{count}"
+        greater_than_or_equal_to: "mora bit veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora bit manji ili jednak %{count}"
         odd: "mora biti neparan"
         even: "mora biti paran"
         greater_than_start_date: "mora biti veći nego poÄetni datum"
@@ -156,9 +160,9 @@
   notice_account_wrong_password: Pogrešna lozinka
   notice_can_t_change_password: Ovaj nalog koristi eksterni izvor prijavljivanja. Ne mogu da promjenim šifru.
   notice_default_data_loaded: Podrazumjevana konfiguracija uspjeÄno uÄitana.
-  notice_email_error: Došlo je do greške pri slanju emaila ({{value}})
-  notice_email_sent: "Email je poslan {{value}}"
-  notice_failed_to_save_issues: "Neuspješno snimanje {{count}} aktivnosti na {{total}} izabrano: {{ids}}."
+  notice_email_error: Došlo je do greške pri slanju emaila (%{value})
+  notice_email_sent: "Email je poslan %{value}"
+  notice_failed_to_save_issues: "Neuspješno snimanje %{count} aktivnosti na %{total} izabrano: %{ids}."
   notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
   notice_file_not_found: Stranica kojoj pokušavate da pristupite ne postoji ili je uklonjena.
   notice_locking_conflict: "Konflikt: podaci su izmjenjeni od strane drugog korisnika."
@@ -169,28 +173,28 @@
   notice_successful_delete: Brisanje izvršeno.
   notice_successful_update: Promjene uspješno izvršene.
 
-  error_can_t_load_default_data: "Podrazumjevane postavke se ne mogu uÄitati {{value}}"
-  error_scm_command_failed: "Desila se greška pri pristupu repozitoriju: {{value}}"
+  error_can_t_load_default_data: "Podrazumjevane postavke se ne mogu uÄitati %{value}"
+  error_scm_command_failed: "Desila se greška pri pristupu repozitoriju: %{value}"
   error_scm_not_found: "Unos i/ili revizija ne postoji u repozitoriju."
 
   error_scm_annotate: "Ova stavka ne postoji ili nije oznaÄena."
   error_issue_not_found_in_project: 'Aktivnost nije nađena ili ne pripada ovom projektu'
   
-  warning_attachments_not_saved: "{{count}} fajl(ovi) ne mogu biti snimljen(i)."
+  warning_attachments_not_saved: "%{count} fajl(ovi) ne mogu biti snimljen(i)."
   
-  mail_subject_lost_password: "Vaša {{value}} lozinka"
+  mail_subject_lost_password: "Vaša %{value} lozinka"
   mail_body_lost_password: 'Za promjenu lozinke, kliknite na sljedeći link:'
-  mail_subject_register: "Aktivirajte {{value}} vaÅ¡ korisniÄki raÄun"
+  mail_subject_register: "Aktivirajte %{value} vaÅ¡ korisniÄki raÄun"
   mail_body_register: 'Za aktivaciju vaÅ¡eg korisniÄkog raÄuna, kliknite na sljedeći link:'
-  mail_body_account_information_external: "Možete koristiti  vaÅ¡ {{value}} korisniÄki raÄun za prijavu na sistem."
+  mail_body_account_information_external: "Možete koristiti  vaÅ¡ %{value} korisniÄki raÄun za prijavu na sistem."
   mail_body_account_information: Informacija o vaÅ¡em korisniÄkom raÄunu
-  mail_subject_account_activation_request: "{{value}} zahtjev za aktivaciju korisniÄkog raÄuna"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) se registrovao. KorisniÄki raÄun Äeka vaÅ¡e odobrenje za aktivaciju:"
-  mail_subject_reminder: "{{count}} aktivnost(i) u kašnjenju u narednim {{days}} danima"
-  mail_body_reminder: "{{count}} aktivnost(i) koje su dodjeljenje vama u narednim {{days}} danima:"
+  mail_subject_account_activation_request: "%{value} zahtjev za aktivaciju korisniÄkog raÄuna"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) se registrovao. KorisniÄki raÄun Äeka vaÅ¡e odobrenje za aktivaciju:"
+  mail_subject_reminder: "%{count} aktivnost(i) u kašnjenju u narednim %{days} danima"
+  mail_body_reminder: "%{count} aktivnost(i) koje su dodjeljenje vama u narednim %{days} danima:"
   
   gui_validation_error: 1 greška
-  gui_validation_error_plural: "{{count}} grešaka"
+  gui_validation_error_plural: "%{count} grešaka"
   
   field_name: Ime
   field_description: Opis
@@ -252,6 +256,7 @@
   field_attr_lastname: Atribut za prezime
   field_attr_mail: Atribut za email
   field_onthefly: 'Kreiranje korisnika "On-the-fly"'
+  field_start_date: PoÄetak
   field_done_ratio: % Realizovano
   field_auth_source: Mod za authentifikaciju
   field_hide_mail: Sakrij moju email adresu
@@ -391,14 +396,14 @@
   label_x_projects:
     zero:  0 projekata
     one:   1 projekat
-    other: "{{count}} projekata"
+    other: "%{count} projekata"
   label_project_all: Svi projekti
   label_project_latest: Posljednji projekti
   label_issue: Aktivnost
   label_issue_new: Nova aktivnost
   label_issue_plural: Aktivnosti
   label_issue_view_all: Vidi sve aktivnosti
-  label_issues_by: "Aktivnosti po {{value}}"
+  label_issues_by: "Aktivnosti po %{value}"
   label_issue_added: Aktivnost je dodana
   label_issue_updated: Aktivnost je izmjenjena
   label_document: Dokument
@@ -448,7 +453,7 @@
   label_activity_plural: Promjene
   label_activity: Operacija
   label_overall_activity: Pregled svih promjena
-  label_user_activity: "Promjene izvršene od: {{value}}"
+  label_user_activity: "Promjene izvršene od: %{value}"
   label_new: Novi
   label_logged_as: Prijavljen kao
   label_environment: Sistemsko okruženje
@@ -457,7 +462,7 @@
   label_auth_source_new: Novi mod authentifikacije
   label_auth_source_plural: Modovi authentifikacije
   label_subproject_plural: Podprojekti
-  label_and_its_subprojects: "{{value}} i njegovi podprojekti"
+  label_and_its_subprojects: "%{value} i njegovi podprojekti"
   label_min_max_length: Min - Maks dužina
   label_list: Lista
   label_date: Datum
@@ -468,8 +473,8 @@
   label_text: Dugi tekst
   label_attribute: Atribut
   label_attribute_plural: Atributi
-  label_download: "{{count}} download"
-  label_download_plural: "{{count}} download-i"
+  label_download: "%{count} download"
+  label_download_plural: "%{count} download-i"
   label_no_data: Nema podataka za prikaz
   label_change_status: Promjeni status
   label_history: Istorija
@@ -500,17 +505,17 @@
   label_closed_issues: zatvoren
   label_closed_issues_plural: zatvoreni
   label_x_open_issues_abbr_on_total:
-    zero:  0 otvoreno / {{total}}
-    one:   1 otvorena / {{total}}
-    other: "{{count}} otvorene / {{total}}"
+    zero:  0 otvoreno / %{total}
+    one:   1 otvorena / %{total}
+    other: "%{count} otvorene / %{total}"
   label_x_open_issues_abbr:
     zero:  0 otvoreno
     one:   1 otvorena
-    other: "{{count}} otvorene"
+    other: "%{count} otvorene"
   label_x_closed_issues_abbr:
     zero:  0 zatvoreno
     one:   1 zatvorena
-    other: "{{count}} zatvorene"
+    other: "%{count} zatvorene"
   label_total: Ukupno
   label_permissions: Dozvole
   label_current_status: Tekući status
@@ -528,7 +533,7 @@
   label_months_from: mjeseci od
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "posljednjih {{count}} promjena"
+  label_last_changes: "posljednjih %{count} promjena"
   label_change_view_all: Vidi sve promjene
   label_personalize_page: Personaliziraj ovu stranicu
   label_comment: Komentar
@@ -536,7 +541,7 @@
   label_x_comments:
     zero: bez komentara
     one: 1 komentar
-    other: "{{count}} komentari"
+    other: "%{count} komentari"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar je dodan
   label_comment_delete: Izbriši komentar
@@ -555,7 +560,7 @@
   label_yesterday: juÄe
   label_this_week: ova hefta
   label_last_week: zadnja hefta
-  label_last_n_days: "posljednjih {{count}} dana"
+  label_last_n_days: "posljednjih %{count} dana"
   label_this_month: ovaj mjesec
   label_last_month: posljednji mjesec
   label_this_year: ova godina
@@ -569,8 +574,8 @@
   label_repository: Repozitorij
   label_repository_plural: Repozitoriji
   label_browse: Listaj
-  label_modification: "{{count}} promjena"
-  label_modification_plural: "{{count}} promjene"
+  label_modification: "%{count} promjena"
+  label_modification_plural: "%{count} promjene"
   label_revision: Revizija
   label_revision_plural: Revizije
   label_associated_revisions: Doddjeljene revizije
@@ -588,8 +593,8 @@
   label_sort_lower: Pomjeri dole
   label_sort_lowest: Pomjeri na dno
   label_roadmap: Plan realizacije
-  label_roadmap_due_in: "Obavezan do {{value}}"
-  label_roadmap_overdue: "{{value}} kasni"
+  label_roadmap_due_in: "Obavezan do %{value}"
+  label_roadmap_overdue: "%{value} kasni"
   label_roadmap_no_issues: Nema aktivnosti za ovu verziju
   label_search: Traži
   label_result_plural: Rezultati
@@ -607,8 +612,8 @@
   label_changes_details: Detalji svih promjena
   label_issue_tracking: Evidencija aktivnosti
   label_spent_time: Utrošak vremena
-  label_f_hour: "{{value}} sahat"
-  label_f_hour_plural: "{{value}} sahata"
+  label_f_hour: "%{value} sahat"
+  label_f_hour_plural: "%{value} sahata"
   label_time_tracking: Evidencija vremena
   label_change_plural: Promjene
   label_statistics: Statistika
@@ -657,13 +662,13 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Bazirano na korisnikovom jeziku
-  label_sort_by: "Sortiraj po {{value}}"
+  label_sort_by: "Sortiraj po %{value}"
   label_send_test_email: Pošalji testni email
-  label_feeds_access_key_created_on: "RSS pristupni kljuÄ kreiran prije {{value}} dana"
+  label_feeds_access_key_created_on: "RSS pristupni kljuÄ kreiran prije %{value} dana"
   label_module_plural: Moduli
-  label_added_time_by: "Dodano od {{author}} prije {{age}}"
-  label_updated_time_by: "Izmjenjeno od {{author}} prije {{age}}"
-  label_updated_time: "Izmjenjeno prije {{value}}"
+  label_added_time_by: "Dodano od %{author} prije %{age}"
+  label_updated_time_by: "Izmjenjeno od %{author} prije %{age}"
+  label_updated_time: "Izmjenjeno prije %{value}"
   label_jump_to_a_project: SkoÄi na projekat...
   label_file_plural: Fajlovi
   label_changeset_plural: Setovi promjena
@@ -679,7 +684,7 @@
   label_registration_activation_by_email: aktivacija korisniÄkog raÄuna email-om
   label_registration_manual_activation: ruÄna aktivacija korisniÄkog raÄuna
   label_registration_automatic_activation: automatska kreacija korisniÄkog raÄuna
-  label_display_per_page: "Po stranici: {{value}}"
+  label_display_per_page: "Po stranici: %{value}"
   label_age: Starost
   label_change_properties: Promjena osobina
   label_general: Generalno
@@ -745,42 +750,42 @@
   text_regexp_info: npr. ^[A-Z0-9]+$
   text_min_max_length_info: 0 znaÄi bez restrikcije
   text_project_destroy_confirmation: Sigurno želite izbrisati ovaj projekat i njegove podatke ?
-  text_subprojects_destroy_warning: "Podprojekt(i): {{value}} će takođe biti izbrisani."
+  text_subprojects_destroy_warning: "Podprojekt(i): %{value} će takođe biti izbrisani."
   text_workflow_edit: Odaberite ulogu i podruÄje aktivnosti za ispravku toka promjena na aktivnosti
   text_are_you_sure: Da li ste sigurni ?
   text_tip_issue_begin_day: zadatak poÄinje danas
   text_tip_issue_end_day: zadatak završava danas
   text_tip_issue_begin_end_day: zadatak zapoÄinje i zavrÅ¡ava danas
   text_project_identifier_info: 'Samo mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Nakon snimanja, identifikator se ne može mijenjati.'
-  text_caracters_maximum: "maksimum {{count}} karaktera."
-  text_caracters_minimum: "Dužina mora biti najmanje {{count}} znakova."
-  text_length_between: "Broj znakova između {{min}} i {{max}}."
+  text_caracters_maximum: "maksimum %{count} karaktera."
+  text_caracters_minimum: "Dužina mora biti najmanje %{count} znakova."
+  text_length_between: "Broj znakova između %{min} i %{max}."
   text_tracker_no_workflow: Tok statusa nije definisan za ovo podruÄje aktivnosti
   text_unallowed_characters: Nedozvoljeni znakovi
   text_comma_separated: Višestruke vrijednosti dozvoljene (odvojiti zarezom).
   text_issues_ref_in_commit_messages: 'Referenciranje i zatvaranje aktivnosti putem "commit" poruka'
-  text_issue_added: "Aktivnost {{id}} je prijavljena od {{author}}."
-  text_issue_updated: "Aktivnost {{id}} je izmjenjena od {{author}}."
+  text_issue_added: "Aktivnost %{id} je prijavljena od %{author}."
+  text_issue_updated: "Aktivnost %{id} je izmjenjena od %{author}."
   text_wiki_destroy_confirmation: Sigurno želite izbrisati ovaj wiki i Äitav njegov sadržaj ?
-  text_issue_category_destroy_question: "Neke aktivnosti ({{count}}) pripadaju ovoj kategoriji. Sigurno to želite uraditi ?"
+  text_issue_category_destroy_question: "Neke aktivnosti (%{count}) pripadaju ovoj kategoriji. Sigurno to želite uraditi ?"
   text_issue_category_destroy_assignments: Ukloni kategoriju
   text_issue_category_reassign_to: Ponovo dodijeli ovu kategoriju
   text_user_mail_option: "Za projekte koje niste odabrali, primićete samo notifikacije o stavkama koje pratite ili ste u njih ukljuÄeni (npr. vi ste autor ili su vama dodjeljenje)."
   text_no_configuration_data: "Uloge, podruÄja aktivnosti, statusi aktivnosti i tok promjena statusa nisu konfigurisane.\nKrajnje je preporuÄeno da uÄitate tekuÄ‘e postavke. Kasnije ćete ih moći mjenjati po svojim potrebama."
   text_load_default_configuration: UÄitaj tekuću konfiguraciju
-  text_status_changed_by_changeset: "Primjenjeno u setu promjena {{value}}."
+  text_status_changed_by_changeset: "Primjenjeno u setu promjena %{value}."
   text_issues_destroy_confirmation: 'Sigurno želite izbrisati odabranu/e aktivnost/i ?'
   text_select_project_modules: 'Odaberi module koje želite u ovom projektu:'
   text_default_administrator_account_changed: Tekući administratorski raÄun je promjenjen
   text_file_repository_writable: U direktorij sa fajlovima koji su prilozi se može pisati
   text_plugin_assets_writable: U direktorij plugin-ova se može pisati
   text_rmagick_available: RMagick je dostupan (opciono)
-  text_destroy_time_entries_question: "{{hours}} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to uÄiniti ?"
+  text_destroy_time_entries_question: "%{hours} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to uÄiniti ?"
   text_destroy_time_entries: Izbriši prijavljeno vrijeme
   text_assign_time_entries_to_project: Dodaj prijavljenoo vrijeme projektu
   text_reassign_time_entries: 'Preraspodjeli prijavljeno vrijeme na ovu aktivnost:'
-  text_user_wrote: "{{value}} je napisao/la:"
-  text_enumeration_destroy_question: "Za {{count}} objekata je dodjeljenja ova vrijednost."
+  text_user_wrote: "%{value} je napisao/la:"
+  text_enumeration_destroy_question: "Za %{count} objekata je dodjeljenja ova vrijednost."
   text_enumeration_category_reassign_to: 'Ponovo im dodjeli ovu vrijednost:'
   text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/email.yml i restartuj aplikaciju nakon toga."
   text_repository_usernames_mapping: "Odaberi ili ispravi redmine korisnika mapiranog za svako korisniÄko ima naÄ‘eno u logu repozitorija.\nKorisnici sa istim imenom u redmineu i u repozitoruju se automatski mapiraju."
@@ -817,23 +822,23 @@
   button_annotate: Zabilježi
   button_activate: Aktiviraj
   label_sort: Sortiranje
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_ascending: Rastuće
   label_descending: Opadajuće
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -841,14 +846,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -883,9 +888,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -912,12 +917,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -925,7 +930,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -936,8 +941,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/ca.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/ca.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -36,37 +36,37 @@
       half_a_minute: "mig minut"
       less_than_x_seconds:
         one:   "menys d'un segon"
-        other: "menys de {{count}} segons"
+        other: "menys de %{count} segons"
       x_seconds:
         one:   "1 segons"
-        other: "{{count}} segons"
+        other: "%{count} segons"
       less_than_x_minutes:
         one:   "menys d'un minut"
-        other: "menys de {{count}} minuts"
+        other: "menys de %{count} minuts"
       x_minutes:
         one:   "1 minut"
-        other: "{{count}} minuts"
+        other: "%{count} minuts"
       about_x_hours:
         one:   "aproximadament 1 hora"
-        other: "aproximadament {{count}} hores"
+        other: "aproximadament %{count} hores"
       x_days:
         one:   "1 dia"
-        other: "{{count}} dies"
+        other: "%{count} dies"
       about_x_months:
         one:   "aproximadament 1 mes"
-        other: "aproximadament {{count}} mesos"
+        other: "aproximadament %{count} mesos"
       x_months:
         one:   "1 mes"
-        other: "{{count}} mesos"
+        other: "%{count} mesos"
       about_x_years:
         one:   "aproximadament 1 any"
-        other: "aproximadament {{count}} anys"
+        other: "aproximadament %{count} anys"
       over_x_years:
         one:   "més d'un any"
-        other: "més de {{count}} anys"
+        other: "més de %{count} anys"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     # Default format for numbers
@@ -98,6 +98,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "no està inclòs a la llista"
         exclusion: "està reservat"
@@ -112,11 +116,11 @@
         taken: "ja s'està utilitzant"
         not_a_number: "no és un número"
         not_a_date: "no és una data vàlida"
-        greater_than: "ha de ser més gran que {{count}}"
-        greater_than_or_equal_to: "ha de ser més gran o igual a {{count}}"
-        equal_to: "ha de ser igual a {{count}}"
-        less_than: "ha de ser menys que {{count}}"
-        less_than_or_equal_to: "ha de ser menys o igual a {{count}}"
+        greater_than: "ha de ser més gran que %{count}"
+        greater_than_or_equal_to: "ha de ser més gran o igual a %{count}"
+        equal_to: "ha de ser igual a %{count}"
+        less_than: "ha de ser menys que %{count}"
+        less_than_or_equal_to: "ha de ser menys o igual a %{count}"
         odd: "ha de ser senar"
         even: "ha de ser parell"
         greater_than_start_date: "ha de ser superior que la data inicial"
@@ -153,12 +157,12 @@
   notice_file_not_found: "La pàgina a la que intenteu accedir no existeix o s'ha suprimit."
   notice_locking_conflict: Un altre usuari ha actualitzat les dades.
   notice_not_authorized: No teniu permís per a accedir a aquesta pàgina.
-  notice_email_sent: "S'ha enviat un correu electrònic a {{value}}"
-  notice_email_error: "S'ha produït un error en enviar el correu ({{value}})"
+  notice_email_sent: "S'ha enviat un correu electrònic a %{value}"
+  notice_email_error: "S'ha produït un error en enviar el correu (%{value})"
   notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS."
   notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API."
-  notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de {{count}} seleccionats: {{ids}}."
-  notice_failed_to_save_members: "No s'han pogut desar els membres: {{errors}}."
+  notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de %{count} seleccionats: %{ids}."
+  notice_failed_to_save_members: "No s'han pogut desar els membres: %{errors}."
   notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar."
   notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador."
   notice_default_data_loaded: "S'ha carregat correctament la configuració predeterminada."
@@ -166,9 +170,9 @@
   notice_unable_delete_time_entry: "No s'ha pogut suprimir l'entrada del registre de temps."
   notice_issue_done_ratios_updated: "S'ha actualitzat el tant per cent dels assumptes."
   
-  error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: {{value}} "
+  error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: %{value} "
   error_scm_not_found: "No s'ha trobat l'entrada o la revisió en el dipòsit."
-  error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: {{value}}"
+  error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: %{value}"
   error_scm_annotate: "L'entrada no existeix o no s'ha pogut anotar."
   error_issue_not_found_in_project: "No s'ha trobat l'assumpte o no pertany a aquest projecte"
   error_no_tracker_in_project: "Aquest projecte no té seguidor associat. Comproveu els paràmetres del projecte."
@@ -182,26 +186,26 @@
   error_workflow_copy_source: "Seleccioneu un seguidor o rol font"
   error_workflow_copy_target: "Seleccioneu seguidors i rols objectiu"
   error_unable_delete_issue_status: "No s'ha pogut suprimir l'estat de l'assumpte"
-  error_unable_to_connect: "No s'ha pogut connectar ({{value}})"
-  warning_attachments_not_saved: "No s'han pogut desar {{count}} fitxers."
+  error_unable_to_connect: "No s'ha pogut connectar (%{value})"
+  warning_attachments_not_saved: "No s'han pogut desar %{count} fitxers."
   
-  mail_subject_lost_password: "Contrasenya de {{value}}"
+  mail_subject_lost_password: "Contrasenya de %{value}"
   mail_body_lost_password: "Per a canviar la contrasenya, feu clic en l'enllaç següent:"
-  mail_subject_register: "Activació del compte de {{value}}"
+  mail_subject_register: "Activació del compte de %{value}"
   mail_body_register: "Per a activar el compte, feu clic en l'enllaç següent:"
-  mail_body_account_information_external: "Podeu utilitzar el compte «{{value}}» per a entrar."
+  mail_body_account_information_external: "Podeu utilitzar el compte «%{value}» per a entrar."
   mail_body_account_information: Informació del compte
-  mail_subject_account_activation_request: "Sol·licitud d'activació del compte de {{value}}"
-  mail_body_account_activation_request: "S'ha registrat un usuari nou ({{value}}). El seu compte està pendent d'aprovació:"
-  mail_subject_reminder: "{{count}} assumptes venceran els següents {{days}} dies"
-  mail_body_reminder: "{{count}} assumptes que teniu assignades venceran els següents {{days}} dies:"
-  mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «{{id}}»"
-  mail_body_wiki_content_added: "En {{author}} ha afegit la pàgina wiki «{{id}}»."
-  mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «{{id}}»"
-  mail_body_wiki_content_updated: "En {{author}} ha actualitzat la pàgina wiki «{{id}}»."
+  mail_subject_account_activation_request: "Sol·licitud d'activació del compte de %{value}"
+  mail_body_account_activation_request: "S'ha registrat un usuari nou (%{value}). El seu compte està pendent d'aprovació:"
+  mail_subject_reminder: "%{count} assumptes venceran els següents %{days} dies"
+  mail_body_reminder: "%{count} assumptes que teniu assignades venceran els següents %{days} dies:"
+  mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «%{id}»"
+  mail_body_wiki_content_added: "En %{author} ha afegit la pàgina wiki «%{id}»."
+  mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «%{id}»"
+  mail_body_wiki_content_updated: "En %{author} ha actualitzat la pàgina wiki «%{id}»."
   
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
+  gui_validation_error_plural: "%{count} errors"
   
   field_name: Nom
   field_description: Descripció
@@ -264,6 +268,7 @@
   field_attr_lastname: Atribut del cognom
   field_attr_mail: Atribut del correu electrònic
   field_onthefly: "Creació de l'usuari «al vol»"
+  field_start_date: Inici
   field_done_ratio: % realitzat
   field_auth_source: "Mode d'autenticació"
   field_hide_mail: "Oculta l'adreça de correu electrònic"
@@ -427,14 +432,14 @@
   label_x_projects:
     zero:  cap projecte
     one:   1 projecte
-    other: "{{count}} projectes"
+    other: "%{count} projectes"
   label_project_all: Tots els projectes
   label_project_latest: Els últims projectes
   label_issue: Assumpte
   label_issue_new: Assumpte nou
   label_issue_plural: Assumptes
   label_issue_view_all: Visualitza tots els assumptes
-  label_issues_by: "Assumptes per {{value}}"
+  label_issues_by: "Assumptes per %{value}"
   label_issue_added: Assumpte afegit
   label_issue_updated: Assumpte actualitzat
   label_document: Document
@@ -484,7 +489,7 @@
   label_registered_on: Informat el
   label_activity: Activitat
   label_overall_activity: Activitat global
-  label_user_activity: "Activitat de {{value}}"
+  label_user_activity: "Activitat de %{value}"
   label_new: Nou
   label_logged_as: Heu entrat com a
   label_environment: Entorn
@@ -494,7 +499,7 @@
   label_auth_source_plural: "Modes d'autenticació"
   label_subproject_plural: Subprojectes
   label_subproject_new: "Subprojecte nou"
-  label_and_its_subprojects: "{{value}} i els seus subprojectes"
+  label_and_its_subprojects: "%{value} i els seus subprojectes"
   label_min_max_length: Longitud mín - max
   label_list: Llist
   label_date: Data
@@ -505,8 +510,8 @@
   label_text: Text llarg
   label_attribute: Atribut
   label_attribute_plural: Atributs
-  label_download: "{{count}} baixada"
-  label_download_plural: "{{count}} baixades"
+  label_download: "%{count} baixada"
+  label_download_plural: "%{count} baixades"
   label_no_data: Sense dades a mostrar
   label_change_status: "Canvia l'estat"
   label_history: Historial
@@ -538,17 +543,17 @@
   label_closed_issues: tancat
   label_closed_issues_plural: tancats
   label_x_open_issues_abbr_on_total:
-    zero:  0 oberts / {{total}}
-    one:   1 obert / {{total}}
-    other: "{{count}} oberts / {{total}}"
+    zero:  0 oberts / %{total}
+    one:   1 obert / %{total}
+    other: "%{count} oberts / %{total}"
   label_x_open_issues_abbr:
     zero:  0 oberts
     one:   1 obert
-    other: "{{count}} oberts"
+    other: "%{count} oberts"
   label_x_closed_issues_abbr:
     zero:  0 tancats
     one:   1 tancat
-    other: "{{count}} tancats"
+    other: "%{count} tancats"
   label_total: Total
   label_permissions: Permisos
   label_current_status: Estat actual
@@ -566,7 +571,7 @@
   label_months_from: mesos des de
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "últims {{count}} canvis"
+  label_last_changes: "últims %{count} canvis"
   label_change_view_all: Visualitza tots els canvis
   label_personalize_page: Personalitza aquesta pàgina
   label_comment: Comentari
@@ -574,7 +579,7 @@
   label_x_comments:
     zero: sense comentaris
     one: 1 comentari
-    other: "{{count}} comentaris"
+    other: "%{count} comentaris"
   label_comment_add: Afegeix un comentari
   label_comment_added: Comentari afegit
   label_comment_delete: Suprimeix comentaris
@@ -595,7 +600,7 @@
   label_yesterday: ahir
   label_this_week: aquesta setmana
   label_last_week: "l'última setmana"
-  label_last_n_days: "els últims {{count}} dies"
+  label_last_n_days: "els últims %{count} dies"
   label_this_month: aquest més
   label_last_month: "l'últim més"
   label_this_year: aquest any
@@ -609,13 +614,13 @@
   label_repository: Dipòsit
   label_repository_plural: Dipòsits
   label_browse: Navega
-  label_modification: "{{count}} canvi"
-  label_modification_plural: "{{count}} canvis"
+  label_modification: "%{count} canvi"
+  label_modification_plural: "%{count} canvis"
   label_branch: Branca
   label_tag: Etiqueta
   label_revision: Revisió
   label_revision_plural: Revisions
-  label_revision_id: "Revisió {{value}}"
+  label_revision_id: "Revisió %{value}"
   label_associated_revisions: Revisions associades
   label_added: afegit
   label_modified: modificat
@@ -632,8 +637,8 @@
   label_sort_lower: Mou cap avall
   label_sort_lowest: Mou a la part inferior
   label_roadmap: Planificació
-  label_roadmap_due_in: "Venç en {{value}}"
-  label_roadmap_overdue: "{{value}} tard"
+  label_roadmap_due_in: "Venç en %{value}"
+  label_roadmap_overdue: "%{value} tard"
   label_roadmap_no_issues: No hi ha assumptes per a aquesta versió
   label_search: Cerca
   label_result_plural: Resultats
@@ -652,8 +657,8 @@
   label_issue_tracking: "Seguiment d'assumptes"
   label_spent_time: Temps invertit
   label_overall_spent_time: "Temps total invertit"
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} hores"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} hores"
   label_time_tracking: Temps de seguiment
   label_change_plural: Canvis
   label_statistics: Estadístiques
@@ -704,15 +709,15 @@
   label_date_from: Des de
   label_date_to: A
   label_language_based: "Basat en l'idioma de l'usuari"
-  label_sort_by: "Ordena per {{value}}"
+  label_sort_by: "Ordena per %{value}"
   label_send_test_email: Envia un correu electrònic de prova
   label_feeds_access_key: "Clau d'accés del RSS"
   label_missing_feeds_access_key: "Falta una clau d'accés del RSS"
-  label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa {{value}}"
+  label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa %{value}"
   label_module_plural: Mòduls
-  label_added_time_by: "Afegit per {{author}} fa {{age}}"
-  label_updated_time_by: "Actualitzat per {{author}} fa {{age}}"
-  label_updated_time: "Actualitzat fa {{value}}"
+  label_added_time_by: "Afegit per %{author} fa %{age}"
+  label_updated_time_by: "Actualitzat per %{author} fa %{age}"
+  label_updated_time: "Actualitzat fa %{value}"
   label_jump_to_a_project: Salta al projecte...
   label_file_plural: Fitxers
   label_changeset_plural: Conjunt de canvis
@@ -728,7 +733,7 @@
   label_registration_activation_by_email: activació del compte per correu electrònic
   label_registration_manual_activation: activació del compte manual
   label_registration_automatic_activation: activació del compte automàtica
-  label_display_per_page: "Per pàgina: {{value}}"
+  label_display_per_page: "Per pàgina: %{value}"
   label_age: Edat
   label_change_properties: Canvia les propietats
   label_general: General
@@ -751,7 +756,7 @@
   label_sort: Ordena
   label_ascending: Ascendent
   label_descending: Descendent
-  label_date_from_to: Des de {{start}} a {{end}}
+  label_date_from_to: Des de %{start} a %{end}
   label_wiki_content_added: "S'ha afegit la pàgina wiki"
   label_wiki_content_updated: "S'ha actualitzat la pàgina wiki"
   label_group: Grup
@@ -770,7 +775,7 @@
   label_display_used_statuses_only: "Mostra només els estats que utilitza aquest seguidor"
   label_api_access_key: "Clau d'accés a l'API"
   label_missing_api_access_key: "Falta una clau d'accés de l'API"
-  label_api_access_key_created_on: "Clau d'accés de l'API creada fa {{value}}"
+  label_api_access_key_created_on: "Clau d'accés de l'API creada fa %{value}"
   label_profile: Perfil
   label_subtask_plural: Subtasques
   label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte"
@@ -833,53 +838,53 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 significa sense restricció
   text_project_destroy_confirmation: Segur que voleu suprimir aquest projecte i les dades relacionades?
-  text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: {{value}}."
+  text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: %{value}."
   text_workflow_edit: Seleccioneu un rol i un seguidor per a editar el flux de treball
   text_are_you_sure: Segur?
-  text_journal_changed: "{{label}} ha canviat de {{old}} a {{new}}"
-  text_journal_set_to: "{{label}} s'ha establert a {{value}}"
-  text_journal_deleted: "{{label}} s'ha suprimit ({{old}})"
-  text_journal_added: "S'ha afegit {{label}} {{value}}"
+  text_journal_changed: "%{label} ha canviat de %{old} a %{new}"
+  text_journal_set_to: "%{label} s'ha establert a %{value}"
+  text_journal_deleted: "%{label} s'ha suprimit (%{old})"
+  text_journal_added: "S'ha afegit %{label} %{value}"
   text_tip_issue_begin_day: "tasca que s'inicia aquest dia"
   text_tip_issue_end_day: tasca que finalitza aquest dia
   text_tip_issue_begin_end_day: "tasca que s'inicia i finalitza aquest dia"
   text_project_identifier_info: "Es permeten lletres en minúscules (a-z), números i guions.<br />Un cop desat, l'identificador no es pot modificar."
-  text_caracters_maximum: "{{count}} caràcters com a màxim."
-  text_caracters_minimum: "Com a mínim ha de tenir {{count}} caràcters."
-  text_length_between: "Longitud entre {{min}} i {{max}} caràcters."
+  text_caracters_maximum: "%{count} caràcters com a màxim."
+  text_caracters_minimum: "Com a mínim ha de tenir %{count} caràcters."
+  text_length_between: "Longitud entre %{min} i %{max} caràcters."
   text_tracker_no_workflow: "No s'ha definit cap flux de treball per a aquest seguidor"
   text_unallowed_characters: Caràcters no permesos
   text_comma_separated: Es permeten valors múltiples (separats per una coma).
   text_line_separated: "Es permeten diversos valors (una línia per cada valor)."
   text_issues_ref_in_commit_messages: Referència i soluciona els assumptes en els missatges publicats
-  text_issue_added: "L'assumpte {{id}} ha sigut informat per {{author}}."
-  text_issue_updated: "L'assumpte {{id}} ha sigut actualitzat per {{author}}."
+  text_issue_added: "L'assumpte %{id} ha sigut informat per %{author}."
+  text_issue_updated: "L'assumpte %{id} ha sigut actualitzat per %{author}."
   text_wiki_destroy_confirmation: Segur que voleu suprimir aquest wiki i tots els seus continguts?
-  text_issue_category_destroy_question: "Alguns assumptes ({{count}}) estan assignats a aquesta categoria. Què voleu fer?"
+  text_issue_category_destroy_question: "Alguns assumptes (%{count}) estan assignats a aquesta categoria. Què voleu fer?"
   text_issue_category_destroy_assignments: Suprimeix les assignacions de la categoria
   text_issue_category_reassign_to: Torna a assignar els assumptes a aquesta categoria
   text_user_mail_option: "Per als projectes no seleccionats, només rebreu notificacions sobre les coses que vigileu o que hi esteu implicat (ex. assumptes que en sou l'autor o hi esteu assignat)."
   text_no_configuration_data: "Encara no s'han configurat els rols, seguidors, estats de l'assumpte i flux de treball.\nÉs altament recomanable que carregueu la configuració predeterminada. Podreu modificar-la un cop carregada."
   text_load_default_configuration: Carrega la configuració predeterminada
-  text_status_changed_by_changeset: "Aplicat en el conjunt de canvis {{value}}."
+  text_status_changed_by_changeset: "Aplicat en el conjunt de canvis %{value}."
   text_issues_destroy_confirmation: "Segur que voleu suprimir els assumptes seleccionats?"
   text_select_project_modules: "Seleccioneu els mòduls a habilitar per a aquest projecte:"
   text_default_administrator_account_changed: "S'ha canviat el compte d'administrador predeterminat"
   text_file_repository_writable: Es pot escriure en el dipòsit de fitxers
   text_plugin_assets_writable: Es pot escriure als connectors actius
   text_rmagick_available: RMagick disponible (opcional)
-  text_destroy_time_entries_question: "S'han informat {{hours}} hores en els assumptes que aneu a suprimir. Què voleu fer?"
+  text_destroy_time_entries_question: "S'han informat %{hours} hores en els assumptes que aneu a suprimir. Què voleu fer?"
   text_destroy_time_entries: Suprimeix les hores informades
   text_assign_time_entries_to_project: Assigna les hores informades al projecte
   text_reassign_time_entries: "Torna a assignar les hores informades a aquest assumpte:"
-  text_user_wrote: "{{value}} va escriure:"
-  text_enumeration_destroy_question: "{{count}} objectes estan assignats a aquest valor."
+  text_user_wrote: "%{value} va escriure:"
+  text_enumeration_destroy_question: "%{count} objectes estan assignats a aquest valor."
   text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:"
   text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo."
   text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament."
   text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar."
   text_custom_field_possible_values_info: "Una línia per a cada valor"
-  text_wiki_page_destroy_question: "Aquesta pàgina té {{descendants}} pàgines fill i descendents. Què voleu fer?"
+  text_wiki_page_destroy_question: "Aquesta pàgina té %{descendants} pàgines fill i descendents. Què voleu fer?"
   text_wiki_page_nullify_children: "Deixa les pàgines fill com a pàgines arrel"
   text_wiki_page_destroy_children: "Suprimeix les pàgines fill i tots els seus descendents"
   text_wiki_page_reassign_children: "Reasigna les pàgines fill a aquesta pàgina pare"
@@ -914,7 +919,7 @@
   enumeration_activities: Activitats (seguidor de temps)
   enumeration_system_activity: Activitat del sistema
 
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -925,8 +930,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/cs.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/cs.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "půl minuty"
       less_than_x_seconds:
         one:   "méně než sekunda"
-        other: "méně než {{count}} sekund"
+        other: "méně než %{count} sekund"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekund"
+        other: "%{count} sekund"
       less_than_x_minutes:
         one:   "méně než minuta"
-        other: "méně než {{count}} minut"
+        other: "méně než %{count} minut"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minut"
+        other: "%{count} minut"
       about_x_hours:
         one:   "asi 1 hodina"
-        other: "asi {{count}} hodin"
+        other: "asi %{count} hodin"
       x_days:
         one:   "1 den"
-        other: "{{count}} dnů"
+        other: "%{count} dnů"
       about_x_months:
         one:   "asi 1 měsíc"
-        other: "asi {{count}} měsíců"
+        other: "asi %{count} měsíců"
       x_months:
         one:   "1 měsíc"
-        other: "{{count}} měsíců"
+        other: "%{count} měsíců"
       about_x_years:
         one:   "asi 1 rok"
-        other: "asi {{count}} let"
+        other: "asi %{count} let"
       over_x_years:
         one:   "více než 1 rok"
-        other: "více než {{count}} roky"
+        other: "více než %{count} roky"
       almost_x_years:
         one:   "témeř 1 rok"
-        other: "téměř {{count}} roky"
+        other: "téměř %{count} roky"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "není zahrnuto v seznamu"
         exclusion: "je rezervováno"
@@ -106,11 +110,11 @@
         taken: "je již použito"
         not_a_number: "není Äíslo"
         not_a_date: "není platné datum"
-        greater_than: "musí být větší než {{count}}"
-        greater_than_or_equal_to: "musí být větší nebo rovno {{count}}"
-        equal_to: "musí být přesně {{count}}"
-        less_than: "musí být méně než {{count}}"
-        less_than_or_equal_to: "musí být méně nebo rovno {{count}}"
+        greater_than: "musí být větší než %{count}"
+        greater_than_or_equal_to: "musí být větší nebo rovno %{count}"
+        equal_to: "musí být přesně %{count}"
+        less_than: "musí být méně než %{count}"
+        less_than_or_equal_to: "musí být méně nebo rovno %{count}"
         odd: "musí být liché"
         even: "musí být sudé"
         greater_than_start_date: "musí být vÄ›tší než poÄáteÄní datum"
@@ -152,30 +156,30 @@
   notice_locking_conflict: Údaje byly změněny jiným uživatelem.
   notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
   notice_not_authorized: Nemáte dostateÄná práva pro zobrazení této stránky.
-  notice_email_sent: "Na adresu {{value}} byl odeslán email"
-  notice_email_error: "Při odesílání emailu nastala chyba ({{value}})"
+  notice_email_sent: "Na adresu %{value} byl odeslán email"
+  notice_email_error: "Při odesílání emailu nastala chyba (%{value})"
   notice_feeds_access_key_reseted: Váš klÃ­Ä pro přístup k RSS byl resetován.
-  notice_failed_to_save_issues: "Chyba při uložení {{count}} úkolu(ů) z {{total}} vybraných: {{ids}}."
+  notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}."
   notice_no_issue_selected: "Nebyl zvolen žádný úkol. Prosím, zvolte úkoly, které chcete editovat"
   notice_account_pending: "Váš úÄet byl vytvoÅ™en, nyní Äeká na schválení administrátorem."
   notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána.
   
-  error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: {{value}}"
+  error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}"
   error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři."
-  error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: {{value}}"
+  error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}"
   error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu'
   
-  mail_subject_lost_password: "Vaše heslo ({{value}})"
+  mail_subject_lost_password: "Vaše heslo (%{value})"
   mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:'
-  mail_subject_register: "Aktivace úÄtu ({{value}})"
+  mail_subject_register: "Aktivace úÄtu (%{value})"
   mail_body_register: 'Pro aktivaci vaÅ¡eho úÄtu kliknÄ›te na následující odkaz:'
-  mail_body_account_information_external: "Pomocí vaÅ¡eho úÄtu {{value}} se můžete pÅ™ihlásit."
+  mail_body_account_information_external: "Pomocí vaÅ¡eho úÄtu %{value} se můžete pÅ™ihlásit."
   mail_body_account_information: Informace o vaÅ¡em úÄtu
-  mail_subject_account_activation_request: "Aktivace {{value}} úÄtu"
-  mail_body_account_activation_request: "Byl zaregistrován nový uživatel {{value}}. Aktivace jeho úÄtu závisí na vaÅ¡em potvrzení."
+  mail_subject_account_activation_request: "Aktivace %{value} úÄtu"
+  mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho úÄtu závisí na vaÅ¡em potvrzení."
   
   gui_validation_error: 1 chyba
-  gui_validation_error_plural: "{{count}} chyb(y)"
+  gui_validation_error_plural: "%{count} chyb(y)"
   
   field_name: Název
   field_description: Popis
@@ -237,6 +241,7 @@
   field_attr_lastname: Příjemní (atribut)
   field_attr_mail: Email (atribut)
   field_onthefly: Automatické vytváření uživatelů
+  field_start_date: ZaÄátek
   field_done_ratio: % Hotovo
   field_auth_source: AutentifikaÄní mód
   field_hide_mail: Nezobrazovat můj email
@@ -310,14 +315,14 @@
   label_x_projects:
     zero:  žádné projekty
     one:   1 projekt
-    other: "{{count}} projekty(ů)"
+    other: "%{count} projekty(ů)"
   label_project_all: Všechny projekty
   label_project_latest: Poslední projekty
   label_issue: Úkol
   label_issue_new: Nový úkol
   label_issue_plural: Úkoly
   label_issue_view_all: Všechny úkoly
-  label_issues_by: "Úkoly podle {{value}}"
+  label_issues_by: "Úkoly podle %{value}"
   label_issue_added: Úkol přidán
   label_issue_updated: Úkol aktualizován
   label_document: Dokument
@@ -383,8 +388,8 @@
   label_text: Dlouhý text
   label_attribute: Atribut
   label_attribute_plural: Atributy
-  label_download: "{{count}} stažení"
-  label_download_plural: "{{count}} stažení"
+  label_download: "%{count} stažení"
+  label_download_plural: "%{count} stažení"
   label_no_data: Žádné položky
   label_change_status: Změnit stav
   label_history: Historie
@@ -415,17 +420,17 @@
   label_closed_issues: uzavřený
   label_closed_issues_plural: uzavřené
   label_x_open_issues_abbr_on_total:
-    zero:  0 otevřených / {{total}}
-    one:   1 otevřený / {{total}}
-    other: "{{count}} otevřených / {{total}}"
+    zero:  0 otevřených / %{total}
+    one:   1 otevřený / %{total}
+    other: "%{count} otevřených / %{total}"
   label_x_open_issues_abbr:
     zero:  0 otevřených
     one:   1 otevřený
-    other: "{{count}} otevřených"
+    other: "%{count} otevřených"
   label_x_closed_issues_abbr:
     zero:  0 uzavřených
     one:   1 uzavřený
-    other: "{{count}} uzavřených"
+    other: "%{count} uzavřených"
   label_total: Celkem
   label_permissions: Práva
   label_current_status: Aktuální stav
@@ -443,7 +448,7 @@
   label_months_from: měsíců od
   label_gantt: Ganttův graf
   label_internal: Interní
-  label_last_changes: "posledních {{count}} změn"
+  label_last_changes: "posledních %{count} změn"
   label_change_view_all: Zobrazit všechny změny
   label_personalize_page: Přizpůsobit tuto stránku
   label_comment: Komentář
@@ -451,7 +456,7 @@
   label_x_comments:
     zero: žádné komentáře
     one: 1 komentář
-    other: "{{count}} komentářů"
+    other: "%{count} komentářů"
   label_comment_add: Přidat komentáře
   label_comment_added: Komentář přidán
   label_comment_delete: Odstranit komentář
@@ -470,7 +475,7 @@
   label_yesterday: vÄera
   label_this_week: tento týden
   label_last_week: minulý týden
-  label_last_n_days: "posledních {{count}} dnů"
+  label_last_n_days: "posledních %{count} dnů"
   label_this_month: tento měsíc
   label_last_month: minulý měsíc
   label_this_year: tento rok
@@ -484,8 +489,8 @@
   label_repository: Repozitář
   label_repository_plural: Repozitáře
   label_browse: Procházet
-  label_modification: "{{count}} změna"
-  label_modification_plural: "{{count}} změn"
+  label_modification: "%{count} změna"
+  label_modification_plural: "%{count} změn"
   label_revision: Revize
   label_revision_plural: Revizí
   label_associated_revisions: Související verze
@@ -501,8 +506,8 @@
   label_sort_lower: Přesunout dolů
   label_sort_lowest: Přesunout na konec
   label_roadmap: Plán
-  label_roadmap_due_in: "Zbývá {{value}}"
-  label_roadmap_overdue: "{{value}} pozdÄ›"
+  label_roadmap_due_in: "Zbývá %{value}"
+  label_roadmap_overdue: "%{value} pozdÄ›"
   label_roadmap_no_issues: Pro tuto verzi nejsou žádné úkoly
   label_search: Hledat
   label_result_plural: Výsledky
@@ -520,8 +525,8 @@
   label_changes_details: Detail všech změn
   label_issue_tracking: Sledování úkolů
   label_spent_time: Strávený Äas
-  label_f_hour: "{{value}} hodina"
-  label_f_hour_plural: "{{value}} hodin"
+  label_f_hour: "%{value} hodina"
+  label_f_hour_plural: "%{value} hodin"
   label_time_tracking: Sledování Äasu
   label_change_plural: Změny
   label_statistics: Statistiky
@@ -569,12 +574,12 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Podle výchozího jazyku
-  label_sort_by: "Seřadit podle {{value}}"
+  label_sort_by: "Seřadit podle %{value}"
   label_send_test_email: Poslat testovací email
-  label_feeds_access_key_created_on: "Přístupový klÃ­Ä pro RSS byl vytvoÅ™en pÅ™ed {{value}}"
+  label_feeds_access_key_created_on: "Přístupový klÃ­Ä pro RSS byl vytvoÅ™en pÅ™ed %{value}"
   label_module_plural: Moduly
-  label_added_time_by: "Přidáno uživatelem {{author}} před {{age}}"
-  label_updated_time: "Aktualizováno před {{value}}"
+  label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
+  label_updated_time: "Aktualizováno před %{value}"
   label_jump_to_a_project: Vyberte projekt...
   label_file_plural: Soubory
   label_changeset_plural: Changesety
@@ -590,7 +595,7 @@
   label_registration_activation_by_email: aktivace úÄtu emailem
   label_registration_manual_activation: manuální aktivace úÄtu
   label_registration_automatic_activation: automatická aktivace úÄtu
-  label_display_per_page: "{{value}} na stránku"
+  label_display_per_page: "%{value} na stránku"
   label_age: Věk
   label_change_properties: Změnit vlastnosti
   label_general: Obecné
@@ -657,29 +662,29 @@
   text_tip_issue_end_day: úkol konÄí v tento den
   text_tip_issue_begin_end_day: úkol zaÄíná a konÄí v tento den
   text_project_identifier_info: 'Jsou povolena malá písmena (a-z), Äísla a pomlÄky.<br />Po uložení již není možné identifikátor zmÄ›nit.'
-  text_caracters_maximum: "{{count}} znaků maximálně."
-  text_caracters_minimum: "Musí být alespoň {{count}} znaků dlouhé."
-  text_length_between: "Délka mezi {{min}} a {{max}} znaky."
+  text_caracters_maximum: "%{count} znaků maximálně."
+  text_caracters_minimum: "Musí být alespoň %{count} znaků dlouhé."
+  text_length_between: "Délka mezi %{min} a %{max} znaky."
   text_tracker_no_workflow: Pro tuto frontu není definován žádný průběh práce
   text_unallowed_characters: Nepovolené znaky
   text_comma_separated: Povoleno více hodnot (oddÄ›lÄ›né Äárkou).
   text_issues_ref_in_commit_messages: Odkazování a opravování úkolů ve zprávách commitů
-  text_issue_added: "Úkol {{id}} byl vytvořen uživatelem {{author}}."
-  text_issue_updated: "Úkol {{id}} byl aktualizován uživatelem {{author}}."
+  text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
+  text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
   text_wiki_destroy_confirmation: Opravdu si přejete odstranit tuto Wiki a celý její obsah?
-  text_issue_category_destroy_question: "Některé úkoly ({{count}}) jsou přiřazeny k této kategorii. Co s nimi chtete udělat?"
+  text_issue_category_destroy_question: "Některé úkoly (%{count}) jsou přiřazeny k této kategorii. Co s nimi chtete udělat?"
   text_issue_category_destroy_assignments: Zrušit přiřazení ke kategorii
   text_issue_category_reassign_to: Přiřadit úkoly do této kategorie
   text_user_mail_option: "U projektů, které nebyly vybrány, budete dostávat oznámení pouze o vaÅ¡ich Äi o sledovaných položkách (napÅ™. o položkách jejichž jste autor nebo ke kterým jste pÅ™iÅ™azen(a))."
   text_no_configuration_data: "Role, fronty, stavy úkolů ani průbÄ›h práce nebyly zatím nakonfigurovány.\nVelice doporuÄujeme nahrát výchozí konfiguraci. Po té si můžete vÅ¡e upravit"
   text_load_default_configuration: Nahrát výchozí konfiguraci
-  text_status_changed_by_changeset: "Použito v changesetu {{value}}."
+  text_status_changed_by_changeset: "Použito v changesetu %{value}."
   text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
   text_select_project_modules: 'Aktivní moduly v tomto projektu:'
   text_default_administrator_account_changed: Výchozí nastavení administrátorského úÄtu zmÄ›nÄ›no
   text_file_repository_writable: Povolen zápis do adresáře ukládání souborů
   text_rmagick_available: RMagick k dispozici (volitelné)
-  text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno {{hours}} práce. Co chete udělat?"
+  text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
   text_destroy_time_entries: Odstranit evidované hodiny.
   text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
   text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
@@ -711,15 +716,15 @@
   enumeration_activities: Aktivity (sledování Äasu)
   error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
   label_planning: Plánování
-  text_subprojects_destroy_warning: "Jeho podprojek(y): {{value}} budou také smazány."
-  label_and_its_subprojects: "{{value}} a jeho  podprojekty"
-  mail_body_reminder: "{{count}} úkol(ů), které máte přiřazeny má termín během několik dní ({{days}}):"
-  mail_subject_reminder: "{{count}} úkol(ů) má termín během několik dní ({{days}})"
-  text_user_wrote: "{{value}} napsal:"
+  text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
+  label_and_its_subprojects: "%{value} a jeho  podprojekty"
+  mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
+  mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
+  text_user_wrote: "%{value} napsal:"
   label_duplicated_by: duplikováno od
   setting_enabled_scm: Povolené SCM
   text_enumeration_category_reassign_to: 'Přeřadit je do této:'
-  text_enumeration_destroy_question: "Několik ({{count}}) objektů je přiřazeno k této hodnotě."
+  text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
   label_incoming_emails: Příchozí e-maily
   label_generate_key: Generovat klíÄ
   setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
@@ -785,12 +790,12 @@
   text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
   permission_edit_own_messages: Upravit vlastní zprávy
   permission_delete_own_messages: Smazat vlastní zprávy
-  label_user_activity: "Aktivita uživatele: {{value}}"
-  label_updated_time_by: "Akutualizováno: {{author}} před: {{age}}"
+  label_user_activity: "Aktivita uživatele: %{value}"
+  label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
   text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
   setting_diff_max_lines_displayed: Maximální poÄet zobrazenách řádků rozdílů
   text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
-  warning_attachments_not_saved: "{{count}} soubor(ů) nebylo možné uložit."
+  warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
   button_create_and_continue: VytvoÅ™it a pokraÄovat
   text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
   label_display: Zobrazit
@@ -805,21 +810,21 @@
   label_descending: SestupnÄ›
   label_sort: Řazení
   label_ascending: VzestupnÄ›
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Tato stránka má {{descendants}} podstránek a potomků. Co chcete udělat?
+  text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
   text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
   text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
   text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
   setting_password_min_length: Minimální délka hesla
   field_group_by: Seskupovat výsledky podle
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki stránka byla aktualizována"
+  mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
   label_wiki_content_added: Wiki stránka přidána
-  mail_subject_wiki_content_added: "'{{id}}' Wiki stránka byla přidána"
-  mail_body_wiki_content_added: "'{{id}}' Wiki stránka byla přidána od {{author}}."
+  mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
+  mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
   label_wiki_content_updated: Wiki stránka aktualizována
-  mail_body_wiki_content_updated: "'{{id}}' Wiki stránka byla aktualizována od {{author}}."
+  mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
   permission_add_project: Vytvořit projekt
   setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
   label_view_all_revisions: Zobrazit všechny revize
@@ -827,14 +832,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
   error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
-  text_journal_changed: "{{label}} změněn z {{old}} na {{new}}"
-  text_journal_set_to: "{{label}} nastaven na {{value}}"
-  text_journal_deleted: "{{label}} smazán ({{old}})"
+  text_journal_changed: "%{label} změněn z %{old} na %{new}"
+  text_journal_set_to: "%{label} nastaven na %{value}"
+  text_journal_deleted: "%{label} smazán (%{old})"
   label_group_plural: Skupiny
   label_group: Skupina
   label_group_new: Nová skupina
   label_time_entry_plural: Strávený Äas
-  text_journal_added: "{{label}} {{value}} přidán"
+  text_journal_added: "%{label} %{value} přidán"
   field_active: Aktivní
   enumeration_system_activity: Systémová aktivita
   permission_delete_issue_watchers: Smazat přihlížející
@@ -869,9 +874,9 @@
   setting_start_of_week: ZaÄínat kalendáře
   permission_view_issues: Zobrazit úkoly
   label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
-  label_revision_id: Revize {{value}}
+  label_revision_id: Revize %{value}
   label_api_access_key: API přístupový klíÄ
-  label_api_access_key_created_on: API přístupový klÃ­Ä vytvoÅ™en {{value}} 
+  label_api_access_key_created_on: API přístupový klÃ­Ä vytvoÅ™en %{value} 
   label_feeds_access_key: RSS přístupový klíÄ
   notice_api_access_key_reseted: Váš API přístupový klÃ­Ä byl resetován.
   setting_rest_api_enabled: Zapnout službu REST
@@ -898,12 +903,12 @@
   label_subtask_plural: Podúkol
   label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
   error_can_not_delete_custom_field: Nelze smazat volitelné pole
-  error_unable_to_connect: Nelze se připojit ({{value}})
+  error_unable_to_connect: Nelze se připojit (%{value})
   error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
   error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
   field_principal: Hlavní
   label_my_page_block: Bloky na mé stránce
-  notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): {{errors}}."
+  notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
   text_zoom_out: Oddálit
   text_zoom_in: Přiblížit
   notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
@@ -911,7 +916,7 @@
   field_time_entries: Zaznamenaný Äas
   project_module_gantt: Gantt
   project_module_calendar: Kalendář
-  button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: {{page_title}}"
+  button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
   text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
   field_text: Textové pole
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -922,8 +927,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/da.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/da.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: "et halvt minut"
       less_than_x_seconds:
         one:  "mindre end et sekund"
-        other: "mindre end {{count}} sekunder"
+        other: "mindre end %{count} sekunder"
       x_seconds:
         one:  "et sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one:  "mindre end et minut"
-        other: "mindre end {{count}} minutter"
+        other: "mindre end %{count} minutter"
       x_minutes:
         one:  "et minut"
-        other: "{{count}} minutter"
+        other: "%{count} minutter"
       about_x_hours:
         one:  "cirka en time"
-        other: "cirka {{count}} timer"
+        other: "cirka %{count} timer"
       x_days:
         one:  "en dag"
-        other: "{{count}} dage"
+        other: "%{count} dage"
       about_x_months:
         one:  "cirka en måned"
-        other: "cirka {{count}} måneder"
+        other: "cirka %{count} måneder"
       x_months:
         one:  "en måned"
-        other: "{{count}} måneder"
+        other: "%{count} måneder"
       about_x_years:
         one:  "cirka et år"
-        other: "cirka {{count}} år"
+        other: "cirka %{count} år"
       over_x_years:
         one:  "mere end et år"
-        other: "mere end {{count}} år"
+        other: "mere end %{count} år"
       almost_x_years:
         one:   "næsten 1 år"
-        other: "næsten {{count}} år"
+        other: "næsten %{count} år"
 
   number:
     format:
@@ -107,6 +107,10 @@
 
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "er ikke i listen"
         exclusion: "er reserveret"
@@ -115,16 +119,16 @@
         accepted: "skal accepteres"
         empty: "må ikke udelades"
         blank: "skal udfyldes"
-        too_long: "er for lang (højst {{count}} tegn)"
-        too_short: "er for kort (mindst {{count}} tegn)"
-        wrong_length: "har forkert længde (skulle være {{count}} tegn)"
+        too_long: "er for lang (højst %{count} tegn)"
+        too_short: "er for kort (mindst %{count} tegn)"
+        wrong_length: "har forkert længde (skulle være %{count} tegn)"
         taken: "er allerede anvendt"
         not_a_number: "er ikke et tal"
-        greater_than: "skal være større end {{count}}"
-        greater_than_or_equal_to: "skal være større end eller lig med {{count}}"
-        equal_to: "skal være lig med {{count}}"
-        less_than: "skal være mindre end {{count}}"
-        less_than_or_equal_to: "skal være mindre end eller lig med {{count}}"
+        greater_than: "skal være større end %{count}"
+        greater_than_or_equal_to: "skal være større end eller lig med %{count}"
+        equal_to: "skal være lig med %{count}"
+        less_than: "skal være mindre end %{count}"
+        less_than_or_equal_to: "skal være mindre end eller lig med %{count}"
         odd: "skal være ulige"
         even: "skal være lige"
         greater_than_start_date: "skal være senere end startdatoen"
@@ -134,8 +138,8 @@
 
       template:
         header:
-          one:   "En fejl forhindrede {{model}} i at blive gemt"
-          other:  "{{count}} fejl forhindrede denne {{model}} i at blive gemt"
+          one:   "En fejl forhindrede %{model} i at blive gemt"
+          other:  "%{count} fejl forhindrede denne %{model} i at blive gemt"
         body: "Der var problemer med følgende felter:"
   
   actionview_instancetag_blank_option: Vælg venligst
@@ -166,29 +170,29 @@
   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 ikke adgang til denne side.
-  notice_email_sent: "En email er sendt til {{value}}"
-  notice_email_error: "En fejl opstod under afsendelse af email ({{value}})"
+  notice_email_sent: "En email er sendt til %{value}"
+  notice_email_error: "En fejl opstod under afsendelse af email (%{value})"
   notice_feeds_access_key_reseted: Din adgangsnøgle til RSS er nulstillet.
-  notice_failed_to_save_issues: "Det mislykkedes at gemme {{count}} sage(r) på {{total}} valgt: {{ids}}."
+  notice_failed_to_save_issues: "Det mislykkedes at gemme %{count} sage(r) på %{total} valgt: %{ids}."
   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 administrators godkendelse."
   notice_default_data_loaded: Standardopsætningen er indlæst.
   
-  error_can_t_load_default_data: "Standardopsætning kunne ikke indlæses: {{value}}"
+  error_can_t_load_default_data: "Standardopsætning kunne ikke indlæses: %{value}"
   error_scm_not_found: "Adgang nægtet og/eller revision blev ikke fundet i det valgte repository."
-  error_scm_command_failed: "En fejl opstod under forbindelsen til det valgte repository: {{value}}"
+  error_scm_command_failed: "En fejl opstod under forbindelsen til det valgte repository: %{value}"
   
-  mail_subject_lost_password: "Dit {{value}} kodeord"
+  mail_subject_lost_password: "Dit %{value} kodeord"
   mail_body_lost_password: 'For at ændre dit kodeord, klik på dette link:'
-  mail_subject_register: "{{value}} kontoaktivering"
+  mail_subject_register: "%{value} kontoaktivering"
   mail_body_register: 'Klik på dette link for at aktivere din konto:'
-  mail_body_account_information_external: "Du kan bruge din {{value}} konto til at logge ind."
+  mail_body_account_information_external: "Du kan bruge din %{value} konto til at logge ind."
   mail_body_account_information: Din kontoinformation
-  mail_subject_account_activation_request: "{{value}} kontoaktivering"
-  mail_body_account_activation_request: "En ny bruger ({{value}}) er registreret. Godkend venligst kontoen:"
+  mail_subject_account_activation_request: "%{value} kontoaktivering"
+  mail_body_account_activation_request: "En ny bruger (%{value}) er registreret. Godkend venligst kontoen:"
   
   gui_validation_error: 1 fejl
-  gui_validation_error_plural: "{{count}} fejl"
+  gui_validation_error_plural: "%{count} fejl"
   
   field_name: Navn
   field_description: Beskrivelse
@@ -250,6 +254,7 @@
   field_attr_lastname: Efternavn attribut
   field_attr_mail: Email attribut
   field_onthefly: løbende brugeroprettelse
+  field_start_date: Start date
   field_done_ratio: % Færdig
   field_auth_source: Sikkerhedsmetode
   field_hide_mail: Skjul min email
@@ -318,14 +323,14 @@
   label_x_projects:
     zero:  Ingen projekter
     one:   1 projekt
-    other: "{{count}} projekter"
+    other: "%{count} projekter"
   label_project_all: Alle projekter
   label_project_latest: Seneste projekter
   label_issue: Sag
   label_issue_new: Opret sag
   label_issue_plural: Sager
   label_issue_view_all: Vis alle sager
-  label_issues_by: "Sager fra {{value}}"
+  label_issues_by: "Sager fra %{value}"
   label_issue_added: Sagen er oprettet
   label_issue_updated: Sagen er opdateret
   label_document: Dokument
@@ -370,7 +375,7 @@
   label_reported_issues: Rapporterede sager
   label_assigned_to_me_issues: Sager tildelt mig
   label_last_login: Sidste login tidspunkt
-  label_registered_on: Registeret den
+  label_registered_on: Registreret den
   label_activity: Aktivitet
   label_new: Ny
   label_logged_as: Registreret som
@@ -390,8 +395,8 @@
   label_text: Lang tekst
   label_attribute: Attribut
   label_attribute_plural: Attributter
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Ingen data at vise
   label_change_status: Ændringsstatus
   label_history: Historik
@@ -422,17 +427,17 @@
   label_closed_issues: lukket
   label_closed_issues_plural: lukkede
   label_x_open_issues_abbr_on_total:
-    zero:  0 åbne / {{total}}
-    one:   1 åben / {{total}}
-    other: "{{count}} åbne / {{total}}"
+    zero:  0 åbne / %{total}
+    one:   1 åben / %{total}
+    other: "%{count} åbne / %{total}"
   label_x_open_issues_abbr:
     zero:  0 åbne
     one:   1 åben
-    other: "{{count}} åbne"
+    other: "%{count} åbne"
   label_x_closed_issues_abbr:
     zero:  0 lukkede
     one:   1 lukket
-    other: "{{count}} lukkede"
+    other: "%{count} lukkede"
   label_total: Total
   label_permissions: Rettigheder
   label_current_status: Nuværende status
@@ -441,7 +446,7 @@
   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 note
@@ -450,7 +455,7 @@
   label_months_from: måneder frem
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "sidste {{count}} ændringer"
+  label_last_changes: "sidste %{count} ændringer"
   label_change_view_all: Vis alle ændringer
   label_personalize_page: Tilret denne side
   label_comment: Kommentar
@@ -458,7 +463,7 @@
   label_x_comments:
     zero: ingen kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Tilføj en kommentar
   label_comment_added: Kommentaren er tilføjet
   label_comment_delete: Slet kommentar
@@ -477,7 +482,7 @@
   label_yesterday: i går
   label_this_week: denne uge
   label_last_week: sidste uge
-  label_last_n_days: "sidste {{count}} dage"
+  label_last_n_days: "sidste %{count} dage"
   label_this_month: denne måned
   label_last_month: sidste måned
   label_this_year: dette år
@@ -491,8 +496,8 @@
   label_repository: Repository
   label_repository_plural: Repositories
   label_browse: Gennemse
-  label_modification: "{{count}} ændring"
-  label_modification_plural: "{{count}} ændringer"
+  label_modification: "%{count} ændring"
+  label_modification_plural: "%{count} ændringer"
   label_revision: Revision
   label_revision_plural: Revisioner
   label_associated_revisions: Tilnyttede revisioner
@@ -509,7 +514,7 @@
   label_sort_lowest: Flyt til bunden
   label_roadmap: Roadmap
   label_roadmap_due_in: Deadline
-  label_roadmap_overdue: "{{value}} forsinket"
+  label_roadmap_overdue: "%{value} forsinket"
   label_roadmap_no_issues: Ingen sager i denne version
   label_search: Søg
   label_result_plural: Resultater
@@ -527,8 +532,8 @@
   label_changes_details: Detaljer for alle ændringer
   label_issue_tracking: Sags søgning
   label_spent_time: Anvendt tid
-  label_f_hour: "{{value}} time"
-  label_f_hour_plural: "{{value}} timer"
+  label_f_hour: "%{value} time"
+  label_f_hour_plural: "%{value} timer"
   label_time_tracking: Tidsstyring
   label_change_plural: Ændringer
   label_statistics: Statistik
@@ -537,7 +542,7 @@
   label_view_diff: Vis forskelle
   label_diff_inline: inline
   label_diff_side_by_side: side om side
-  label_options: Optioner
+  label_options: Formatering
   label_copy_workflow_from: Kopier arbejdsgang fra
   label_permissions_report: Godkendelsesrapport
   label_watched_issues: Overvågede sager
@@ -547,7 +552,7 @@
   label_relation_new: Ny relation
   label_relation_delete: Slet relation
   label_relates_to: relaterer til
-  label_duplicates: kopierer
+  label_duplicates: duplikater
   label_blocks: blokerer
   label_blocked_by: blokeret af
   label_precedes: kommer før
@@ -576,12 +581,12 @@
   label_date_from: Fra
   label_date_to: Til
   label_language_based: Baseret på brugerens sprog
-  label_sort_by: "Sortér efter {{value}}"
+  label_sort_by: "Sortér efter %{value}"
   label_send_test_email: Send en test email
-  label_feeds_access_key_created_on: "RSS adgangsnøgle dannet for {{value}} siden"
+  label_feeds_access_key_created_on: "RSS adgangsnøgle dannet for %{value} siden"
   label_module_plural: Moduler
-  label_added_time_by: "Tilføjet af {{author}} for {{age}} siden"
-  label_updated_time: "Opdateret for {{value}} siden"
+  label_added_time_by: "Tilføjet af %{author} for %{age} siden"
+  label_updated_time: "Opdateret for %{value} siden"
   label_jump_to_a_project: Skift til projekt...
   label_file_plural: Filer
   label_changeset_plural: Ændringer
@@ -597,7 +602,7 @@
   label_registration_activation_by_email: kontoaktivering på email
   label_registration_manual_activation: manuel kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Per side: {{value}}"
+  label_display_per_page: "Per side: %{value}"
   label_age: Alder
   label_change_properties: Ændre indstillinger
   label_general: Generelt
@@ -659,23 +664,23 @@
   text_tip_issue_end_day: opaven slutter denne dag
   text_tip_issue_begin_end_day: opgaven begynder og slutter denne dag
   text_project_identifier_info: 'Små bogstaver (a-z), numre og bindestreg er tilladt.<br />Denne er en unik identifikation for projektet, og kan defor ikke rettes senere.'
-  text_caracters_maximum: "max {{count}} karakterer."
-  text_caracters_minimum: "Skal være mindst {{count}} karakterer lang."
-  text_length_between: "Længde skal være mellem {{min}} og {{max}} karakterer."
+  text_caracters_maximum: "max %{count} karakterer."
+  text_caracters_minimum: "Skal være mindst %{count} karakterer lang."
+  text_length_between: "Længde skal være mellem %{min} og %{max} karakterer."
   text_tracker_no_workflow: Ingen arbejdsgang defineret for denne type
   text_unallowed_characters: Ikke-tilladte karakterer
   text_comma_separated: Adskillige værdier tilladt (adskilt med komma).
   text_issues_ref_in_commit_messages: Referer og løser sager i commit-beskeder
-  text_issue_added: "Sag {{id}} er rapporteret af {{author}}."
-  text_issue_updated: "Sag {{id}} er blevet opdateret af {{author}}."
+  text_issue_added: "Sag %{id} er rapporteret af %{author}."
+  text_issue_updated: "Sag %{id} er blevet opdateret af %{author}."
   text_wiki_destroy_confirmation: Er du sikker på at du vil slette denne wiki og dens indhold?
-  text_issue_category_destroy_question: "Nogle sager ({{count}}) er tildelt denne kategori. Hvad ønsker du at gøre?"
+  text_issue_category_destroy_question: "Nogle sager (%{count}) er tildelt denne kategori. Hvad ønsker du at gøre?"
   text_issue_category_destroy_assignments: Slet tildelinger af kategori
   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 har indberettet eller ejer)."
   text_no_configuration_data: "Roller, typer, sagsstatuser og arbejdsgange er endnu ikke konfigureret.\nDet er anbefalet at indlæse standardopsætningen. Du vil kunne ændre denne når den er indlæst."
   text_load_default_configuration: Indlæs standardopsætningen
-  text_status_changed_by_changeset: "Anvendt i ændring {{value}}."
+  text_status_changed_by_changeset: "Anvendt i ændring %{value}."
   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 administratorkonto ændret
@@ -711,7 +716,7 @@
   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 projektaktivitet
-  text_destroy_time_entries_question: "{{hours}} timer er registreret på denne sag som du er ved at slette. Hvad vil du gøre?"
+  text_destroy_time_entries_question: "%{hours} timer er registreret 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 standard
@@ -725,7 +730,7 @@
   setting_default_projects_public: Nye projekter er offentlige som standard
   error_scm_annotate: "Filen findes ikke, eller kunne ikke annoteres."
   label_planning: Planlægning
-  text_subprojects_destroy_warning: "Dets underprojekter(er): {{value}} vil også blive slettet."
+  text_subprojects_destroy_warning: "Dets underprojekter(er): %{value} vil også blive slettet."
   permission_edit_issues: Redigér sager
   setting_diff_max_lines_displayed: Højeste antal forskelle der vises
   permission_edit_own_issue_notes: Redigér egne noter
@@ -752,7 +757,7 @@
   permission_protect_wiki_pages: Beskyt wiki sider
   permission_manage_documents: Administrér dokumenter
   permission_add_issue_watchers: Tilføj overvågere
-  warning_attachments_not_saved: "der var {{count}} fil(er), som ikke kunne gemmes."
+  warning_attachments_not_saved: "der var %{count} fil(er), som ikke kunne gemmes."
   permission_comment_news: Kommentér nyheder
   text_enumeration_category_reassign_to: 'FLyt dem til denne værdi:'
   permission_select_project_modules: Vælg projektmoduler
@@ -760,7 +765,7 @@
   permission_delete_messages: Slet beskeder
   permission_move_issues: Flyt sager
   permission_edit_wiki_pages: Redigér wiki sider
-  label_user_activity: "{{value}}'s aktivitet"
+  label_user_activity: "%{value}'s aktivitet"
   permission_manage_issue_relations: Administrér sags-relationer
   label_issue_watchers: Overvågere
   permission_delete_wiki_pages: Slet wiki sider
@@ -771,27 +776,27 @@
   permission_manage_boards: Administrér fora
   permission_delete_wiki_pages_attachments: Slet filer vedhæftet wiki sider
   permission_view_messages: Se beskeder
-  text_enumeration_destroy_question: "{{count}} objekter er tildelt denne værdi."
+  text_enumeration_destroy_question: "%{count} objekter er tildelt denne værdi."
   permission_manage_files: Administrér filer
   permission_add_messages: Opret beskeder
   permission_edit_issue_notes: Redigér noter
   permission_manage_news: Administrér nyheder
   text_plugin_assets_writable: Der er skriverettigheder til plugin assets folderen 
   label_display: Vis
-  label_and_its_subprojects: "{{value}} og dets underprojekter"
+  label_and_its_subprojects: "%{value} og dets underprojekter"
   permission_view_calendar: Se kalender
   button_create_and_continue: Opret og fortsæt
   setting_gravatar_enabled: Anvend Gravatar bruger ikoner
-  label_updated_time_by: "Opdateret af {{author}} for {{age}} siden"
+  label_updated_time_by: "Opdateret af %{author} for %{age} siden"
   text_diff_truncated: '... Listen over forskelle er bleve afkortet da den overstiger den maksimale størrelse der kan vises.'
-  text_user_wrote: "{{value}} skrev:"
+  text_user_wrote: "%{value} skrev:"
   setting_mail_handler_api_enabled: Aktiver webservice for indkomne emails
   permission_delete_issues: Slet sager
   permission_view_documents: Se dokumenter
   permission_browse_repository: Gennemse repository
   permission_manage_repository: Administrér repository
   permission_manage_members: Administrér medlemmer
-  mail_subject_reminder: "{{count}} sag(er) har deadline i de kommende dage ({{days}})"
+  mail_subject_reminder: "%{count} sag(er) har deadline i de kommende dage (%{days})"
   permission_add_issue_notes: Tilføj noter
   permission_edit_messages: Redigér beskeder
   permission_view_issue_watchers: Se liste over overvågere
@@ -816,26 +821,26 @@
   field_identity_url: OpenID URL
   label_login_with_open_id_option: eller login med OpenID
   setting_per_page_options: Enheder per side muligheder
-  mail_body_reminder: "{{count}} sage(er) som er tildelt dig har deadline indenfor de næste {{days}} dage:"
+  mail_body_reminder: "%{count} sage(er) som er tildelt dig har deadline indenfor de næste %{days} dage:"
   field_content: Indhold
   label_descending: Aftagende
   label_sort: Sortér
   label_ascending: Tiltagende
-  label_date_from_to: Fra {{start}} til {{end}}
+  label_date_from_to: Fra %{start} til %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Denne side har {{descendants}} underside(r) og afledte. Hvad vil du gøre?
+  text_wiki_page_destroy_question: Denne side har %{descendants} underside(r) og afledte. Hvad vil du gøre?
   text_wiki_page_reassign_children: Flyt undersider til denne side
   text_wiki_page_nullify_children: Behold undersider som rod-sider
   text_wiki_page_destroy_children: Slet undersider ogalle deres afledte sider.
   setting_password_min_length: Mindste længde på kodeord
   field_group_by: Gruppér resultater efter
-  mail_subject_wiki_content_updated: "'{{id}}' wikisiden er blevet opdateret"
+  mail_subject_wiki_content_updated: "'%{id}' wikisiden er blevet opdateret"
   label_wiki_content_added: Wiki side tilføjet
-  mail_subject_wiki_content_added: "'{{id}}' wikisiden er blevet tilføjet"
-  mail_body_wiki_content_added: The '{{id}}' wikiside er blevet tilføjet af {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wikisiden er blevet tilføjet"
+  mail_body_wiki_content_added: The '%{id}' wikiside er blevet tilføjet af %{author}.
   label_wiki_content_updated: Wikiside opdateret
-  mail_body_wiki_content_updated: Wikisiden '{{id}}' er blevet opdateret af {{author}}.
+  mail_body_wiki_content_updated: Wikisiden '%{id}' er blevet opdateret af %{author}.
   permission_add_project: Opret projekt
   setting_new_project_user_role_id: Denne rolle gives til en bruger, som ikke er administrator, og som opretter et projekt
   label_view_all_revisions: Se alle revisioner
@@ -843,14 +848,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Der er ingen sagshåndtering for dette projekt. Kontrollér venligst projektindstillingerne.
   error_no_default_issue_status: Der er ikek defineret en standardstatus. Kontrollér venligst indstillingernen (Gå til "Administration -> Sagsstatuser").
-  text_journal_changed: "{{label}} ændret fra {{old}} til {{new}}"
-  text_journal_set_to: "{{label}} sat til {{value}}"
-  text_journal_deleted: "{{label}} slettet ({{old}})"
+  text_journal_changed: "%{label} ændret fra %{old} til %{new}"
+  text_journal_set_to: "%{label} sat til %{value}"
+  text_journal_deleted: "%{label} slettet (%{old})"
   label_group_plural: Grupper
   label_group: Grupper
   label_group_new: Ny gruppe
   label_time_entry_plural: Anvendt tid
-  text_journal_added: "{{label}} {{value}} tilføjet"
+  text_journal_added: "%{label} %{value} tilføjet"
   field_active: Aktiv
   enumeration_system_activity: System Aktivitet
   permission_delete_issue_watchers: Slet overvågere
@@ -869,8 +874,8 @@
   label_version_sharing_tree: Med projekt træ
   label_version_sharing_none: Ikke delt
   error_can_not_archive_project: Dette projekt kan ikke arkiveres
-  button_duplicate: Kopier
-  button_copy_and_follow: Kopier og overvåg
+  button_duplicate: Duplikér
+  button_copy_and_follow: Kopiér og overvåg
   label_copy_source: Kilde
   setting_issue_done_ratio: Beregn sagsløsning ratio
   setting_issue_done_ratio_issue_status: Benyt sags status
@@ -885,9 +890,9 @@
   setting_start_of_week: Start kalendre på
   permission_view_issues: Vis sager
   label_display_used_statuses_only: Vis kun statuser der er benyttet af denne tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API nøgle
-  label_api_access_key_created_on: API nøgle genereret {{value}} siden
+  label_api_access_key_created_on: API nøgle genereret %{value} siden
   label_feeds_access_key: RSS nøgle
   notice_api_access_key_reseted: Din API nøgle er nulstillet.
   setting_rest_api_enabled: Aktiver REST web service
@@ -895,14 +900,14 @@
   label_missing_feeds_access_key: Mangler en RSS nøgle
   button_show: Vis
   text_line_separated: Flere væredier tilladt (en linje for hver værdi).
-  setting_mail_handler_body_delimiters: Trunker emails efter en af disse linjer
+  setting_mail_handler_body_delimiters: Trunkér emails efter en af disse linjer
   permission_add_subprojects: Lav underprojekter
   label_subproject_new: Nyt underprojekt
   text_own_membership_delete_confirmation: |-
     Du er ved at fjerne en eller flere af dine rettigheder, og kan muligvis ikke redigere projektet bagefter.
     Er du sikker på du ønsker at fortsætte?
   label_close_versions: Luk færdige versioner
-  label_board_sticky: Sticky
+  label_board_sticky: Klistret
   label_board_locked: LÃ¥st
   permission_export_wiki_pages: Eksporter wiki sider
   setting_cache_formatted_text: Cache formatteret tekst
@@ -913,33 +918,37 @@
   field_parent_issue: Hoved opgave
   label_subtask_plural: Under opgaver
   label_project_copy_notifications: Send email notifikationer, mens projektet kopieres
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  error_can_not_delete_custom_field: Kan ikke slette brugerdefineret felt
+  error_unable_to_connect: Kan ikke forbinde (%{value})
+  error_can_not_remove_role: Denne rolle er i brug og kan ikke slettes.
+  error_can_not_delete_tracker: Denne type indeholder sager og kan ikke slettes.
   field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
+  label_my_page_block: blok
+  notice_failed_to_save_members: "Fejl under lagring af medlem(mer): %{errors}."
+  text_zoom_out: Zoom ud
   text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
+  notice_unable_delete_time_entry: Kan ikke slette tidsregistrering.
+  label_overall_spent_time: Overordnet forbrug af tid
+  field_time_entries: Log tid
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
+  project_module_calendar: Kalender
+  button_edit_associated_wikipage: "Redigér tilknyttet Wiki side: %{page_title}"
+  text_are_you_sure_with_children: Slet sag og alle undersager?
+  field_text: Tekstfelt
   label_user_mail_option_only_owner: Only for things I am the owner of
   setting_default_notification_option: Default notification option
   label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
   label_user_mail_option_only_assigned: Only for things I am assigned to
   label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+  field_member_of_group: Medlem af Gruppe
+  field_assigned_to_role: Medlem af Rolle
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/de.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/de.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: 'eine halbe Minute'
       less_than_x_seconds:
         one: 'weniger als 1 Sekunde'
-        other: 'weniger als {{count}} Sekunden'
+        other: 'weniger als %{count} Sekunden'
       x_seconds:
         one: '1 Sekunde'
-        other: '{{count}} Sekunden'
+        other: '%{count} Sekunden'
       less_than_x_minutes:
         one: 'weniger als 1 Minute'
-        other: 'weniger als {{count}} Minuten'
+        other: 'weniger als %{count} Minuten'
       x_minutes:
         one: '1 Minute'
-        other: '{{count}} Minuten'
+        other: '%{count} Minuten'
       about_x_hours:
         one: 'etwa 1 Stunde'
-        other: 'etwa {{count}} Stunden'
+        other: 'etwa %{count} Stunden'
       x_days:
         one: '1 Tag'
-        other: '{{count}} Tagen'
+        other: '%{count} Tagen'
       about_x_months:
         one: 'etwa 1 Monat'
-        other: 'etwa {{count}} Monaten'
+        other: 'etwa %{count} Monaten'
       x_months:
         one: '1 Monat'
-        other: '{{count}} Monaten'
+        other: '%{count} Monaten'
       about_x_years:
         one: 'etwa 1 Jahr'
-        other: 'etwa {{count}} Jahren'
+        other: 'etwa %{count} Jahren'
       over_x_years:
         one: 'mehr als 1 Jahr'
-        other: 'mehr als {{count}} Jahren'
+        other: 'mehr als %{count} Jahren'
       almost_x_years:
         one:   "fast 1 Jahr"
-        other: "fast {{count}} Jahren"
+        other: "fast %{count} Jahren"
 
   number:
     # Default format for numbers
@@ -111,7 +111,9 @@
   activerecord:
     errors:
       template:
-        header: "Dieses {{model}}-Objekt konnte nicht gespeichert werden: {{count}} Fehler."
+        header:
+          one:    "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler."
+          other:  "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler."
         body: "Bitte überprüfen Sie die folgenden Felder:"
 
       messages:
@@ -122,17 +124,17 @@
         accepted: "muss akzeptiert werden"
         empty: "muss ausgefüllt werden"
         blank: "muss ausgefüllt werden"
-        too_long: "ist zu lang (nicht mehr als {{count}} Zeichen)"
-        too_short: "ist zu kurz (nicht weniger als {{count}} Zeichen)"
-        wrong_length: "hat die falsche Länge (muss genau {{count}} Zeichen haben)"
+        too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
+        too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
+        wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
         taken: "ist bereits vergeben"
         not_a_number: "ist keine Zahl"
         not_a_date: "is kein gültiges Datum"
-        greater_than: "muss größer als {{count}} sein"
-        greater_than_or_equal_to: "muss größer oder gleich {{count}} sein"
-        equal_to: "muss genau {{count}} sein"
-        less_than: "muss kleiner als {{count}} sein"
-        less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
+        greater_than: "muss größer als %{count} sein"
+        greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
+        equal_to: "muss genau %{count} sein"
+        less_than: "muss kleiner als %{count} sein"
+        less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
         odd: "muss ungerade sein"
         even: "muss gerade sein"
         greater_than_start_date: "muss größer als Anfangsdatum sein"
@@ -169,12 +171,12 @@
   notice_file_not_found: Anhang existiert nicht oder ist gelöscht worden.
   notice_locking_conflict: Datum wurde von einem anderen Benutzer geändert.
   notice_not_authorized: Sie sind nicht berechtigt, auf diese Seite zuzugreifen.
-  notice_email_sent: "Eine E-Mail wurde an {{value}} gesendet."
-  notice_email_error: "Beim Senden einer E-Mail ist ein Fehler aufgetreten ({{value}})."
+  notice_email_sent: "Eine E-Mail wurde an %{value} gesendet."
+  notice_email_error: "Beim Senden einer E-Mail ist ein Fehler aufgetreten (%{value})."
   notice_feeds_access_key_reseted: Ihr Atom-Zugriffsschlüssel wurde zurückgesetzt.
   notice_api_access_key_reseted: Ihr API-Zugriffsschlüssel wurde zurückgesetzt.
-  notice_failed_to_save_issues: "{{count}} von {{total}} ausgewählten Tickets konnte(n) nicht gespeichert werden: {{ids}}."
-  notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: {{errors}}."
+  notice_failed_to_save_issues: "%{count} von %{total} ausgewählten Tickets konnte(n) nicht gespeichert werden: %{ids}."
+  notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: %{errors}."
   notice_no_issue_selected: "Kein Ticket ausgewählt! Bitte wählen Sie die Tickets, die Sie bearbeiten möchten."
   notice_account_pending: "Ihr Konto wurde erstellt und wartet jetzt auf die Genehmigung des Administrators."
   notice_default_data_loaded: Die Standard-Konfiguration wurde erfolgreich geladen.
@@ -182,9 +184,9 @@
   notice_unable_delete_time_entry: Der Zeiterfassungseintrag konnte nicht gelöscht werden.
   notice_issue_done_ratios_updated: Der Ticket-Fortschritt wurde aktualisiert.
 
-  error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: {{value}}"
+  error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: %{value}"
   error_scm_not_found: Eintrag und/oder Revision existiert nicht im Projektarchiv.
-  error_scm_command_failed: "Beim Zugriff auf das Projektarchiv ist ein Fehler aufgetreten: {{value}}"
+  error_scm_command_failed: "Beim Zugriff auf das Projektarchiv ist ein Fehler aufgetreten: %{value}"
   error_scm_annotate: "Der Eintrag existiert nicht oder kann nicht annotiert werden."
   error_issue_not_found_in_project: 'Das Ticket wurde nicht gefunden oder gehört nicht zu diesem Projekt.'
   error_no_tracker_in_project: Diesem Projekt ist kein Tracker zugeordnet. Bitte überprüfen Sie die Projekteinstellungen.
@@ -198,26 +200,26 @@
   error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker und eine Quell-Rolle.
   error_workflow_copy_target: Bitte wählen Sie die Ziel-Tracker und -Rollen.
   error_unable_delete_issue_status: "Der Ticket-Status konnte nicht gelöscht werden."
-  error_unable_to_connect: Fehler beim Verbinden ({{value}})
-  warning_attachments_not_saved: "{{count}} Datei(en) konnten nicht gespeichert werden."
+  error_unable_to_connect: Fehler beim Verbinden (%{value})
+  warning_attachments_not_saved: "%{count} Datei(en) konnten nicht gespeichert werden."
   
-  mail_subject_lost_password: "Ihr {{value}} Kennwort"
+  mail_subject_lost_password: "Ihr %{value} Kennwort"
   mail_body_lost_password: 'Benutzen Sie den folgenden Link, um Ihr Kennwort zu ändern:'
-  mail_subject_register: "{{value}} Kontoaktivierung"
+  mail_subject_register: "%{value} Kontoaktivierung"
   mail_body_register: 'Um Ihr Konto zu aktivieren, benutzen Sie folgenden Link:'
-  mail_body_account_information_external: "Sie können sich mit Ihrem Konto {{value}} an anmelden."
+  mail_body_account_information_external: "Sie können sich mit Ihrem Konto %{value} an anmelden."
   mail_body_account_information: Ihre Konto-Informationen
-  mail_subject_account_activation_request: "Antrag auf {{value}} Kontoaktivierung"
-  mail_body_account_activation_request: "Ein neuer Benutzer ({{value}}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:"
-  mail_subject_reminder: "{{count}} Tickets müssen in den nächsten {{days}} Tagen abgegeben werden"
-  mail_body_reminder: "{{count}} Tickets, die Ihnen zugewiesen sind, müssen in den nächsten {{days}} Tagen abgegeben werden:"
-  mail_subject_wiki_content_added: "Wiki-Seite '{{id}}' hinzugefügt"
-  mail_body_wiki_content_added: "Die Wiki-Seite '{{id}}' wurde von {{author}} hinzugefügt."
-  mail_subject_wiki_content_updated: "Wiki-Seite '{{id}}' erfolgreich aktualisiert"
-  mail_body_wiki_content_updated: "Die Wiki-Seite '{{id}}' wurde von {{author}} aktualisiert."
+  mail_subject_account_activation_request: "Antrag auf %{value} Kontoaktivierung"
+  mail_body_account_activation_request: "Ein neuer Benutzer (%{value}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:"
+  mail_subject_reminder: "%{count} Tickets müssen in den nächsten %{days} Tagen abgegeben werden"
+  mail_body_reminder: "%{count} Tickets, die Ihnen zugewiesen sind, müssen in den nächsten %{days} Tagen abgegeben werden:"
+  mail_subject_wiki_content_added: "Wiki-Seite '%{id}' hinzugefügt"
+  mail_body_wiki_content_added: "Die Wiki-Seite '%{id}' wurde von %{author} hinzugefügt."
+  mail_subject_wiki_content_updated: "Wiki-Seite '%{id}' erfolgreich aktualisiert"
+  mail_body_wiki_content_updated: "Die Wiki-Seite '%{id}' wurde von %{author} aktualisiert."
 
   gui_validation_error: 1 Fehler
-  gui_validation_error_plural: "{{count}} Fehler"
+  gui_validation_error_plural: "%{count} Fehler"
 
   field_name: Name
   field_description: Beschreibung
@@ -280,6 +282,7 @@
   field_attr_lastname: Name-Attribut
   field_attr_mail: E-Mail-Attribut
   field_onthefly: On-the-fly-Benutzererstellung
+  field_start_date: Beginn
   field_done_ratio: % erledigt
   field_auth_source: Authentifizierungs-Modus
   field_hide_mail: E-Mail-Adresse nicht anzeigen
@@ -443,14 +446,14 @@
   label_x_projects:
     zero:  keine Projekte
     one:   1 Projekt
-    other: "{{count}} Projekte"
+    other: "%{count} Projekte"
   label_project_all: Alle Projekte
   label_project_latest: Neueste Projekte
   label_issue: Ticket
   label_issue_new: Neues Ticket
   label_issue_plural: Tickets
   label_issue_view_all: Alle Tickets anzeigen
-  label_issues_by: "Tickets von {{value}}"
+  label_issues_by: "Tickets von %{value}"
   label_issue_added: Ticket hinzugefügt
   label_issue_updated: Ticket aktualisiert
   label_document: Dokument
@@ -500,7 +503,7 @@
   label_registered_on: Angemeldet am
   label_activity: Aktivität
   label_overall_activity: Aktivität aller Projekte anzeigen
-  label_user_activity: "Aktivität von {{value}}"
+  label_user_activity: "Aktivität von %{value}"
   label_new: Neu
   label_logged_as: Angemeldet als
   label_environment: Umgebung
@@ -510,7 +513,7 @@
   label_auth_source_plural: Authentifizierungs-Arten
   label_subproject_plural: Unterprojekte
   label_subproject_new: Neues Unterprojekt
-  label_and_its_subprojects: "{{value}} und dessen Unterprojekte"
+  label_and_its_subprojects: "%{value} und dessen Unterprojekte"
   label_min_max_length: Länge (Min. - Max.)
   label_list: Liste
   label_date: Datum
@@ -521,8 +524,8 @@
   label_text: Langer Text
   label_attribute: Attribut
   label_attribute_plural: Attribute
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nichts anzuzeigen
   label_change_status: Statuswechsel
   label_history: Historie
@@ -554,17 +557,17 @@
   label_closed_issues: geschlossen
   label_closed_issues_plural: geschlossen
   label_x_open_issues_abbr_on_total:
-    zero:  0 offen / {{total}}
-    one:   1 offen / {{total}}
-    other: "{{count}} offen / {{total}}"
+    zero:  0 offen / %{total}
+    one:   1 offen / %{total}
+    other: "%{count} offen / %{total}"
   label_x_open_issues_abbr:
     zero:  0 offen
     one:   1 offen
-    other: "{{count}} offen"
+    other: "%{count} offen"
   label_x_closed_issues_abbr:
     zero:  0 geschlossen
     one:   1 geschlossen
-    other: "{{count}} geschlossen"
+    other: "%{count} geschlossen"
   label_total: Gesamtzahl
   label_permissions: Berechtigungen
   label_current_status: Gegenwärtiger Status
@@ -582,7 +585,7 @@
   label_months_from: Monate ab
   label_gantt: Gantt-Diagramm
   label_internal: Intern
-  label_last_changes: "{{count}} letzte Änderungen"
+  label_last_changes: "%{count} letzte Änderungen"
   label_change_view_all: Alle Änderungen anzeigen
   label_personalize_page: Diese Seite anpassen
   label_comment: Kommentar
@@ -590,7 +593,7 @@
   label_x_comments:
     zero: keine Kommentare
     one: 1 Kommentar
-    other: "{{count}} Kommentare"
+    other: "%{count} Kommentare"
   label_comment_add: Kommentar hinzufügen
   label_comment_added: Kommentar hinzugefügt
   label_comment_delete: Kommentar löschen
@@ -611,7 +614,7 @@
   label_yesterday: gestern
   label_this_week: aktuelle Woche
   label_last_week: vorige Woche
-  label_last_n_days: "die letzten {{count}} Tage"
+  label_last_n_days: "die letzten %{count} Tage"
   label_this_month: aktueller Monat
   label_last_month: voriger Monat
   label_this_year: aktuelles Jahr
@@ -625,13 +628,13 @@
   label_repository: Projektarchiv
   label_repository_plural: Projektarchive
   label_browse: Codebrowser
-  label_modification: "{{count}} Änderung"
-  label_modification_plural: "{{count}} Änderungen"
+  label_modification: "%{count} Änderung"
+  label_modification_plural: "%{count} Änderungen"
   label_branch: Zweig
   label_tag: Markierung
   label_revision: Revision
   label_revision_plural: Revisionen
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_associated_revisions: Zugehörige Revisionen
   label_added: hinzugefügt
   label_modified: geändert
@@ -648,8 +651,8 @@
   label_sort_lower: Eins tiefer
   label_sort_lowest: Ans Ende
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Fällig in {{value}}"
-  label_roadmap_overdue: "{{value}} verspätet"
+  label_roadmap_due_in: "Fällig in %{value}"
+  label_roadmap_overdue: "%{value} verspätet"
   label_roadmap_no_issues: Keine Tickets für diese Version
   label_search: Suche
   label_result_plural: Resultate
@@ -668,8 +671,8 @@
   label_issue_tracking: Tickets
   label_spent_time: Aufgewendete Zeit
   label_overall_spent_time: Aufgewendete Zeit aller Projekte anzeigen
-  label_f_hour: "{{value}} Stunde"
-  label_f_hour_plural: "{{value}} Stunden"
+  label_f_hour: "%{value} Stunde"
+  label_f_hour_plural: "%{value} Stunden"
   label_time_tracking: Zeiterfassung
   label_change_plural: Änderungen
   label_statistics: Statistiken
@@ -720,15 +723,15 @@
   label_date_from: Von
   label_date_to: Bis
   label_language_based: Sprachabhängig
-  label_sort_by: "Sortiert nach {{value}}"
+  label_sort_by: "Sortiert nach %{value}"
   label_send_test_email: Test-E-Mail senden
   label_feeds_access_key: RSS-Zugriffsschlüssel
   label_missing_feeds_access_key: Der RSS-Zugriffsschlüssel fehlt.
-  label_feeds_access_key_created_on: "Atom-Zugriffsschlüssel vor {{value}} erstellt"
+  label_feeds_access_key_created_on: "Atom-Zugriffsschlüssel vor %{value} erstellt"
   label_module_plural: Module
-  label_added_time_by: "Von {{author}} vor {{age}} hinzugefügt"
-  label_updated_time_by: "Von {{author}} vor {{age}} aktualisiert"
-  label_updated_time: "Vor {{value}} aktualisiert"
+  label_added_time_by: "Von %{author} vor %{age} hinzugefügt"
+  label_updated_time_by: "Von %{author} vor %{age} aktualisiert"
+  label_updated_time: "Vor %{value} aktualisiert"
   label_jump_to_a_project: Zu einem Projekt springen...
   label_file_plural: Dateien
   label_changeset_plural: Changesets
@@ -744,7 +747,7 @@
   label_registration_activation_by_email: Kontoaktivierung durch E-Mail
   label_registration_manual_activation: Manuelle Kontoaktivierung
   label_registration_automatic_activation: Automatische Kontoaktivierung
-  label_display_per_page: "Pro Seite: {{value}}"
+  label_display_per_page: "Pro Seite: %{value}"
   label_age: Geändert vor
   label_change_properties: Eigenschaften ändern
   label_general: Allgemein
@@ -767,7 +770,7 @@
   label_sort: Sortierung
   label_ascending: Aufsteigend
   label_descending: Absteigend
-  label_date_from_to: von {{start}} bis {{end}}
+  label_date_from_to: von %{start} bis %{end}
   label_wiki_content_added: Die Wiki-Seite wurde erfolgreich hinzugefügt.
   label_wiki_content_updated: Die Wiki-Seite wurde erfolgreich aktualisiert.
   label_group: Gruppe
@@ -786,7 +789,7 @@
   label_display_used_statuses_only: Zeige nur Status an, die von diesem Tracker verwendet werden
   label_api_access_key: API-Zugriffsschlüssel
   label_missing_api_access_key: Der API-Zugriffsschlüssel fehlt.
-  label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor {{value}} erstellt
+  label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor %{value} erstellt
   label_profile: Profil
   label_subtask_plural: Unteraufgaben
   label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
@@ -803,7 +806,7 @@
   button_create_and_continue: Anlegen und weiter
   button_test: Testen
   button_edit: Bearbeiten
-  button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: {{page_title}}"
+  button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: %{page_title}"
   button_add: Hinzufügen
   button_change: Wechseln
   button_apply: Anwenden
@@ -852,53 +855,54 @@
   text_regexp_info: z. B. ^[A-Z0-9]+$
   text_min_max_length_info: 0 heißt keine Beschränkung
   text_project_destroy_confirmation: Sind Sie sicher, dass sie das Projekt löschen wollen?
-  text_subprojects_destroy_warning: "Dessen Unterprojekte ({{value}}) werden ebenfalls gelöscht."
+  text_subprojects_destroy_warning: "Dessen Unterprojekte (%{value}) werden ebenfalls gelöscht."
   text_workflow_edit: Workflow zum Bearbeiten auswählen
   text_are_you_sure: Sind Sie sicher?
-  text_journal_changed: "{{label}} wurde von {{old}} zu {{new}} geändert"
-  text_journal_set_to: "{{label}} wurde auf {{value}} gesetzt"
-  text_journal_deleted: "{{label}} {{old}} wurde gelöscht"
-  text_journal_added: "{{label}} {{value}} wurde hinzugefügt"
+  text_are_you_sure_with_children: "Lösche Aufgabe und alle Unteraufgaben?"
+  text_journal_changed: "%{label} wurde von %{old} zu %{new} geändert"
+  text_journal_set_to: "%{label} wurde auf %{value} gesetzt"
+  text_journal_deleted: "%{label} %{old} wurde gelöscht"
+  text_journal_added: "%{label} %{value} wurde hinzugefügt"
   text_tip_issue_begin_day: Aufgabe, die an diesem Tag beginnt
   text_tip_issue_end_day: Aufgabe, die an diesem Tag endet
   text_tip_issue_begin_end_day: Aufgabe, die an diesem Tag beginnt und endet
   text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern und Bindestriche erlaubt.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.'
-  text_caracters_maximum: "Max. {{count}} Zeichen."
-  text_caracters_minimum: "Muss mindestens {{count}} Zeichen lang sein."
-  text_length_between: "Länge zwischen {{min}} und {{max}} Zeichen."
+  text_caracters_maximum: "Max. %{count} Zeichen."
+  text_caracters_minimum: "Muss mindestens %{count} Zeichen lang sein."
+  text_length_between: "Länge zwischen %{min} und %{max} Zeichen."
   text_tracker_no_workflow: Kein Workflow für diesen Tracker definiert.
   text_unallowed_characters: Nicht erlaubte Zeichen
   text_comma_separated: Mehrere Werte erlaubt (durch Komma getrennt).
   text_line_separated: Mehrere Werte sind erlaubt (eine Zeile pro Wert).
   text_issues_ref_in_commit_messages: Ticket-Beziehungen und -Status in Commit-Log-Meldungen
-  text_issue_added: "Ticket {{id}} wurde erstellt von {{author}}."
-  text_issue_updated: "Ticket {{id}} wurde aktualisiert von {{author}}."
+  text_issue_added: "Ticket %{id} wurde erstellt von %{author}."
+  text_issue_updated: "Ticket %{id} wurde aktualisiert von %{author}."
   text_wiki_destroy_confirmation: Sind Sie sicher, dass Sie dieses Wiki mit sämtlichem Inhalt löschen möchten?
-  text_issue_category_destroy_question: "Einige Tickets ({{count}}) sind dieser Kategorie zugeodnet. Was möchten Sie tun?"
+  text_issue_category_destroy_question: "Einige Tickets (%{count}) sind dieser Kategorie zugeodnet. Was möchten Sie tun?"
   text_issue_category_destroy_assignments: Kategorie-Zuordnung entfernen
   text_issue_category_reassign_to: Tickets dieser Kategorie zuordnen
   text_user_mail_option: "Für nicht ausgewählte Projekte werden Sie nur Benachrichtigungen für Dinge erhalten, die Sie beobachten oder an denen Sie beteiligt sind (z. B. Tickets, deren Autor Sie sind oder die Ihnen zugewiesen sind)."
   text_no_configuration_data: "Rollen, Tracker, Ticket-Status und Workflows wurden noch nicht konfiguriert.\nEs ist sehr zu empfehlen, die Standard-Konfiguration zu laden. Sobald sie geladen ist, können Sie sie abändern."
   text_load_default_configuration: Standard-Konfiguration laden
-  text_status_changed_by_changeset: "Status geändert durch Changeset {{value}}."
+  text_status_changed_by_changeset: "Status geändert durch Changeset %{value}."
   text_issues_destroy_confirmation: 'Sind Sie sicher, dass Sie die ausgewählten Tickets löschen möchten?'
   text_select_project_modules: 'Bitte wählen Sie die Module aus, die in diesem Projekt aktiviert sein sollen:'
   text_default_administrator_account_changed: Administrator-Kennwort geändert
   text_file_repository_writable: Verzeichnis für Dateien beschreibbar
   text_plugin_assets_writable: Verzeichnis für Plugin-Assets beschreibbar
   text_rmagick_available: RMagick verfügbar (optional)
-  text_destroy_time_entries_question: Es wurden bereits {{hours}} Stunden auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen?
+  text_destroy_time_entries_question: Es wurden bereits %{hours} Stunden auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen?
   text_destroy_time_entries: Gebuchte Aufwände löschen
   text_assign_time_entries_to_project: Gebuchte Aufwände dem Projekt zuweisen
   text_reassign_time_entries: 'Gebuchte Aufwände diesem Ticket zuweisen:'
-  text_user_wrote: "{{value}} schrieb:"
-  text_enumeration_destroy_question: "{{count}} Objekt(e) sind diesem Wert zugeordnet."
+  text_user_wrote: "%{value} schrieb:"
+  text_enumeration_destroy_question: "%{count} Objekt(e) sind diesem Wert zugeordnet."
   text_enumeration_category_reassign_to: 'Die Objekte stattdessen diesem Wert zuordnen:'
   text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/email.yml vor und starten Sie die Applikation neu."
   text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Log-Meldungen des Projektarchivs fest.\nBenutzer mit identischen Redmine- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet."
   text_diff_truncated: '... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.'
   text_custom_field_possible_values_info: 'Eine Zeile pro Wert'
-  text_wiki_page_destroy_question: "Diese Seite hat {{descendants}} Unterseite(n). Was möchten Sie tun?"
+  text_wiki_page_destroy_question: "Diese Seite hat %{descendants} Unterseite(n). Was möchten Sie tun?"
   text_wiki_page_nullify_children: Verschiebe die Unterseiten auf die oberste Ebene
   text_wiki_page_destroy_children: Lösche alle Unterseiten
   text_wiki_page_reassign_children: Ordne die Unterseiten dieser Seite zu
@@ -933,16 +937,19 @@
   enumeration_activities: Aktivitäten (Zeiterfassung)
   enumeration_system_activity: System-Aktivität
 
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  field_start_date: Start date
-  field_visible: Visible
-  setting_emails_header: Emails header
+  field_text: Textfeld
+  label_user_mail_option_only_owner: Nur für Aufgaben die ich angelegt habe
+  setting_default_notification_option: Standard Benachrichtigungsoptionen
+  label_user_mail_option_only_my_events: Nur für Aufgaben die ich beobachte oder an welchen ich mitarbeite
+  label_user_mail_option_only_assigned: Nur für Aufgaben für die ich zuständig bin.
+  notice_not_authorized_archived_project: Das Projekt wurde archiviert und ist daher nicht nicht verfügbar.
+  label_user_mail_option_none: keine Ereignisse
+  field_member_of_group: Zuständigkeitsgruppe
+  field_assigned_to_role: Zuständigkeitsrolle
+  field_visible: Sichtbar
+  setting_emails_header: Emailkopf
+  setting_commit_logtime_activity_id: Aktivität für die Zeiterfassung
+  text_time_logged_by_changeset: Angewendet in Changeset %{value}.
+  setting_commit_logtime_enabled: Aktiviere Zeitlogging
+  notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max})
+  setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden.
--- a/config/locales/el.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/el.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -35,37 +35,37 @@
       half_a_minute: "μισό λεπτό"
       less_than_x_seconds:
         one:   "λιγότεÏο από 1 δευτεÏόλεπτο"
-        other: "λιγότεÏο από {{count}} δευτεÏόλεπτα"
+        other: "λιγότεÏο από %{count} δευτεÏόλεπτα"
       x_seconds:
         one:   "1 δευτεÏόλεπτο"
-        other: "{{count}} δευτεÏόλεπτα"
+        other: "%{count} δευτεÏόλεπτα"
       less_than_x_minutes:
         one:   "λιγότεÏο από ένα λεπτό"
-        other: "λιγότεÏο από {{count}} λεπτά"
+        other: "λιγότεÏο από %{count} λεπτά"
       x_minutes:
         one:   "1 λεπτό"
-        other: "{{count}} λεπτά"
+        other: "%{count} λεπτά"
       about_x_hours:
         one:   "πεÏίπου 1 ÏŽÏα"
-        other: "πεÏίπου {{count}} ÏŽÏες"
+        other: "πεÏίπου %{count} ÏŽÏες"
       x_days:
         one:   "1 ημέÏα"
-        other: "{{count}} ημέÏες"
+        other: "%{count} ημέÏες"
       about_x_months:
         one:   "πεÏίπου 1 μήνα"
-        other: "πεÏίπου {{count}} μήνες"
+        other: "πεÏίπου %{count} μήνες"
       x_months:
         one:   "1 μήνα"
-        other: "{{count}} μήνες"
+        other: "%{count} μήνες"
       about_x_years:
         one:   "πεÏίπου 1 χÏόνο"
-        other: "πεÏίπου {{count}} χÏόνια"
+        other: "πεÏίπου %{count} χÏόνια"
       over_x_years:
         one:   "πάνω από 1 χÏόνο"
-        other: "πάνω από {{count}} χÏόνια"
+        other: "πάνω από %{count} χÏόνια"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
         
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "δεν πεÏιέχεται στη λίστα"
         exclusion: "έχει κατοχυÏωθεί"
@@ -103,17 +107,17 @@
         accepted: "Ï€Ïέπει να γίνει αποδοχή"
         empty: "δε μποÏεί να είναι άδειο"
         blank: "δε μποÏεί να είναι κενό"
-        too_long: "έχει πολλοÏÏ‚ (μέγ.επιτÏ. {{count}} χαÏακτήÏες)"
-        too_short: "έχει λίγους (ελάχ.επιτÏ. {{count}} χαÏακτήÏες)"
-        wrong_length: "δεν είναι σωστός ο αÏιθμός χαÏακτήÏων (Ï€Ïέπει να έχει {{count}} χαÏακτήÏες)"
+        too_long: "έχει πολλοÏÏ‚ (μέγ.επιτÏ. %{count} χαÏακτήÏες)"
+        too_short: "έχει λίγους (ελάχ.επιτÏ. %{count} χαÏακτήÏες)"
+        wrong_length: "δεν είναι σωστός ο αÏιθμός χαÏακτήÏων (Ï€Ïέπει να έχει %{count} χαÏακτήÏες)"
         taken: "έχει ήδη κατοχυÏωθεί"
         not_a_number: "δεν είναι αÏιθμός"
         not_a_date: "δεν είναι σωστή ημεÏομηνία"
-        greater_than: "Ï€Ïέπει να είναι μεγαλÏτεÏο από {{count}}"
-        greater_than_or_equal_to: "Ï€Ïέπει να είναι μεγαλÏτεÏο από ή ίσο με {{count}}"
-        equal_to: "Ï€Ïέπει να είναι ίσον με {{count}}"
-        less_than: "Ï€Ïέπει να είναι μικÏότεÏη από {{count}}"
-        less_than_or_equal_to: "Ï€Ïέπει να είναι μικÏότεÏο από ή ίσο με  {{count}}"
+        greater_than: "Ï€Ïέπει να είναι μεγαλÏτεÏο από %{count}"
+        greater_than_or_equal_to: "Ï€Ïέπει να είναι μεγαλÏτεÏο από ή ίσο με %{count}"
+        equal_to: "Ï€Ïέπει να είναι ίσον με %{count}"
+        less_than: "Ï€Ïέπει να είναι μικÏότεÏη από %{count}"
+        less_than_or_equal_to: "Ï€Ïέπει να είναι μικÏότεÏο από ή ίσο με  %{count}"
         odd: "Ï€Ïέπει να είναι μονός"
         even: "Ï€Ïέπει να είναι ζυγός"
         greater_than_start_date: "Ï€Ïέπει να είναι αÏγότεÏα από την ημεÏομηνία έναÏξης"
@@ -150,42 +154,42 @@
   notice_file_not_found: Η σελίδα που ζητήσατε δεν υπάÏχει ή έχει αφαιÏεθεί. 
   notice_locking_conflict: Τα δεδομένα έχουν ενημεÏωθεί από άλλο χÏήστη.
   notice_not_authorized: Δεν έχετε δικαίωμα Ï€Ïόσβασης σε αυτή τη σελίδα.
-  notice_email_sent: "Ένα μήνυμα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου εστάλη στο {{value}}"
-  notice_email_error: "Σφάλμα κατά την αποστολή του μηνÏματος στο ({{value}})"
+  notice_email_sent: "Ένα μήνυμα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου εστάλη στο %{value}"
+  notice_email_error: "Σφάλμα κατά την αποστολή του μηνÏματος στο (%{value})"
   notice_feeds_access_key_reseted:  Έγινε επαναφοÏά στο κλειδί Ï€Ïόσβασης RSS.
-  notice_failed_to_save_issues: "Αποτυχία αποθήκευσης {{count}} θεμα(των) από τα {{total}} επιλεγμένα: {{ids}}."
+  notice_failed_to_save_issues: "Αποτυχία αποθήκευσης %{count} θεμα(των) από τα %{total} επιλεγμένα: %{ids}."
   notice_no_issue_selected: "Κανένα θέμα δεν είναι επιλεγμένο! ΠαÏακαλοÏμε, ελέγξτε τα θέματα που θέλετε να επεξεÏγαστείτε."
   notice_account_pending: "Ο λογαÏιασμός σας έχει δημιουÏγηθεί και είναι σε στάδιο έγκÏισης από τον διαχειÏιστή."
   notice_default_data_loaded: Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις φοÏτώθηκαν επιτυχώς.
   notice_unable_delete_version: ΑδÏνατον να διαγÏαφεί η έκδοση.
   
-  error_can_t_load_default_data: "Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις δεν μπόÏεσαν να φοÏτωθοÏν:: {{value}}"
+  error_can_t_load_default_data: "Οι Ï€Ïοεπιλεγμένες Ïυθμίσεις δεν μπόÏεσαν να φοÏτωθοÏν:: %{value}"
   error_scm_not_found: "Η εγγÏαφή ή η αναθεώÏηση δεν βÏέθηκε στο αποθετήÏιο."
-  error_scm_command_failed: "ΠαÏουσιάστηκε σφάλμα κατά την Ï€Ïοσπάθεια Ï€Ïόσβασης στο αποθετήÏιο: {{value}}"
+  error_scm_command_failed: "ΠαÏουσιάστηκε σφάλμα κατά την Ï€Ïοσπάθεια Ï€Ïόσβασης στο αποθετήÏιο: %{value}"
   error_scm_annotate: "Η καταχώÏιση δεν υπάÏχει ή δεν μποÏεί να σχολιαστεί."
   error_issue_not_found_in_project: 'Το θέμα δεν βÏέθηκε ή δεν ανήκει σε αυτό το έÏγο'
   error_no_tracker_in_project: 'Δεν υπάÏχει ανιχνευτής για αυτό το έÏγο. ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις του έÏγου.'
   error_no_default_issue_status: 'Δεν έχει οÏιστεί η Ï€Ïοεπιλογή  κατάστασης θεμάτων. ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις σας (Μεταβείτε στην  "ΔιαχείÏιση -> Κατάσταση θεμάτων").'
   
-  warning_attachments_not_saved: "{{count}} αÏχείο(α) δε μποÏοÏν να αποθηκευτοÏν."
+  warning_attachments_not_saved: "%{count} αÏχείο(α) δε μποÏοÏν να αποθηκευτοÏν."
   
-  mail_subject_lost_password: "Ο κωδικός σας {{value}}"
+  mail_subject_lost_password: "Ο κωδικός σας %{value}"
   mail_body_lost_password: 'Για να αλλάξετε τον κωδικό Ï€Ïόσβασης, πατήστε τον ακόλουθο σÏνδεσμο:'
-  mail_subject_register: "ΕνεÏγοποίηση του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Ï‡Ïήστη {{value}} "
+  mail_subject_register: "ΕνεÏγοποίηση του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Ï‡Ïήστη %{value} "
   mail_body_register: 'Για να ενεÏγοποιήσετε το λογαÏιασμό σας, επιλέξτε τον ακόλουθο σÏνδεσμο:'
-  mail_body_account_information_external: "ΜποÏείτε να χÏησιμοποιήσετε τον λογαÏιασμό {{value}} για να συνδεθείτε."
+  mail_body_account_information_external: "ΜποÏείτε να χÏησιμοποιήσετε τον λογαÏιασμό %{value} για να συνδεθείτε."
   mail_body_account_information: ΠληÏοφοÏίες του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÎ±Ï‚
-  mail_subject_account_activation_request: "αίτημα ενεÏγοποίησης λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï {{value}}"
-  mail_body_account_activation_request: "'Ένας νέος χÏήστης ({{value}}) έχει εγγÏαφεί. Ο λογαÏιασμός είναι σε στάδιο αναμονής της έγκÏισης σας:"
-  mail_subject_reminder: "{{count}} θέμα(τα) με Ï€Ïοθεσμία στις επόμενες {{days}} ημέÏες"
-  mail_body_reminder: "{{count}}θέμα(τα)  που έχουν ανατεθεί σε σας, με Ï€Ïοθεσμία στις επόμενες {{days}} ημέÏες:"
-  mail_subject_wiki_content_added: "'Ï€Ïοστέθηκε η σελίδα wiki {{id}}' "
-  mail_body_wiki_content_added: "Η σελίδα wiki '{{id}}' Ï€Ïοστέθηκε από τον {{author}}."
-  mail_subject_wiki_content_updated: "'ενημεÏώθηκε η σελίδα wiki {{id}}' "
-  mail_body_wiki_content_updated: "Η σελίδα wiki  '{{id}}' ενημεÏώθηκε από τον {{author}}."
+  mail_subject_account_activation_request: "αίτημα ενεÏγοποίησης λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï %{value}"
+  mail_body_account_activation_request: "'Ένας νέος χÏήστης (%{value}) έχει εγγÏαφεί. Ο λογαÏιασμός είναι σε στάδιο αναμονής της έγκÏισης σας:"
+  mail_subject_reminder: "%{count} θέμα(τα) με Ï€Ïοθεσμία στις επόμενες %{days} ημέÏες"
+  mail_body_reminder: "%{count}θέμα(τα)  που έχουν ανατεθεί σε σας, με Ï€Ïοθεσμία στις επόμενες %{days} ημέÏες:"
+  mail_subject_wiki_content_added: "'Ï€Ïοστέθηκε η σελίδα wiki %{id}' "
+  mail_body_wiki_content_added: "Η σελίδα wiki '%{id}' Ï€Ïοστέθηκε από τον %{author}."
+  mail_subject_wiki_content_updated: "'ενημεÏώθηκε η σελίδα wiki %{id}' "
+  mail_body_wiki_content_updated: "Η σελίδα wiki  '%{id}' ενημεÏώθηκε από τον %{author}."
   
   gui_validation_error: 1 σφάλμα
-  gui_validation_error_plural: "{{count}} σφάλματα"
+  gui_validation_error_plural: "%{count} σφάλματα"
   
   field_name: Όνομα
   field_description: ΠεÏιγÏαφή
@@ -247,6 +251,7 @@
   field_attr_lastname:  Ιδιότητα επωνÏμου
   field_attr_mail: Ιδιότητα email
   field_onthefly: Άμεση δημιουÏγία χÏήστη
+  field_start_date: Εκκίνηση
   field_done_ratio: % επιτεÏχθη
   field_auth_source: ΤÏόπος πιστοποίησης
   field_hide_mail: ΑπόκÏυψη διεÏθυνσης email
@@ -389,14 +394,14 @@
   label_x_projects:
     zero:  κανένα έÏγο
     one:   1 έÏγο
-    other: "{{count}} έÏγα"
+    other: "%{count} έÏγα"
   label_project_all: Όλα τα έÏγα
   label_project_latest: Τελευταία έÏγα
   label_issue: Θέμα
   label_issue_new: Îέο θέμα
   label_issue_plural: Θέματα
   label_issue_view_all: ΠÏοβολή όλων των θεμάτων
-  label_issues_by: "Θέματα του  {{value}}"
+  label_issues_by: "Θέματα του  %{value}"
   label_issue_added: Το θέμα Ï€Ïοστέθηκε
   label_issue_updated: Το θέμα ενημεÏώθηκε
   label_document: ΈγγÏαφο
@@ -445,7 +450,7 @@
   label_registered_on: ΕγγÏάφηκε την 
   label_activity: ΔÏαστηÏιότητα
   label_overall_activity: Συνολική δÏαστηÏιότητα
-  label_user_activity: "δÏαστηÏιότητα του {{value}}"
+  label_user_activity: "δÏαστηÏιότητα του %{value}"
   label_new: Îέο
   label_logged_as: ΣÏνδεδεμένος ως
   label_environment: ΠεÏιβάλλον
@@ -454,7 +459,7 @@
   label_auth_source_new: Îέος Ï„Ïόπος πιστοποίησης
   label_auth_source_plural: ΤÏόποι πιστοποίησης
   label_subproject_plural: ΕπιμέÏους έÏγα
-  label_and_its_subprojects: "{{value}} και τα επιμέÏους έÏγα του"
+  label_and_its_subprojects: "%{value} και τα επιμέÏους έÏγα του"
   label_min_max_length: Ελάχ. - Μέγ. μήκος
   label_list: Λίστα
   label_date: ΗμεÏομηνία
@@ -465,8 +470,8 @@
   label_text: ΜακÏοσκελές κείμενο
   label_attribute: Ιδιότητα
   label_attribute_plural: Ιδιότητες
-  label_download: "{{count}} ΜεταφόÏτωση"
-  label_download_plural: "{{count}} ΜεταφοÏτώσεις"
+  label_download: "%{count} ΜεταφόÏτωση"
+  label_download_plural: "%{count} ΜεταφοÏτώσεις"
   label_no_data: Δεν υπάÏχουν δεδομένα
   label_change_status: Αλλαγή κατάστασης
   label_history: ΙστοÏικό
@@ -497,17 +502,17 @@
   label_closed_issues: Κλειστό
   label_closed_issues_plural: Κλειστά
   label_x_open_issues_abbr_on_total:
-    zero:  0 ανοικτά / {{total}}
-    one:   1 ανοικτό / {{total}}
-    other: "{{count}} ανοικτά / {{total}}"
+    zero:  0 ανοικτά / %{total}
+    one:   1 ανοικτό / %{total}
+    other: "%{count} ανοικτά / %{total}"
   label_x_open_issues_abbr:
     zero:  0 ανοικτά
     one:   1 ανοικτό
-    other: "{{count}} ανοικτά"
+    other: "%{count} ανοικτά"
   label_x_closed_issues_abbr:
     zero:  0 κλειστά
     one:   1 κλειστό
-    other: "{{count}} κλειστά"
+    other: "%{count} κλειστά"
   label_total: ΣÏνολο
   label_permissions: Άδειες
   label_current_status: ΤÏέχουσα κατάσταση
@@ -525,7 +530,7 @@
   label_months_from: μηνών από
   label_gantt: Gantt
   label_internal: ΕσωτεÏικό
-  label_last_changes: "Τελευταίες {{count}} αλλαγές"
+  label_last_changes: "Τελευταίες %{count} αλλαγές"
   label_change_view_all: ΠÏοβολή όλων των αλλαγών
   label_personalize_page: ΠÏοσαÏμογή σελίδας
   label_comment: Σχόλιο
@@ -533,7 +538,7 @@
   label_x_comments:
     zero: δεν υπάÏχουν σχόλια
     one: 1 σχόλιο
-    other: "{{count}} σχόλια"
+    other: "%{count} σχόλια"
   label_comment_add: ΠÏοσθήκη σχολίου
   label_comment_added: Τα σχόλια Ï€Ïοστέθηκαν
   label_comment_delete: ΔιαγÏαφή σχολίων
@@ -554,7 +559,7 @@
   label_yesterday: χθες
   label_this_week: αυτή την εβδομάδα
   label_last_week: την Ï€ÏοηγοÏμενη εβδομάδα
-  label_last_n_days: "τελευταίες {{count}} μέÏες"
+  label_last_n_days: "τελευταίες %{count} μέÏες"
   label_this_month: αυτό το μήνα
   label_last_month: τον Ï€ÏοηγοÏμενο μήνα
   label_this_year: αυτό το χÏόνο
@@ -568,8 +573,8 @@
   label_repository: ΑποθετήÏιο
   label_repository_plural: ΑποθετήÏια
   label_browse: Πλοήγηση
-  label_modification: "{{count}} Ï„Ïοποποίηση"
-  label_modification_plural: "{{count}} Ï„Ïοποποιήσεις"
+  label_modification: "%{count} Ï„Ïοποποίηση"
+  label_modification_plural: "%{count} Ï„Ïοποποιήσεις"
   label_branch: Branch
   label_tag: Tag 
   label_revision: ΑναθεώÏηση
@@ -590,8 +595,8 @@
   label_sort_lower: Μετακίνηση Ï€Ïος τα κάτω
   label_sort_lowest: Μετακίνηση στο κατώτατο μέÏος
   label_roadmap: ΧάÏτης ποÏείας
-  label_roadmap_due_in: "ΠÏοθεσμία σε {{value}}"
-  label_roadmap_overdue: "{{value}} καθυστεÏημένο"
+  label_roadmap_due_in: "ΠÏοθεσμία σε %{value}"
+  label_roadmap_overdue: "%{value} καθυστεÏημένο"
   label_roadmap_no_issues: Δεν υπάÏχουν θέματα για αυτή την έκδοση
   label_search: Αναζήτηση
   label_result_plural: Αποτελέσματα
@@ -609,8 +614,8 @@
   label_changes_details: ΛεπτομέÏειες όλων των αλλαγών
   label_issue_tracking: Ανίχνευση θεμάτων
   label_spent_time: Δαπανημένος χÏόνος
-  label_f_hour: "{{value}} ÏŽÏα"
-  label_f_hour_plural: "{{value}} ÏŽÏες"
+  label_f_hour: "%{value} ÏŽÏα"
+  label_f_hour_plural: "%{value} ÏŽÏες"
   label_time_tracking: Ανίχνευση χÏόνου
   label_change_plural: Αλλαγές
   label_statistics: Στατιστικά
@@ -659,13 +664,13 @@
   label_date_from: Από
   label_date_to:  Έως
   label_language_based: Με βάση τη γλώσσα του χÏήστη
-  label_sort_by: "Ταξινόμηση ανά {{value}}"
+  label_sort_by: "Ταξινόμηση ανά %{value}"
   label_send_test_email: Αποστολή Î´Î¿ÎºÎ¹Î¼Î±ÏƒÏ„Î¹ÎºÎ¿Ï email
-  label_feeds_access_key_created_on: "το κλειδί Ï€Ïόσβασης RSS δημιουÏγήθηκε Ï€Ïιν από {{value}}"
+  label_feeds_access_key_created_on: "το κλειδί Ï€Ïόσβασης RSS δημιουÏγήθηκε Ï€Ïιν από %{value}"
   label_module_plural: Μονάδες
-  label_added_time_by: "ΠÏοστέθηκε από τον {{author}} Ï€Ïιν από {{age}}"
-  label_updated_time_by: "ΕνημεÏώθηκε από τον {{author}} Ï€Ïιν από {{age}}"
-  label_updated_time: "ΕνημεÏώθηκε Ï€Ïιν από {{value}}"
+  label_added_time_by: "ΠÏοστέθηκε από τον %{author} Ï€Ïιν από %{age}"
+  label_updated_time_by: "ΕνημεÏώθηκε από τον %{author} Ï€Ïιν από %{age}"
+  label_updated_time: "ΕνημεÏώθηκε Ï€Ïιν από %{value}"
   label_jump_to_a_project: Μεταβείτε σε ένα έÏγο...
   label_file_plural: ΑÏχεία
   label_changeset_plural: Changesets
@@ -681,7 +686,7 @@
   label_registration_activation_by_email: ενεÏγοποίηση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Î¼Îµ email
   label_registration_manual_activation: χειÏοκίνητη ενεÏγοποίηση λογαÏιασμοÏ
   label_registration_automatic_activation: αυτόματη ενεÏγοποίηση λογαÏιασμοÏ
-  label_display_per_page: "Ανά σελίδα: {{value}}"
+  label_display_per_page: "Ανά σελίδα: %{value}"
   label_age: Ηλικία
   label_change_properties: Αλλαγή ιδιοτήτων
   label_general: Γενικά
@@ -704,7 +709,7 @@
   label_sort: Ταξινόμηση
   label_ascending: ΑÏξουσα
   label_descending: Φθίνουσα
-  label_date_from_to: Από {{start}} έως {{end}}
+  label_date_from_to: Από %{start} έως %{end}
   label_wiki_content_added: Η σελίδα Wiki Ï€Ïοστέθηκε
   label_wiki_content_updated: Η σελίδα Wiki ενημεÏώθηκε
   
@@ -756,48 +761,48 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 σημαίνει ότι δεν υπάÏχουν πεÏιοÏισμοί
   text_project_destroy_confirmation: Είστε σίγουÏοι ότι θέλετε να διαγÏάψετε αυτό το έÏγο και τα σχετικά δεδομένα του;
-  text_subprojects_destroy_warning: "Επίσης το(α) επιμέÏους έÏγο(α): {{value}}  θα διαγÏαφοÏν."
+  text_subprojects_destroy_warning: "Επίσης το(α) επιμέÏους έÏγο(α): %{value}  θα διαγÏαφοÏν."
   text_workflow_edit: Επιλέξτε ένα Ïόλο και έναν ανιχνευτή για να επεξεÏγαστείτε  τη Ïοή εÏγασίας
   text_are_you_sure: Είστε σίγουÏος ;
   text_tip_issue_begin_day: καθήκοντα που ξεκινάνε σήμεÏα
   text_tip_issue_end_day: καθήκοντα που τελειώνουν σήμεÏα
   text_tip_issue_begin_end_day: καθήκοντα που ξεκινάνε και τελειώνουν σήμεÏα
   text_project_identifier_info: 'ΕπιτÏέπονται μόνο μικÏά πεζά γÏάμματα (a-z), αÏιθμοί και παÏλες. <br /> Μετά την αποθήκευση, το αναγνωÏιστικό δεν μποÏεί να αλλάξει.'
-  text_caracters_maximum: "μέγιστος αÏιθμός {{count}} χαÏακτήÏες."
-  text_caracters_minimum: "ΠÏέπει να πεÏιέχει τουλάχιστον {{count}} χαÏακτήÏες."
-  text_length_between: "Μήκος Î¼ÎµÏ„Î±Î¾Ï {{min}} και {{max}} χαÏακτήÏες."
+  text_caracters_maximum: "μέγιστος αÏιθμός %{count} χαÏακτήÏες."
+  text_caracters_minimum: "ΠÏέπει να πεÏιέχει τουλάχιστον %{count} χαÏακτήÏες."
+  text_length_between: "Μήκος Î¼ÎµÏ„Î±Î¾Ï %{min} και %{max} χαÏακτήÏες."
   text_tracker_no_workflow: Δεν έχει οÏιστεί Ïοή εÏγασίας για αυτό τον ανιχνευτή
   text_unallowed_characters: Μη επιτÏεπόμενοι χαÏακτήÏες
   text_comma_separated: ΕπιτÏέπονται πολλαπλές τιμές (χωÏισμένες με κόμμα).
   text_issues_ref_in_commit_messages: ΑναφοÏά και καθοÏισμός θεμάτων σε μηνÏματα commit
-  text_issue_added: "Το θέμα {{id}} παÏουσιάστηκε από τον {{author}}."
-  text_issue_updated: "Το θέμα {{id}} ενημεÏώθηκε από τον {{author}}."
+  text_issue_added: "Το θέμα %{id} παÏουσιάστηκε από τον %{author}."
+  text_issue_updated: "Το θέμα %{id} ενημεÏώθηκε από τον %{author}."
   text_wiki_destroy_confirmation: Είστε σίγουÏοι ότι θέλετε να διαγÏάψετε αυτό το wiki και όλο το πεÏιεχόμενο του ;
-  text_issue_category_destroy_question: "Κάποια θέματα ({{count}}) έχουν εκχωÏηθεί σε αυτή την κατηγοÏία. Τι θέλετε να κάνετε ;"
+  text_issue_category_destroy_question: "Κάποια θέματα (%{count}) έχουν εκχωÏηθεί σε αυτή την κατηγοÏία. Τι θέλετε να κάνετε ;"
   text_issue_category_destroy_assignments: ΑφαίÏεση εκχωÏήσεων κατηγοÏίας
   text_issue_category_reassign_to: ΕπανεκχώÏηση θεμάτων σε αυτή την κατηγοÏία
   text_user_mail_option: "Για μη επιλεγμένα έÏγα, θα λάβετε ειδοποιήσεις μόνο για Ï€Ïάγματα που παÏακολουθείτε ή στα οποία συμμετέχω ενεÏγά (Ï€.χ. θέματα των οποίων είστε συγγÏαφέας ή σας έχουν ανατεθεί)."
   text_no_configuration_data: "Οι Ïόλοι, οι ανιχνευτές, η κατάσταση των θεμάτων και η Ïοή εÏγασίας δεν έχουν Ïυθμιστεί ακόμα.\nΣυνιστάται ιδιαίτεÏα να φοÏτώσετε τις Ï€Ïοεπιλεγμένες Ïυθμίσεις. Θα είστε σε θέση να τις Ï„Ïοποποιήσετε μετά τη φόÏτωση τους."
   text_load_default_configuration: ΦόÏτωση Ï€Ïοεπιλεγμένων Ïυθμίσεων
-  text_status_changed_by_changeset: "ΕφαÏμόστηκε στο changeset {{value}}."
+  text_status_changed_by_changeset: "ΕφαÏμόστηκε στο changeset %{value}."
   text_issues_destroy_confirmation: 'Είστε σίγουÏος ότι θέλετε να διαγÏάψετε το επιλεγμένο θέμα(τα);'
   text_select_project_modules: 'Επιλέξτε ποιες μονάδες θα ενεÏγοποιήσετε για αυτό το έÏγο:'
   text_default_administrator_account_changed: Ο Ï€ÏοκαθοÏισμένος λογαÏιασμός του διαχειÏιστή άλλαξε
   text_file_repository_writable: ΕγγÏάψιμος κατάλογος συνημμένων
   text_plugin_assets_writable: ΕγγÏάψιμος κατάλογος plugin assets
   text_rmagick_available: Διαθέσιμο RMagick (Ï€ÏοαιÏετικό)
-  text_destroy_time_entries_question: "{{hours}} δαπανήθηκαν σχετικά με τα θέματα που Ï€Ïόκειται να διαγÏάψετε. Τι θέλετε να κάνετε ;"
+  text_destroy_time_entries_question: "%{hours} δαπανήθηκαν σχετικά με τα θέματα που Ï€Ïόκειται να διαγÏάψετε. Τι θέλετε να κάνετε ;"
   text_destroy_time_entries: ΔιαγÏαφή αναφεÏόμενων ωÏών
   text_assign_time_entries_to_project: Ανάθεση αναφεÏόμενων ωÏών στο έÏγο
   text_reassign_time_entries: 'Ανάθεση εκ νέου των αναφεÏόμενων ωÏών στο θέμα:'
-  text_user_wrote: "{{value}} έγÏαψε:"
-  text_enumeration_destroy_question: "{{count}} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
+  text_user_wrote: "%{value} έγÏαψε:"
+  text_enumeration_destroy_question: "%{count} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
   text_enumeration_category_reassign_to: 'ΕπανεκχώÏηση τους στην παÏοÏσα αξία:'
   text_email_delivery_not_configured: "Δεν έχουν γίνει Ïυθμίσεις παÏάδοσης email, και οι ειδοποιήσεις είναι απενεÏγοποιημένες.\nΔηλώστε τον εξυπηÏετητή SMTP στο config/email.yml και κάντε επανακκίνηση την εφαÏμογή για να τις Ïυθμίσεις."
   text_repository_usernames_mapping: "Επιλέξτε ή ενημεÏώστε τον χÏήστη Redmine που αντιστοιχεί σε κάθε όνομα χÏήστη  στο ιστοÏικό του αποθετηÏίου.\nΧÏήστες με το ίδιο όνομα χÏήστη ή email στο Redmine και στο αποθετηÏίο αντιστοιχίζονται αυτόματα."
   text_diff_truncated: '... Αυτό το diff εχεί κοπεί επειδή υπεÏβαίνει το μέγιστο μέγεθος που μποÏεί να Ï€Ïοβληθεί.'
   text_custom_field_possible_values_info: 'Μία γÏαμμή για κάθε τιμή'
-  text_wiki_page_destroy_question: "Αυτή η σελίδα έχει {{descendants}} σελίδες τέκνων και απογόνων. Τι θέλετε να κάνετε ;"
+  text_wiki_page_destroy_question: "Αυτή η σελίδα έχει %{descendants} σελίδες τέκνων και απογόνων. Τι θέλετε να κάνετε ;"
   text_wiki_page_nullify_children: "ΔιατηÏήστε τις σελίδες τέκνων ως σελίδες root"
   text_wiki_page_destroy_children: "ΔιαγÏάψτε όλες τις σελίδες τέκνων και των απογόνων τους"
   text_wiki_page_reassign_children: "ΕπανεκχώÏιση των σελίδων τέκνων στη γονική σελίδα"
@@ -827,14 +832,14 @@
   enumeration_issue_priorities: ΠÏοτεÏαιότητα θέματος
   enumeration_doc_categories: ΚατηγοÏία εγγÏάφων
   enumeration_activities: ΔÏαστηÏιότητες (κατακεÏματισμός χÏόνου)
-  text_journal_changed: "{{label}} άλλαξε από {{old}} σε {{new}}"
-  text_journal_set_to: "{{label}} οÏίζεται σε {{value}}"
-  text_journal_deleted: "{{label}} διαγÏάφηκε ({{old}})"
+  text_journal_changed: "%{label} άλλαξε από %{old} σε %{new}"
+  text_journal_set_to: "%{label} οÏίζεται σε %{value}"
+  text_journal_deleted: "%{label} διαγÏάφηκε (%{old})"
   label_group_plural: Ομάδες
   label_group: Ομάδα
   label_group_new: Îέα ομάδα
   label_time_entry_plural: ΧÏόνος που δαπανήθηκε
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -869,9 +874,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -898,12 +903,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -911,7 +916,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -922,8 +927,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/en-GB.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/en-GB.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,933 +1,942 @@
-en-GB:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d/%m/%Y"
-      short: "%d %b"
-      long: "%d %B, %Y"
-      
-    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
-    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
-    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
-    # Used in date_select and datime_select.
-    order: [ :year, :month, :day ]
-
-  time:
-    formats:
-      default: "%d/%m/%Y %I:%M %p"
-      time: "%I:%M %p"
-      short: "%d %b %H:%M"
-      long: "%d %B, %Y %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "half a minute"
-      less_than_x_seconds:
-        one:   "less than 1 second"
-        other: "less than {{count}} seconds"
-      x_seconds:
-        one:   "1 second"
-        other: "{{count}} seconds"
-      less_than_x_minutes:
-        one:   "less than a minute"
-        other: "less than {{count}} minutes"
-      x_minutes:
-        one:   "1 minute"
-        other: "{{count}} minutes"
-      about_x_hours:
-        one:   "about 1 hour"
-        other: "about {{count}} hours"
-      x_days:
-        one:   "1 day"
-        other: "{{count}} days"
-      about_x_months:
-        one:   "about 1 month"
-        other: "about {{count}} months"
-      x_months:
-        one:   "1 month"
-        other: "{{count}} months"
-      about_x_years:
-        one:   "about 1 year"
-        other: "about {{count}} years"
-      over_x_years:
-        one:   "over 1 year"
-        other: "over {{count}} years"
-      almost_x_years:
-        one:   "almost 1 year"
-        other: "almost {{count}} years"
-
-  number:
-    format:
-      separator: "."
-      delimiter: " "
-      precision: 3
-
-    currency:
-      format:
-        format: "%u%n"
-        unit: "£"
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "kB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "and"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "is not included in the list"
-        exclusion: "is reserved"
-        invalid: "is invalid"
-        confirmation: "doesn't match confirmation"
-        accepted: "must be accepted"
-        empty: "can't be empty"
-        blank: "can't be blank"
-        too_long: "is too long (maximum is {{count}} characters)"
-        too_short: "is too short (minimum is {{count}} characters)"
-        wrong_length: "is the wrong length (should be {{count}} characters)"
-        taken: "has already been taken"
-        not_a_number: "is not a number"
-        not_a_date: "is not a valid date"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
-        odd: "must be odd"
-        even: "must be even"
-        greater_than_start_date: "must be greater than start date"
-        not_same_project: "doesn't belong to the same project"
-        circular_dependency: "This relation would create a circular dependency"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Please select
-  
-  general_text_No: 'No'
-  general_text_Yes: 'Yes'
-  general_text_no: 'no'
-  general_text_yes: 'yes'
-  general_lang_name: 'English (British)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: ISO-8859-1
-  general_pdf_encoding: ISO-8859-1
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Account was successfully updated.
-  notice_account_invalid_creditentials: Invalid user or password
-  notice_account_password_updated: Password was successfully updated.
-  notice_account_wrong_password: Wrong password
-  notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
-  notice_account_unknown_email: Unknown user.
-  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
-  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
-  notice_account_activated: Your account has been activated. You can now log in.
-  notice_successful_create: Successful creation.
-  notice_successful_update: Successful update.
-  notice_successful_delete: Successful deletion.
-  notice_successful_connection: Successful connection.
-  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
-  notice_locking_conflict: Data has been updated by another user.
-  notice_not_authorized: You are not authorised to access this page.
-  notice_email_sent: "An email was sent to {{value}}"
-  notice_email_error: "An error occurred while sending mail ({{value}})"
-  notice_feeds_access_key_reseted: Your RSS access key was reset.
-  notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
-  notice_account_pending: "Your account was created and is now pending administrator approval."
-  notice_default_data_loaded: Default configuration successfully loaded.
-  notice_unable_delete_version: Unable to delete version.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-  
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
-  error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
-  error_scm_annotate: "The entry does not exist or can not be annotated."
-  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
-  
-  mail_subject_lost_password: "Your {{value}} password"
-  mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
-  mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
-  mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "A new user ({{value}}) has registered. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-  
-  gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
-  
-  field_name: Name
-  field_description: Description
-  field_summary: Summary
-  field_is_required: Required
-  field_firstname: Firstname
-  field_lastname: Lastname
-  field_mail: Email
-  field_filename: File
-  field_filesize: Size
-  field_downloads: Downloads
-  field_author: Author
-  field_created_on: Created
-  field_updated_on: Updated
-  field_field_format: Format
-  field_is_for_all: For all projects
-  field_possible_values: Possible values
-  field_regexp: Regular expression
-  field_min_length: Minimum length
-  field_max_length: Maximum length
-  field_value: Value
-  field_category: Category
-  field_title: Title
-  field_project: Project
-  field_issue: Issue
-  field_status: Status
-  field_notes: Notes
-  field_is_closed: Issue closed
-  field_is_default: Default value
-  field_tracker: Tracker
-  field_subject: Subject
-  field_due_date: Due date
-  field_assigned_to: Assignee
-  field_priority: Priority
-  field_fixed_version: Target version
-  field_user: User
-  field_role: Role
-  field_homepage: Homepage
-  field_is_public: Public
-  field_parent: Subproject of
-  field_is_in_roadmap: Issues displayed in roadmap
-  field_login: Login
-  field_mail_notification: Email notifications
-  field_admin: Administrator
-  field_last_login_on: Last connection
-  field_language: Language
-  field_effective_date: Date
-  field_password: Password
-  field_new_password: New password
-  field_password_confirmation: Confirmation
-  field_version: Version
-  field_type: Type
-  field_host: Host
-  field_port: Port
-  field_account: Account
-  field_base_dn: Base DN
-  field_attr_login: Login attribute
-  field_attr_firstname: Firstname attribute
-  field_attr_lastname: Lastname attribute
-  field_attr_mail: Email attribute
-  field_onthefly: On-the-fly user creation
-  field_start_date: Start date
-  field_done_ratio: % Done
-  field_auth_source: Authentication mode
-  field_hide_mail: Hide my email address
-  field_comments: Comment
-  field_url: URL
-  field_start_page: Start page
-  field_subproject: Subproject
-  field_hours: Hours
-  field_activity: Activity
-  field_spent_on: Date
-  field_identifier: Identifier
-  field_is_filter: Used as a filter
-  field_issue_to: Related issue
-  field_delay: Delay
-  field_assignable: Issues can be assigned to this role
-  field_redirect_existing_links: Redirect existing links
-  field_estimated_hours: Estimated time
-  field_column_names: Columns
-  field_time_zone: Time zone
-  field_searchable: Searchable
-  field_default_value: Default value
-  field_comments_sorting: Display comments
-  field_parent_title: Parent page
-  field_editable: Editable
-  field_watcher: Watcher
-  field_identity_url: OpenID URL
-  field_content: Content
-  field_group_by: Group results by
-  field_sharing: Sharing
-  
-  setting_app_title: Application title
-  setting_app_subtitle: Application subtitle
-  setting_welcome_text: Welcome text
-  setting_default_language: Default language
-  setting_login_required: Authentication required
-  setting_self_registration: Self-registration
-  setting_attachment_max_size: Attachment max. size
-  setting_issues_export_limit: Issues export limit
-  setting_mail_from: Emission email address
-  setting_bcc_recipients: Blind carbon copy recipients (bcc)
-  setting_plain_text_mail: Plain text mail (no HTML)
-  setting_host_name: Host name and path
-  setting_text_formatting: Text formatting
-  setting_wiki_compression: Wiki history compression
-  setting_feeds_limit: Feed content limit
-  setting_default_projects_public: New projects are public by default
-  setting_autofetch_changesets: Autofetch commits
-  setting_sys_api_enabled: Enable WS for repository management
-  setting_commit_ref_keywords: Referencing keywords
-  setting_commit_fix_keywords: Fixing keywords
-  setting_autologin: Autologin
-  setting_date_format: Date format
-  setting_time_format: Time format
-  setting_cross_project_issue_relations: Allow cross-project issue relations
-  setting_issue_list_default_columns: Default columns displayed on the issue list
-  setting_repositories_encodings: Repositories encodings
-  setting_commit_logs_encoding: Commit messages encoding
-  setting_emails_footer: Emails footer
-  setting_protocol: Protocol
-  setting_per_page_options: Objects per page options
-  setting_user_format: Users display format
-  setting_activity_days_default: Days displayed on project activity
-  setting_display_subprojects_issues: Display subprojects issues on main projects by default
-  setting_enabled_scm: Enabled SCM
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: Enable WS for incoming emails
-  setting_mail_handler_api_key: API key
-  setting_sequential_project_identifiers: Generate sequential project identifiers
-  setting_gravatar_enabled: Use Gravatar user icons
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Max number of diff lines displayed
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Allow OpenID login and registration
-  setting_password_min_length: Minimum password length
-  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-  
-  permission_add_project: Create project
-  permission_add_subprojects: Create subprojects
-  permission_edit_project: Edit project
-  permission_select_project_modules: Select project modules
-  permission_manage_members: Manage members
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Manage versions
-  permission_manage_categories: Manage issue categories
-  permission_view_issues: View Issues
-  permission_add_issues: Add issues
-  permission_edit_issues: Edit issues
-  permission_manage_issue_relations: Manage issue relations
-  permission_add_issue_notes: Add notes
-  permission_edit_issue_notes: Edit notes
-  permission_edit_own_issue_notes: Edit own notes
-  permission_move_issues: Move issues
-  permission_delete_issues: Delete issues
-  permission_manage_public_queries: Manage public queries
-  permission_save_queries: Save queries
-  permission_view_gantt: View gantt chart
-  permission_view_calendar: View calendar
-  permission_view_issue_watchers: View watchers list
-  permission_add_issue_watchers: Add watchers
-  permission_delete_issue_watchers: Delete watchers
-  permission_log_time: Log spent time
-  permission_view_time_entries: View spent time
-  permission_edit_time_entries: Edit time logs
-  permission_edit_own_time_entries: Edit own time logs
-  permission_manage_news: Manage news
-  permission_comment_news: Comment news
-  permission_manage_documents: Manage documents
-  permission_view_documents: View documents
-  permission_manage_files: Manage files
-  permission_view_files: View files
-  permission_manage_wiki: Manage wiki
-  permission_rename_wiki_pages: Rename wiki pages
-  permission_delete_wiki_pages: Delete wiki pages
-  permission_view_wiki_pages: View wiki
-  permission_view_wiki_edits: View wiki history
-  permission_edit_wiki_pages: Edit wiki pages
-  permission_delete_wiki_pages_attachments: Delete attachments
-  permission_protect_wiki_pages: Protect wiki pages
-  permission_manage_repository: Manage repository
-  permission_browse_repository: Browse repository
-  permission_view_changesets: View changesets
-  permission_commit_access: Commit access
-  permission_manage_boards: Manage boards
-  permission_view_messages: View messages
-  permission_add_messages: Post messages
-  permission_edit_messages: Edit messages
-  permission_edit_own_messages: Edit own messages
-  permission_delete_messages: Delete messages
-  permission_delete_own_messages: Delete own messages
-  permission_export_wiki_pages: Export wiki pages
-  
-  project_module_issue_tracking: Issue tracking
-  project_module_time_tracking: Time tracking
-  project_module_news: News
-  project_module_documents: Documents
-  project_module_files: Files
-  project_module_wiki: Wiki
-  project_module_repository: Repository
-  project_module_boards: Boards
-  
-  label_user: User
-  label_user_plural: Users
-  label_user_new: New user
-  label_user_anonymous: Anonymous
-  label_project: Project
-  label_project_new: New project
-  label_project_plural: Projects
-  label_x_projects:
-    zero:  no projects
-    one:   1 project
-    other: "{{count}} projects"
-  label_project_all: All Projects
-  label_project_latest: Latest projects
-  label_issue: Issue
-  label_issue_new: New issue
-  label_issue_plural: Issues
-  label_issue_view_all: View all issues
-  label_issues_by: "Issues by {{value}}"
-  label_issue_added: Issue added
-  label_issue_updated: Issue updated
-  label_document: Document
-  label_document_new: New document
-  label_document_plural: Documents
-  label_document_added: Document added
-  label_role: Role
-  label_role_plural: Roles
-  label_role_new: New role
-  label_role_and_permissions: Roles and permissions
-  label_member: Member
-  label_member_new: New member
-  label_member_plural: Members
-  label_tracker: Tracker
-  label_tracker_plural: Trackers
-  label_tracker_new: New tracker
-  label_workflow: Workflow
-  label_issue_status: Issue status
-  label_issue_status_plural: Issue statuses
-  label_issue_status_new: New status
-  label_issue_category: Issue category
-  label_issue_category_plural: Issue categories
-  label_issue_category_new: New category
-  label_custom_field: Custom field
-  label_custom_field_plural: Custom fields
-  label_custom_field_new: New custom field
-  label_enumerations: Enumerations
-  label_enumeration_new: New value
-  label_information: Information
-  label_information_plural: Information
-  label_please_login: Please log in
-  label_register: Register
-  label_login_with_open_id_option: or login with OpenID
-  label_password_lost: Lost password
-  label_home: Home
-  label_my_page: My page
-  label_my_account: My account
-  label_my_projects: My projects
-  label_administration: Administration
-  label_login: Sign in
-  label_logout: Sign out
-  label_help: Help
-  label_reported_issues: Reported issues
-  label_assigned_to_me_issues: Issues assigned to me
-  label_last_login: Last connection
-  label_registered_on: Registered on
-  label_activity: Activity
-  label_overall_activity: Overall activity
-  label_user_activity: "{{value}}'s activity"
-  label_new: New
-  label_logged_as: Logged in as
-  label_environment: Environment
-  label_authentication: Authentication
-  label_auth_source: Authentication mode
-  label_auth_source_new: New authentication mode
-  label_auth_source_plural: Authentication modes
-  label_subproject_plural: Subprojects
-  label_subproject_new: New subproject
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  label_min_max_length: Min - Max length
-  label_list: List
-  label_date: Date
-  label_integer: Integer
-  label_float: Float
-  label_boolean: Boolean
-  label_string: Text
-  label_text: Long text
-  label_attribute: Attribute
-  label_attribute_plural: Attributes
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
-  label_no_data: No data to display
-  label_change_status: Change status
-  label_history: History
-  label_attachment: File
-  label_attachment_new: New file
-  label_attachment_delete: Delete file
-  label_attachment_plural: Files
-  label_file_added: File added
-  label_report: Report
-  label_report_plural: Reports
-  label_news: News
-  label_news_new: Add news
-  label_news_plural: News
-  label_news_latest: Latest news
-  label_news_view_all: View all news
-  label_news_added: News added
-  label_settings: Settings
-  label_overview: Overview
-  label_version: Version
-  label_version_new: New version
-  label_version_plural: Versions
-  label_close_versions: Close completed versions
-  label_confirmation: Confirmation
-  label_export_to: 'Also available in:'
-  label_read: Read...
-  label_public_projects: Public projects
-  label_open_issues: open
-  label_open_issues_plural: open
-  label_closed_issues: closed
-  label_closed_issues_plural: closed
-  label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 open
-    one:   1 open
-    other: "{{count}} open"
-  label_x_closed_issues_abbr:
-    zero:  0 closed
-    one:   1 closed
-    other: "{{count}} closed"
-  label_total: Total
-  label_permissions: Permissions
-  label_current_status: Current status
-  label_new_statuses_allowed: New statuses allowed
-  label_all: all
-  label_none: none
-  label_nobody: nobody
-  label_next: Next
-  label_previous: Previous
-  label_used_by: Used by
-  label_details: Details
-  label_add_note: Add a note
-  label_per_page: Per page
-  label_calendar: Calendar
-  label_months_from: months from
-  label_gantt: Gantt
-  label_internal: Internal
-  label_last_changes: "last {{count}} changes"
-  label_change_view_all: View all changes
-  label_personalize_page: Personalise this page
-  label_comment: Comment
-  label_comment_plural: Comments
-  label_x_comments:
-    zero: no comments
-    one: 1 comment
-    other: "{{count}} comments"
-  label_comment_add: Add a comment
-  label_comment_added: Comment added
-  label_comment_delete: Delete comments
-  label_query: Custom query
-  label_query_plural: Custom queries
-  label_query_new: New query
-  label_filter_add: Add filter
-  label_filter_plural: Filters
-  label_equals: is
-  label_not_equals: is not
-  label_in_less_than: in less than
-  label_in_more_than: in more than
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: in
-  label_today: today
-  label_all_time: all time
-  label_yesterday: yesterday
-  label_this_week: this week
-  label_last_week: last week
-  label_last_n_days: "last {{count}} days"
-  label_this_month: this month
-  label_last_month: last month
-  label_this_year: this year
-  label_date_range: Date range
-  label_less_than_ago: less than days ago
-  label_more_than_ago: more than days ago
-  label_ago: days ago
-  label_contains: contains
-  label_not_contains: doesn't contain
-  label_day_plural: days
-  label_repository: Repository
-  label_repository_plural: Repositories
-  label_browse: Browse
-  label_modification: "{{count}} change"
-  label_modification_plural: "{{count}} changes"
-  label_branch: Branch
-  label_tag: Tag 
-  label_revision: Revision
-  label_revision_plural: Revisions
-  label_revision_id: "Revision {{value}}"
-  label_associated_revisions: Associated revisions
-  label_added: added
-  label_modified: modified
-  label_copied: copied
-  label_renamed: renamed
-  label_deleted: deleted
-  label_latest_revision: Latest revision
-  label_latest_revision_plural: Latest revisions
-  label_view_revisions: View revisions
-  label_view_all_revisions: View all revisions
-  label_max_size: Maximum size
-  label_sort_highest: Move to top
-  label_sort_higher: Move up
-  label_sort_lower: Move down
-  label_sort_lowest: Move to bottom
-  label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} late"
-  label_roadmap_no_issues: No issues for this version
-  label_search: Search
-  label_result_plural: Results
-  label_all_words: All words
-  label_wiki: Wiki
-  label_wiki_edit: Wiki edit
-  label_wiki_edit_plural: Wiki edits
-  label_wiki_page: Wiki page
-  label_wiki_page_plural: Wiki pages
-  label_index_by_title: Index by title
-  label_index_by_date: Index by date
-  label_current_version: Current version
-  label_preview: Preview
-  label_feed_plural: Feeds
-  label_changes_details: Details of all changes
-  label_issue_tracking: Issue tracking
-  label_spent_time: Spent time
-  label_f_hour: "{{value}} hour"
-  label_f_hour_plural: "{{value}} hours"
-  label_time_tracking: Time tracking
-  label_change_plural: Changes
-  label_statistics: Statistics
-  label_commits_per_month: Commits per month
-  label_commits_per_author: Commits per author
-  label_view_diff: View differences
-  label_diff_inline: inline
-  label_diff_side_by_side: side by side
-  label_options: Options
-  label_copy_workflow_from: Copy workflow from
-  label_permissions_report: Permissions report
-  label_watched_issues: Watched issues
-  label_related_issues: Related issues
-  label_applied_status: Applied status
-  label_loading: Loading...
-  label_relation_new: New relation
-  label_relation_delete: Delete relation
-  label_relates_to: related to
-  label_duplicates: duplicates
-  label_duplicated_by: duplicated by
-  label_blocks: blocks
-  label_blocked_by: blocked by
-  label_precedes: precedes
-  label_follows: follows
-  label_end_to_start: end to start
-  label_end_to_end: end to end
-  label_start_to_start: start to start
-  label_start_to_end: start to end
-  label_stay_logged_in: Stay logged in
-  label_disabled: disabled
-  label_show_completed_versions: Show completed versions
-  label_me: me
-  label_board: Forum
-  label_board_new: New forum
-  label_board_plural: Forums
-  label_board_locked: Locked
-  label_board_sticky: Sticky
-  label_topic_plural: Topics
-  label_message_plural: Messages
-  label_message_last: Last message
-  label_message_new: New message
-  label_message_posted: Message added
-  label_reply_plural: Replies
-  label_send_information: Send account information to the user
-  label_year: Year
-  label_month: Month
-  label_week: Week
-  label_date_from: From
-  label_date_to: To
-  label_language_based: Based on user's language
-  label_sort_by: "Sort by {{value}}"
-  label_send_test_email: Send a test email
-  label_feeds_access_key: RSS access key
-  label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS access key created {{value}} ago"
-  label_module_plural: Modules
-  label_added_time_by: "Added by {{author}} {{age}} ago"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
-  label_updated_time: "Updated {{value}} ago"
-  label_jump_to_a_project: Jump to a project...
-  label_file_plural: Files
-  label_changeset_plural: Changesets
-  label_default_columns: Default columns
-  label_no_change_option: (No change)
-  label_bulk_edit_selected_issues: Bulk edit selected issues
-  label_theme: Theme
-  label_default: Default
-  label_search_titles_only: Search titles only
-  label_user_mail_option_all: "For any event on all my projects"
-  label_user_mail_option_selected: "For any event on the selected projects only..."
-  label_user_mail_option_none: "No events"
-  label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
-  label_registration_activation_by_email: account activation by email
-  label_registration_manual_activation: manual account activation
-  label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "Per page: {{value}}"
-  label_age: Age
-  label_change_properties: Change properties
-  label_general: General
-  label_more: More
-  label_scm: SCM
-  label_plugins: Plugins
-  label_ldap_authentication: LDAP authentication
-  label_downloads_abbr: D/L
-  label_optional_description: Optional description
-  label_add_another_file: Add another file
-  label_preferences: Preferences
-  label_chronological_order: In chronological order
-  label_reverse_chronological_order: In reverse chronological order
-  label_planning: Planning
-  label_incoming_emails: Incoming emails
-  label_generate_key: Generate a key
-  label_issue_watchers: Watchers
-  label_example: Example
-  label_display: Display
-  label_sort: Sort
-  label_ascending: Ascending
-  label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
-  label_wiki_content_added: Wiki page added
-  label_wiki_content_updated: Wiki page updated
-  label_group: Group
-  label_group_plural: Groups
-  label_group_new: New group
-  label_time_entry_plural: Spent time
-  label_version_sharing_none: Not shared
-  label_version_sharing_descendants: With subprojects
-  label_version_sharing_hierarchy: With project hierarchy
-  label_version_sharing_tree: With project tree
-  label_version_sharing_system: With all projects
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Source
-  label_copy_target: Target
-  label_copy_same_as_target: Same as target
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API access key
-  label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
-  
-  button_login: Login
-  button_submit: Submit
-  button_save: Save
-  button_check_all: Check all
-  button_uncheck_all: Uncheck all
-  button_delete: Delete
-  button_create: Create
-  button_create_and_continue: Create and continue
-  button_test: Test
-  button_edit: Edit
-  button_add: Add
-  button_change: Change
-  button_apply: Apply
-  button_clear: Clear
-  button_lock: Lock
-  button_unlock: Unlock
-  button_download: Download
-  button_list: List
-  button_view: View
-  button_move: Move
-  button_move_and_follow: Move and follow
-  button_back: Back
-  button_cancel: Cancel
-  button_activate: Activate
-  button_sort: Sort
-  button_log_time: Log time
-  button_rollback: Rollback to this version
-  button_watch: Watch
-  button_unwatch: Unwatch
-  button_reply: Reply
-  button_archive: Archive
-  button_unarchive: Unarchive
-  button_reset: Reset
-  button_rename: Rename
-  button_change_password: Change password
-  button_copy: Copy
-  button_copy_and_follow: Copy and follow
-  button_annotate: Annotate
-  button_update: Update
-  button_configure: Configure
-  button_quote: Quote
-  button_duplicate: Duplicate
-  button_show: Show
-  
-  status_active: active
-  status_registered: registered
-  status_locked: locked
-  
-  version_status_open: open
-  version_status_locked: locked
-  version_status_closed: closed
-
-  field_active: Active
-  
-  text_select_mail_notifications: Select actions for which email notifications should be sent.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 means no restriction
-  text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
-  text_workflow_edit: Select a role and a tracker to edit the workflow
-  text_are_you_sure: Are you sure?
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
-  text_tip_issue_begin_day: task beginning this day
-  text_tip_issue_end_day: task ending this day
-  text_tip_issue_begin_end_day: task beginning and ending this day
-  text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
-  text_caracters_maximum: "{{count}} characters maximum."
-  text_caracters_minimum: "Must be at least {{count}} characters long."
-  text_length_between: "Length between {{min}} and {{max}} characters."
-  text_tracker_no_workflow: No workflow defined for this tracker
-  text_unallowed_characters: Unallowed characters
-  text_comma_separated: Multiple values allowed (comma separated).
-  text_line_separated: Multiple values allowed (one line for each value).
-  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
-  text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do?"
-  text_issue_category_destroy_assignments: Remove category assignments
-  text_issue_category_reassign_to: Reassign issues to this category
-  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)."
-  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."
-  text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
-  text_select_project_modules: 'Select modules to enable for this project:'
-  text_default_administrator_account_changed: Default administrator account changed
-  text_file_repository_writable: Attachments directory writable
-  text_plugin_assets_writable: Plugin assets directory writable
-  text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do?"
-  text_destroy_time_entries: Delete reported hours
-  text_assign_time_entries_to_project: Assign reported hours to the project
-  text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_enumeration_category_reassign_to: 'Reassign them to this value:'
-  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."
-  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
-  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  
-  default_role_manager: Manager
-  default_role_developer: Developer
-  default_role_reporter: Reporter
-  default_tracker_bug: Bug
-  default_tracker_feature: Feature
-  default_tracker_support: Support
-  default_issue_status_new: New
-  default_issue_status_in_progress: In Progress
-  default_issue_status_resolved: Resolved
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: Closed
-  default_issue_status_rejected: Rejected
-  default_doc_category_user: User documentation
-  default_doc_category_tech: Technical documentation
-  default_priority_low: Low
-  default_priority_normal: Normal
-  default_priority_high: High
-  default_priority_urgent: Urgent
-  default_priority_immediate: Immediate
-  default_activity_design: Design
-  default_activity_development: Development
-  
-  enumeration_issue_priorities: Issue priorities
-  enumeration_doc_categories: Document categories
-  enumeration_activities: Activities (time tracking)
-  enumeration_system_activity: System Activity
-
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  error_can_not_delete_custom_field: Unable to delete custom field
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  error_unable_to_connect: Unable to connect ({{value}})
-  label_overall_spent_time: Overall spent time
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  field_principal: Principal
-  field_parent_issue: Parent task
-  label_my_page_block: My page block
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  label_project_copy_notifications: Send email notifications during the project copy
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  field_member_of_group: Member of Group
-  field_assigned_to_role: Member of Role
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
+en-GB:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d/%m/%Y"
+      short: "%d %b"
+      long: "%d %B, %Y"
+      
+    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%d/%m/%Y %I:%M %p"
+      time: "%I:%M %p"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "half a minute"
+      less_than_x_seconds:
+        one:   "less than 1 second"
+        other: "less than %{count} seconds"
+      x_seconds:
+        one:   "1 second"
+        other: "%{count} seconds"
+      less_than_x_minutes:
+        one:   "less than a minute"
+        other: "less than %{count} minutes"
+      x_minutes:
+        one:   "1 minute"
+        other: "%{count} minutes"
+      about_x_hours:
+        one:   "about 1 hour"
+        other: "about %{count} hours"
+      x_days:
+        one:   "1 day"
+        other: "%{count} days"
+      about_x_months:
+        one:   "about 1 month"
+        other: "about %{count} months"
+      x_months:
+        one:   "1 month"
+        other: "%{count} months"
+      about_x_years:
+        one:   "about 1 year"
+        other: "about %{count} years"
+      over_x_years:
+        one:   "over 1 year"
+        other: "over %{count} years"
+      almost_x_years:
+        one:   "almost 1 year"
+        other: "almost %{count} years"
+
+  number:
+    format:
+      separator: "."
+      delimiter: " "
+      precision: 3
+
+    currency:
+      format:
+        format: "%u%n"
+        unit: "£"
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "kB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "and"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "is not included in the list"
+        exclusion: "is reserved"
+        invalid: "is invalid"
+        confirmation: "doesn't match confirmation"
+        accepted: "must be accepted"
+        empty: "can't be empty"
+        blank: "can't be blank"
+        too_long: "is too long (maximum is %{count} characters)"
+        too_short: "is too short (minimum is %{count} characters)"
+        wrong_length: "is the wrong length (should be %{count} characters)"
+        taken: "has already been taken"
+        not_a_number: "is not a number"
+        not_a_date: "is not a valid date"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
+        odd: "must be odd"
+        even: "must be even"
+        greater_than_start_date: "must be greater than start date"
+        not_same_project: "doesn't belong to the same project"
+        circular_dependency: "This relation would create a circular dependency"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Please select
+  
+  general_text_No: 'No'
+  general_text_Yes: 'Yes'
+  general_text_no: 'no'
+  general_text_yes: 'yes'
+  general_lang_name: 'English (British)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: ISO-8859-1
+  general_pdf_encoding: ISO-8859-1
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Account was successfully updated.
+  notice_account_invalid_creditentials: Invalid user or password
+  notice_account_password_updated: Password was successfully updated.
+  notice_account_wrong_password: Wrong password
+  notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
+  notice_account_unknown_email: Unknown user.
+  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+  notice_account_activated: Your account has been activated. You can now log in.
+  notice_successful_create: Successful creation.
+  notice_successful_update: Successful update.
+  notice_successful_delete: Successful deletion.
+  notice_successful_connection: Successful connection.
+  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+  notice_locking_conflict: Data has been updated by another user.
+  notice_not_authorized: You are not authorised to access this page.
+  notice_email_sent: "An email was sent to %{value}"
+  notice_email_error: "An error occurred while sending mail (%{value})"
+  notice_feeds_access_key_reseted: Your RSS access key was reset.
+  notice_api_access_key_reseted: Your API access key was reset.
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+  notice_account_pending: "Your account was created and is now pending administrator approval."
+  notice_default_data_loaded: Default configuration successfully loaded.
+  notice_unable_delete_version: Unable to delete version.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+  
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
+  error_scm_not_found: "The entry or revision was not found in the repository."
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
+  error_scm_annotate: "The entry does not exist or can not be annotated."
+  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
+  
+  mail_subject_lost_password: "Your %{value} password"
+  mail_body_lost_password: 'To change your password, click on the following link:'
+  mail_subject_register: "Your %{value} account activation"
+  mail_body_register: 'To activate your account, click on the following link:'
+  mail_body_account_information_external: "You can use your %{value} account to log in."
+  mail_body_account_information: Your account information
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+  
+  gui_validation_error: 1 error
+  gui_validation_error_plural: "%{count} errors"
+  
+  field_name: Name
+  field_description: Description
+  field_summary: Summary
+  field_is_required: Required
+  field_firstname: Firstname
+  field_lastname: Lastname
+  field_mail: Email
+  field_filename: File
+  field_filesize: Size
+  field_downloads: Downloads
+  field_author: Author
+  field_created_on: Created
+  field_updated_on: Updated
+  field_field_format: Format
+  field_is_for_all: For all projects
+  field_possible_values: Possible values
+  field_regexp: Regular expression
+  field_min_length: Minimum length
+  field_max_length: Maximum length
+  field_value: Value
+  field_category: Category
+  field_title: Title
+  field_project: Project
+  field_issue: Issue
+  field_status: Status
+  field_notes: Notes
+  field_is_closed: Issue closed
+  field_is_default: Default value
+  field_tracker: Tracker
+  field_subject: Subject
+  field_due_date: Due date
+  field_assigned_to: Assignee
+  field_priority: Priority
+  field_fixed_version: Target version
+  field_user: User
+  field_role: Role
+  field_homepage: Homepage
+  field_is_public: Public
+  field_parent: Subproject of
+  field_is_in_roadmap: Issues displayed in roadmap
+  field_login: Login
+  field_mail_notification: Email notifications
+  field_admin: Administrator
+  field_last_login_on: Last connection
+  field_language: Language
+  field_effective_date: Date
+  field_password: Password
+  field_new_password: New password
+  field_password_confirmation: Confirmation
+  field_version: Version
+  field_type: Type
+  field_host: Host
+  field_port: Port
+  field_account: Account
+  field_base_dn: Base DN
+  field_attr_login: Login attribute
+  field_attr_firstname: Firstname attribute
+  field_attr_lastname: Lastname attribute
+  field_attr_mail: Email attribute
+  field_onthefly: On-the-fly user creation
+  field_start_date: Start date
+  field_done_ratio: % Done
+  field_auth_source: Authentication mode
+  field_hide_mail: Hide my email address
+  field_comments: Comment
+  field_url: URL
+  field_start_page: Start page
+  field_subproject: Subproject
+  field_hours: Hours
+  field_activity: Activity
+  field_spent_on: Date
+  field_identifier: Identifier
+  field_is_filter: Used as a filter
+  field_issue_to: Related issue
+  field_delay: Delay
+  field_assignable: Issues can be assigned to this role
+  field_redirect_existing_links: Redirect existing links
+  field_estimated_hours: Estimated time
+  field_column_names: Columns
+  field_time_zone: Time zone
+  field_searchable: Searchable
+  field_default_value: Default value
+  field_comments_sorting: Display comments
+  field_parent_title: Parent page
+  field_editable: Editable
+  field_watcher: Watcher
+  field_identity_url: OpenID URL
+  field_content: Content
+  field_group_by: Group results by
+  field_sharing: Sharing
+  
+  setting_app_title: Application title
+  setting_app_subtitle: Application subtitle
+  setting_welcome_text: Welcome text
+  setting_default_language: Default language
+  setting_login_required: Authentication required
+  setting_self_registration: Self-registration
+  setting_attachment_max_size: Attachment max. size
+  setting_issues_export_limit: Issues export limit
+  setting_mail_from: Emission email address
+  setting_bcc_recipients: Blind carbon copy recipients (bcc)
+  setting_plain_text_mail: Plain text mail (no HTML)
+  setting_host_name: Host name and path
+  setting_text_formatting: Text formatting
+  setting_wiki_compression: Wiki history compression
+  setting_feeds_limit: Feed content limit
+  setting_default_projects_public: New projects are public by default
+  setting_autofetch_changesets: Autofetch commits
+  setting_sys_api_enabled: Enable WS for repository management
+  setting_commit_ref_keywords: Referencing keywords
+  setting_commit_fix_keywords: Fixing keywords
+  setting_autologin: Autologin
+  setting_date_format: Date format
+  setting_time_format: Time format
+  setting_cross_project_issue_relations: Allow cross-project issue relations
+  setting_issue_list_default_columns: Default columns displayed on the issue list
+  setting_repositories_encodings: Repositories encodings
+  setting_commit_logs_encoding: Commit messages encoding
+  setting_emails_footer: Emails footer
+  setting_protocol: Protocol
+  setting_per_page_options: Objects per page options
+  setting_user_format: Users display format
+  setting_activity_days_default: Days displayed on project activity
+  setting_display_subprojects_issues: Display subprojects issues on main projects by default
+  setting_enabled_scm: Enabled SCM
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: Enable WS for incoming emails
+  setting_mail_handler_api_key: API key
+  setting_sequential_project_identifiers: Generate sequential project identifiers
+  setting_gravatar_enabled: Use Gravatar user icons
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Max number of diff lines displayed
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Allow OpenID login and registration
+  setting_password_min_length: Minimum password length
+  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+  
+  permission_add_project: Create project
+  permission_add_subprojects: Create subprojects
+  permission_edit_project: Edit project
+  permission_select_project_modules: Select project modules
+  permission_manage_members: Manage members
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Manage versions
+  permission_manage_categories: Manage issue categories
+  permission_view_issues: View Issues
+  permission_add_issues: Add issues
+  permission_edit_issues: Edit issues
+  permission_manage_issue_relations: Manage issue relations
+  permission_add_issue_notes: Add notes
+  permission_edit_issue_notes: Edit notes
+  permission_edit_own_issue_notes: Edit own notes
+  permission_move_issues: Move issues
+  permission_delete_issues: Delete issues
+  permission_manage_public_queries: Manage public queries
+  permission_save_queries: Save queries
+  permission_view_gantt: View gantt chart
+  permission_view_calendar: View calendar
+  permission_view_issue_watchers: View watchers list
+  permission_add_issue_watchers: Add watchers
+  permission_delete_issue_watchers: Delete watchers
+  permission_log_time: Log spent time
+  permission_view_time_entries: View spent time
+  permission_edit_time_entries: Edit time logs
+  permission_edit_own_time_entries: Edit own time logs
+  permission_manage_news: Manage news
+  permission_comment_news: Comment news
+  permission_manage_documents: Manage documents
+  permission_view_documents: View documents
+  permission_manage_files: Manage files
+  permission_view_files: View files
+  permission_manage_wiki: Manage wiki
+  permission_rename_wiki_pages: Rename wiki pages
+  permission_delete_wiki_pages: Delete wiki pages
+  permission_view_wiki_pages: View wiki
+  permission_view_wiki_edits: View wiki history
+  permission_edit_wiki_pages: Edit wiki pages
+  permission_delete_wiki_pages_attachments: Delete attachments
+  permission_protect_wiki_pages: Protect wiki pages
+  permission_manage_repository: Manage repository
+  permission_browse_repository: Browse repository
+  permission_view_changesets: View changesets
+  permission_commit_access: Commit access
+  permission_manage_boards: Manage boards
+  permission_view_messages: View messages
+  permission_add_messages: Post messages
+  permission_edit_messages: Edit messages
+  permission_edit_own_messages: Edit own messages
+  permission_delete_messages: Delete messages
+  permission_delete_own_messages: Delete own messages
+  permission_export_wiki_pages: Export wiki pages
+  
+  project_module_issue_tracking: Issue tracking
+  project_module_time_tracking: Time tracking
+  project_module_news: News
+  project_module_documents: Documents
+  project_module_files: Files
+  project_module_wiki: Wiki
+  project_module_repository: Repository
+  project_module_boards: Boards
+  
+  label_user: User
+  label_user_plural: Users
+  label_user_new: New user
+  label_user_anonymous: Anonymous
+  label_project: Project
+  label_project_new: New project
+  label_project_plural: Projects
+  label_x_projects:
+    zero:  no projects
+    one:   1 project
+    other: "%{count} projects"
+  label_project_all: All Projects
+  label_project_latest: Latest projects
+  label_issue: Issue
+  label_issue_new: New issue
+  label_issue_plural: Issues
+  label_issue_view_all: View all issues
+  label_issues_by: "Issues by %{value}"
+  label_issue_added: Issue added
+  label_issue_updated: Issue updated
+  label_document: Document
+  label_document_new: New document
+  label_document_plural: Documents
+  label_document_added: Document added
+  label_role: Role
+  label_role_plural: Roles
+  label_role_new: New role
+  label_role_and_permissions: Roles and permissions
+  label_member: Member
+  label_member_new: New member
+  label_member_plural: Members
+  label_tracker: Tracker
+  label_tracker_plural: Trackers
+  label_tracker_new: New tracker
+  label_workflow: Workflow
+  label_issue_status: Issue status
+  label_issue_status_plural: Issue statuses
+  label_issue_status_new: New status
+  label_issue_category: Issue category
+  label_issue_category_plural: Issue categories
+  label_issue_category_new: New category
+  label_custom_field: Custom field
+  label_custom_field_plural: Custom fields
+  label_custom_field_new: New custom field
+  label_enumerations: Enumerations
+  label_enumeration_new: New value
+  label_information: Information
+  label_information_plural: Information
+  label_please_login: Please log in
+  label_register: Register
+  label_login_with_open_id_option: or login with OpenID
+  label_password_lost: Lost password
+  label_home: Home
+  label_my_page: My page
+  label_my_account: My account
+  label_my_projects: My projects
+  label_administration: Administration
+  label_login: Sign in
+  label_logout: Sign out
+  label_help: Help
+  label_reported_issues: Reported issues
+  label_assigned_to_me_issues: Issues assigned to me
+  label_last_login: Last connection
+  label_registered_on: Registered on
+  label_activity: Activity
+  label_overall_activity: Overall activity
+  label_user_activity: "%{value}'s activity"
+  label_new: New
+  label_logged_as: Logged in as
+  label_environment: Environment
+  label_authentication: Authentication
+  label_auth_source: Authentication mode
+  label_auth_source_new: New authentication mode
+  label_auth_source_plural: Authentication modes
+  label_subproject_plural: Subprojects
+  label_subproject_new: New subproject
+  label_and_its_subprojects: "%{value} and its subprojects"
+  label_min_max_length: Min - Max length
+  label_list: List
+  label_date: Date
+  label_integer: Integer
+  label_float: Float
+  label_boolean: Boolean
+  label_string: Text
+  label_text: Long text
+  label_attribute: Attribute
+  label_attribute_plural: Attributes
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
+  label_no_data: No data to display
+  label_change_status: Change status
+  label_history: History
+  label_attachment: File
+  label_attachment_new: New file
+  label_attachment_delete: Delete file
+  label_attachment_plural: Files
+  label_file_added: File added
+  label_report: Report
+  label_report_plural: Reports
+  label_news: News
+  label_news_new: Add news
+  label_news_plural: News
+  label_news_latest: Latest news
+  label_news_view_all: View all news
+  label_news_added: News added
+  label_settings: Settings
+  label_overview: Overview
+  label_version: Version
+  label_version_new: New version
+  label_version_plural: Versions
+  label_close_versions: Close completed versions
+  label_confirmation: Confirmation
+  label_export_to: 'Also available in:'
+  label_read: Read...
+  label_public_projects: Public projects
+  label_open_issues: open
+  label_open_issues_plural: open
+  label_closed_issues: closed
+  label_closed_issues_plural: closed
+  label_x_open_issues_abbr_on_total:
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 open
+    one:   1 open
+    other: "%{count} open"
+  label_x_closed_issues_abbr:
+    zero:  0 closed
+    one:   1 closed
+    other: "%{count} closed"
+  label_total: Total
+  label_permissions: Permissions
+  label_current_status: Current status
+  label_new_statuses_allowed: New statuses allowed
+  label_all: all
+  label_none: none
+  label_nobody: nobody
+  label_next: Next
+  label_previous: Previous
+  label_used_by: Used by
+  label_details: Details
+  label_add_note: Add a note
+  label_per_page: Per page
+  label_calendar: Calendar
+  label_months_from: months from
+  label_gantt: Gantt
+  label_internal: Internal
+  label_last_changes: "last %{count} changes"
+  label_change_view_all: View all changes
+  label_personalize_page: Personalise this page
+  label_comment: Comment
+  label_comment_plural: Comments
+  label_x_comments:
+    zero: no comments
+    one: 1 comment
+    other: "%{count} comments"
+  label_comment_add: Add a comment
+  label_comment_added: Comment added
+  label_comment_delete: Delete comments
+  label_query: Custom query
+  label_query_plural: Custom queries
+  label_query_new: New query
+  label_filter_add: Add filter
+  label_filter_plural: Filters
+  label_equals: is
+  label_not_equals: is not
+  label_in_less_than: in less than
+  label_in_more_than: in more than
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: in
+  label_today: today
+  label_all_time: all time
+  label_yesterday: yesterday
+  label_this_week: this week
+  label_last_week: last week
+  label_last_n_days: "last %{count} days"
+  label_this_month: this month
+  label_last_month: last month
+  label_this_year: this year
+  label_date_range: Date range
+  label_less_than_ago: less than days ago
+  label_more_than_ago: more than days ago
+  label_ago: days ago
+  label_contains: contains
+  label_not_contains: doesn't contain
+  label_day_plural: days
+  label_repository: Repository
+  label_repository_plural: Repositories
+  label_browse: Browse
+  label_modification: "%{count} change"
+  label_modification_plural: "%{count} changes"
+  label_branch: Branch
+  label_tag: Tag 
+  label_revision: Revision
+  label_revision_plural: Revisions
+  label_revision_id: "Revision %{value}"
+  label_associated_revisions: Associated revisions
+  label_added: added
+  label_modified: modified
+  label_copied: copied
+  label_renamed: renamed
+  label_deleted: deleted
+  label_latest_revision: Latest revision
+  label_latest_revision_plural: Latest revisions
+  label_view_revisions: View revisions
+  label_view_all_revisions: View all revisions
+  label_max_size: Maximum size
+  label_sort_highest: Move to top
+  label_sort_higher: Move up
+  label_sort_lower: Move down
+  label_sort_lowest: Move to bottom
+  label_roadmap: Roadmap
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} late"
+  label_roadmap_no_issues: No issues for this version
+  label_search: Search
+  label_result_plural: Results
+  label_all_words: All words
+  label_wiki: Wiki
+  label_wiki_edit: Wiki edit
+  label_wiki_edit_plural: Wiki edits
+  label_wiki_page: Wiki page
+  label_wiki_page_plural: Wiki pages
+  label_index_by_title: Index by title
+  label_index_by_date: Index by date
+  label_current_version: Current version
+  label_preview: Preview
+  label_feed_plural: Feeds
+  label_changes_details: Details of all changes
+  label_issue_tracking: Issue tracking
+  label_spent_time: Spent time
+  label_f_hour: "%{value} hour"
+  label_f_hour_plural: "%{value} hours"
+  label_time_tracking: Time tracking
+  label_change_plural: Changes
+  label_statistics: Statistics
+  label_commits_per_month: Commits per month
+  label_commits_per_author: Commits per author
+  label_view_diff: View differences
+  label_diff_inline: inline
+  label_diff_side_by_side: side by side
+  label_options: Options
+  label_copy_workflow_from: Copy workflow from
+  label_permissions_report: Permissions report
+  label_watched_issues: Watched issues
+  label_related_issues: Related issues
+  label_applied_status: Applied status
+  label_loading: Loading...
+  label_relation_new: New relation
+  label_relation_delete: Delete relation
+  label_relates_to: related to
+  label_duplicates: duplicates
+  label_duplicated_by: duplicated by
+  label_blocks: blocks
+  label_blocked_by: blocked by
+  label_precedes: precedes
+  label_follows: follows
+  label_end_to_start: end to start
+  label_end_to_end: end to end
+  label_start_to_start: start to start
+  label_start_to_end: start to end
+  label_stay_logged_in: Stay logged in
+  label_disabled: disabled
+  label_show_completed_versions: Show completed versions
+  label_me: me
+  label_board: Forum
+  label_board_new: New forum
+  label_board_plural: Forums
+  label_board_locked: Locked
+  label_board_sticky: Sticky
+  label_topic_plural: Topics
+  label_message_plural: Messages
+  label_message_last: Last message
+  label_message_new: New message
+  label_message_posted: Message added
+  label_reply_plural: Replies
+  label_send_information: Send account information to the user
+  label_year: Year
+  label_month: Month
+  label_week: Week
+  label_date_from: From
+  label_date_to: To
+  label_language_based: Based on user's language
+  label_sort_by: "Sort by %{value}"
+  label_send_test_email: Send a test email
+  label_feeds_access_key: RSS access key
+  label_missing_feeds_access_key: Missing a RSS access key
+  label_feeds_access_key_created_on: "RSS access key created %{value} ago"
+  label_module_plural: Modules
+  label_added_time_by: "Added by %{author} %{age} ago"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
+  label_updated_time: "Updated %{value} ago"
+  label_jump_to_a_project: Jump to a project...
+  label_file_plural: Files
+  label_changeset_plural: Changesets
+  label_default_columns: Default columns
+  label_no_change_option: (No change)
+  label_bulk_edit_selected_issues: Bulk edit selected issues
+  label_theme: Theme
+  label_default: Default
+  label_search_titles_only: Search titles only
+  label_user_mail_option_all: "For any event on all my projects"
+  label_user_mail_option_selected: "For any event on the selected projects only..."
+  label_user_mail_option_none: "No events"
+  label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
+  label_registration_activation_by_email: account activation by email
+  label_registration_manual_activation: manual account activation
+  label_registration_automatic_activation: automatic account activation
+  label_display_per_page: "Per page: %{value}"
+  label_age: Age
+  label_change_properties: Change properties
+  label_general: General
+  label_more: More
+  label_scm: SCM
+  label_plugins: Plugins
+  label_ldap_authentication: LDAP authentication
+  label_downloads_abbr: D/L
+  label_optional_description: Optional description
+  label_add_another_file: Add another file
+  label_preferences: Preferences
+  label_chronological_order: In chronological order
+  label_reverse_chronological_order: In reverse chronological order
+  label_planning: Planning
+  label_incoming_emails: Incoming emails
+  label_generate_key: Generate a key
+  label_issue_watchers: Watchers
+  label_example: Example
+  label_display: Display
+  label_sort: Sort
+  label_ascending: Ascending
+  label_descending: Descending
+  label_date_from_to: From %{start} to %{end}
+  label_wiki_content_added: Wiki page added
+  label_wiki_content_updated: Wiki page updated
+  label_group: Group
+  label_group_plural: Groups
+  label_group_new: New group
+  label_time_entry_plural: Spent time
+  label_version_sharing_none: Not shared
+  label_version_sharing_descendants: With subprojects
+  label_version_sharing_hierarchy: With project hierarchy
+  label_version_sharing_tree: With project tree
+  label_version_sharing_system: With all projects
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Source
+  label_copy_target: Target
+  label_copy_same_as_target: Same as target
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API access key
+  label_missing_api_access_key: Missing an API access key
+  label_api_access_key_created_on: "API access key created %{value} ago"
+  
+  button_login: Login
+  button_submit: Submit
+  button_save: Save
+  button_check_all: Check all
+  button_uncheck_all: Uncheck all
+  button_delete: Delete
+  button_create: Create
+  button_create_and_continue: Create and continue
+  button_test: Test
+  button_edit: Edit
+  button_add: Add
+  button_change: Change
+  button_apply: Apply
+  button_clear: Clear
+  button_lock: Lock
+  button_unlock: Unlock
+  button_download: Download
+  button_list: List
+  button_view: View
+  button_move: Move
+  button_move_and_follow: Move and follow
+  button_back: Back
+  button_cancel: Cancel
+  button_activate: Activate
+  button_sort: Sort
+  button_log_time: Log time
+  button_rollback: Rollback to this version
+  button_watch: Watch
+  button_unwatch: Unwatch
+  button_reply: Reply
+  button_archive: Archive
+  button_unarchive: Unarchive
+  button_reset: Reset
+  button_rename: Rename
+  button_change_password: Change password
+  button_copy: Copy
+  button_copy_and_follow: Copy and follow
+  button_annotate: Annotate
+  button_update: Update
+  button_configure: Configure
+  button_quote: Quote
+  button_duplicate: Duplicate
+  button_show: Show
+  
+  status_active: active
+  status_registered: registered
+  status_locked: locked
+  
+  version_status_open: open
+  version_status_locked: locked
+  version_status_closed: closed
+
+  field_active: Active
+  
+  text_select_mail_notifications: Select actions for which email notifications should be sent.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 means no restriction
+  text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
+  text_workflow_edit: Select a role and a tracker to edit the workflow
+  text_are_you_sure: Are you sure?
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
+  text_tip_issue_begin_day: task beginning this day
+  text_tip_issue_end_day: task ending this day
+  text_tip_issue_begin_end_day: task beginning and ending this day
+  text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
+  text_caracters_maximum: "%{count} characters maximum."
+  text_caracters_minimum: "Must be at least %{count} characters long."
+  text_length_between: "Length between %{min} and %{max} characters."
+  text_tracker_no_workflow: No workflow defined for this tracker
+  text_unallowed_characters: Unallowed characters
+  text_comma_separated: Multiple values allowed (comma separated).
+  text_line_separated: Multiple values allowed (one line for each value).
+  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
+  text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
+  text_issue_category_destroy_assignments: Remove category assignments
+  text_issue_category_reassign_to: Reassign issues to this category
+  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)."
+  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."
+  text_load_default_configuration: Load the default configuration
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
+  text_select_project_modules: 'Select modules to enable for this project:'
+  text_default_administrator_account_changed: Default administrator account changed
+  text_file_repository_writable: Attachments directory writable
+  text_plugin_assets_writable: Plugin assets directory writable
+  text_rmagick_available: RMagick available (optional)
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?"
+  text_destroy_time_entries: Delete reported hours
+  text_assign_time_entries_to_project: Assign reported hours to the project
+  text_reassign_time_entries: 'Reassign reported hours to this issue:'
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_enumeration_category_reassign_to: 'Reassign them to this value:'
+  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."
+  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
+  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  
+  default_role_manager: Manager
+  default_role_developer: Developer
+  default_role_reporter: Reporter
+  default_tracker_bug: Bug
+  default_tracker_feature: Feature
+  default_tracker_support: Support
+  default_issue_status_new: New
+  default_issue_status_in_progress: In Progress
+  default_issue_status_resolved: Resolved
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: Closed
+  default_issue_status_rejected: Rejected
+  default_doc_category_user: User documentation
+  default_doc_category_tech: Technical documentation
+  default_priority_low: Low
+  default_priority_normal: Normal
+  default_priority_high: High
+  default_priority_urgent: Urgent
+  default_priority_immediate: Immediate
+  default_activity_design: Design
+  default_activity_development: Development
+  
+  enumeration_issue_priorities: Issue priorities
+  enumeration_doc_categories: Document categories
+  enumeration_activities: Activities (time tracking)
+  enumeration_system_activity: System Activity
+
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  error_can_not_delete_custom_field: Unable to delete custom field
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  error_unable_to_connect: Unable to connect (%{value})
+  label_overall_spent_time: Overall spent time
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  field_principal: Principal
+  field_parent_issue: Parent task
+  label_my_page_block: My page block
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  label_project_copy_notifications: Send email notifications during the project copy
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  field_member_of_group: Member of Group
+  field_assigned_to_role: Member of Role
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/en.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/en.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -33,37 +33,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     # Default format for numbers
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "is not included in the list"
         exclusion: "is reserved"
@@ -103,17 +107,17 @@
         accepted: "must be accepted"
         empty: "can't be empty"
         blank: "can't be blank"
-        too_long: "is too long (maximum is {{count}} characters)"
-        too_short: "is too short (minimum is {{count}} characters)"
-        wrong_length: "is the wrong length (should be {{count}} characters)"
+        too_long: "is too long (maximum is %{count} characters)"
+        too_short: "is too short (minimum is %{count} characters)"
+        wrong_length: "is the wrong length (should be %{count} characters)"
         taken: "has already been taken"
         not_a_number: "is not a number"
         not_a_date: "is not a valid date"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "must be greater than start date"
@@ -151,22 +155,23 @@
   notice_locking_conflict: Data has been updated by another user.
   notice_not_authorized: You are not authorized to access this page.
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  notice_email_sent: "An email was sent to {{value}}"
-  notice_email_error: "An error occurred while sending mail ({{value}})"
+  notice_email_sent: "An email was sent to %{value}"
+  notice_email_error: "An error occurred while sending mail (%{value})"
   notice_feeds_access_key_reseted: Your RSS access key was reset.
   notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
   notice_account_pending: "Your account was created and is now pending administrator approval."
   notice_default_data_loaded: Default configuration successfully loaded.
   notice_unable_delete_version: Unable to delete version.
   notice_unable_delete_time_entry: Unable to delete time log entry.
   notice_issue_done_ratios_updated: Issue done ratios updated.
+  notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})"
   
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
   error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
   error_scm_annotate: "The entry does not exist or can not be annotated."
   error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
   error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
@@ -180,26 +185,26 @@
   error_workflow_copy_source: 'Please select a source tracker or role'
   error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
   error_unable_delete_issue_status: 'Unable to delete issue status'
-  error_unable_to_connect: "Unable to connect ({{value}})"
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  error_unable_to_connect: "Unable to connect (%{value})"
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   
-  mail_subject_lost_password: "Your {{value}} password"
+  mail_subject_lost_password: "Your %{value} password"
   mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
+  mail_subject_register: "Your %{value} account activation"
   mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
+  mail_body_account_information_external: "You can use your %{value} account to log in."
   mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "A new user ({{value}}) has registered. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
   
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errors"
+  gui_validation_error_plural: "%{count} errors"
   
   field_name: Name
   field_description: Description
@@ -354,6 +359,9 @@
   setting_rest_api_enabled: Enable REST web service
   setting_cache_formatted_text: Cache formatted text
   setting_default_notification_option: Default notification option
+  setting_commit_logtime_enabled: Enable time logging
+  setting_commit_logtime_activity_id: Activity for logged time
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
   
   permission_add_project: Create project
   permission_add_subprojects: Create subprojects
@@ -432,14 +440,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: All Projects
   label_project_latest: Latest projects
   label_issue: Issue
   label_issue_new: New issue
   label_issue_plural: Issues
   label_issue_view_all: View all issues
-  label_issues_by: "Issues by {{value}}"
+  label_issues_by: "Issues by %{value}"
   label_issue_added: Issue added
   label_issue_updated: Issue updated
   label_document: Document
@@ -489,7 +497,7 @@
   label_registered_on: Registered on
   label_activity: Activity
   label_overall_activity: Overall activity
-  label_user_activity: "{{value}}'s activity"
+  label_user_activity: "%{value}'s activity"
   label_new: New
   label_logged_as: Logged in as
   label_environment: Environment
@@ -499,7 +507,7 @@
   label_auth_source_plural: Authentication modes
   label_subproject_plural: Subprojects
   label_subproject_new: New subproject
-  label_and_its_subprojects: "{{value}} and its subprojects"
+  label_and_its_subprojects: "%{value} and its subprojects"
   label_min_max_length: Min - Max length
   label_list: List
   label_date: Date
@@ -510,8 +518,8 @@
   label_text: Long text
   label_attribute: Attribute
   label_attribute_plural: Attributes
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: No data to display
   label_change_status: Change status
   label_history: History
@@ -543,17 +551,17 @@
   label_closed_issues: closed
   label_closed_issues_plural: closed
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Total
   label_permissions: Permissions
   label_current_status: Current status
@@ -571,7 +579,7 @@
   label_months_from: months from
   label_gantt: Gantt
   label_internal: Internal
-  label_last_changes: "last {{count}} changes"
+  label_last_changes: "last %{count} changes"
   label_change_view_all: View all changes
   label_personalize_page: Personalize this page
   label_comment: Comment
@@ -579,7 +587,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Add a comment
   label_comment_added: Comment added
   label_comment_delete: Delete comments
@@ -600,7 +608,7 @@
   label_yesterday: yesterday
   label_this_week: this week
   label_last_week: last week
-  label_last_n_days: "last {{count}} days"
+  label_last_n_days: "last %{count} days"
   label_this_month: this month
   label_last_month: last month
   label_this_year: this year
@@ -614,13 +622,13 @@
   label_repository: Repository
   label_repository_plural: Repositories
   label_browse: Browse
-  label_modification: "{{count}} change"
-  label_modification_plural: "{{count}} changes"
+  label_modification: "%{count} change"
+  label_modification_plural: "%{count} changes"
   label_branch: Branch
   label_tag: Tag 
   label_revision: Revision
   label_revision_plural: Revisions
-  label_revision_id: "Revision {{value}}"
+  label_revision_id: "Revision %{value}"
   label_associated_revisions: Associated revisions
   label_added: added
   label_modified: modified
@@ -637,8 +645,8 @@
   label_sort_lower: Move down
   label_sort_lowest: Move to bottom
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} late"
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} late"
   label_roadmap_no_issues: No issues for this version
   label_search: Search
   label_result_plural: Results
@@ -657,8 +665,8 @@
   label_issue_tracking: Issue tracking
   label_spent_time: Spent time
   label_overall_spent_time: Overall spent time
-  label_f_hour: "{{value}} hour"
-  label_f_hour_plural: "{{value}} hours"
+  label_f_hour: "%{value} hour"
+  label_f_hour_plural: "%{value} hours"
   label_time_tracking: Time tracking
   label_change_plural: Changes
   label_statistics: Statistics
@@ -709,15 +717,15 @@
   label_date_from: From
   label_date_to: To
   label_language_based: Based on user's language
-  label_sort_by: "Sort by {{value}}"
+  label_sort_by: "Sort by %{value}"
   label_send_test_email: Send a test email
   label_feeds_access_key: RSS access key
   label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS access key created {{value}} ago"
+  label_feeds_access_key_created_on: "RSS access key created %{value} ago"
   label_module_plural: Modules
-  label_added_time_by: "Added by {{author}} {{age}} ago"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
-  label_updated_time: "Updated {{value}} ago"
+  label_added_time_by: "Added by %{author} %{age} ago"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
+  label_updated_time: "Updated %{value} ago"
   label_jump_to_a_project: Jump to a project...
   label_file_plural: Files
   label_changeset_plural: Changesets
@@ -737,7 +745,7 @@
   label_registration_activation_by_email: account activation by email
   label_registration_manual_activation: manual account activation
   label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "Per page: {{value}}"
+  label_display_per_page: "Per page: %{value}"
   label_age: Age
   label_change_properties: Change properties
   label_general: General
@@ -760,7 +768,7 @@
   label_sort: Sort
   label_ascending: Ascending
   label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_wiki_content_added: Wiki page added
   label_wiki_content_updated: Wiki page updated
   label_group: Group
@@ -779,7 +787,7 @@
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   label_api_access_key: API access key
   label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
+  label_api_access_key_created_on: "API access key created %{value} ago"
   label_profile: Profile
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
@@ -796,7 +804,7 @@
   button_create_and_continue: Create and continue
   button_test: Test
   button_edit: Edit
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   button_add: Add
   button_change: Change
   button_apply: Apply
@@ -845,54 +853,55 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 means no restriction
   text_project_destroy_confirmation: Are you sure you want to delete this project and related data ?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Are you sure ?
   text_are_you_sure_with_children: "Delete issue and all child issues?"
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
   text_tip_issue_begin_day: issue beginning this day
   text_tip_issue_end_day: issue ending this day
   text_tip_issue_begin_end_day: issue beginning and ending this day
   text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
-  text_caracters_maximum: "{{count}} characters maximum."
-  text_caracters_minimum: "Must be at least {{count}} characters long."
-  text_length_between: "Length between {{min}} and {{max}} characters."
+  text_caracters_maximum: "%{count} characters maximum."
+  text_caracters_minimum: "Must be at least %{count} characters long."
+  text_length_between: "Length between %{min} and %{max} characters."
   text_tracker_no_workflow: No workflow defined for this tracker
   text_unallowed_characters: Unallowed characters
   text_comma_separated: Multiple values allowed (comma separated).
   text_line_separated: Multiple values allowed (one line for each value).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do ?"
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do ?"
   text_issue_category_destroy_assignments: Remove category assignments
   text_issue_category_reassign_to: Reassign issues to this category
   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)."
   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."
   text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_time_logged_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
   text_select_project_modules: 'Select modules to enable for this project:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: Attachments directory writable
   text_plugin_assets_writable: Plugin assets directory writable
   text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
   text_destroy_time_entries: Delete reported hours
   text_assign_time_entries_to_project: Assign reported hours to the project
   text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   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."
   text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
   text_wiki_page_nullify_children: "Keep child pages as root pages"
   text_wiki_page_destroy_children: "Delete child pages and all their descendants"
   text_wiki_page_reassign_children: "Reassign child pages to this parent page"
--- a/config/locales/es.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/es.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -66,44 +66,44 @@
       half_a_minute: "medio minuto" 
       less_than_x_seconds:
         one:  "menos de 1 segundo" 
-        other: "menos de {{count}} segundos"
+        other: "menos de %{count} segundos"
       x_seconds:
         one:  "1 segundo" 
-        other: "{{count}} segundos" 
+        other: "%{count} segundos" 
       less_than_x_minutes:
         one:  "menos de 1 minuto" 
-        other: "menos de {{count}} minutos" 
+        other: "menos de %{count} minutos" 
       x_minutes:
         one:  "1 minuto" 
-        other: "{{count}} minutos" 
+        other: "%{count} minutos" 
       about_x_hours:
         one:  "alrededor de 1 hora" 
-        other: "alrededor de {{count}} horas" 
+        other: "alrededor de %{count} horas" 
       x_days:
         one:  "1 día" 
-        other: "{{count}} días" 
+        other: "%{count} días" 
       about_x_months:
         one:  "alrededor de 1 mes" 
-        other: "alrededor de {{count}} meses" 
+        other: "alrededor de %{count} meses" 
       x_months:
         one:  "1 mes" 
-        other: "{{count}} meses" 
+        other: "%{count} meses" 
       about_x_years:
         one:  "alrededor de 1 año" 
-        other: "alrededor de {{count}} años" 
+        other: "alrededor de %{count} años" 
       over_x_years:
         one:  "más de 1 año" 
-        other: "más de {{count}} años" 
+        other: "más de %{count} años" 
       almost_x_years:
         one:   "casi 1 año"
-        other: "casi {{count}} años"
+        other: "casi %{count} años"
 
   activerecord:
     errors:
       template:
         header:
-          one:   "no se pudo guardar este {{model}} porque se encontró 1 error" 
-          other:  "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" 
+          one:   "no se pudo guardar este %{model} porque se encontró 1 error" 
+          other:  "no se pudo guardar este %{model} porque se encontraron %{count} errores" 
         # The variable :count is also available
         body: "Se encontraron problemas con los siguientes campos:" 
 
@@ -117,16 +117,16 @@
         accepted: "debe ser aceptado"
         empty: "no puede estar vacío"
         blank: "no puede estar en blanco"
-        too_long: "es demasiado largo ({{count}} caracteres máximo)"
-        too_short: "es demasiado corto ({{count}} caracteres mínimo)"
-        wrong_length: "no tiene la longitud correcta ({{count}} caracteres exactos)"
+        too_long: "es demasiado largo (%{count} caracteres máximo)"
+        too_short: "es demasiado corto (%{count} caracteres mínimo)"
+        wrong_length: "no tiene la longitud correcta (%{count} caracteres exactos)"
         taken: "ya está en uso"
         not_a_number: "no es un número"
-        greater_than: "debe ser mayor que {{count}}"
-        greater_than_or_equal_to: "debe ser mayor que o igual a {{count}}"
-        equal_to: "debe ser igual a {{count}}"
-        less_than: "debe ser menor que {{count}}"
-        less_than_or_equal_to: "debe ser menor que o igual a {{count}}"
+        greater_than: "debe ser mayor que %{count}"
+        greater_than_or_equal_to: "debe ser mayor que o igual a %{count}"
+        equal_to: "debe ser igual a %{count}"
+        less_than: "debe ser menor que %{count}"
+        less_than_or_equal_to: "debe ser menor que o igual a %{count}"
         odd: "debe ser impar"
         even: "debe ser par"
         greater_than_start_date: "debe ser posterior a la fecha de comienzo"
@@ -239,10 +239,10 @@
   enumeration_activities: Actividades (tiempo dedicado)
   enumeration_doc_categories: Categorías del documento
   enumeration_issue_priorities: Prioridad de las peticiones
-  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: {{value}}"
+  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: %{value}"
   error_issue_not_found_in_project: 'La petición no se encuentra o no está asociada a este proyecto'
   error_scm_annotate: "No existe la entrada o no ha podido ser anotada"
-  error_scm_command_failed: "Se produjo un error al acceder al repositorio: {{value}}"
+  error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}"
   error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio."
   field_account: Cuenta
   field_activity: Actividad
@@ -313,6 +313,7 @@
   field_role: Perfil
   field_searchable: Incluir en las búsquedas
   field_spent_on: Fecha
+  field_start_date: Fecha de inicio
   field_start_page: Página principal
   field_status: Estado
   field_subject: Tema
@@ -338,19 +339,19 @@
   general_text_no: 'no'
   general_text_yes: 'sí'
   gui_validation_error: 1 error
-  gui_validation_error_plural: "{{count}} errores"
+  gui_validation_error_plural: "%{count} errores"
   label_activity: Actividad
   label_add_another_file: Añadir otro fichero
   label_add_note: Añadir una nota
   label_added: añadido
-  label_added_time_by: "Añadido por {{author}} hace {{age}}"
+  label_added_time_by: "Añadido por %{author} hace %{age}"
   label_administration: Administración
   label_age: Edad
   label_ago: hace
   label_all: todos
   label_all_time: todo el tiempo
   label_all_words: Todas las palabras
-  label_and_its_subprojects: "{{value}} y proyectos secundarios"
+  label_and_its_subprojects: "%{value} y proyectos secundarios"
   label_applied_status: Aplicar estado
   label_assigned_to_me_issues: Peticiones que me están asignadas
   label_associated_revisions: Revisiones asociadas
@@ -383,17 +384,17 @@
   label_closed_issues: cerrada
   label_closed_issues_plural: cerradas
   label_x_open_issues_abbr_on_total:
-    zero:  0 abiertas / {{total}}
-    one:   1 abierta / {{total}}
-    other: "{{count}} abiertas / {{total}}"
+    zero:  0 abiertas / %{total}
+    one:   1 abierta / %{total}
+    other: "%{count} abiertas / %{total}"
   label_x_open_issues_abbr:
     zero:  0 abiertas
     one:   1 abierta
-    other: "{{count}} abiertas"
+    other: "%{count} abiertas"
   label_x_closed_issues_abbr:
     zero:  0 cerradas
     one:   1 cerrada
-    other: "{{count}} cerradas"
+    other: "%{count} cerradas"
   label_comment: Comentario
   label_comment_add: Añadir un comentario
   label_comment_added: Comentario añadido
@@ -402,7 +403,7 @@
   label_x_comments:
     zero: sin comentarios
     one: 1 comentario
-    other: "{{count}} comentarios"
+    other: "%{count} comentarios"
   label_commits_per_author: Commits por autor
   label_commits_per_month: Commits por mes
   label_confirmation: Confirmación
@@ -426,13 +427,13 @@
   label_diff_inline: en línea
   label_diff_side_by_side: cara a cara
   label_disabled: deshabilitado
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_document: Documento
   label_document_added: Documento añadido
   label_document_new: Nuevo documento
   label_document_plural: Documentos
-  label_download: "{{count}} Descarga"
-  label_download_plural: "{{count}} Descargas"
+  label_download: "%{count} Descarga"
+  label_download_plural: "%{count} Descargas"
   label_downloads_abbr: D/L
   label_duplicated_by: duplicada por
   label_duplicates: duplicada de
@@ -444,10 +445,10 @@
   label_equals: igual
   label_example: Ejemplo
   label_export_to: 'Exportar a:'
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "Clave de acceso por RSS creada hace {{value}}"
+  label_feeds_access_key_created_on: "Clave de acceso por RSS creada hace %{value}"
   label_file_added: Fichero añadido
   label_file_plural: Archivos
   label_filter_add: Añadir el filtro
@@ -484,13 +485,13 @@
   label_issue_updated: Petición actualizada
   label_issue_view_all: Ver todas las peticiones
   label_issue_watchers: Seguidores
-  label_issues_by: "Peticiones por {{value}}"
+  label_issues_by: "Peticiones por %{value}"
   label_jump_to_a_project: Ir al proyecto...
   label_language_based: Basado en el idioma
-  label_last_changes: "últimos {{count}} cambios"
+  label_last_changes: "últimos %{count} cambios"
   label_last_login: Última conexión
   label_last_month: último mes
-  label_last_n_days: "últimos {{count}} días"
+  label_last_n_days: "últimos %{count} días"
   label_last_week: última semana
   label_latest_revision: Última revisión
   label_latest_revision_plural: Últimas revisiones
@@ -511,8 +512,8 @@
   label_message_plural: Mensajes
   label_message_posted: Mensaje añadido
   label_min_max_length: Longitud mín - máx
-  label_modification: "{{count}} modificación"
-  label_modification_plural: "{{count}} modificaciones"
+  label_modification: "%{count} modificación"
+  label_modification_plural: "%{count} modificaciones"
   label_modified: modificado
   label_module_plural: Módulos
   label_month: Mes
@@ -563,7 +564,7 @@
   label_x_projects:
     zero:  sin proyectos
     one:   1 proyecto
-    other: "{{count}} proyectos"
+    other: "%{count} proyectos"
   label_public_projects: Proyectos públicos
   label_query: Consulta personalizada
   label_query_new: Nueva consulta
@@ -590,9 +591,9 @@
   label_revision: Revisión
   label_revision_plural: Revisiones
   label_roadmap: Planificación
-  label_roadmap_due_in: "Finaliza en {{value}}"
+  label_roadmap_due_in: "Finaliza en %{value}"
   label_roadmap_no_issues: No hay peticiones para esta versión
-  label_roadmap_overdue: "{{value}} tarde"
+  label_roadmap_overdue: "%{value} tarde"
   label_role: Perfil
   label_role_and_permissions: Perfiles y permisos
   label_role_new: Nuevo perfil
@@ -604,7 +605,7 @@
   label_send_test_email: Enviar un correo de prueba
   label_settings: Configuración
   label_show_completed_versions: Muestra las versiones terminadas
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_sort_higher: Subir
   label_sort_highest: Primero
   label_sort_lower: Bajar
@@ -628,11 +629,11 @@
   label_tracker: Tipo
   label_tracker_new: Nuevo tipo
   label_tracker_plural: Tipos de peticiones
-  label_updated_time: "Actualizado hace {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} hace {{age}}"
+  label_updated_time: "Actualizado hace %{value}"
+  label_updated_time_by: "Actualizado por %{author} hace %{age}"
   label_used_by: Utilizado por
   label_user: Usuario
-  label_user_activity: "Actividad de {{value}}"
+  label_user_activity: "Actividad de %{value}"
   label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
   label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
   label_user_mail_option_selected: "Para cualquier evento de los proyectos seleccionados..."
@@ -653,16 +654,16 @@
   label_workflow: Flujo de trabajo
   label_year: Año
   label_yesterday: ayer
-  mail_body_account_activation_request: "Se ha inscrito un nuevo usuario ({{value}}). La cuenta está pendiende de aprobación:"
+  mail_body_account_activation_request: "Se ha inscrito un nuevo usuario (%{value}). La cuenta está pendiende de aprobación:"
   mail_body_account_information: Información sobre su cuenta
-  mail_body_account_information_external: "Puede usar su cuenta {{value}} para conectarse."
+  mail_body_account_information_external: "Puede usar su cuenta %{value} para conectarse."
   mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:'
   mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:'
-  mail_body_reminder: "{{count}} peticion(es) asignadas a tí finalizan en los próximos {{days}} días:"
-  mail_subject_account_activation_request: "Petición de activación de cuenta {{value}}"
-  mail_subject_lost_password: "Tu contraseña del {{value}}"
-  mail_subject_register: "Activación de la cuenta del {{value}}"
-  mail_subject_reminder: "{{count}} peticion(es) finalizan en los próximos {{days}} días"
+  mail_body_reminder: "%{count} peticion(es) asignadas a tí finalizan en los próximos %{days} días:"
+  mail_subject_account_activation_request: "Petición de activación de cuenta %{value}"
+  mail_subject_lost_password: "Tu contraseña del %{value}"
+  mail_subject_register: "Activación de la cuenta del %{value}"
+  mail_subject_reminder: "%{count} peticion(es) finalizan en los próximos %{days} días"
   notice_account_activated: Su cuenta ha sido activada. Ya puede conectarse.
   notice_account_invalid_creditentials: Usuario o contraseña inválido.
   notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
@@ -674,9 +675,9 @@
   notice_account_wrong_password: Contraseña incorrecta.
   notice_can_t_change_password: Esta cuenta utiliza una fuente de autenticación externa. No es posible cambiar la contraseña.
   notice_default_data_loaded: Configuración por defecto cargada correctamente.
-  notice_email_error: "Ha ocurrido un error mientras enviando el correo ({{value}})"
-  notice_email_sent: "Se ha enviado un correo a {{value}}"
-  notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en {{count}} seleccionado: {{ids}}."
+  notice_email_error: "Ha ocurrido un error mientras enviando el correo (%{value})"
+  notice_email_sent: "Se ha enviado un correo a %{value}"
+  notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %{count} seleccionado: %{ids}."
   notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
   notice_file_not_found: La página a la que intenta acceder no existe.
   notice_locking_conflict: Los datos han sido modificados por otro usuario.
@@ -787,25 +788,25 @@
   status_registered: registrado
   text_are_you_sure: ¿Está seguro?
   text_assign_time_entries_to_project: Asignar las horas al proyecto
-  text_caracters_maximum: "{{count}} caracteres como máximo."
-  text_caracters_minimum: "{{count}} caracteres como mínimo."
+  text_caracters_maximum: "%{count} caracteres como máximo."
+  text_caracters_minimum: "%{count} caracteres como mínimo."
   text_comma_separated: Múltiples valores permitidos (separados por coma).
   text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
   text_destroy_time_entries: Borrar las horas
-  text_destroy_time_entries_question: Existen {{hours}} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
+  text_destroy_time_entries_question: Existen %{hours} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
   text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
   text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios."
   text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
-  text_enumeration_destroy_question: "{{count}} objetos con este valor asignado."
+  text_enumeration_destroy_question: "%{count} objetos con este valor asignado."
   text_file_repository_writable: Se puede escribir en el repositorio
-  text_issue_added: "Petición {{id}} añadida por {{author}}."
+  text_issue_added: "Petición %{id} añadida por %{author}."
   text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
-  text_issue_category_destroy_question: "Algunas peticiones ({{count}}) están asignadas a esta categoría. ¿Qué desea hacer?"
+  text_issue_category_destroy_question: "Algunas peticiones (%{count}) están asignadas a esta categoría. ¿Qué desea hacer?"
   text_issue_category_reassign_to: Reasignar las peticiones a la categoría
-  text_issue_updated: "La petición {{id}} ha sido actualizada por {{author}}."
+  text_issue_updated: "La petición %{id} ha sido actualizada por %{author}."
   text_issues_destroy_confirmation: '¿Seguro que quiere borrar las peticiones seleccionadas?'
   text_issues_ref_in_commit_messages: Referencia y petición de corrección en los mensajes
-  text_length_between: "Longitud entre {{min}} y {{max}} caracteres."
+  text_length_between: "Longitud entre %{min} y %{max} caracteres."
   text_load_default_configuration: Cargar la configuración por defecto
   text_min_max_length_info: 0 para ninguna restricción
   text_no_configuration_data: "Todavía no se han configurado perfiles, ni tipos, estados y flujo de trabajo asociado a peticiones. Se recomiendo encarecidamente cargar la configuración por defecto. Una vez cargada, podrá modificarla."
@@ -817,19 +818,19 @@
   text_rmagick_available: RMagick disponible (opcional)
   text_select_mail_notifications: Seleccionar los eventos a notificar
   text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
-  text_status_changed_by_changeset: "Aplicado en los cambios {{value}}"
-  text_subprojects_destroy_warning: "Los proyectos secundarios: {{value}} también se eliminarán"
+  text_status_changed_by_changeset: "Aplicado en los cambios %{value}"
+  text_subprojects_destroy_warning: "Los proyectos secundarios: %{value} también se eliminarán"
   text_tip_issue_begin_day: tarea que comienza este día
   text_tip_issue_begin_end_day: tarea que comienza y termina este día
   text_tip_issue_end_day: tarea que termina este día
   text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tipo de petición
   text_unallowed_characters: Caracteres no permitidos
   text_user_mail_option: "De los proyectos no seleccionados, sólo recibirá notificaciones sobre elementos monitorizados o elementos en los que esté involucrado (por ejemplo, peticiones de las que usted sea autor o asignadas a usted)."
-  text_user_wrote: "{{value}} escribió:"
+  text_user_wrote: "%{value} escribió:"
   text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
   text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
   text_plugin_assets_writable: Se puede escribir en el directorio público de las extensiones
-  warning_attachments_not_saved: "No se han podido grabar {{count}} ficheros."
+  warning_attachments_not_saved: "No se han podido grabar %{count} ficheros."
   button_create_and_continue: Crear y continuar
   text_custom_field_possible_values_info: 'Un valor en cada línea'
   label_display: Mostrar
@@ -844,21 +845,21 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: Desde {{start}} hasta {{end}}
+  label_date_from_to: Desde %{start} hasta %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tiene {{descendants}} página(s) hija(s) y descendiente(s). ¿Qué desea hacer?
+  text_wiki_page_destroy_question: Esta página tiene %{descendants} página(s) hija(s) y descendiente(s). ¿Qué desea hacer?
   text_wiki_page_reassign_children: Reasignar páginas hijas a esta página
   text_wiki_page_nullify_children: Dejar páginas hijas como páginas raíz
   text_wiki_page_destroy_children: Eliminar páginas hijas y todos sus descendientes
   setting_password_min_length: Longitud mínima de la contraseña
   field_group_by: Agrupar resultados por
-  mail_subject_wiki_content_updated: "La página wiki '{{id}}' ha sido actualizada"
+  mail_subject_wiki_content_updated: "La página wiki '%{id}' ha sido actualizada"
   label_wiki_content_added: Página wiki añadida
-  mail_subject_wiki_content_added: "Se ha añadido la página wiki '{{id}}'."
-  mail_body_wiki_content_added: "{{author}} ha añadido la página wiki '{{id}}'."
+  mail_subject_wiki_content_added: "Se ha añadido la página wiki '%{id}'."
+  mail_body_wiki_content_added: "%{author} ha añadido la página wiki '%{id}'."
   label_wiki_content_updated: Página wiki actualizada
-  mail_body_wiki_content_updated: La página wiki '{{id}}' ha sido actualizada por {{author}}.
+  mail_body_wiki_content_updated: La página wiki '%{id}' ha sido actualizada por %{author}.
   permission_add_project: Crear proyecto
   setting_new_project_user_role_id: Permiso asignado a un usuario no-administrador para crear proyectos
   label_view_all_revisions: Ver todas las revisiones
@@ -866,14 +867,14 @@
   label_branch: Rama
   error_no_tracker_in_project: Este proyecto no tiene asociados tipos de peticiones. Por favor, revise la configuración.
   error_no_default_issue_status: No se ha definido un estado de petición por defecto. Por favor, revise la configuración (en "Administración" -> "Estados de las peticiones").
-  text_journal_changed: "{{label}} cambiado {{old}} por {{new}}"
-  text_journal_set_to: "{{label}} establecido a {{value}}"
-  text_journal_deleted: "{{label}} eliminado ({{old}})"
+  text_journal_changed: "%{label} cambiado %{old} por %{new}"
+  text_journal_set_to: "%{label} establecido a %{value}"
+  text_journal_deleted: "%{label} eliminado (%{old})"
   label_group_plural: Grupos
   label_group: Grupo
   label_group_new: Nuevo grupo
   label_time_entry_plural: Tiempo dedicado
-  text_journal_added: "Añadido {{label}} {{value}}"
+  text_journal_added: "Añadido %{label} %{value}"
   field_active: Activo
   enumeration_system_activity: Actividad del sistema
   permission_delete_issue_watchers: Borrar seguidores
@@ -909,9 +910,9 @@
   setting_start_of_week: Comenzar las semanas en
   permission_view_issues: Ver peticiones
   label_display_used_statuses_only: Sólo mostrar los estados usados por este tipo de petición
-  label_revision_id: Revisión {{value}}
+  label_revision_id: Revisión %{value}
   label_api_access_key: Clave de acceso de la API
-  label_api_access_key_created_on: Clave de acceso de la API creada hace {{value}}
+  label_api_access_key_created_on: Clave de acceso de la API creada hace %{value}
   label_feeds_access_key: Clave de acceso RSS
   notice_api_access_key_reseted: Clave de acceso a la API regenerada.
   setting_rest_api_enabled: Activar servicio web REST
@@ -938,32 +939,37 @@
   label_subtask_plural: Subtareas
   label_project_copy_notifications: Enviar notificaciones por correo electrónico durante la copia del proyecto
   error_can_not_delete_custom_field: Fue imposible eliminar el campo personalizado
-  error_unable_to_connect: Fue imposible conectar con ({{value}})
+  error_unable_to_connect: Fue imposible conectar con (%{value})
   error_can_not_remove_role: Este rol está en uso y no puede ser eliminado.
   error_can_not_delete_tracker: Este tipo contiene peticiones y no puede ser eliminado.
   field_principal: Principal
   label_my_page_block: Bloque Mi página
-  notice_failed_to_save_members: "Fallo al guardar miembro(s): {{errors}}."
+  notice_failed_to_save_members: "Fallo al guardar miembro(s): %{errors}."
   text_zoom_out: Alejar
   text_zoom_in: Acercar
   notice_unable_delete_time_entry: Fue imposible eliminar la entrada de tiempo dedicado.
   label_overall_spent_time: Tiempo total dedicado
   field_time_entries: Log time
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  project_module_calendar: Calendario
+  button_edit_associated_wikipage: "Editar paginas Wiki asociadas: %{page_title}"
+  text_are_you_sure_with_children: ¿Borrar peticiones y todas sus peticiones hijas?
+  field_text: Campo de texto
+  label_user_mail_option_only_owner: Solo para objetos que soy propietario
+  setting_default_notification_option: Opcion de notificacion por defecto
+  label_user_mail_option_only_my_events: Solo para objetos que soy seguidor o estoy involucrado
+  label_user_mail_option_only_assigned: Solo para objetos que estoy asignado
+  label_user_mail_option_none: Sin eventos
+  field_member_of_group: Asignado al grupo
+  field_assigned_to_role: Asignado al perfil
+  notice_not_authorized_archived_project: El proyecto al que intenta acceder ha sido archivado.
+  label_principal_search: "Buscar por usuario o grupo:"
+  label_user_search: "Buscar por usuario:"
   field_visible: Visible
-  setting_emails_header: Emails header
+  setting_emails_header: Encabezado de Correos
+
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/eu.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/eu.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,933 +1,942 @@
-# Redmine EU language
-# Author: Ales Zabala Alava (Shagi), <shagi@gisa-elkartea.org>
-# 2010-01-25
-# Distributed under the same terms as the Redmine itself.
-eu:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%Y/%m/%d"
-      short: "%b %d"
-      long: "%Y %B %d"
-      
-    day_names: [Igandea, Astelehena, Asteartea, Asteazkena, Osteguna, Ostirala, Larunbata]
-    abbr_day_names: [Ig., Al., Ar., Az., Og., Or., La.]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, Urtarrila, Otsaila, Martxoa, Apirila, Maiatza, Ekaina, Uztaila, Abuztua, Iraila, Urria, Azaroa, Abendua]
-    abbr_month_names: [~, Urt, Ots, Mar, Api, Mai, Eka, Uzt, Abu, Ira, Urr, Aza, Abe]
-    # Used in date_select and datime_select.
-    order: [ :year, :month, :day ]
-
-  time:
-    formats:
-      default: "%Y/%m/%d %H:%M"
-      time: "%H:%M"
-      short: "%b %d %H:%M"
-      long: "%Y %B %d %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "minutu erdi"
-      less_than_x_seconds:
-        one:   "segundu bat baino gutxiago"
-        other: "{{count}} segundu baino gutxiago"
-      x_seconds:
-        one:   "segundu 1"
-        other: "{{count}} segundu"
-      less_than_x_minutes:
-        one:   "minutu bat baino gutxiago"
-        other: "{{count}} minutu baino gutxiago"
-      x_minutes:
-        one:   "minutu 1"
-        other: "{{count}} minutu"
-      about_x_hours:
-        one:   "ordu 1 inguru"
-        other: "{{count}} ordu inguru"
-      x_days:
-        one:   "egun 1"
-        other: "{{count}} egun"
-      about_x_months:
-        one:   "hilabete 1 inguru"
-        other: "{{count}} hilabete inguru"
-      x_months:
-        one:   "hilabete 1"
-        other: "{{count}} hilabete"
-      about_x_years:
-        one:   "urte 1 inguru"
-        other: "{{count}} urte inguru"
-      over_x_years:
-        one:   "urte 1 baino gehiago"
-        other: "{{count}} urte baino gehiago"
-      almost_x_years:
-        one:   "ia urte 1"
-        other: "ia {{count}} urte"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Byte"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "eta"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "ez dago zerrendan"
-        exclusion: "erreserbatuta dago"
-        invalid: "baliogabea da"
-        confirmation: "ez du berrespenarekin bat egiten"
-        accepted: "onartu behar da"
-        empty: "ezin da hutsik egon"
-        blank: "ezin da hutsik egon"
-        too_long: "luzeegia da (maximoa {{count}} karaktere dira)"
-        too_short: "laburregia da (minimoa {{count}} karaktere dira)"
-        wrong_length: "luzera ezegokia da ({{count}} karakter izan beharko litzake)"
-        taken: "dagoeneko hartuta dago"
-        not_a_number: "ez da zenbaki bat"
-        not_a_date: "ez da baliozko data"
-        greater_than: "{{count}} baino handiagoa izan behar du"
-        greater_than_or_equal_to: "{{count}} edo handiagoa izan behar du"
-        equal_to: "{{count}} izan behar du"
-        less_than: "{{count}} baino gutxiago izan behar du"
-        less_than_or_equal_to: "{{count}} edo gutxiago izan behar du"
-        odd: "bakoitia izan behar du"
-        even: "bikoitia izan behar du"
-        greater_than_start_date: "hasiera data baino handiagoa izan behar du"
-        not_same_project: "ez dago proiektu berdinean"
-        circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Hautatu mesedez
-  
-  general_text_No: 'Ez'
-  general_text_Yes: 'Bai'
-  general_text_no: 'ez'
-  general_text_yes: 'bai'
-  general_lang_name: 'Euskara'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Kontua ongi eguneratu da.
-  notice_account_invalid_creditentials: Erabiltzaile edo pasahitz ezegokia
-  notice_account_password_updated: Pasahitza ongi eguneratu da.
-  notice_account_wrong_password: Pasahitz ezegokia.
-  notice_account_register_done: Kontua ongi sortu da. Kontua gaitzeko klikatu epostan adierazi zaizun estekan.
-  notice_account_unknown_email: Erabiltzaile ezezaguna.
-  notice_can_t_change_password: Kontu honek kanpoko autentikazio bat erabiltzen du. Ezinezkoa da pasahitza aldatzea.
-  notice_account_lost_email_sent: Pasahitz berria aukeratzeko jarraibideak dituen eposta bat bidali zaizu.
-  notice_account_activated: Zure kontua gaituta dago. Orain saioa has dezakezu
-  notice_successful_create: Sortze arrakastatsua.
-  notice_successful_update: Eguneratze arrakastatsua.
-  notice_successful_delete: Ezabaketa arrakastatsua.
-  notice_successful_connection: Konexio arrakastatsua.
-  notice_file_not_found: Atzitu nahi duzun orria ez da exisitzen edo ezabatua izan da.
-  notice_locking_conflict: Beste erabiltzaile batek datuak eguneratu ditu.
-  notice_not_authorized: Ez duzu orri hau atzitzeko baimenik.
-  notice_email_sent: "{{value}} helbidera eposta bat bidali da"
-  notice_email_error: "Errorea eposta bidaltzean ({{value}})"
-  notice_feeds_access_key_reseted: Zure RSS atzipen giltza berrezarri da.
-  notice_api_access_key_reseted: Zure API atzipen giltza berrezarri da.
-  notice_failed_to_save_issues: "Hautatutako {{total}} zereginetatik {{count}} ezin izan dira konpondu: {{ids}}."
-  notice_no_issue_selected: "Ez da zereginik hautatu! Mesedez, editatu nahi dituzun arazoak markatu."
-  notice_account_pending: "Zure kontua sortu da, orain kudeatzailearen onarpenaren zain dago."
-  notice_default_data_loaded: Lehenetsitako konfigurazioa ongi kargatu da.
-  notice_unable_delete_version: Ezin da bertsioa ezabatu.
-  notice_issue_done_ratios_updated: Burututako zereginen erlazioa eguneratu da.
-  
-  error_can_t_load_default_data: "Ezin izan da lehenetsitako konfigurazioa kargatu: {{value}}"
-  error_scm_not_found: "Sarrera edo berrikuspena ez da biltegian topatu."
-  error_scm_command_failed: "Errorea gertatu da biltegia atzitzean: {{value}}"
-  error_scm_annotate: "Sarrera ez da existitzen edo ezin da anotatu."
-  error_issue_not_found_in_project: 'Zeregina ez da topatu edo ez da proiektu honetakoa'
-  error_no_tracker_in_project: 'Proiektu honek ez du aztarnaririk esleituta. Mesedez egiaztatu Proiektuaren ezarpenak.'
-  error_no_default_issue_status: 'Zereginek ez dute lehenetsitako egoerarik.  Mesedez egiaztatu zure konfigurazioa ("Kudeaketa -> Arazoen egoerak" atalera joan).'
-  error_can_not_reopen_issue_on_closed_version: 'Itxitako bertsio batera esleitutako zereginak ezin dira berrireki'
-  error_can_not_archive_project: Proiektu hau ezin da artxibatu
-  error_issue_done_ratios_not_updated: "Burututako zereginen erlazioa ez da eguneratu."
-  error_workflow_copy_source: 'Mesedez hautatu iturburuko aztarnari edo rola'
-  error_workflow_copy_target: 'Mesedez hautatu helburuko aztarnari(ak) edo rola(k)'
-  
-  warning_attachments_not_saved: "{{count}} fitxategi ezin izan d(ir)a gorde."
-  
-  mail_subject_lost_password: "Zure {{value}} pasahitza"
-  mail_body_lost_password: 'Zure pasahitza aldatzeko hurrengo estekan klikatu:'
-  mail_subject_register: "Zure {{value}} kontuaren gaitzea"
-  mail_body_register: 'Zure kontua gaitzeko hurrengo estekan klikatu:'
-  mail_body_account_information_external: "Zure {{value}} kontua erabil dezakezu saioa hasteko."
-  mail_body_account_information: Zure kontuaren informazioa
-  mail_subject_account_activation_request: "{{value}} kontu gaitzeko eskaera"
-  mail_body_account_activation_request: "Erabiltzaile berri bat ({{value}}) erregistratu da. Kontua zure onarpenaren zain dago:"
-  mail_subject_reminder: "{{count}} arazo hurrengo {{days}} egunetan amaitzen d(ir)a"
-  mail_body_reminder: "Zuri esleituta dauden {{count}} arazo hurrengo {{days}} egunetan amaitzen d(ir)a:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki orria gehitu da"
-  mail_body_wiki_content_added: "{{author}}-(e)k '{{id}}' wiki orria gehitu du."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki orria eguneratu da"
-  mail_body_wiki_content_updated: "{{author}}-(e)k '{{id}}' wiki orria eguneratu du."
-  
-  gui_validation_error: akats 1
-  gui_validation_error_plural: "{{count}} akats"
-  
-  field_name: Izena
-  field_description: Deskribapena
-  field_summary: Laburpena
-  field_is_required: Beharrezkoa
-  field_firstname: Izena
-  field_lastname: Abizenak
-  field_mail: Eposta
-  field_filename: Fitxategia
-  field_filesize: Tamaina
-  field_downloads: Deskargak
-  field_author: Egilea
-  field_created_on: Sortuta
-  field_updated_on: Eguneratuta
-  field_field_format: Formatua
-  field_is_for_all: Proiektu guztietarako
-  field_possible_values: Balio posibleak
-  field_regexp: Expresio erregularra
-  field_min_length: Luzera minimoa
-  field_max_length: Luzera maxioma
-  field_value: Balioa
-  field_category: Kategoria
-  field_title: Izenburua
-  field_project: Proiektua
-  field_issue: Zeregina
-  field_status: Egoera
-  field_notes: Oharrak
-  field_is_closed: Itxitako arazoa
-  field_is_default: Lehenetsitako balioa
-  field_tracker: Aztarnaria
-  field_subject: Gaia
-  field_due_date: Amaiera data
-  field_assigned_to: Esleituta
-  field_priority: Lehentasuna
-  field_fixed_version: Helburuko bertsioa
-  field_user: Erabiltzilea
-  field_role: Rola
-  field_homepage: Orri nagusia
-  field_is_public: Publikoa
-  field_parent: "Honen azpiproiektua:"
-  field_is_in_chlog: Zereginak aldaketa egunkarian ikusten dira
-  field_is_in_roadmap: Arazoak ibilbide-mapan erakutsi
-  field_login: Erabiltzaile izena
-  field_mail_notification: Eposta jakinarazpenak
-  field_admin: Kudeatzailea
-  field_last_login_on: Azken konexioa
-  field_language: Hizkuntza
-  field_effective_date: Data
-  field_password: Pasahitza
-  field_new_password: Pasahitz berria
-  field_password_confirmation: Berrespena
-  field_version: Bertsioa
-  field_type: Mota
-  field_host: Ostalaria
-  field_port: Portua
-  field_account: Kontua
-  field_base_dn: Base DN
-  field_attr_login: Erabiltzaile atributua
-  field_attr_firstname: Izena atributua
-  field_attr_lastname: Abizenak atributua
-  field_attr_mail: Eposta atributua
-  field_onthefly: Zuzeneko erabiltzaile sorrera
-  field_done_ratio: Egindako %
-  field_auth_source: Autentikazio modua
-  field_hide_mail: Nire eposta helbidea ezkutatu
-  field_comments: Iruzkina
-  field_url: URL
-  field_start_page: Hasierako orria
-  field_subproject: Azpiproiektua
-  field_hours: Ordu
-  field_activity: Jarduera
-  field_spent_on: Data
-  field_identifier: Identifikatzailea
-  field_is_filter: Iragazki moduan erabilita
-  field_issue_to: Erlazionatutako zereginak
-  field_delay: Atzerapena
-  field_assignable: Arazoak rol honetara esleitu daitezke
-  field_redirect_existing_links: Existitzen diren estelak berbideratu
-  field_estimated_hours: Estimatutako denbora
-  field_column_names: Zutabeak
-  field_time_zone: Ordu zonaldea
-  field_searchable: Bilagarria
-  field_default_value: Lehenetsitako balioa
-  field_comments_sorting: Iruzkinak erakutsi
-  field_parent_title: Orri gurasoa
-  field_editable: Editagarria
-  field_watcher: Behatzailea
-  field_identity_url: OpenID URLa
-  field_content: Edukia
-  field_group_by: Emaitzak honegatik taldekatu
-  field_sharing: Partekatzea
-
-  setting_app_title: Aplikazioaren izenburua
-  setting_app_subtitle: Aplikazioaren azpizenburua
-  setting_welcome_text: Ongietorriko testua
-  setting_default_language: Lehenetsitako hizkuntza
-  setting_login_required: Autentikazioa derrigorrezkoa
-  setting_self_registration: Norberak erregistratu
-  setting_attachment_max_size: Eranskinen tamaina max.
-  setting_issues_export_limit: Zereginen esportatze limitea
-  setting_mail_from: Igorlearen eposta helbidea
-  setting_bcc_recipients: Hartzaileak ezkutuko kopian (bcc)
-  setting_plain_text_mail: Testu soileko epostak (HTML-rik ez)
-  setting_host_name: Ostalari izena eta bidea
-  setting_text_formatting: Testu formatua
-  setting_wiki_compression: Wikiaren historia konprimitu
-  setting_feeds_limit: Jarioaren edukiera limitea
-  setting_default_projects_public: Proiektu berriak defektuz publikoak dira
-  setting_autofetch_changesets: Commit-ak automatikoki hartu
-  setting_sys_api_enabled: Biltegien kudeaketarako WS gaitu
-  setting_commit_ref_keywords: Erreferentzien gako-hitzak
-  setting_commit_fix_keywords: Konpontze gako-hitzak
-  setting_autologin: Saioa automatikoki hasi
-  setting_date_format: Data formatua
-  setting_time_format: Ordu formatua
-  setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
-  setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
-  setting_repositories_encodings: Biltegien kodeketak
-  setting_commit_logs_encoding: Commit-en mezuen kodetzea
-  setting_emails_footer: Eposten oina
-  setting_protocol: Protokoloa
-  setting_per_page_options: Orriko objektuen aukerak
-  setting_user_format: Erabiltzaileak erakusteko formatua
-  setting_activity_days_default: Proiektuen jardueran erakusteko egunak
-  setting_display_subprojects_issues: Azpiproiektuen zereginak proiektu nagusian erakutsi defektuz
-  setting_enabled_scm: Gaitutako IKKak
-  setting_mail_handler_body_delimiters: "Lerro hauteko baten ondoren epostak moztu"
-  setting_mail_handler_api_enabled: Sarrerako epostentzako WS gaitu
-  setting_mail_handler_api_key: API giltza
-  setting_sequential_project_identifiers: Proiektuen identifikadore sekuentzialak sortu
-  setting_gravatar_enabled: Erabili Gravatar erabiltzaile ikonoak
-  setting_gravatar_default: Lehenetsitako Gravatar irudia
-  setting_diff_max_lines_displayed: Erakutsiko diren diff lerro kopuru maximoa
-  setting_file_max_size_displayed: Barnean erakuzten diren testu fitxategien tamaina maximoa
-  setting_repository_log_display_limit: Egunkari fitxategian erakutsiko diren berrikuspen kopuru maximoa.
-  setting_openid: Baimendu OpenID saio hasiera eta erregistatzea
-  setting_password_min_length: Pasahitzen luzera minimoa
-  setting_new_project_user_role_id: Proiektu berriak sortzerakoan kudeatzaile ez diren erabiltzaileei esleitutako rola
-  setting_default_projects_modules: Proiektu berrientzako defektuz gaitutako moduluak
-  setting_issue_done_ratio: "Zereginen burututako tasa kalkulatzean erabili:"
-  setting_issue_done_ratio_issue_field: Zeregin eremua erabili
-  setting_issue_done_ratio_issue_status: Zeregin egoera erabili
-  setting_start_of_week: "Egutegiak noiz hasi:"
-  setting_rest_api_enabled: Gaitu REST web zerbitzua
-  
-  permission_add_project: Proiektua sortu
-  permission_add_subprojects: Azpiproiektuak sortu
-  permission_edit_project: Proiektua editatu
-  permission_select_project_modules: Proiektuaren moduluak hautatu
-  permission_manage_members: Kideak kudeatu
-  permission_manage_versions: Bertsioak kudeatu
-  permission_manage_categories: Arazoen kategoriak kudeatu
-  permission_view_issues: Zereginak ikusi
-  permission_add_issues: Zereginak gehitu
-  permission_edit_issues: Zereginak aldatu
-  permission_manage_issue_relations: Zereginen erlazioak kudeatu
-  permission_add_issue_notes: Oharrak gehitu
-  permission_edit_issue_notes: Oharrak aldatu
-  permission_edit_own_issue_notes: Nork bere oharrak aldatu
-  permission_move_issues: Zereginak mugitu
-  permission_delete_issues: Zereginak ezabatu
-  permission_manage_public_queries: Galdera publikoak kudeatu
-  permission_save_queries: Galderak gorde
-  permission_view_gantt: Gantt diagrama ikusi
-  permission_view_calendar: Egutegia ikusi
-  permission_view_issue_watchers: Behatzaileen zerrenda ikusi
-  permission_add_issue_watchers: Behatzaileak gehitu
-  permission_delete_issue_watchers: Behatzaileak ezabatu
-  permission_log_time: Igarotako denbora erregistratu
-  permission_view_time_entries: Igarotako denbora ikusi
-  permission_edit_time_entries: Denbora egunkariak editatu
-  permission_edit_own_time_entries: Nork bere denbora egunkariak editatu
-  permission_manage_news: Berriak kudeatu
-  permission_comment_news: Berrien iruzkinak egin
-  permission_manage_documents: Dokumentuak kudeatu
-  permission_view_documents: Dokumentuak ikusi
-  permission_manage_files: Fitxategiak kudeatu
-  permission_view_files: Fitxategiak ikusi
-  permission_manage_wiki: Wikia kudeatu
-  permission_rename_wiki_pages: Wiki orriak berrizendatu
-  permission_delete_wiki_pages: Wiki orriak ezabatu
-  permission_view_wiki_pages: Wikia ikusi
-  permission_view_wiki_edits: Wikiaren historia ikusi
-  permission_edit_wiki_pages: Wiki orriak editatu
-  permission_delete_wiki_pages_attachments: Eranskinak ezabatu
-  permission_protect_wiki_pages: Wiki orriak babestu
-  permission_manage_repository: Biltegiak kudeatu
-  permission_browse_repository: Biltegia arakatu
-  permission_view_changesets: Aldaketak ikusi
-  permission_commit_access: Commit atzipena
-  permission_manage_boards: Foroak kudeatu
-  permission_view_messages: Mezuak ikusi
-  permission_add_messages: Mezuak bidali
-  permission_edit_messages: Mezuak aldatu
-  permission_edit_own_messages: Nork bere mezuak aldatu
-  permission_delete_messages: Mezuak ezabatu
-  permission_delete_own_messages: Nork bere mezuak ezabatu
-  
-  project_module_issue_tracking: Zereginen jarraipena
-  project_module_time_tracking: Denbora jarraipena
-  project_module_news: Berriak
-  project_module_documents: Dokumentuak
-  project_module_files: Fitxategiak
-  project_module_wiki: Wiki
-  project_module_repository: Biltegia
-  project_module_boards: Foroak
-  
-  label_user: Erabiltzailea
-  label_user_plural: Erabiltzaileak
-  label_user_new: Erabiltzaile berria
-  label_user_anonymous: Ezezaguna
-  label_project: Proiektua
-  label_project_new: Proiektu berria
-  label_project_plural: Proiektuak
-  label_x_projects:
-    zero:  proiekturik ez
-    one:   proiektu bat
-    other: "{{count}} proiektu"
-  label_project_all: Proiektu guztiak
-  label_project_latest: Azken proiektuak
-  label_issue: Zeregina
-  label_issue_new: Zeregin berria
-  label_issue_plural: Zereginak
-  label_issue_view_all: Zeregin guztiak ikusi
-  label_issues_by: "Zereginak honengatik: {{value}}"
-  label_issue_added: Zeregina gehituta
-  label_issue_updated: Zeregina eguneratuta
-  label_document: Dokumentua
-  label_document_new: Dokumentu berria
-  label_document_plural: Dokumentuak
-  label_document_added: Dokumentua gehituta
-  label_role: Rola
-  label_role_plural: Rolak
-  label_role_new: Rol berria
-  label_role_and_permissions: Rolak eta baimenak
-  label_member: Kidea
-  label_member_new: Kide berria
-  label_member_plural: Kideak
-  label_tracker: Aztarnaria
-  label_tracker_plural: Aztarnariak
-  label_tracker_new: Aztarnari berria
-  label_workflow: Workflow
-  label_issue_status: Zeregin egoera
-  label_issue_status_plural: Zeregin egoerak
-  label_issue_status_new: Egoera berria
-  label_issue_category: Zeregin kategoria
-  label_issue_category_plural: Zeregin kategoriak
-  label_issue_category_new: Kategoria berria
-  label_custom_field: Eremu pertsonalizatua
-  label_custom_field_plural: Eremu pertsonalizatuak
-  label_custom_field_new: Eremu pertsonalizatu berria
-  label_enumerations: Enumerazioak
-  label_enumeration_new: Balio berria
-  label_information: Informazioa
-  label_information_plural: Informazioa
-  label_please_login: Saioa hasi mesedez
-  label_register: Erregistratu
-  label_login_with_open_id_option: edo OpenID-rekin saioa hasi
-  label_password_lost: Pasahitza galduta
-  label_home: Hasiera
-  label_my_page: Nire orria
-  label_my_account: Nire kontua
-  label_my_projects: Nire proiektuak
-  label_administration: Kudeaketa
-  label_login: Saioa hasi
-  label_logout: Saioa bukatu
-  label_help: Laguntza
-  label_reported_issues: Berri emandako zereginak
-  label_assigned_to_me_issues: Niri esleitutako arazoak
-  label_last_login: Azken konexioa
-  label_registered_on: Noiz erregistratuta
-  label_activity: Jarduerak
-  label_overall_activity: Jarduera guztiak
-  label_user_activity: "{{value}}-(r)en jarduerak"
-  label_new: Berria
-  label_logged_as: "Sartutako erabiltzailea:"
-  label_environment: Ingurune
-  label_authentication: Autentikazioa
-  label_auth_source: Autentikazio modua
-  label_auth_source_new: Autentikazio modu berria
-  label_auth_source_plural: Autentikazio moduak
-  label_subproject_plural: Azpiproiektuak
-  label_subproject_new: Azpiproiektu berria
-  label_and_its_subprojects: "{{value}} eta bere azpiproiektuak"
-  label_min_max_length: Luzera min - max
-  label_list: Zerrenda
-  label_date: Data
-  label_integer: Osokoa
-  label_float: Koma higikorrekoa
-  label_boolean: Boolearra
-  label_string: Testua
-  label_text: Testu luzea
-  label_attribute: Atributua
-  label_attribute_plural: Atributuak
-  label_download: "Deskarga {{count}}"
-  label_download_plural: "{{count}} Deskarga"
-  label_no_data: Ez dago erakusteko daturik
-  label_change_status: Egoera aldatu
-  label_history: Historikoa
-  label_attachment: Fitxategia
-  label_attachment_new: Fitxategi berria
-  label_attachment_delete: Fitxategia ezabatu
-  label_attachment_plural: Fitxategiak
-  label_file_added: Fitxategia gehituta
-  label_report: Berri ematea
-  label_report_plural: Berri emateak
-  label_news: Beria
-  label_news_new: Berria gehitu
-  label_news_plural: Berriak
-  label_news_latest: Azken berriak
-  label_news_view_all: Berri guztiak ikusi
-  label_news_added: Berria gehituta
-  label_change_log: Aldaketa egunkaria
-  label_settings: Ezarpenak
-  label_overview: Gainbegirada
-  label_version: Bertsioa
-  label_version_new: Bertsio berria
-  label_version_plural: Bertsioak
-  label_close_versions: Burututako bertsioak itxi
-  label_confirmation: Baieztapena
-  label_export_to: 'Eskuragarri baita:'
-  label_read: Irakurri...
-  label_public_projects: Proiektu publikoak
-  label_open_issues: irekita
-  label_open_issues_plural: irekiak
-  label_closed_issues: itxita
-  label_closed_issues_plural: itxiak
-  label_x_open_issues_abbr_on_total:
-    zero:  0 irekita / {{total}}
-    one:   1 irekita / {{total}}
-    other: "{{count}} irekiak / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 irekita
-    one:   1 irekita
-    other: "{{count}} irekiak"
-  label_x_closed_issues_abbr:
-    zero:  0 itxita
-    one:   1 itxita
-    other: "{{count}} itxiak"
-  label_total: Guztira
-  label_permissions: Baimenak
-  label_current_status: Uneko egoera
-  label_new_statuses_allowed: Baimendutako egoera berriak
-  label_all: guztiak
-  label_none: ezer
-  label_nobody: inor
-  label_next: Hurrengoa
-  label_previous: Aurrekoak
-  label_used_by: Erabilita
-  label_details: Xehetasunak
-  label_add_note: Oharra gehitu
-  label_per_page: Orriko
-  label_calendar: Egutegia
-  label_months_from: months from
-  label_gantt: Gantt
-  label_internal: Barnekoa
-  label_last_changes: "azken {{count}} aldaketak"
-  label_change_view_all: Aldaketa guztiak ikusi
-  label_personalize_page: Orri hau pertsonalizatu
-  label_comment: Iruzkin
-  label_comment_plural: Iruzkinak
-  label_x_comments:
-    zero: iruzkinik ez
-    one: iruzkin 1
-    other: "{{count}} iruzkin"
-  label_comment_add: Iruzkina gehitu
-  label_comment_added: Iruzkina gehituta
-  label_comment_delete: Iruzkinak ezabatu
-  label_query: Galdera pertsonalizatua
-  label_query_plural: Pertsonalizatutako galderak
-  label_query_new: Galdera berria
-  label_filter_add: Iragazkia gehitu
-  label_filter_plural: Iragazkiak
-  label_equals: da
-  label_not_equals: ez da
-  label_in_less_than: baino gutxiagotan
-  label_in_more_than: baino gehiagotan
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: hauetan
-  label_today: gaur
-  label_all_time: denbora guztia
-  label_yesterday: atzo
-  label_this_week: aste honetan
-  label_last_week: pasadan astean
-  label_last_n_days: "azken {{count}} egunetan"
-  label_this_month: hilabete hau
-  label_last_month: pasadan hilabetea
-  label_this_year: urte hau
-  label_date_range: Data tartea
-  label_less_than_ago: egun hauek baino gutxiago
-  label_more_than_ago: egun hauek baino gehiago
-  label_ago: orain dela
-  label_contains: dauka
-  label_not_contains: ez dauka
-  label_day_plural: egun
-  label_repository: Biltegia
-  label_repository_plural: Biltegiak
-  label_browse: Arakatu
-  label_modification: "aldaketa {{count}}"
-  label_modification_plural: "{{count}} aldaketa"
-  label_branch: Adarra
-  label_tag: Etiketa 
-  label_revision: Berrikuspena
-  label_revision_plural: Berrikuspenak
-  label_revision_id: "{{value}} berrikuspen"
-  label_associated_revisions: Elkartutako berrikuspenak
-  label_added: gehituta
-  label_modified: aldatuta
-  label_copied: kopiatuta
-  label_renamed: berrizendatuta
-  label_deleted: ezabatuta
-  label_latest_revision: Azken berrikuspena
-  label_latest_revision_plural: Azken berrikuspenak
-  label_view_revisions: Berrikuspenak ikusi
-  label_view_all_revisions: Berrikuspen guztiak ikusi
-  label_max_size: Tamaina maximoa
-  label_sort_highest: Goraino mugitu
-  label_sort_higher: Gora mugitu
-  label_sort_lower: Behera mugitu
-  label_sort_lowest: Beheraino mugitu
-  label_roadmap: Ibilbide-mapa
-  label_roadmap_due_in: "Epea: {{value}}"
-  label_roadmap_overdue: "{{value}} berandu"
-  label_roadmap_no_issues: Ez dago zereginik bertsio honetan
-  label_search: Bilatu
-  label_result_plural: Emaitzak
-  label_all_words: hitz guztiak
-  label_wiki: Wikia
-  label_wiki_edit: Wiki edizioa
-  label_wiki_edit_plural: Wiki edizioak
-  label_wiki_page: Wiki orria
-  label_wiki_page_plural: Wiki orriak
-  label_index_by_title: Izenburuaren araberako indizea
-  label_index_by_date: Dataren araberako indizea
-  label_current_version: Uneko bertsioa
-  label_preview: Aurreikusi
-  label_feed_plural: Jarioak
-  label_changes_details: Aldaketa guztien xehetasunak
-  label_issue_tracking: Zeregin jarraipena
-  label_spent_time: Igarotako denbora
-  label_f_hour: "ordu {{value}}"
-  label_f_hour_plural: "{{value}} ordu"
-  label_time_tracking: Denbora jarraipena
-  label_change_plural: Aldaketak
-  label_statistics: Estatistikak
-  label_commits_per_month: Commit-ak hilabeteka
-  label_commits_per_author: Commit-ak egileka
-  label_view_diff: Ezberdintasunak ikusi
-  label_diff_inline: barnean
-  label_diff_side_by_side: aldez alde
-  label_options: Aukerak
-  label_copy_workflow_from: Kopiatu workflow-a hemendik
-  label_permissions_report: Baimenen txostena
-  label_watched_issues: Behatutako zereginak
-  label_related_issues: Erlazionatutako zereginak
-  label_applied_status: Aplikatutako egoera
-  label_loading: Kargatzen...
-  label_relation_new: Erlazio berria
-  label_relation_delete: Erlazioa ezabatu
-  label_relates_to: erlazionatuta dago
-  label_duplicates: bikoizten du
-  label_duplicated_by: honek bikoiztuta
-  label_blocks: blokeatzen du
-  label_blocked_by: honek blokeatuta
-  label_precedes: aurretik doa
-  label_follows: jarraitzen du
-  label_end_to_start: bukaeratik hasierara
-  label_end_to_end: bukaeratik bukaerara
-  label_start_to_start: hasieratik hasierhasieratik bukaerara
-  label_start_to_end: hasieratik bukaerara
-  label_stay_logged_in: Saioa mantendu
-  label_disabled: ezgaituta
-  label_show_completed_versions: Bukatutako bertsioak ikusi
-  label_me: ni
-  label_board: Foroa
-  label_board_new: Foro berria
-  label_board_plural: Foroak
-  label_topic_plural: Gaiak
-  label_message_plural: Mezuak
-  label_message_last: Azken mezua
-  label_message_new: Mezu berria
-  label_message_posted: Mesua gehituta
-  label_reply_plural: Erantzunak
-  label_send_information: Erabiltzaileai kontuaren informazioa bidali
-  label_year: Urtea
-  label_month: Hilabetea
-  label_week: Astea
-  label_date_from: Nork
-  label_date_to: Nori
-  label_language_based: Erabiltzailearen hizkuntzaren arabera
-  label_sort_by: "Ordenazioa: {{value}}"
-  label_send_test_email: Frogako mezua bidali
-  label_feeds_access_key: RSS atzipen giltza
-  label_missing_feeds_access_key: RSS atzipen giltza falta da
-  label_feeds_access_key_created_on: "RSS atzipen giltza orain dela {{value}} sortuta"
-  label_module_plural: Moduluak
-  label_added_time_by: "{{author}}, orain dela {{age}} gehituta"
-  label_updated_time_by: "{{author}}, orain dela {{age}} eguneratuta"
-  label_updated_time: "Orain dela {{value}} eguneratuta"
-  label_jump_to_a_project: Joan proiektura...
-  label_file_plural: Fitxategiak
-  label_changeset_plural: Aldaketak
-  label_default_columns: Lehenetsitako zutabeak
-  label_no_change_option: (Aldaketarik ez)
-  label_bulk_edit_selected_issues: Hautatutako zereginak batera editatu
-  label_theme: Itxura
-  label_default: Lehenetsia
-  label_search_titles_only: Izenburuetan bakarrik bilatu
-  label_user_mail_option_all: "Nire proiektu guztietako gertakari guztientzat"
-  label_user_mail_option_selected: "Hautatutako proiektuetako edozein gertakarientzat..."
-  label_user_mail_no_self_notified: "Ez dut nik egiten ditudan aldeketen jakinarazpenik jaso nahi"
-  label_registration_activation_by_email: kontuak epostaz gaitu
-  label_registration_manual_activation: kontuak eskuz gaitu
-  label_registration_automatic_activation: kontuak automatikoki gaitu
-  label_display_per_page: "Orriko: {{value}}"
-  label_age: Adina
-  label_change_properties: Propietateak aldatu
-  label_general: Orokorra
-  label_more: Gehiago
-  label_scm: IKK
-  label_plugins: Pluginak
-  label_ldap_authentication: LDAP autentikazioa
-  label_downloads_abbr: Desk.
-  label_optional_description: Aukerako deskribapena
-  label_add_another_file: Beste fitxategia gehitu
-  label_preferences: Hobespenak
-  label_chronological_order: Orden kronologikoan
-  label_reverse_chronological_order: Alderantzizko orden kronologikoan
-  label_planning: Planifikazioa
-  label_incoming_emails: Sarrerako epostak
-  label_generate_key: Giltza sortu
-  label_issue_watchers: Behatzaileak
-  label_example: Adibidea
-  label_display: Bistaratzea
-  label_sort: Ordenatu
-  label_ascending: Gorantz
-  label_descending: Beherantz
-  label_date_from_to: "{{start}}-tik {{end}}-ra"
-  label_wiki_content_added: Wiki orria gehituta
-  label_wiki_content_updated: Wiki orria eguneratuta
-  label_group: Taldea
-  label_group_plural: Taldeak
-  label_group_new: Talde berria
-  label_time_entry_plural: Igarotako denbora
-  label_version_sharing_none: Ez partekatuta
-  label_version_sharing_descendants: Azpiproiektuekin
-  label_version_sharing_hierarchy: Proiektu Hierarkiarekin
-  label_version_sharing_tree: Proiektu zuhaitzarekin
-  label_version_sharing_system: Proiektu guztiekin
-  label_update_issue_done_ratios: Zereginen burututako erlazioa eguneratu
-  label_copy_source: Iturburua
-  label_copy_target: Helburua
-  label_copy_same_as_target: Helburuaren berdina
-  label_display_used_statuses_only: Aztarnari honetan erabiltzen diren egoerak bakarrik erakutsi
-  label_api_access_key: API atzipen giltza
-  label_missing_api_access_key: API atzipen giltza falta da
-  label_api_access_key_created_on: "API atzipen giltza sortuta orain dela {{value}}"
-  
-  button_login: Saioa hasi
-  button_submit: Bidali
-  button_save: Gorde
-  button_check_all: Guztiak markatu
-  button_uncheck_all: Guztiak desmarkatu
-  button_delete: Ezabatu
-  button_create: Sortu
-  button_create_and_continue: Sortu eta jarraitu
-  button_test: Frogatu
-  button_edit: Editatu
-  button_add: Gehitu
-  button_change: Aldatu
-  button_apply: Aplikatu
-  button_clear: Garbitu
-  button_lock: Blokeatu
-  button_unlock: Desblokeatu
-  button_download: Deskargatu
-  button_list: Zerrenda
-  button_view: Ikusi
-  button_move: Mugitu
-  button_move_and_follow: Mugitu eta jarraitu
-  button_back: Atzera
-  button_cancel: Ezeztatu
-  button_activate: Gahitu
-  button_sort: Ordenatu
-  button_log_time: Denbora apuntatu
-  button_rollback: Itzuli bertsio honetara
-  button_watch: Behatu
-  button_unwatch: Behatzen utzi
-  button_reply: Erantzun
-  button_archive: Artxibatu
-  button_unarchive: Desartxibatu
-  button_reset: Berrezarri
-  button_rename: Berrizendatu
-  button_change_password: Pasahitza aldatu
-  button_copy: Kopiatu
-  button_copy_and_follow: Kopiatu eta jarraitu
-  button_annotate: Anotatu
-  button_update: Eguneratu
-  button_configure: Konfiguratu
-  button_quote: Aipatu
-  button_duplicate: Bikoiztu
-  button_show: Ikusi
-  
-  status_active: gaituta
-  status_registered: izena emanda
-  status_locked: blokeatuta
-  
-  version_status_open: irekita
-  version_status_locked: blokeatuta
-  version_status_closed: itxita
-
-  field_active: Gaituta
-  
-  text_select_mail_notifications: Jakinarazpenak zein ekintzetarako bidaliko diren hautatu.
-  text_regexp_info: adib. ^[A-Z0-9]+$
-  text_min_max_length_info: 0k mugarik gabe esan nahi du
-  text_project_destroy_confirmation: Ziur zaude proiektu hau eta erlazionatutako datu guztiak ezabatu nahi dituzula?
-  text_subprojects_destroy_warning: "{{value}} azpiproiektuak ere ezabatuko dira."
-  text_workflow_edit: Hautatu rola eta aztarnaria workflow-a editatzeko
-  text_are_you_sure: Ziur zaude?
-  text_journal_changed: "{{label}} {{old}}-(e)tik {{new}}-(e)ra aldatuta"
-  text_journal_set_to: "{{label}}-k {{value}} balioa hartu du"
-  text_journal_deleted: "{{label}} ezabatuta ({{old}})"
-  text_journal_added: "{{label}} {{value}} gehituta"
-  text_tip_issue_begin_day: gaur hasten diren atazak
-  text_tip_issue_end_day: gaur bukatzen diren atazak
-  text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
-  text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
-  text_caracters_maximum: "{{count}} karaktere gehienez."
-  text_caracters_minimum: "Gutxienez {{count}} karaktereetako luzerakoa izan behar du."
-  text_length_between: "Luzera {{min}} eta {{max}} karaktereen artekoa."
-  text_tracker_no_workflow: Ez da workflow-rik definitu aztarnari honentzako
-  text_unallowed_characters: Debekatutako karaktereak
-  text_comma_separated: Balio anitz izan daitezke (komaz banatuta).
-  text_line_separated: Balio anitz izan daitezke (balio bakoitza lerro batean).
-  text_issues_ref_in_commit_messages: Commit-en mezuetan zereginak erlazionatu eta konpontzen
-  text_issue_added: "{{id}} zeregina {{author}}-(e)k jakinarazi du."
-  text_issue_updated: "{{id}} zeregina {{author}}-(e)k eguneratu du."
-  text_wiki_destroy_confirmation: Ziur zaude wiki hau eta bere eduki guztiak ezabatu nahi dituzula?
-  text_issue_category_destroy_question: "Zeregin batzuk ({{count}}) kategoria honetara esleituta daude. Zer egin nahi duzu?"
-  text_issue_category_destroy_assignments: Kategoria esleipenak kendu
-  text_issue_category_reassign_to: Zereginak kategoria honetara esleitu
-  text_user_mail_option: "Hautatu gabeko proiektuetan, behatzen edo parte hartzen duzun gauzei buruzko jakinarazpenak jasoko dituzu (adib. zu egile zaren edo esleituta dituzun zereginak)."
-  text_no_configuration_data: "Rolak, aztarnariak, zeregin egoerak eta workflow-ak ez dira oraindik konfiguratu.\nOso gomendagarria de lehenetsitako kkonfigurazioa kargatzea. Kargatu eta gero aldatu ahalko duzu."
-  text_load_default_configuration: Lehenetsitako konfigurazioa kargatu
-  text_status_changed_by_changeset: "{{value}} aldaketan aplikatuta."
-  text_issues_destroy_confirmation: 'Ziur zaude hautatutako zeregina(k) ezabatu nahi dituzula?'
-  text_select_project_modules: 'Hautatu proiektu honetan gaitu behar diren moduluak:'
-  text_default_administrator_account_changed: Lehenetsitako kudeatzaile kontua aldatuta
-  text_file_repository_writable: Eranskinen direktorioan idatz daiteke
-  text_plugin_assets_writable: Pluginen baliabideen direktorioan idatz daiteke
-  text_rmagick_available: RMagick eskuragarri (aukerazkoa)
-  text_destroy_time_entries_question: "{{hours}} orduei buruz berri eman zen zuk ezabatzera zoazen zereginean. Zer egin nahi duzu?"
-  text_destroy_time_entries: Ezabatu berri emandako orduak
-  text_assign_time_entries_to_project: Berri emandako orduak proiektura esleitu
-  text_reassign_time_entries: 'Berri emandako orduak zeregin honetara esleitu:'
-  text_user_wrote: "{{value}}-(e)k idatzi zuen:"
-  text_enumeration_destroy_question: "{{count}} objetu balio honetara esleituta daude."
-  text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
-  text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
-  text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
-  text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
-  text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
-  text_wiki_page_destroy_question: "Orri honek {{descendants}} orri seme eta ondorengo ditu. Zer egin nahi duzu?"
-  text_wiki_page_nullify_children: "Orri semeak erro orri moduan mantendu"
-  text_wiki_page_destroy_children: "Orri semeak eta beraien ondorengo guztiak ezabatu"
-  text_wiki_page_reassign_children: "Orri semeak orri guraso honetara esleitu"
-  text_own_membership_delete_confirmation: "Zure baimen batzuk (edo guztiak) kentzera zoaz eta baliteke horren ondoren proiektu hau ezin editatzea.\n Ziur zaude jarraitu nahi duzula?"
-  
-  default_role_manager: Kudeatzailea
-  default_role_developer: Garatzailea
-  default_role_reporter: Berriemailea
-  default_tracker_bug: Errorea
-  default_tracker_feature: Eginbidea
-  default_tracker_support: Laguntza
-  default_issue_status_new: Berria
-  default_issue_status_in_progress: Lanean
-  default_issue_status_resolved: Ebatzita
-  default_issue_status_feedback: Berrelikadura
-  default_issue_status_closed: Itxita
-  default_issue_status_rejected: Baztertua
-  default_doc_category_user: Erabiltzaile dokumentazioa
-  default_doc_category_tech: Dokumentazio teknikoa
-  default_priority_low: Baxua
-  default_priority_normal: Normala
-  default_priority_high: Altua
-  default_priority_urgent: Larria
-  default_priority_immediate: Berehalakoa
-  default_activity_design: Diseinua
-  default_activity_development: Garapena
-  
-  enumeration_issue_priorities: Zeregin lehentasunak
-  enumeration_doc_categories: Dokumentu kategoriak
-  enumeration_activities: Jarduerak (denbora kontrola))
-  enumeration_system_activity: Sistemako Jarduera
-  label_board_sticky: Itxaskorra
-  label_board_locked: Blokeatuta
-  permission_export_wiki_pages: Wiki orriak esportatu
-  setting_cache_formatted_text: Formatudun testua katxeatu
-  permission_manage_project_activities: Proiektuaren jarduerak kudeatu
-  error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
-  label_profile: Profila
-  permission_manage_subtasks: Azpiatazak kudeatu
-  field_parent_issue: Guraso ataza
-  label_subtask_plural: Azpiatazak
-  label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
-  error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
-  error_unable_to_connect: Ezin da konektatu ({{value}})
-  error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
-  error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# Redmine EU language
+# Author: Ales Zabala Alava (Shagi), <shagi@gisa-elkartea.org>
+# 2010-01-25
+# Distributed under the same terms as the Redmine itself.
+eu:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y/%m/%d"
+      short: "%b %d"
+      long: "%Y %B %d"
+      
+    day_names: [Igandea, Astelehena, Asteartea, Asteazkena, Osteguna, Ostirala, Larunbata]
+    abbr_day_names: [Ig., Al., Ar., Az., Og., Or., La.]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, Urtarrila, Otsaila, Martxoa, Apirila, Maiatza, Ekaina, Uztaila, Abuztua, Iraila, Urria, Azaroa, Abendua]
+    abbr_month_names: [~, Urt, Ots, Mar, Api, Mai, Eka, Uzt, Abu, Ira, Urr, Aza, Abe]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %H:%M"
+      time: "%H:%M"
+      short: "%b %d %H:%M"
+      long: "%Y %B %d %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "minutu erdi"
+      less_than_x_seconds:
+        one:   "segundu bat baino gutxiago"
+        other: "%{count} segundu baino gutxiago"
+      x_seconds:
+        one:   "segundu 1"
+        other: "%{count} segundu"
+      less_than_x_minutes:
+        one:   "minutu bat baino gutxiago"
+        other: "%{count} minutu baino gutxiago"
+      x_minutes:
+        one:   "minutu 1"
+        other: "%{count} minutu"
+      about_x_hours:
+        one:   "ordu 1 inguru"
+        other: "%{count} ordu inguru"
+      x_days:
+        one:   "egun 1"
+        other: "%{count} egun"
+      about_x_months:
+        one:   "hilabete 1 inguru"
+        other: "%{count} hilabete inguru"
+      x_months:
+        one:   "hilabete 1"
+        other: "%{count} hilabete"
+      about_x_years:
+        one:   "urte 1 inguru"
+        other: "%{count} urte inguru"
+      over_x_years:
+        one:   "urte 1 baino gehiago"
+        other: "%{count} urte baino gehiago"
+      almost_x_years:
+        one:   "ia urte 1"
+        other: "ia %{count} urte"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Byte"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "eta"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "ez dago zerrendan"
+        exclusion: "erreserbatuta dago"
+        invalid: "baliogabea da"
+        confirmation: "ez du berrespenarekin bat egiten"
+        accepted: "onartu behar da"
+        empty: "ezin da hutsik egon"
+        blank: "ezin da hutsik egon"
+        too_long: "luzeegia da (maximoa %{count} karaktere dira)"
+        too_short: "laburregia da (minimoa %{count} karaktere dira)"
+        wrong_length: "luzera ezegokia da (%{count} karakter izan beharko litzake)"
+        taken: "dagoeneko hartuta dago"
+        not_a_number: "ez da zenbaki bat"
+        not_a_date: "ez da baliozko data"
+        greater_than: "%{count} baino handiagoa izan behar du"
+        greater_than_or_equal_to: "%{count} edo handiagoa izan behar du"
+        equal_to: "%{count} izan behar du"
+        less_than: "%{count} baino gutxiago izan behar du"
+        less_than_or_equal_to: "%{count} edo gutxiago izan behar du"
+        odd: "bakoitia izan behar du"
+        even: "bikoitia izan behar du"
+        greater_than_start_date: "hasiera data baino handiagoa izan behar du"
+        not_same_project: "ez dago proiektu berdinean"
+        circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Hautatu mesedez
+  
+  general_text_No: 'Ez'
+  general_text_Yes: 'Bai'
+  general_text_no: 'ez'
+  general_text_yes: 'bai'
+  general_lang_name: 'Euskara'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Kontua ongi eguneratu da.
+  notice_account_invalid_creditentials: Erabiltzaile edo pasahitz ezegokia
+  notice_account_password_updated: Pasahitza ongi eguneratu da.
+  notice_account_wrong_password: Pasahitz ezegokia.
+  notice_account_register_done: Kontua ongi sortu da. Kontua gaitzeko klikatu epostan adierazi zaizun estekan.
+  notice_account_unknown_email: Erabiltzaile ezezaguna.
+  notice_can_t_change_password: Kontu honek kanpoko autentikazio bat erabiltzen du. Ezinezkoa da pasahitza aldatzea.
+  notice_account_lost_email_sent: Pasahitz berria aukeratzeko jarraibideak dituen eposta bat bidali zaizu.
+  notice_account_activated: Zure kontua gaituta dago. Orain saioa has dezakezu
+  notice_successful_create: Sortze arrakastatsua.
+  notice_successful_update: Eguneratze arrakastatsua.
+  notice_successful_delete: Ezabaketa arrakastatsua.
+  notice_successful_connection: Konexio arrakastatsua.
+  notice_file_not_found: Atzitu nahi duzun orria ez da exisitzen edo ezabatua izan da.
+  notice_locking_conflict: Beste erabiltzaile batek datuak eguneratu ditu.
+  notice_not_authorized: Ez duzu orri hau atzitzeko baimenik.
+  notice_email_sent: "%{value} helbidera eposta bat bidali da"
+  notice_email_error: "Errorea eposta bidaltzean (%{value})"
+  notice_feeds_access_key_reseted: Zure RSS atzipen giltza berrezarri da.
+  notice_api_access_key_reseted: Zure API atzipen giltza berrezarri da.
+  notice_failed_to_save_issues: "Hautatutako %{total} zereginetatik %{count} ezin izan dira konpondu: %{ids}."
+  notice_no_issue_selected: "Ez da zereginik hautatu! Mesedez, editatu nahi dituzun arazoak markatu."
+  notice_account_pending: "Zure kontua sortu da, orain kudeatzailearen onarpenaren zain dago."
+  notice_default_data_loaded: Lehenetsitako konfigurazioa ongi kargatu da.
+  notice_unable_delete_version: Ezin da bertsioa ezabatu.
+  notice_issue_done_ratios_updated: Burututako zereginen erlazioa eguneratu da.
+  
+  error_can_t_load_default_data: "Ezin izan da lehenetsitako konfigurazioa kargatu: %{value}"
+  error_scm_not_found: "Sarrera edo berrikuspena ez da biltegian topatu."
+  error_scm_command_failed: "Errorea gertatu da biltegia atzitzean: %{value}"
+  error_scm_annotate: "Sarrera ez da existitzen edo ezin da anotatu."
+  error_issue_not_found_in_project: 'Zeregina ez da topatu edo ez da proiektu honetakoa'
+  error_no_tracker_in_project: 'Proiektu honek ez du aztarnaririk esleituta. Mesedez egiaztatu Proiektuaren ezarpenak.'
+  error_no_default_issue_status: 'Zereginek ez dute lehenetsitako egoerarik.  Mesedez egiaztatu zure konfigurazioa ("Kudeaketa -> Arazoen egoerak" atalera joan).'
+  error_can_not_reopen_issue_on_closed_version: 'Itxitako bertsio batera esleitutako zereginak ezin dira berrireki'
+  error_can_not_archive_project: Proiektu hau ezin da artxibatu
+  error_issue_done_ratios_not_updated: "Burututako zereginen erlazioa ez da eguneratu."
+  error_workflow_copy_source: 'Mesedez hautatu iturburuko aztarnari edo rola'
+  error_workflow_copy_target: 'Mesedez hautatu helburuko aztarnari(ak) edo rola(k)'
+  
+  warning_attachments_not_saved: "%{count} fitxategi ezin izan d(ir)a gorde."
+  
+  mail_subject_lost_password: "Zure %{value} pasahitza"
+  mail_body_lost_password: 'Zure pasahitza aldatzeko hurrengo estekan klikatu:'
+  mail_subject_register: "Zure %{value} kontuaren gaitzea"
+  mail_body_register: 'Zure kontua gaitzeko hurrengo estekan klikatu:'
+  mail_body_account_information_external: "Zure %{value} kontua erabil dezakezu saioa hasteko."
+  mail_body_account_information: Zure kontuaren informazioa
+  mail_subject_account_activation_request: "%{value} kontu gaitzeko eskaera"
+  mail_body_account_activation_request: "Erabiltzaile berri bat (%{value}) erregistratu da. Kontua zure onarpenaren zain dago:"
+  mail_subject_reminder: "%{count} arazo hurrengo %{days} egunetan amaitzen d(ir)a"
+  mail_body_reminder: "Zuri esleituta dauden %{count} arazo hurrengo %{days} egunetan amaitzen d(ir)a:"
+  mail_subject_wiki_content_added: "'%{id}' wiki orria gehitu da"
+  mail_body_wiki_content_added: "%{author}-(e)k '%{id}' wiki orria gehitu du."
+  mail_subject_wiki_content_updated: "'%{id}' wiki orria eguneratu da"
+  mail_body_wiki_content_updated: "%{author}-(e)k '%{id}' wiki orria eguneratu du."
+  
+  gui_validation_error: akats 1
+  gui_validation_error_plural: "%{count} akats"
+  
+  field_name: Izena
+  field_description: Deskribapena
+  field_summary: Laburpena
+  field_is_required: Beharrezkoa
+  field_firstname: Izena
+  field_lastname: Abizenak
+  field_mail: Eposta
+  field_filename: Fitxategia
+  field_filesize: Tamaina
+  field_downloads: Deskargak
+  field_author: Egilea
+  field_created_on: Sortuta
+  field_updated_on: Eguneratuta
+  field_field_format: Formatua
+  field_is_for_all: Proiektu guztietarako
+  field_possible_values: Balio posibleak
+  field_regexp: Expresio erregularra
+  field_min_length: Luzera minimoa
+  field_max_length: Luzera maxioma
+  field_value: Balioa
+  field_category: Kategoria
+  field_title: Izenburua
+  field_project: Proiektua
+  field_issue: Zeregina
+  field_status: Egoera
+  field_notes: Oharrak
+  field_is_closed: Itxitako arazoa
+  field_is_default: Lehenetsitako balioa
+  field_tracker: Aztarnaria
+  field_subject: Gaia
+  field_due_date: Amaiera data
+  field_assigned_to: Esleituta
+  field_priority: Lehentasuna
+  field_fixed_version: Helburuko bertsioa
+  field_user: Erabiltzilea
+  field_role: Rola
+  field_homepage: Orri nagusia
+  field_is_public: Publikoa
+  field_parent: "Honen azpiproiektua:"
+  field_is_in_chlog: Zereginak aldaketa egunkarian ikusten dira
+  field_is_in_roadmap: Arazoak ibilbide-mapan erakutsi
+  field_login: Erabiltzaile izena
+  field_mail_notification: Eposta jakinarazpenak
+  field_admin: Kudeatzailea
+  field_last_login_on: Azken konexioa
+  field_language: Hizkuntza
+  field_effective_date: Data
+  field_password: Pasahitza
+  field_new_password: Pasahitz berria
+  field_password_confirmation: Berrespena
+  field_version: Bertsioa
+  field_type: Mota
+  field_host: Ostalaria
+  field_port: Portua
+  field_account: Kontua
+  field_base_dn: Base DN
+  field_attr_login: Erabiltzaile atributua
+  field_attr_firstname: Izena atributua
+  field_attr_lastname: Abizenak atributua
+  field_attr_mail: Eposta atributua
+  field_onthefly: Zuzeneko erabiltzaile sorrera
+  field_start_date: Hasiera
+  field_done_ratio: Egindako %
+  field_auth_source: Autentikazio modua
+  field_hide_mail: Nire eposta helbidea ezkutatu
+  field_comments: Iruzkina
+  field_url: URL
+  field_start_page: Hasierako orria
+  field_subproject: Azpiproiektua
+  field_hours: Ordu
+  field_activity: Jarduera
+  field_spent_on: Data
+  field_identifier: Identifikatzailea
+  field_is_filter: Iragazki moduan erabilita
+  field_issue_to: Erlazionatutako zereginak
+  field_delay: Atzerapena
+  field_assignable: Arazoak rol honetara esleitu daitezke
+  field_redirect_existing_links: Existitzen diren estelak berbideratu
+  field_estimated_hours: Estimatutako denbora
+  field_column_names: Zutabeak
+  field_time_zone: Ordu zonaldea
+  field_searchable: Bilagarria
+  field_default_value: Lehenetsitako balioa
+  field_comments_sorting: Iruzkinak erakutsi
+  field_parent_title: Orri gurasoa
+  field_editable: Editagarria
+  field_watcher: Behatzailea
+  field_identity_url: OpenID URLa
+  field_content: Edukia
+  field_group_by: Emaitzak honegatik taldekatu
+  field_sharing: Partekatzea
+
+  setting_app_title: Aplikazioaren izenburua
+  setting_app_subtitle: Aplikazioaren azpizenburua
+  setting_welcome_text: Ongietorriko testua
+  setting_default_language: Lehenetsitako hizkuntza
+  setting_login_required: Autentikazioa derrigorrezkoa
+  setting_self_registration: Norberak erregistratu
+  setting_attachment_max_size: Eranskinen tamaina max.
+  setting_issues_export_limit: Zereginen esportatze limitea
+  setting_mail_from: Igorlearen eposta helbidea
+  setting_bcc_recipients: Hartzaileak ezkutuko kopian (bcc)
+  setting_plain_text_mail: Testu soileko epostak (HTML-rik ez)
+  setting_host_name: Ostalari izena eta bidea
+  setting_text_formatting: Testu formatua
+  setting_wiki_compression: Wikiaren historia konprimitu
+  setting_feeds_limit: Jarioaren edukiera limitea
+  setting_default_projects_public: Proiektu berriak defektuz publikoak dira
+  setting_autofetch_changesets: Commit-ak automatikoki hartu
+  setting_sys_api_enabled: Biltegien kudeaketarako WS gaitu
+  setting_commit_ref_keywords: Erreferentzien gako-hitzak
+  setting_commit_fix_keywords: Konpontze gako-hitzak
+  setting_autologin: Saioa automatikoki hasi
+  setting_date_format: Data formatua
+  setting_time_format: Ordu formatua
+  setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
+  setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
+  setting_repositories_encodings: Biltegien kodeketak
+  setting_commit_logs_encoding: Commit-en mezuen kodetzea
+  setting_emails_footer: Eposten oina
+  setting_protocol: Protokoloa
+  setting_per_page_options: Orriko objektuen aukerak
+  setting_user_format: Erabiltzaileak erakusteko formatua
+  setting_activity_days_default: Proiektuen jardueran erakusteko egunak
+  setting_display_subprojects_issues: Azpiproiektuen zereginak proiektu nagusian erakutsi defektuz
+  setting_enabled_scm: Gaitutako IKKak
+  setting_mail_handler_body_delimiters: "Lerro hauteko baten ondoren epostak moztu"
+  setting_mail_handler_api_enabled: Sarrerako epostentzako WS gaitu
+  setting_mail_handler_api_key: API giltza
+  setting_sequential_project_identifiers: Proiektuen identifikadore sekuentzialak sortu
+  setting_gravatar_enabled: Erabili Gravatar erabiltzaile ikonoak
+  setting_gravatar_default: Lehenetsitako Gravatar irudia
+  setting_diff_max_lines_displayed: Erakutsiko diren diff lerro kopuru maximoa
+  setting_file_max_size_displayed: Barnean erakuzten diren testu fitxategien tamaina maximoa
+  setting_repository_log_display_limit: Egunkari fitxategian erakutsiko diren berrikuspen kopuru maximoa.
+  setting_openid: Baimendu OpenID saio hasiera eta erregistatzea
+  setting_password_min_length: Pasahitzen luzera minimoa
+  setting_new_project_user_role_id: Proiektu berriak sortzerakoan kudeatzaile ez diren erabiltzaileei esleitutako rola
+  setting_default_projects_modules: Proiektu berrientzako defektuz gaitutako moduluak
+  setting_issue_done_ratio: "Zereginen burututako tasa kalkulatzean erabili:"
+  setting_issue_done_ratio_issue_field: Zeregin eremua erabili
+  setting_issue_done_ratio_issue_status: Zeregin egoera erabili
+  setting_start_of_week: "Egutegiak noiz hasi:"
+  setting_rest_api_enabled: Gaitu REST web zerbitzua
+  
+  permission_add_project: Proiektua sortu
+  permission_add_subprojects: Azpiproiektuak sortu
+  permission_edit_project: Proiektua editatu
+  permission_select_project_modules: Proiektuaren moduluak hautatu
+  permission_manage_members: Kideak kudeatu
+  permission_manage_versions: Bertsioak kudeatu
+  permission_manage_categories: Arazoen kategoriak kudeatu
+  permission_view_issues: Zereginak ikusi
+  permission_add_issues: Zereginak gehitu
+  permission_edit_issues: Zereginak aldatu
+  permission_manage_issue_relations: Zereginen erlazioak kudeatu
+  permission_add_issue_notes: Oharrak gehitu
+  permission_edit_issue_notes: Oharrak aldatu
+  permission_edit_own_issue_notes: Nork bere oharrak aldatu
+  permission_move_issues: Zereginak mugitu
+  permission_delete_issues: Zereginak ezabatu
+  permission_manage_public_queries: Galdera publikoak kudeatu
+  permission_save_queries: Galderak gorde
+  permission_view_gantt: Gantt diagrama ikusi
+  permission_view_calendar: Egutegia ikusi
+  permission_view_issue_watchers: Behatzaileen zerrenda ikusi
+  permission_add_issue_watchers: Behatzaileak gehitu
+  permission_delete_issue_watchers: Behatzaileak ezabatu
+  permission_log_time: Igarotako denbora erregistratu
+  permission_view_time_entries: Igarotako denbora ikusi
+  permission_edit_time_entries: Denbora egunkariak editatu
+  permission_edit_own_time_entries: Nork bere denbora egunkariak editatu
+  permission_manage_news: Berriak kudeatu
+  permission_comment_news: Berrien iruzkinak egin
+  permission_manage_documents: Dokumentuak kudeatu
+  permission_view_documents: Dokumentuak ikusi
+  permission_manage_files: Fitxategiak kudeatu
+  permission_view_files: Fitxategiak ikusi
+  permission_manage_wiki: Wikia kudeatu
+  permission_rename_wiki_pages: Wiki orriak berrizendatu
+  permission_delete_wiki_pages: Wiki orriak ezabatu
+  permission_view_wiki_pages: Wikia ikusi
+  permission_view_wiki_edits: Wikiaren historia ikusi
+  permission_edit_wiki_pages: Wiki orriak editatu
+  permission_delete_wiki_pages_attachments: Eranskinak ezabatu
+  permission_protect_wiki_pages: Wiki orriak babestu
+  permission_manage_repository: Biltegiak kudeatu
+  permission_browse_repository: Biltegia arakatu
+  permission_view_changesets: Aldaketak ikusi
+  permission_commit_access: Commit atzipena
+  permission_manage_boards: Foroak kudeatu
+  permission_view_messages: Mezuak ikusi
+  permission_add_messages: Mezuak bidali
+  permission_edit_messages: Mezuak aldatu
+  permission_edit_own_messages: Nork bere mezuak aldatu
+  permission_delete_messages: Mezuak ezabatu
+  permission_delete_own_messages: Nork bere mezuak ezabatu
+  
+  project_module_issue_tracking: Zereginen jarraipena
+  project_module_time_tracking: Denbora jarraipena
+  project_module_news: Berriak
+  project_module_documents: Dokumentuak
+  project_module_files: Fitxategiak
+  project_module_wiki: Wiki
+  project_module_repository: Biltegia
+  project_module_boards: Foroak
+  
+  label_user: Erabiltzailea
+  label_user_plural: Erabiltzaileak
+  label_user_new: Erabiltzaile berria
+  label_user_anonymous: Ezezaguna
+  label_project: Proiektua
+  label_project_new: Proiektu berria
+  label_project_plural: Proiektuak
+  label_x_projects:
+    zero:  proiekturik ez
+    one:   proiektu bat
+    other: "%{count} proiektu"
+  label_project_all: Proiektu guztiak
+  label_project_latest: Azken proiektuak
+  label_issue: Zeregina
+  label_issue_new: Zeregin berria
+  label_issue_plural: Zereginak
+  label_issue_view_all: Zeregin guztiak ikusi
+  label_issues_by: "Zereginak honengatik: %{value}"
+  label_issue_added: Zeregina gehituta
+  label_issue_updated: Zeregina eguneratuta
+  label_document: Dokumentua
+  label_document_new: Dokumentu berria
+  label_document_plural: Dokumentuak
+  label_document_added: Dokumentua gehituta
+  label_role: Rola
+  label_role_plural: Rolak
+  label_role_new: Rol berria
+  label_role_and_permissions: Rolak eta baimenak
+  label_member: Kidea
+  label_member_new: Kide berria
+  label_member_plural: Kideak
+  label_tracker: Aztarnaria
+  label_tracker_plural: Aztarnariak
+  label_tracker_new: Aztarnari berria
+  label_workflow: Workflow
+  label_issue_status: Zeregin egoera
+  label_issue_status_plural: Zeregin egoerak
+  label_issue_status_new: Egoera berria
+  label_issue_category: Zeregin kategoria
+  label_issue_category_plural: Zeregin kategoriak
+  label_issue_category_new: Kategoria berria
+  label_custom_field: Eremu pertsonalizatua
+  label_custom_field_plural: Eremu pertsonalizatuak
+  label_custom_field_new: Eremu pertsonalizatu berria
+  label_enumerations: Enumerazioak
+  label_enumeration_new: Balio berria
+  label_information: Informazioa
+  label_information_plural: Informazioa
+  label_please_login: Saioa hasi mesedez
+  label_register: Erregistratu
+  label_login_with_open_id_option: edo OpenID-rekin saioa hasi
+  label_password_lost: Pasahitza galduta
+  label_home: Hasiera
+  label_my_page: Nire orria
+  label_my_account: Nire kontua
+  label_my_projects: Nire proiektuak
+  label_administration: Kudeaketa
+  label_login: Saioa hasi
+  label_logout: Saioa bukatu
+  label_help: Laguntza
+  label_reported_issues: Berri emandako zereginak
+  label_assigned_to_me_issues: Niri esleitutako arazoak
+  label_last_login: Azken konexioa
+  label_registered_on: Noiz erregistratuta
+  label_activity: Jarduerak
+  label_overall_activity: Jarduera guztiak
+  label_user_activity: "%{value}-(r)en jarduerak"
+  label_new: Berria
+  label_logged_as: "Sartutako erabiltzailea:"
+  label_environment: Ingurune
+  label_authentication: Autentikazioa
+  label_auth_source: Autentikazio modua
+  label_auth_source_new: Autentikazio modu berria
+  label_auth_source_plural: Autentikazio moduak
+  label_subproject_plural: Azpiproiektuak
+  label_subproject_new: Azpiproiektu berria
+  label_and_its_subprojects: "%{value} eta bere azpiproiektuak"
+  label_min_max_length: Luzera min - max
+  label_list: Zerrenda
+  label_date: Data
+  label_integer: Osokoa
+  label_float: Koma higikorrekoa
+  label_boolean: Boolearra
+  label_string: Testua
+  label_text: Testu luzea
+  label_attribute: Atributua
+  label_attribute_plural: Atributuak
+  label_download: "Deskarga %{count}"
+  label_download_plural: "%{count} Deskarga"
+  label_no_data: Ez dago erakusteko daturik
+  label_change_status: Egoera aldatu
+  label_history: Historikoa
+  label_attachment: Fitxategia
+  label_attachment_new: Fitxategi berria
+  label_attachment_delete: Fitxategia ezabatu
+  label_attachment_plural: Fitxategiak
+  label_file_added: Fitxategia gehituta
+  label_report: Berri ematea
+  label_report_plural: Berri emateak
+  label_news: Beria
+  label_news_new: Berria gehitu
+  label_news_plural: Berriak
+  label_news_latest: Azken berriak
+  label_news_view_all: Berri guztiak ikusi
+  label_news_added: Berria gehituta
+  label_change_log: Aldaketa egunkaria
+  label_settings: Ezarpenak
+  label_overview: Gainbegirada
+  label_version: Bertsioa
+  label_version_new: Bertsio berria
+  label_version_plural: Bertsioak
+  label_close_versions: Burututako bertsioak itxi
+  label_confirmation: Baieztapena
+  label_export_to: 'Eskuragarri baita:'
+  label_read: Irakurri...
+  label_public_projects: Proiektu publikoak
+  label_open_issues: irekita
+  label_open_issues_plural: irekiak
+  label_closed_issues: itxita
+  label_closed_issues_plural: itxiak
+  label_x_open_issues_abbr_on_total:
+    zero:  0 irekita / %{total}
+    one:   1 irekita / %{total}
+    other: "%{count} irekiak / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 irekita
+    one:   1 irekita
+    other: "%{count} irekiak"
+  label_x_closed_issues_abbr:
+    zero:  0 itxita
+    one:   1 itxita
+    other: "%{count} itxiak"
+  label_total: Guztira
+  label_permissions: Baimenak
+  label_current_status: Uneko egoera
+  label_new_statuses_allowed: Baimendutako egoera berriak
+  label_all: guztiak
+  label_none: ezer
+  label_nobody: inor
+  label_next: Hurrengoa
+  label_previous: Aurrekoak
+  label_used_by: Erabilita
+  label_details: Xehetasunak
+  label_add_note: Oharra gehitu
+  label_per_page: Orriko
+  label_calendar: Egutegia
+  label_months_from: months from
+  label_gantt: Gantt
+  label_internal: Barnekoa
+  label_last_changes: "azken %{count} aldaketak"
+  label_change_view_all: Aldaketa guztiak ikusi
+  label_personalize_page: Orri hau pertsonalizatu
+  label_comment: Iruzkin
+  label_comment_plural: Iruzkinak
+  label_x_comments:
+    zero: iruzkinik ez
+    one: iruzkin 1
+    other: "%{count} iruzkin"
+  label_comment_add: Iruzkina gehitu
+  label_comment_added: Iruzkina gehituta
+  label_comment_delete: Iruzkinak ezabatu
+  label_query: Galdera pertsonalizatua
+  label_query_plural: Pertsonalizatutako galderak
+  label_query_new: Galdera berria
+  label_filter_add: Iragazkia gehitu
+  label_filter_plural: Iragazkiak
+  label_equals: da
+  label_not_equals: ez da
+  label_in_less_than: baino gutxiagotan
+  label_in_more_than: baino gehiagotan
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: hauetan
+  label_today: gaur
+  label_all_time: denbora guztia
+  label_yesterday: atzo
+  label_this_week: aste honetan
+  label_last_week: pasadan astean
+  label_last_n_days: "azken %{count} egunetan"
+  label_this_month: hilabete hau
+  label_last_month: pasadan hilabetea
+  label_this_year: urte hau
+  label_date_range: Data tartea
+  label_less_than_ago: egun hauek baino gutxiago
+  label_more_than_ago: egun hauek baino gehiago
+  label_ago: orain dela
+  label_contains: dauka
+  label_not_contains: ez dauka
+  label_day_plural: egun
+  label_repository: Biltegia
+  label_repository_plural: Biltegiak
+  label_browse: Arakatu
+  label_modification: "aldaketa %{count}"
+  label_modification_plural: "%{count} aldaketa"
+  label_branch: Adarra
+  label_tag: Etiketa 
+  label_revision: Berrikuspena
+  label_revision_plural: Berrikuspenak
+  label_revision_id: "%{value} berrikuspen"
+  label_associated_revisions: Elkartutako berrikuspenak
+  label_added: gehituta
+  label_modified: aldatuta
+  label_copied: kopiatuta
+  label_renamed: berrizendatuta
+  label_deleted: ezabatuta
+  label_latest_revision: Azken berrikuspena
+  label_latest_revision_plural: Azken berrikuspenak
+  label_view_revisions: Berrikuspenak ikusi
+  label_view_all_revisions: Berrikuspen guztiak ikusi
+  label_max_size: Tamaina maximoa
+  label_sort_highest: Goraino mugitu
+  label_sort_higher: Gora mugitu
+  label_sort_lower: Behera mugitu
+  label_sort_lowest: Beheraino mugitu
+  label_roadmap: Ibilbide-mapa
+  label_roadmap_due_in: "Epea: %{value}"
+  label_roadmap_overdue: "%{value} berandu"
+  label_roadmap_no_issues: Ez dago zereginik bertsio honetan
+  label_search: Bilatu
+  label_result_plural: Emaitzak
+  label_all_words: hitz guztiak
+  label_wiki: Wikia
+  label_wiki_edit: Wiki edizioa
+  label_wiki_edit_plural: Wiki edizioak
+  label_wiki_page: Wiki orria
+  label_wiki_page_plural: Wiki orriak
+  label_index_by_title: Izenburuaren araberako indizea
+  label_index_by_date: Dataren araberako indizea
+  label_current_version: Uneko bertsioa
+  label_preview: Aurreikusi
+  label_feed_plural: Jarioak
+  label_changes_details: Aldaketa guztien xehetasunak
+  label_issue_tracking: Zeregin jarraipena
+  label_spent_time: Igarotako denbora
+  label_f_hour: "ordu %{value}"
+  label_f_hour_plural: "%{value} ordu"
+  label_time_tracking: Denbora jarraipena
+  label_change_plural: Aldaketak
+  label_statistics: Estatistikak
+  label_commits_per_month: Commit-ak hilabeteka
+  label_commits_per_author: Commit-ak egileka
+  label_view_diff: Ezberdintasunak ikusi
+  label_diff_inline: barnean
+  label_diff_side_by_side: aldez alde
+  label_options: Aukerak
+  label_copy_workflow_from: Kopiatu workflow-a hemendik
+  label_permissions_report: Baimenen txostena
+  label_watched_issues: Behatutako zereginak
+  label_related_issues: Erlazionatutako zereginak
+  label_applied_status: Aplikatutako egoera
+  label_loading: Kargatzen...
+  label_relation_new: Erlazio berria
+  label_relation_delete: Erlazioa ezabatu
+  label_relates_to: erlazionatuta dago
+  label_duplicates: bikoizten du
+  label_duplicated_by: honek bikoiztuta
+  label_blocks: blokeatzen du
+  label_blocked_by: honek blokeatuta
+  label_precedes: aurretik doa
+  label_follows: jarraitzen du
+  label_end_to_start: bukaeratik hasierara
+  label_end_to_end: bukaeratik bukaerara
+  label_start_to_start: hasieratik hasierhasieratik bukaerara
+  label_start_to_end: hasieratik bukaerara
+  label_stay_logged_in: Saioa mantendu
+  label_disabled: ezgaituta
+  label_show_completed_versions: Bukatutako bertsioak ikusi
+  label_me: ni
+  label_board: Foroa
+  label_board_new: Foro berria
+  label_board_plural: Foroak
+  label_topic_plural: Gaiak
+  label_message_plural: Mezuak
+  label_message_last: Azken mezua
+  label_message_new: Mezu berria
+  label_message_posted: Mesua gehituta
+  label_reply_plural: Erantzunak
+  label_send_information: Erabiltzaileai kontuaren informazioa bidali
+  label_year: Urtea
+  label_month: Hilabetea
+  label_week: Astea
+  label_date_from: Nork
+  label_date_to: Nori
+  label_language_based: Erabiltzailearen hizkuntzaren arabera
+  label_sort_by: "Ordenazioa: %{value}"
+  label_send_test_email: Frogako mezua bidali
+  label_feeds_access_key: RSS atzipen giltza
+  label_missing_feeds_access_key: RSS atzipen giltza falta da
+  label_feeds_access_key_created_on: "RSS atzipen giltza orain dela %{value} sortuta"
+  label_module_plural: Moduluak
+  label_added_time_by: "%{author}, orain dela %{age} gehituta"
+  label_updated_time_by: "%{author}, orain dela %{age} eguneratuta"
+  label_updated_time: "Orain dela %{value} eguneratuta"
+  label_jump_to_a_project: Joan proiektura...
+  label_file_plural: Fitxategiak
+  label_changeset_plural: Aldaketak
+  label_default_columns: Lehenetsitako zutabeak
+  label_no_change_option: (Aldaketarik ez)
+  label_bulk_edit_selected_issues: Hautatutako zereginak batera editatu
+  label_theme: Itxura
+  label_default: Lehenetsia
+  label_search_titles_only: Izenburuetan bakarrik bilatu
+  label_user_mail_option_all: "Nire proiektu guztietako gertakari guztientzat"
+  label_user_mail_option_selected: "Hautatutako proiektuetako edozein gertakarientzat..."
+  label_user_mail_no_self_notified: "Ez dut nik egiten ditudan aldeketen jakinarazpenik jaso nahi"
+  label_registration_activation_by_email: kontuak epostaz gaitu
+  label_registration_manual_activation: kontuak eskuz gaitu
+  label_registration_automatic_activation: kontuak automatikoki gaitu
+  label_display_per_page: "Orriko: %{value}"
+  label_age: Adina
+  label_change_properties: Propietateak aldatu
+  label_general: Orokorra
+  label_more: Gehiago
+  label_scm: IKK
+  label_plugins: Pluginak
+  label_ldap_authentication: LDAP autentikazioa
+  label_downloads_abbr: Desk.
+  label_optional_description: Aukerako deskribapena
+  label_add_another_file: Beste fitxategia gehitu
+  label_preferences: Hobespenak
+  label_chronological_order: Orden kronologikoan
+  label_reverse_chronological_order: Alderantzizko orden kronologikoan
+  label_planning: Planifikazioa
+  label_incoming_emails: Sarrerako epostak
+  label_generate_key: Giltza sortu
+  label_issue_watchers: Behatzaileak
+  label_example: Adibidea
+  label_display: Bistaratzea
+  label_sort: Ordenatu
+  label_ascending: Gorantz
+  label_descending: Beherantz
+  label_date_from_to: "%{start}-tik %{end}-ra"
+  label_wiki_content_added: Wiki orria gehituta
+  label_wiki_content_updated: Wiki orria eguneratuta
+  label_group: Taldea
+  label_group_plural: Taldeak
+  label_group_new: Talde berria
+  label_time_entry_plural: Igarotako denbora
+  label_version_sharing_none: Ez partekatuta
+  label_version_sharing_descendants: Azpiproiektuekin
+  label_version_sharing_hierarchy: Proiektu Hierarkiarekin
+  label_version_sharing_tree: Proiektu zuhaitzarekin
+  label_version_sharing_system: Proiektu guztiekin
+  label_update_issue_done_ratios: Zereginen burututako erlazioa eguneratu
+  label_copy_source: Iturburua
+  label_copy_target: Helburua
+  label_copy_same_as_target: Helburuaren berdina
+  label_display_used_statuses_only: Aztarnari honetan erabiltzen diren egoerak bakarrik erakutsi
+  label_api_access_key: API atzipen giltza
+  label_missing_api_access_key: API atzipen giltza falta da
+  label_api_access_key_created_on: "API atzipen giltza sortuta orain dela %{value}"
+  
+  button_login: Saioa hasi
+  button_submit: Bidali
+  button_save: Gorde
+  button_check_all: Guztiak markatu
+  button_uncheck_all: Guztiak desmarkatu
+  button_delete: Ezabatu
+  button_create: Sortu
+  button_create_and_continue: Sortu eta jarraitu
+  button_test: Frogatu
+  button_edit: Editatu
+  button_add: Gehitu
+  button_change: Aldatu
+  button_apply: Aplikatu
+  button_clear: Garbitu
+  button_lock: Blokeatu
+  button_unlock: Desblokeatu
+  button_download: Deskargatu
+  button_list: Zerrenda
+  button_view: Ikusi
+  button_move: Mugitu
+  button_move_and_follow: Mugitu eta jarraitu
+  button_back: Atzera
+  button_cancel: Ezeztatu
+  button_activate: Gahitu
+  button_sort: Ordenatu
+  button_log_time: Denbora apuntatu
+  button_rollback: Itzuli bertsio honetara
+  button_watch: Behatu
+  button_unwatch: Behatzen utzi
+  button_reply: Erantzun
+  button_archive: Artxibatu
+  button_unarchive: Desartxibatu
+  button_reset: Berrezarri
+  button_rename: Berrizendatu
+  button_change_password: Pasahitza aldatu
+  button_copy: Kopiatu
+  button_copy_and_follow: Kopiatu eta jarraitu
+  button_annotate: Anotatu
+  button_update: Eguneratu
+  button_configure: Konfiguratu
+  button_quote: Aipatu
+  button_duplicate: Bikoiztu
+  button_show: Ikusi
+  
+  status_active: gaituta
+  status_registered: izena emanda
+  status_locked: blokeatuta
+  
+  version_status_open: irekita
+  version_status_locked: blokeatuta
+  version_status_closed: itxita
+
+  field_active: Gaituta
+  
+  text_select_mail_notifications: Jakinarazpenak zein ekintzetarako bidaliko diren hautatu.
+  text_regexp_info: adib. ^[A-Z0-9]+$
+  text_min_max_length_info: 0k mugarik gabe esan nahi du
+  text_project_destroy_confirmation: Ziur zaude proiektu hau eta erlazionatutako datu guztiak ezabatu nahi dituzula?
+  text_subprojects_destroy_warning: "%{value} azpiproiektuak ere ezabatuko dira."
+  text_workflow_edit: Hautatu rola eta aztarnaria workflow-a editatzeko
+  text_are_you_sure: Ziur zaude?
+  text_journal_changed: "%{label} %{old}-(e)tik %{new}-(e)ra aldatuta"
+  text_journal_set_to: "%{label}-k %{value} balioa hartu du"
+  text_journal_deleted: "%{label} ezabatuta (%{old})"
+  text_journal_added: "%{label} %{value} gehituta"
+  text_tip_issue_begin_day: gaur hasten diren atazak
+  text_tip_issue_end_day: gaur bukatzen diren atazak
+  text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
+  text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
+  text_caracters_maximum: "%{count} karaktere gehienez."
+  text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
+  text_length_between: "Luzera %{min} eta %{max} karaktereen artekoa."
+  text_tracker_no_workflow: Ez da workflow-rik definitu aztarnari honentzako
+  text_unallowed_characters: Debekatutako karaktereak
+  text_comma_separated: Balio anitz izan daitezke (komaz banatuta).
+  text_line_separated: Balio anitz izan daitezke (balio bakoitza lerro batean).
+  text_issues_ref_in_commit_messages: Commit-en mezuetan zereginak erlazionatu eta konpontzen
+  text_issue_added: "%{id} zeregina %{author}-(e)k jakinarazi du."
+  text_issue_updated: "%{id} zeregina %{author}-(e)k eguneratu du."
+  text_wiki_destroy_confirmation: Ziur zaude wiki hau eta bere eduki guztiak ezabatu nahi dituzula?
+  text_issue_category_destroy_question: "Zeregin batzuk (%{count}) kategoria honetara esleituta daude. Zer egin nahi duzu?"
+  text_issue_category_destroy_assignments: Kategoria esleipenak kendu
+  text_issue_category_reassign_to: Zereginak kategoria honetara esleitu
+  text_user_mail_option: "Hautatu gabeko proiektuetan, behatzen edo parte hartzen duzun gauzei buruzko jakinarazpenak jasoko dituzu (adib. zu egile zaren edo esleituta dituzun zereginak)."
+  text_no_configuration_data: "Rolak, aztarnariak, zeregin egoerak eta workflow-ak ez dira oraindik konfiguratu.\nOso gomendagarria de lehenetsitako kkonfigurazioa kargatzea. Kargatu eta gero aldatu ahalko duzu."
+  text_load_default_configuration: Lehenetsitako konfigurazioa kargatu
+  text_status_changed_by_changeset: "%{value} aldaketan aplikatuta."
+  text_issues_destroy_confirmation: 'Ziur zaude hautatutako zeregina(k) ezabatu nahi dituzula?'
+  text_select_project_modules: 'Hautatu proiektu honetan gaitu behar diren moduluak:'
+  text_default_administrator_account_changed: Lehenetsitako kudeatzaile kontua aldatuta
+  text_file_repository_writable: Eranskinen direktorioan idatz daiteke
+  text_plugin_assets_writable: Pluginen baliabideen direktorioan idatz daiteke
+  text_rmagick_available: RMagick eskuragarri (aukerazkoa)
+  text_destroy_time_entries_question: "%{hours} orduei buruz berri eman zen zuk ezabatzera zoazen zereginean. Zer egin nahi duzu?"
+  text_destroy_time_entries: Ezabatu berri emandako orduak
+  text_assign_time_entries_to_project: Berri emandako orduak proiektura esleitu
+  text_reassign_time_entries: 'Berri emandako orduak zeregin honetara esleitu:'
+  text_user_wrote: "%{value}-(e)k idatzi zuen:"
+  text_enumeration_destroy_question: "%{count} objetu balio honetara esleituta daude."
+  text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
+  text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
+  text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
+  text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
+  text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
+  text_wiki_page_destroy_question: "Orri honek %{descendants} orri seme eta ondorengo ditu. Zer egin nahi duzu?"
+  text_wiki_page_nullify_children: "Orri semeak erro orri moduan mantendu"
+  text_wiki_page_destroy_children: "Orri semeak eta beraien ondorengo guztiak ezabatu"
+  text_wiki_page_reassign_children: "Orri semeak orri guraso honetara esleitu"
+  text_own_membership_delete_confirmation: "Zure baimen batzuk (edo guztiak) kentzera zoaz eta baliteke horren ondoren proiektu hau ezin editatzea.\n Ziur zaude jarraitu nahi duzula?"
+  
+  default_role_manager: Kudeatzailea
+  default_role_developer: Garatzailea
+  default_role_reporter: Berriemailea
+  default_tracker_bug: Errorea
+  default_tracker_feature: Eginbidea
+  default_tracker_support: Laguntza
+  default_issue_status_new: Berria
+  default_issue_status_in_progress: Lanean
+  default_issue_status_resolved: Ebatzita
+  default_issue_status_feedback: Berrelikadura
+  default_issue_status_closed: Itxita
+  default_issue_status_rejected: Baztertua
+  default_doc_category_user: Erabiltzaile dokumentazioa
+  default_doc_category_tech: Dokumentazio teknikoa
+  default_priority_low: Baxua
+  default_priority_normal: Normala
+  default_priority_high: Altua
+  default_priority_urgent: Larria
+  default_priority_immediate: Berehalakoa
+  default_activity_design: Diseinua
+  default_activity_development: Garapena
+  
+  enumeration_issue_priorities: Zeregin lehentasunak
+  enumeration_doc_categories: Dokumentu kategoriak
+  enumeration_activities: Jarduerak (denbora kontrola))
+  enumeration_system_activity: Sistemako Jarduera
+  label_board_sticky: Itxaskorra
+  label_board_locked: Blokeatuta
+  permission_export_wiki_pages: Wiki orriak esportatu
+  setting_cache_formatted_text: Formatudun testua katxeatu
+  permission_manage_project_activities: Proiektuaren jarduerak kudeatu
+  error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
+  label_profile: Profila
+  permission_manage_subtasks: Azpiatazak kudeatu
+  field_parent_issue: Guraso ataza
+  label_subtask_plural: Azpiatazak
+  label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
+  error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
+  error_unable_to_connect: Ezin da konektatu (%{value})
+  error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
+  error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/fi.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/fi.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -78,37 +78,37 @@
       half_a_minute: "puoli minuuttia"
       less_than_x_seconds:
         one:   "aiemmin kuin sekunti"
-        other: "aiemmin kuin {{count}} sekuntia"
+        other: "aiemmin kuin %{count} sekuntia"
       x_seconds:
         one:   "sekunti"
-        other: "{{count}} sekuntia"
+        other: "%{count} sekuntia"
       less_than_x_minutes:
         one:   "aiemmin kuin minuutti"
-        other: "aiemmin kuin {{count}} minuuttia"
+        other: "aiemmin kuin %{count} minuuttia"
       x_minutes:
         one:   "minuutti"
-        other: "{{count}} minuuttia"
+        other: "%{count} minuuttia"
       about_x_hours:
         one:   "noin tunti"
-        other: "noin {{count}} tuntia"
+        other: "noin %{count} tuntia"
       x_days:
         one:   "päivä"
-        other: "{{count}} päivää"
+        other: "%{count} päivää"
       about_x_months:
         one:   "noin kuukausi"
-        other: "noin {{count}} kuukautta"
+        other: "noin %{count} kuukautta"
       x_months:
         one:   "kuukausi"
-        other: "{{count}} kuukautta"
+        other: "%{count} kuukautta"
       about_x_years:
         one:   "vuosi"
-        other: "noin {{count}} vuotta"
+        other: "noin %{count} vuotta"
       over_x_years:
         one:   "yli vuosi"
-        other: "yli {{count}} vuotta"
+        other: "yli %{count} vuotta"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Vuosi"
       month:  "Kuukausi"
@@ -121,8 +121,8 @@
     errors:
       template:
         header:
-          one:    "1 virhe esti tämän {{model}} mallinteen tallentamisen"
-          other:  "{{count}} virhettä esti tämän {{model}} mallinteen tallentamisen"
+          one:    "1 virhe esti tämän %{model} mallinteen tallentamisen"
+          other:  "%{count} virhettä esti tämän %{model} mallinteen tallentamisen"
         body: "Seuraavat kentät aiheuttivat ongelmia:"
       messages:
         inclusion: "ei löydy listauksesta"
@@ -132,16 +132,16 @@
         accepted: "täytyy olla hyväksytty"
         empty: "ei voi olla tyhjä"
         blank: "ei voi olla sisällötön"
-        too_long: "on liian pitkä (maksimi on {{count}} merkkiä)"
-        too_short: "on liian lyhyt (minimi on {{count}} merkkiä)"
-        wrong_length: "on väärän pituinen (täytyy olla täsmälleen {{count}} merkkiä)"
+        too_long: "on liian pitkä (maksimi on %{count} merkkiä)"
+        too_short: "on liian lyhyt (minimi on %{count} merkkiä)"
+        wrong_length: "on väärän pituinen (täytyy olla täsmälleen %{count} merkkiä)"
         taken: "on jo käytössä"
         not_a_number: "ei ole numero"
-        greater_than: "täytyy olla suurempi kuin {{count}}"
-        greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin{{count}}"
-        equal_to: "täytyy olla yhtä suuri kuin {{count}}"
-        less_than: "täytyy olla pienempi kuin {{count}}"
-        less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin {{count}}"
+        greater_than: "täytyy olla suurempi kuin %{count}"
+        greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin%{count}"
+        equal_to: "täytyy olla yhtä suuri kuin %{count}"
+        less_than: "täytyy olla pienempi kuin %{count}"
+        less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin %{count}"
         odd: "täytyy olla pariton"
         even: "täytyy olla parillinen"
         greater_than_start_date: "tulee olla aloituspäivän jälkeinen"
@@ -178,29 +178,29 @@
   notice_file_not_found: Hakemaasi sivua ei löytynyt tai se on poistettu.
   notice_locking_conflict: Toinen käyttäjä on päivittänyt tiedot.
   notice_not_authorized: Sinulla ei ole oikeutta näyttää tätä sivua.
-  notice_email_sent: "Sähköposti on lähetty osoitteeseen {{value}}"
-  notice_email_error: "Sähköpostilähetyksessä tapahtui virhe ({{value}})"
+  notice_email_sent: "Sähköposti on lähetty osoitteeseen %{value}"
+  notice_email_error: "Sähköpostilähetyksessä tapahtui virhe (%{value})"
   notice_feeds_access_key_reseted: RSS salasana on nollaantunut.
-  notice_failed_to_save_issues: "{{count}} Tapahtum(an/ien) tallennus epäonnistui {{total}} valitut: {{ids}}."
+  notice_failed_to_save_issues: "%{count} Tapahtum(an/ien) tallennus epäonnistui %{total} valitut: %{ids}."
   notice_no_issue_selected: "Tapahtumia ei ole valittu! Valitse tapahtumat joita haluat muokata."
   notice_account_pending: "Tilisi on luotu ja odottaa ylläpitäjän hyväksyntää."
   notice_default_data_loaded: Vakioasetusten palautus onnistui.
   
-  error_can_t_load_default_data: "Vakioasetuksia ei voitu ladata: {{value}}"
+  error_can_t_load_default_data: "Vakioasetuksia ei voitu ladata: %{value}"
   error_scm_not_found: "Syötettä ja/tai versiota ei löydy tietovarastosta."
-  error_scm_command_failed: "Tietovarastoon pääsyssä tapahtui virhe: {{value}}"
+  error_scm_command_failed: "Tietovarastoon pääsyssä tapahtui virhe: %{value}"
   
-  mail_subject_lost_password: "Sinun {{value}} salasanasi"
+  mail_subject_lost_password: "Sinun %{value} salasanasi"
   mail_body_lost_password: 'Vaihtaaksesi salasanasi, napsauta seuraavaa linkkiä:'
-  mail_subject_register: "{{value}} tilin aktivointi"
+  mail_subject_register: "%{value} tilin aktivointi"
   mail_body_register: 'Aktivoidaksesi tilisi, napsauta seuraavaa linkkiä:'
-  mail_body_account_information_external: "Voit nyt käyttää {{value}} tiliäsi kirjautuaksesi järjestelmään."
+  mail_body_account_information_external: "Voit nyt käyttää %{value} tiliäsi kirjautuaksesi järjestelmään."
   mail_body_account_information: Sinun tilin tiedot
-  mail_subject_account_activation_request: "{{value}} tilin aktivointi pyyntö"
-  mail_body_account_activation_request: "Uusi käyttäjä ({{value}}) on rekisteröitynyt. Hänen tili odottaa hyväksyntääsi:"
+  mail_subject_account_activation_request: "%{value} tilin aktivointi pyyntö"
+  mail_body_account_activation_request: "Uusi käyttäjä (%{value}) on rekisteröitynyt. Hänen tili odottaa hyväksyntääsi:"
   
   gui_validation_error: 1 virhe
-  gui_validation_error_plural: "{{count}} virhettä"
+  gui_validation_error_plural: "%{count} virhettä"
   
   field_name: Nimi
   field_description: Kuvaus
@@ -262,6 +262,7 @@
   field_attr_lastname: Sukunimenmääre
   field_attr_mail: Sähköpostinmääre
   field_onthefly: Automaattinen käyttäjien luonti
+  field_start_date: Alku
   field_done_ratio: % Tehty
   field_auth_source: Varmennusmuoto
   field_hide_mail: Piiloita sähköpostiosoitteeni
@@ -321,14 +322,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Kaikki projektit
   label_project_latest: Uusimmat projektit
   label_issue: Tapahtuma
   label_issue_new: Uusi tapahtuma
   label_issue_plural: Tapahtumat
   label_issue_view_all: Näytä kaikki tapahtumat
-  label_issues_by: "Tapahtumat {{value}}"
+  label_issues_by: "Tapahtumat %{value}"
   label_document: Dokumentti
   label_document_new: Uusi dokumentti
   label_document_plural: Dokumentit
@@ -390,8 +391,8 @@
   label_text: Pitkä merkkijono
   label_attribute: Määre
   label_attribute_plural: Määreet
-  label_download: "{{count}} Lataus"
-  label_download_plural: "{{count}} Lataukset"
+  label_download: "%{count} Lataus"
+  label_download_plural: "%{count} Lataukset"
   label_no_data: Ei tietoa näytettäväksi
   label_change_status: Muutos tila
   label_history: Historia
@@ -420,17 +421,17 @@
   label_closed_issues: suljettu
   label_closed_issues_plural: suljettua
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Yhteensä
   label_permissions: Oikeudet
   label_current_status: Nykyinen tila
@@ -448,7 +449,7 @@
   label_months_from: kuukauden päässä
   label_gantt: Gantt
   label_internal: Sisäinen
-  label_last_changes: "viimeiset {{count}} muutokset"
+  label_last_changes: "viimeiset %{count} muutokset"
   label_change_view_all: Näytä kaikki muutokset
   label_personalize_page: Personoi tämä sivu
   label_comment: Kommentti
@@ -456,7 +457,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Lisää kommentti
   label_comment_added: Kommentti lisätty
   label_comment_delete: Poista kommentti
@@ -480,8 +481,8 @@
   label_repository: Tietovarasto
   label_repository_plural: Tietovarastot
   label_browse: Selaus
-  label_modification: "{{count}} muutos"
-  label_modification_plural: "{{count}} muutettu"
+  label_modification: "%{count} muutos"
+  label_modification_plural: "%{count} muutettu"
   label_revision: Versio
   label_revision_plural: Versiot
   label_added: lisätty
@@ -496,8 +497,8 @@
   label_sort_lower: Siirrä alas
   label_sort_lowest: Siirrä alimmaiseksi
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Määräaika {{value}}"
-  label_roadmap_overdue: "{{value}} myöhässä"
+  label_roadmap_due_in: "Määräaika %{value}"
+  label_roadmap_overdue: "%{value} myöhässä"
   label_roadmap_no_issues: Ei tapahtumia tälle versiolle
   label_search: Haku
   label_result_plural: Tulokset
@@ -515,8 +516,8 @@
   label_changes_details: Kaikkien muutosten yksityiskohdat
   label_issue_tracking: Tapahtumien seuranta
   label_spent_time: Käytetty aika
-  label_f_hour: "{{value}} tunti"
-  label_f_hour_plural: "{{value}} tuntia"
+  label_f_hour: "%{value} tunti"
+  label_f_hour_plural: "%{value} tuntia"
   label_time_tracking: Ajan seuranta
   label_change_plural: Muutokset
   label_statistics: Tilastot
@@ -561,12 +562,12 @@
   label_month: Kuukausi
   label_week: Viikko
   label_language_based: Pohjautuen käyttäjän kieleen
-  label_sort_by: "Lajittele {{value}}"
+  label_sort_by: "Lajittele %{value}"
   label_send_test_email: Lähetä testi sähköposti
-  label_feeds_access_key_created_on: "RSS salasana luotiin {{value}} sitten"
+  label_feeds_access_key_created_on: "RSS salasana luotiin %{value} sitten"
   label_module_plural: Moduulit
-  label_added_time_by: "Lisännyt {{author}} {{age}} sitten"
-  label_updated_time: "Päivitetty {{value}} sitten"
+  label_added_time_by: "Lisännyt %{author} %{age} sitten"
+  label_updated_time: "Päivitetty %{value} sitten"
   label_jump_to_a_project: Siirry projektiin...
   label_file_plural: Tiedostot
   label_changeset_plural: Muutosryhmät
@@ -582,7 +583,7 @@
   label_registration_activation_by_email: tilin aktivointi sähköpostitse
   label_registration_manual_activation: tilin aktivointi käsin
   label_registration_automatic_activation: tilin aktivointi automaattisesti
-  label_display_per_page: "Per sivu: {{value}}"
+  label_display_per_page: "Per sivu: %{value}"
   label_age: Ikä
   label_change_properties: Vaihda asetuksia
   label_general: Yleinen
@@ -638,17 +639,17 @@
   text_tip_issue_end_day: tehtävä joka loppuu tänä päivänä
   text_tip_issue_begin_end_day: tehtävä joka alkaa ja loppuu tänä päivänä
   text_project_identifier_info: 'Pienet kirjaimet (a-z), numerot ja viivat ovat sallittu.<br />Tallentamisen jälkeen tunnistetta ei voi muuttaa.'
-  text_caracters_maximum: "{{count}} merkkiä enintään."
-  text_caracters_minimum: "Täytyy olla vähintään {{count}} merkkiä pitkä."
-  text_length_between: "Pituus välillä {{min}} ja {{max}} merkkiä."
+  text_caracters_maximum: "%{count} merkkiä enintään."
+  text_caracters_minimum: "Täytyy olla vähintään %{count} merkkiä pitkä."
+  text_length_between: "Pituus välillä %{min} ja %{max} merkkiä."
   text_tracker_no_workflow: Työnkulkua ei määritelty tälle tapahtumalle
   text_unallowed_characters: Kiellettyjä merkkejä
   text_comma_separated: Useat arvot sallittu (pilkku eroteltuna).
   text_issues_ref_in_commit_messages: Liitän ja korjaan ongelmia syötetyssä viestissä
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Oletko varma että haluat poistaa tämän wiki:n ja kaikki sen sisältämän tiedon?
-  text_issue_category_destroy_question: "Jotkut tapahtumat ({{count}}) ovat nimetty tälle luokalle. Mitä haluat tehdä?"
+  text_issue_category_destroy_question: "Jotkut tapahtumat (%{count}) ovat nimetty tälle luokalle. Mitä haluat tehdä?"
   text_issue_category_destroy_assignments: Poista luokan tehtävät
   text_issue_category_reassign_to: Vaihda tapahtuma tähän luokkaan
   text_user_mail_option: "Valitsemattomille projekteille, saat vain muistutuksen asioista joita seuraat tai olet mukana (esim. tapahtumat joissa olet tekijä tai nimettynä)."
@@ -682,7 +683,7 @@
   enumeration_activities: Historia (ajan seuranta)
   label_associated_revisions: Liittyvät versiot
   setting_user_format: Käyttäjien esitysmuoto
-  text_status_changed_by_changeset: "Päivitetty muutosversioon {{value}}."
+  text_status_changed_by_changeset: "Päivitetty muutosversioon %{value}."
   text_issues_destroy_confirmation: 'Oletko varma että haluat poistaa valitut tapahtumat ?'
   label_more: Lisää
   label_issue_added: Tapahtuma lisätty
@@ -710,8 +711,8 @@
   label_downloads_abbr: D/L
   label_add_another_file: Lisää uusi tiedosto
   label_this_month: tässä kuussa
-  text_destroy_time_entries_question: "{{hours}} tuntia on raportoitu tapahtumasta jonka aiot poistaa. Mitä haluat tehdä ?"
-  label_last_n_days: "viimeiset {{count}} päivää"
+  text_destroy_time_entries_question: "%{hours} tuntia on raportoitu tapahtumasta jonka aiot poistaa. Mitä haluat tehdä ?"
+  label_last_n_days: "viimeiset %{count} päivää"
   label_all_time: koko ajalta
   error_issue_not_found_in_project: 'Tapahtumaa ei löytynyt tai se ei kuulu tähän projektiin'
   label_this_year: tänä vuonna
@@ -736,15 +737,15 @@
   label_overall_activity: Kokonaishistoria
   error_scm_annotate: "Merkintää ei ole tai siihen ei voi lisätä selityksiä."
   label_planning: Suunnittelu
-  text_subprojects_destroy_warning: "Tämän aliprojekti(t): {{value}} tullaan myös poistamaan."
-  label_and_its_subprojects: "{{value}} ja aliprojektit"
-  mail_body_reminder: "{{count}} sinulle nimettyä tapahtuma(a) erääntyy {{days}} päivä sisään:"
-  mail_subject_reminder: "{{count}} tapahtuma(a) erääntyy {{days}} lähipäivinä"
-  text_user_wrote: "{{value}} kirjoitti:"
+  text_subprojects_destroy_warning: "Tämän aliprojekti(t): %{value} tullaan myös poistamaan."
+  label_and_its_subprojects: "%{value} ja aliprojektit"
+  mail_body_reminder: "%{count} sinulle nimettyä tapahtuma(a) erääntyy %{days} päivä sisään:"
+  mail_subject_reminder: "%{count} tapahtuma(a) erääntyy %{days} lähipäivinä"
+  text_user_wrote: "%{value} kirjoitti:"
   label_duplicated_by: kopioinut
   setting_enabled_scm: Versionhallinta käytettävissä
   text_enumeration_category_reassign_to: 'Siirrä täksi arvoksi:'
-  text_enumeration_destroy_question: "{{count}} kohdetta on sijoitettu tälle arvolle."
+  text_enumeration_destroy_question: "%{count} kohdetta on sijoitettu tälle arvolle."
   label_incoming_emails: Saapuvat sähköpostiviestit
   label_generate_key: Luo avain
   setting_mail_handler_api_enabled: Ota käyttöön WS saapuville sähköposteille
@@ -810,12 +811,12 @@
   text_repository_usernames_mapping: "Valitse päivittääksesi Redmine käyttäjä jokaiseen käyttäjään joka löytyy tietovaraston lokista.\nKäyttäjät joilla on sama Redmine ja tietovaraston käyttäjänimi tai sähköpostiosoite, yhdistetään automaattisesti."
   permission_edit_own_messages: Muokkaa omia viestejä
   permission_delete_own_messages: Poista omia viestejä
-  label_user_activity: "Käyttäjän {{value}} historia"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "Käyttäjän %{value} historia"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -830,21 +831,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -852,14 +853,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -894,9 +895,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -923,12 +924,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -936,7 +937,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -947,8 +948,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/fr.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/fr.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -36,38 +36,38 @@
       less_than_x_seconds:
         zero:  "moins d'une seconde"
         one:   "moins d'une seconde"
-        other: "moins de {{count}} secondes"
+        other: "moins de %{count} secondes"
       x_seconds:
         one:   "1 seconde"
-        other: "{{count}} secondes"
+        other: "%{count} secondes"
       less_than_x_minutes:
         zero:  "moins d'une minute"
         one:   "moins d'une minute"
-        other: "moins de {{count}} minutes"
+        other: "moins de %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "environ une heure"
-        other: "environ {{count}} heures"
+        other: "environ %{count} heures"
       x_days:
         one:   "un jour"
-        other: "{{count}} jours"
+        other: "%{count} jours"
       about_x_months:
         one:   "environ un mois"
-        other: "environ {{count}} mois"
+        other: "environ %{count} mois"
       x_months:
         one:   "un mois"
-        other: "{{count}} mois"
+        other: "%{count} mois"
       about_x_years:
         one:   "environ un an"
-        other: "environ {{count}} ans"
+        other: "environ %{count} ans"
       over_x_years:
         one:   "plus d'un an"
-        other: "plus de {{count}} ans"
+        other: "plus de %{count} ans"
       almost_x_years:
         one:   "presqu'un an"
-        other: "presque {{count}} ans"
+        other: "presque %{count} ans"
     prompts:
       year:   "Année"
       month:  "Mois"
@@ -112,8 +112,8 @@
     errors:
       template:
         header: 
-          one: "Impossible d'enregistrer {{model}} : une erreur"
-          other: "Impossible d'enregistrer {{model}} : {{count}} erreurs."
+          one: "Impossible d'enregistrer %{model} : une erreur"
+          other: "Impossible d'enregistrer %{model} : %{count} erreurs."
         body: "Veuillez vérifier les champs suivants :"
       messages:
         inclusion: "n'est pas inclus(e) dans la liste"
@@ -123,16 +123,17 @@
         accepted: "doit être accepté(e)"
         empty: "doit être renseigné(e)"
         blank: "doit être renseigné(e)"
-        too_long: "est trop long (pas plus de {{count}} caractères)"
-        too_short: "est trop court (au moins {{count}} caractères)"
-        wrong_length: "ne fait pas la bonne longueur (doit comporter {{count}} caractères)"
+        too_long: "est trop long (pas plus de %{count} caractères)"
+        too_short: "est trop court (au moins %{count} caractères)"
+        wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
         taken: "est déjà utilisé"
         not_a_number: "n'est pas un nombre"
-        greater_than: "doit être supérieur à {{count}}"
-        greater_than_or_equal_to: "doit être supérieur ou égal à {{count}}"
-        equal_to: "doit être égal à {{count}}"
-        less_than: "doit être inférieur à {{count}}"
-        less_than_or_equal_to: "doit être inférieur ou égal à {{count}}"
+        not_a_date: "n'est pas une date valide"
+        greater_than: "doit être supérieur à %{count}"
+        greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
+        equal_to: "doit être égal à %{count}"
+        less_than: "doit être inférieur à %{count}"
+        less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
         odd: "doit être impair"
         even: "doit être pair"
         greater_than_start_date: "doit être postérieure à la date de début"
@@ -170,20 +171,21 @@
   notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
   notice_not_authorized: "Vous n'êtes pas autorisés à accéder à cette page."
   notice_not_authorized_archived_project: Le projet auquel vous tentez d'accéder a été archivé.
-  notice_email_sent: "Un email a été envoyé à {{value}}"
-  notice_email_error: "Erreur lors de l'envoi de l'email ({{value}})"
+  notice_email_sent: "Un email a été envoyé à %{value}"
+  notice_email_error: "Erreur lors de l'envoi de l'email (%{value})"
   notice_feeds_access_key_reseted: "Votre clé d'accès aux flux RSS a été réinitialisée."
-  notice_failed_to_save_issues: "{{count}} demande(s) sur les {{total}} sélectionnées n'ont pas pu être mise(s) à jour : {{ids}}."
+  notice_failed_to_save_issues: "%{count} demande(s) sur les %{total} sélectionnées n'ont pas pu être mise(s) à jour : %{ids}."
   notice_no_issue_selected: "Aucune demande sélectionnée ! Cochez les demandes que vous voulez mettre à jour."
   notice_account_pending: "Votre compte a été créé et attend l'approbation de l'administrateur."
   notice_default_data_loaded: Paramétrage par défaut chargé avec succès.
   notice_unable_delete_version: Impossible de supprimer cette version.
   notice_issue_done_ratios_updated: L'avancement des demandes a été mis à jour.
   notice_api_access_key_reseted: Votre clé d'accès API a été réinitialisée.
+  notice_gantt_chart_truncated: "Le diagramme a été tronqué car il excède le nombre maximal d'éléments pouvant être affichés (%{max})"
   
-  error_can_t_load_default_data: "Une erreur s'est produite lors du chargement du paramétrage : {{value}}"
+  error_can_t_load_default_data: "Une erreur s'est produite lors du chargement du paramétrage : %{value}"
   error_scm_not_found: "L'entrée et/ou la révision demandée n'existe pas dans le dépôt."
-  error_scm_command_failed: "Une erreur s'est produite lors de l'accès au dépôt : {{value}}"
+  error_scm_command_failed: "Une erreur s'est produite lors de l'accès au dépôt : %{value}"
   error_scm_annotate: "L'entrée n'existe pas ou ne peut pas être annotée."
   error_issue_not_found_in_project: "La demande n'existe pas ou n'appartient pas à ce projet"
   error_can_not_reopen_issue_on_closed_version: 'Une demande assignée à une version fermée ne peut pas être réouverte'
@@ -192,25 +194,25 @@
   error_workflow_copy_target: 'Veuillez sélectionner les trackers et rôles cibles'
   error_issue_done_ratios_not_updated: L'avancement des demandes n'a pas pu être mis à jour.
   
-  warning_attachments_not_saved: "{{count}} fichier(s) n'ont pas pu être sauvegardés."
+  warning_attachments_not_saved: "%{count} fichier(s) n'ont pas pu être sauvegardés."
   
-  mail_subject_lost_password: "Votre mot de passe {{value}}"
+  mail_subject_lost_password: "Votre mot de passe %{value}"
   mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
-  mail_subject_register: "Activation de votre compte {{value}}"
+  mail_subject_register: "Activation de votre compte %{value}"
   mail_body_register: 'Pour activer votre compte, cliquez sur le lien suivant :'
-  mail_body_account_information_external: "Vous pouvez utiliser votre compte {{value}} pour vous connecter."
+  mail_body_account_information_external: "Vous pouvez utiliser votre compte %{value} pour vous connecter."
   mail_body_account_information: Paramètres de connexion de votre compte
-  mail_subject_account_activation_request: "Demande d'activation d'un compte {{value}}"
-  mail_body_account_activation_request: "Un nouvel utilisateur ({{value}}) s'est inscrit. Son compte nécessite votre approbation :"
-  mail_subject_reminder: "{{count}} demande(s) arrivent à échéance ({{days}})"
-  mail_body_reminder: "{{count}} demande(s) qui vous sont assignées arrivent à échéance dans les {{days}} prochains jours :"
-  mail_subject_wiki_content_added: "Page wiki '{{id}}' ajoutée"
-  mail_body_wiki_content_added: "La page wiki '{{id}}' a été ajoutée par {{author}}."
-  mail_subject_wiki_content_updated: "Page wiki '{{id}}' mise à jour"
-  mail_body_wiki_content_updated: "La page wiki '{{id}}' a été mise à jour par {{author}}."
+  mail_subject_account_activation_request: "Demande d'activation d'un compte %{value}"
+  mail_body_account_activation_request: "Un nouvel utilisateur (%{value}) s'est inscrit. Son compte nécessite votre approbation :"
+  mail_subject_reminder: "%{count} demande(s) arrivent à échéance (%{days})"
+  mail_body_reminder: "%{count} demande(s) qui vous sont assignées arrivent à échéance dans les %{days} prochains jours :"
+  mail_subject_wiki_content_added: "Page wiki '%{id}' ajoutée"
+  mail_body_wiki_content_added: "La page wiki '%{id}' a été ajoutée par %{author}."
+  mail_subject_wiki_content_updated: "Page wiki '%{id}' mise à jour"
+  mail_body_wiki_content_updated: "La page wiki '%{id}' a été mise à jour par %{author}."
   
   gui_validation_error: 1 erreur
-  gui_validation_error_plural: "{{count}} erreurs"
+  gui_validation_error_plural: "%{count} erreurs"
   
   field_name: Nom
   field_description: Description
@@ -272,6 +274,7 @@
   field_attr_lastname: Attribut Nom
   field_attr_mail: Attribut Email
   field_onthefly: Création des utilisateurs à la volée
+  field_start_date: Début
   field_done_ratio: % réalisé
   field_auth_source: Mode d'authentification
   field_hide_mail: Cacher mon adresse mail
@@ -358,6 +361,9 @@
   setting_gravatar_default: Image Gravatar par défaut
   setting_start_of_week: Jour de début des calendriers
   setting_cache_formatted_text: Mettre en cache le texte formaté
+  setting_commit_logtime_enabled: Permettre la saisie de temps
+  setting_commit_logtime_activity_id: Activité pour le temps saisi
+  setting_gantt_items_limit: Nombre maximum d'éléments affichés sur le gantt
   
   permission_add_project: Créer un projet
   permission_add_subprojects: Créer des sous-projets
@@ -434,7 +440,7 @@
   label_x_projects:
     zero:  aucun projet
     one:   un projet
-    other: "{{count}} projets"
+    other: "%{count} projets"
   label_project_all: Tous les projets
   label_project_latest: Derniers projets
   label_issue: Demande
@@ -443,7 +449,7 @@
   label_issue_view_all: Voir toutes les demandes
   label_issue_added: Demande ajoutée
   label_issue_updated: Demande mise à jour
-  label_issues_by: "Demandes par {{value}}"
+  label_issues_by: "Demandes par %{value}"
   label_document: Document
   label_document_new: Nouveau document
   label_document_plural: Documents
@@ -491,7 +497,7 @@
   label_registered_on: "Inscrit le "
   label_activity: Activité
   label_overall_activity: Activité globale
-  label_user_activity: "Activité de {{value}}"
+  label_user_activity: "Activité de %{value}"
   label_new: Nouveau
   label_logged_as: Connecté en tant que
   label_environment: Environnement
@@ -501,7 +507,7 @@
   label_auth_source_plural: Modes d'authentification
   label_subproject_plural: Sous-projets
   label_subproject_new: Nouveau sous-projet
-  label_and_its_subprojects: "{{value}} et ses sous-projets"
+  label_and_its_subprojects: "%{value} et ses sous-projets"
   label_min_max_length: Longueurs mini - maxi
   label_list: Liste
   label_date: Date
@@ -512,8 +518,8 @@
   label_text: Texte long
   label_attribute: Attribut
   label_attribute_plural: Attributs
-  label_download: "{{count}} téléchargement"
-  label_download_plural: "{{count}} téléchargements"
+  label_download: "%{count} téléchargement"
+  label_download_plural: "%{count} téléchargements"
   label_no_data: Aucune donnée à afficher
   label_change_status: Changer le statut
   label_history: Historique
@@ -544,17 +550,17 @@
   label_closed_issues: fermé
   label_closed_issues_plural: fermés
   label_x_open_issues_abbr_on_total:
-    zero:  0 ouvert sur {{total}}
-    one:   1 ouvert sur {{total}}
-    other: "{{count}} ouverts sur {{total}}"
+    zero:  0 ouvert sur %{total}
+    one:   1 ouvert sur %{total}
+    other: "%{count} ouverts sur %{total}"
   label_x_open_issues_abbr:
     zero:  0 ouvert
     one:   1 ouvert
-    other: "{{count}} ouverts"
+    other: "%{count} ouverts"
   label_x_closed_issues_abbr:
     zero:  0 fermé
     one:   1 fermé
-    other: "{{count}} fermés"
+    other: "%{count} fermés"
   label_total: Total
   label_permissions: Permissions
   label_current_status: Statut actuel
@@ -572,7 +578,7 @@
   label_months_from: mois depuis
   label_gantt: Gantt
   label_internal: Interne
-  label_last_changes: "{{count}} derniers changements"
+  label_last_changes: "%{count} derniers changements"
   label_change_view_all: Voir tous les changements
   label_personalize_page: Personnaliser cette page
   label_comment: Commentaire
@@ -580,7 +586,7 @@
   label_x_comments:
     zero: aucun commentaire
     one: un commentaire
-    other: "{{count}} commentaires"
+    other: "%{count} commentaires"
   label_comment_add: Ajouter un commentaire
   label_comment_added: Commentaire ajouté
   label_comment_delete: Supprimer les commentaires
@@ -599,7 +605,7 @@
   label_yesterday: hier
   label_this_week: cette semaine
   label_last_week: la semaine dernière
-  label_last_n_days: "les {{count}} derniers jours"
+  label_last_n_days: "les %{count} derniers jours"
   label_this_month: ce mois-ci
   label_last_month: le mois dernier
   label_this_year: cette année
@@ -613,8 +619,8 @@
   label_repository: Dépôt
   label_repository_plural: Dépôts
   label_browse: Parcourir
-  label_modification: "{{count}} modification"
-  label_modification_plural: "{{count}} modifications"
+  label_modification: "%{count} modification"
+  label_modification_plural: "%{count} modifications"
   label_revision: "Révision "
   label_revision_plural: Révisions
   label_associated_revisions: Révisions associées
@@ -632,8 +638,8 @@
   label_sort_lower: Descendre
   label_sort_lowest: Descendre en dernier
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Échéance dans {{value}}"
-  label_roadmap_overdue: "En retard de {{value}}"
+  label_roadmap_due_in: "Échéance dans %{value}"
+  label_roadmap_overdue: "En retard de %{value}"
   label_roadmap_no_issues: Aucune demande pour cette version
   label_search: "Recherche "
   label_result_plural: Résultats
@@ -651,8 +657,8 @@
   label_changes_details: Détails de tous les changements
   label_issue_tracking: Suivi des demandes
   label_spent_time: Temps passé
-  label_f_hour: "{{value}} heure"
-  label_f_hour_plural: "{{value}} heures"
+  label_f_hour: "%{value} heure"
+  label_f_hour_plural: "%{value} heures"
   label_time_tracking: Suivi du temps
   label_change_plural: Changements
   label_statistics: Statistiques
@@ -701,13 +707,13 @@
   label_date_from: Du
   label_date_to: Au
   label_language_based: Basé sur la langue de l'utilisateur
-  label_sort_by: "Trier par {{value}}"
+  label_sort_by: "Trier par %{value}"
   label_send_test_email: Envoyer un email de test
-  label_feeds_access_key_created_on: "Clé d'accès RSS créée il y a {{value}}"
+  label_feeds_access_key_created_on: "Clé d'accès RSS créée il y a %{value}"
   label_module_plural: Modules
-  label_added_time_by: "Ajouté par {{author}} il y a {{age}}"
-  label_updated_time_by: "Mis à jour par {{author}} il y a {{age}}"
-  label_updated_time: "Mis à jour il y a {{value}}"
+  label_added_time_by: "Ajouté par %{author} il y a %{age}"
+  label_updated_time_by: "Mis à jour par %{author} il y a %{age}"
+  label_updated_time: "Mis à jour il y a %{value}"
   label_jump_to_a_project: Aller à un projet...
   label_file_plural: Fichiers
   label_changeset_plural: Révisions
@@ -723,7 +729,7 @@
   label_registration_activation_by_email: activation du compte par email
   label_registration_manual_activation: activation manuelle du compte
   label_registration_automatic_activation: activation automatique du compte
-  label_display_per_page: "Par page : {{value}}"
+  label_display_per_page: "Par page : %{value}"
   label_age: Âge
   label_change_properties: Changer les propriétés
   label_general: Général
@@ -746,7 +752,7 @@
   label_sort: Tri
   label_ascending: Croissant
   label_descending: Décroissant
-  label_date_from_to: Du {{start}} au {{end}}
+  label_date_from_to: Du %{start} au %{end}
   label_wiki_content_added: Page wiki ajoutée
   label_wiki_content_updated: Page wiki mise à jour
   label_group_plural: Groupes
@@ -764,12 +770,12 @@
   label_update_issue_done_ratios: Mettre à jour l'avancement des demandes
   label_display_used_statuses_only: N'afficher que les statuts utilisés dans ce tracker
   label_api_access_key: Clé d'accès API
-  label_api_access_key_created_on: Clé d'accès API créée il y a {{value}}
+  label_api_access_key_created_on: Clé d'accès API créée il y a %{value}
   label_feeds_access_key: Clé d'accès RSS
   label_missing_api_access_key: Clé d'accès API manquante
   label_missing_feeds_access_key: Clé d'accès RSS manquante
   label_close_versions: Fermer les versions terminées
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_profile: Profil
   label_subtask_plural: Sous-tâches
   label_project_copy_notifications: Envoyer les notifications durant la copie du projet
@@ -832,49 +838,50 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 pour aucune restriction
   text_project_destroy_confirmation: Êtes-vous sûr de vouloir supprimer ce projet et toutes ses données ?
-  text_subprojects_destroy_warning: "Ses sous-projets : {{value}} seront également supprimés."
+  text_subprojects_destroy_warning: "Ses sous-projets : %{value} seront également supprimés."
   text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
   text_are_you_sure: Êtes-vous sûr ?
   text_tip_issue_begin_day: tâche commençant ce jour
   text_tip_issue_end_day: tâche finissant ce jour
   text_tip_issue_begin_end_day: tâche commençant et finissant ce jour
   text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres et tirets sont autorisés.<br />Un fois sauvegardé, l''identifiant ne pourra plus être modifié.'
-  text_caracters_maximum: "{{count}} caractères maximum."
-  text_caracters_minimum: "{{count}} caractères minimum."
-  text_length_between: "Longueur comprise entre {{min}} et {{max}} caractères."
+  text_caracters_maximum: "%{count} caractères maximum."
+  text_caracters_minimum: "%{count} caractères minimum."
+  text_length_between: "Longueur comprise entre %{min} et %{max} caractères."
   text_tracker_no_workflow: Aucun worflow n'est défini pour ce tracker
   text_unallowed_characters: Caractères non autorisés
   text_comma_separated: Plusieurs valeurs possibles (séparées par des virgules).
   text_line_separated: Plusieurs valeurs possibles (une valeur par ligne).
   text_issues_ref_in_commit_messages: Référencement et résolution des demandes dans les commentaires de commits
-  text_issue_added: "La demande {{id}} a été soumise par {{author}}."
-  text_issue_updated: "La demande {{id}} a été mise à jour par {{author}}."
+  text_issue_added: "La demande %{id} a été soumise par %{author}."
+  text_issue_updated: "La demande %{id} a été mise à jour par %{author}."
   text_wiki_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce wiki et tout son contenu ?
-  text_issue_category_destroy_question: "{{count}} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
+  text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
   text_issue_category_destroy_assignments: N'affecter les demandes à aucune autre catégorie
   text_issue_category_reassign_to: Réaffecter les demandes à cette catégorie
   text_user_mail_option: "Pour les projets non sélectionnés, vous recevrez seulement des notifications pour ce que vous surveillez ou à quoi vous participez (exemple: demandes dont vous êtes l'auteur ou la personne assignée)."
   text_no_configuration_data: "Les rôles, trackers, statuts et le workflow ne sont pas encore paramétrés.\nIl est vivement recommandé de charger le paramétrage par defaut. Vous pourrez le modifier une fois chargé."
   text_load_default_configuration: Charger le paramétrage par défaut
-  text_status_changed_by_changeset: "Appliqué par commit {{value}}."
+  text_status_changed_by_changeset: "Appliqué par commit %{value}."
+  text_time_logged_by_changeset: "Appliqué par commit %{value}"
   text_issues_destroy_confirmation: 'Êtes-vous sûr de vouloir supprimer le(s) demandes(s) selectionnée(s) ?'
   text_select_project_modules: 'Sélectionner les modules à activer pour ce projet :'
   text_default_administrator_account_changed: Compte administrateur par défaut changé
   text_file_repository_writable: Répertoire de stockage des fichiers accessible en écriture
   text_plugin_assets_writable: Répertoire public des plugins accessible en écriture
   text_rmagick_available: Bibliothèque RMagick présente (optionnelle)
-  text_destroy_time_entries_question: "{{hours}} heures ont été enregistrées sur les demandes à supprimer. Que voulez-vous faire ?"
+  text_destroy_time_entries_question: "%{hours} heures ont été enregistrées sur les demandes à supprimer. Que voulez-vous faire ?"
   text_destroy_time_entries: Supprimer les heures
   text_assign_time_entries_to_project: Reporter les heures sur le projet
   text_reassign_time_entries: 'Reporter les heures sur cette demande:'
-  text_user_wrote: "{{value}} a écrit :"
-  text_enumeration_destroy_question: "Cette valeur est affectée à {{count}} objets."
+  text_user_wrote: "%{value} a écrit :"
+  text_enumeration_destroy_question: "Cette valeur est affectée à %{count} objets."
   text_enumeration_category_reassign_to: 'Réaffecter les objets à cette valeur:'
   text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/email.yml et redémarrez l'application pour les activer."
   text_repository_usernames_mapping: "Vous pouvez sélectionner ou modifier l'utilisateur Redmine associé à chaque nom d'utilisateur figurant dans l'historique du dépôt.\nLes utilisateurs avec le même identifiant ou la même adresse mail seront automatiquement associés."
   text_diff_truncated: '... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.'
   text_custom_field_possible_values_info: 'Une ligne par valeur'
-  text_wiki_page_destroy_question: "Cette page possède {{descendants}} sous-page(s) et descendante(s). Que voulez-vous faire ?"
+  text_wiki_page_destroy_question: "Cette page possède %{descendants} sous-page(s) et descendante(s). Que voulez-vous faire ?"
   text_wiki_page_nullify_children: "Conserver les sous-pages en tant que pages racines"
   text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
   text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
@@ -912,20 +919,20 @@
   label_branch: Branche
   error_no_tracker_in_project: "Aucun tracker n'est associé à ce projet. Vérifier la configuration du projet."
   error_no_default_issue_status: "Aucun statut de demande n'est défini par défaut. Vérifier votre configuration (Administration -> Statuts de demandes)."
-  text_journal_changed: "{{label}} changé de {{old}} à {{new}}"
-  text_journal_set_to: "{{label}} mis à {{value}}"
-  text_journal_deleted: "{{label}} {{old}} supprimé"
-  text_journal_added: "{{label}} {{value}} ajouté"
+  text_journal_changed: "%{label} changé de %{old} à %{new}"
+  text_journal_set_to: "%{label} mis à %{value}"
+  text_journal_deleted: "%{label} %{old} supprimé"
+  text_journal_added: "%{label} %{value} ajouté"
   enumeration_system_activity: Activité système
   label_board_sticky: Sticky
   label_board_locked: Verrouillé
   error_unable_delete_issue_status: Impossible de supprimer le statut de demande
   error_can_not_delete_custom_field: Impossible de supprimer le champ personnalisé
-  error_unable_to_connect: Connexion impossible ({{value}})
+  error_unable_to_connect: Connexion impossible (%{value})
   error_can_not_remove_role: Ce rôle est utilisé et ne peut pas être supprimé.
   error_can_not_delete_tracker: Ce tracker contient des demandes et ne peut pas être supprimé.
   field_principal: Principal
-  notice_failed_to_save_members: "Erreur lors de la sauvegarde des membres: {{errors}}."
+  notice_failed_to_save_members: "Erreur lors de la sauvegarde des membres: %{errors}."
   text_zoom_out: Zoom arrière
   text_zoom_in: Zoom avant
   notice_unable_delete_time_entry: Impossible de supprimer le temps passé.
@@ -933,7 +940,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendrier
-  button_edit_associated_wikipage: "Modifier la page wiki associée: {{page_title}}"
+  button_edit_associated_wikipage: "Modifier la page wiki associée: %{page_title}"
   text_are_you_sure_with_children: Supprimer la demande et toutes ses sous-demandes ?
   field_text: Champ texte
   label_user_mail_option_only_owner: Seulement pour ce que j'ai créé
@@ -943,5 +950,4 @@
   label_user_mail_option_none: Aucune notification
   field_member_of_group: Groupe de l'assigné
   field_assigned_to_role: Rôle de l'assigné
-  field_start_date: Start date
   setting_emails_header: Emails header
--- a/config/locales/gl.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/gl.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -74,41 +74,41 @@
         zero: 'menos dun segundo'
         one: '1 segundo'
         few: 'poucos segundos'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
       x_seconds:
         one: '1 segundo'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
       less_than_x_minutes:
         zero: 'menos dun minuto'
         one: '1 minuto'
-        other: '{{count}} minutos'
+        other: '%{count} minutos'
       x_minutes:
         one: '1 minuto'
-        other: '{{count}} minuto'
+        other: '%{count} minuto'
       about_x_hours:
         one: 'aproximadamente unha hora'
-        other: '{{count}} horas'
+        other: '%{count} horas'
       x_days:
         one: '1 día'
-        other: '{{count}} días'
+        other: '%{count} días'
       x_weeks:
         one: '1 semana'
-        other: '{{count}} semanas'
+        other: '%{count} semanas'
       about_x_months:
         one: 'aproximadamente 1 mes'
-        other: '{{count}} meses'
+        other: '%{count} meses'
       x_months:
         one: '1 mes'
-        other: '{{count}} meses'
+        other: '%{count} meses'
       about_x_years:
         one: 'aproximadamente 1 ano'
-        other: '{{count}} anos'
+        other: '%{count} anos'
       over_x_years:
         one: 'máis dun ano'
-        other: '{{count}} anos'
+        other: '%{count} anos'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
       now: 'agora'
       today: 'hoxe'
       tomorrow: 'mañá'
@@ -124,8 +124,8 @@
     errors:
       template:
         header:
-          one: "1 erro evitou que se poidese gardar o {{model}}"
-          other: "{{count}} erros evitaron que se poidese gardar o {{model}}"
+          one: "1 erro evitou que se poidese gardar o %{model}"
+          other: "%{count} erros evitaron que se poidese gardar o %{model}"
         body: "Atopáronse os seguintes problemas:"
       messages:
         inclusion: "non está incluido na lista"
@@ -135,16 +135,16 @@
         accepted: "debe ser aceptado"
         empty: "non pode estar valeiro"
         blank: "non pode estar en blanco"
-        too_long: "é demasiado longo (non máis de {{count}} carácteres)"
-        too_short: "é demasiado curto (non menos de {{count}} carácteres)"
-        wrong_length: "non ten a lonxitude correcta (debe ser de {{count}} carácteres)"
+        too_long: "é demasiado longo (non máis de %{count} carácteres)"
+        too_short: "é demasiado curto (non menos de %{count} carácteres)"
+        wrong_length: "non ten a lonxitude correcta (debe ser de %{count} carácteres)"
         taken: "non está dispoñible"
         not_a_number: "non é un número"
-        greater_than: "debe ser maior que {{count}}"
-        greater_than_or_equal_to: "debe ser maior ou igual que {{count}}"
-        equal_to: "debe ser igual a {{count}}"
-        less_than: "debe ser menor que {{count}}"
-        less_than_or_equal_to: "debe ser menor ou igual que {{count}}"
+        greater_than: "debe ser maior que %{count}"
+        greater_than_or_equal_to: "debe ser maior ou igual que %{count}"
+        equal_to: "debe ser igual a %{count}"
+        less_than: "debe ser menor que %{count}"
+        less_than_or_equal_to: "debe ser menor ou igual que %{count}"
         odd: "debe ser par"
         even: "debe ser impar"
         greater_than_start_date: "debe ser posterior á data de comezo"
@@ -216,10 +216,10 @@
   enumeration_activities: Actividades (tempo dedicado)
   enumeration_doc_categories: Categorías do documento
   enumeration_issue_priorities: Prioridade das peticións
-  error_can_t_load_default_data: "Non se puido cargar a configuración por defecto: {{value}}"
+  error_can_t_load_default_data: "Non se puido cargar a configuración por defecto: %{value}"
   error_issue_not_found_in_project: 'A petición non se atopa ou non está asociada a este proxecto'
   error_scm_annotate: "Non existe a entrada ou non se puido anotar"
-  error_scm_command_failed: "Aconteceu un erro ao acceder ó repositorio: {{value}}"
+  error_scm_command_failed: "Aconteceu un erro ao acceder ó repositorio: %{value}"
   error_scm_not_found: "A entrada e/ou revisión non existe no repositorio."
   field_account: Conta
   field_activity: Actividade
@@ -290,6 +290,7 @@
   field_role: Perfil
   field_searchable: Incluír nas búsquedas
   field_spent_on: Data
+  field_start_date: Data de inicio
   field_start_page: Páxina principal
   field_status: Estado
   field_subject: Tema
@@ -315,19 +316,19 @@
   general_text_no: 'non'
   general_text_yes: 'si'
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
   label_activity: Actividade
   label_add_another_file: Engadir outro arquivo
   label_add_note: Engadir unha nota
   label_added: engadido
-  label_added_time_by: "Engadido por {{author}} fai {{age}}"
+  label_added_time_by: "Engadido por %{author} fai %{age}"
   label_administration: Administración
   label_age: Idade
   label_ago: fai
   label_all: todos
   label_all_time: todo o tempo
   label_all_words: Tódalas palabras
-  label_and_its_subprojects: "{{value}} e proxectos secundarios"
+  label_and_its_subprojects: "%{value} e proxectos secundarios"
   label_applied_status: Aplicar estado
   label_assigned_to_me_issues: Peticións asignadas a min
   label_associated_revisions: Revisións asociadas
@@ -360,17 +361,17 @@
   label_closed_issues: pechada
   label_closed_issues_plural: pechadas
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Comentario
   label_comment_add: Engadir un comentario
   label_comment_added: Comentario engadido
@@ -379,7 +380,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Commits por autor
   label_commits_per_month: Commits por mes
   label_confirmation: Confirmación
@@ -403,13 +404,13 @@
   label_diff_inline: en liña
   label_diff_side_by_side: cara a cara
   label_disabled: deshabilitado
-  label_display_per_page: "Por páxina: {{value}}"
+  label_display_per_page: "Por páxina: %{value}"
   label_document: Documento
   label_document_added: Documento engadido
   label_document_new: Novo documento
   label_document_plural: Documentos
-  label_download: "{{count}} Descarga"
-  label_download_plural: "{{count}} Descargas"
+  label_download: "%{count} Descarga"
+  label_download_plural: "%{count} Descargas"
   label_downloads_abbr: D/L
   label_duplicated_by: duplicada por
   label_duplicates: duplicada de
@@ -421,10 +422,10 @@
   label_equals: igual
   label_example: Exemplo
   label_export_to: 'Exportar a:'
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "Clave de acceso por RSS creada fai {{value}}"
+  label_feeds_access_key_created_on: "Clave de acceso por RSS creada fai %{value}"
   label_file_added: Arquivo engadido
   label_file_plural: Arquivos
   label_filter_add: Engadir o filtro
@@ -461,13 +462,13 @@
   label_issue_updated: Petición actualizada
   label_issue_view_all: Ver tódalas peticións
   label_issue_watchers: Seguidores
-  label_issues_by: "Peticións por {{value}}"
+  label_issues_by: "Peticións por %{value}"
   label_jump_to_a_project: Ir ao proxecto...
   label_language_based: Baseado no idioma
-  label_last_changes: "últimos {{count}} cambios"
+  label_last_changes: "últimos %{count} cambios"
   label_last_login: Última conexión
   label_last_month: último mes
-  label_last_n_days: "últimos {{count}} días"
+  label_last_n_days: "últimos %{count} días"
   label_last_week: última semana
   label_latest_revision: Última revisión
   label_latest_revision_plural: Últimas revisións
@@ -488,8 +489,8 @@
   label_message_plural: Mensaxes
   label_message_posted: Mensaxe engadida
   label_min_max_length: Lonxitude mín - máx
-  label_modification: "{{count}} modificación"
-  label_modification_plural: "{{count}} modificacións"
+  label_modification: "%{count} modificación"
+  label_modification_plural: "%{count} modificacións"
   label_modified: modificado
   label_module_plural: Módulos
   label_month: Mes
@@ -540,7 +541,7 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_public_projects: Proxectos públicos
   label_query: Consulta personalizada
   label_query_new: Nova consulta
@@ -567,9 +568,9 @@
   label_revision: Revisión
   label_revision_plural: Revisións
   label_roadmap: Planificación
-  label_roadmap_due_in: "Remata en {{value}}"
+  label_roadmap_due_in: "Remata en %{value}"
   label_roadmap_no_issues: Non hai peticións para esta versión
-  label_roadmap_overdue: "{{value}} tarde"
+  label_roadmap_overdue: "%{value} tarde"
   label_role: Perfil
   label_role_and_permissions: Perfiles e permisos
   label_role_new: Novo perfil
@@ -581,7 +582,7 @@
   label_send_test_email: Enviar un correo de proba
   label_settings: Configuración
   label_show_completed_versions: Mostra as versións rematadas
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_sort_higher: Subir
   label_sort_highest: Primeiro
   label_sort_lower: Baixar
@@ -605,11 +606,11 @@
   label_tracker: Tipo
   label_tracker_new: Novo tipo
   label_tracker_plural: Tipos de peticións
-  label_updated_time: "Actualizado fai {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} fai {{age}}"
+  label_updated_time: "Actualizado fai %{value}"
+  label_updated_time_by: "Actualizado por %{author} fai %{age}"
   label_used_by: Utilizado por
   label_user: Usuario
-  label_user_activity: "Actividade de {{value}}"
+  label_user_activity: "Actividade de %{value}"
   label_user_mail_no_self_notified: "Non quero ser avisado de cambios feitos por min"
   label_user_mail_option_all: "Para calquera evento en tódolos proxectos"
   label_user_mail_option_selected: "Para calquera evento dos proxectos seleccionados..."
@@ -630,16 +631,16 @@
   label_workflow: Fluxo de traballo
   label_year: Ano
   label_yesterday: onte
-  mail_body_account_activation_request: "Inscribiuse un novo usuario ({{value}}). A conta está pendente de aprobación:"
+  mail_body_account_activation_request: "Inscribiuse un novo usuario (%{value}). A conta está pendente de aprobación:"
   mail_body_account_information: Información sobre a súa conta
-  mail_body_account_information_external: "Pode usar a súa conta {{value}} para conectarse."
+  mail_body_account_information_external: "Pode usar a súa conta %{value} para conectarse."
   mail_body_lost_password: 'Para cambiar o seu contrasinal, faga clic no seguinte enlace:'
   mail_body_register: 'Para activar a súa conta, faga clic no seguinte enlace:'
-  mail_body_reminder: "{{count}} petición(s) asignadas a ti rematan nos próximos {{days}} días:"
-  mail_subject_account_activation_request: "Petición de activación de conta {{value}}"
-  mail_subject_lost_password: "O teu contrasinal de {{value}}"
-  mail_subject_register: "Activación da conta de {{value}}"
-  mail_subject_reminder: "{{count}} petición(s) rematarán nos próximos {{days}} días"
+  mail_body_reminder: "%{count} petición(s) asignadas a ti rematan nos próximos %{days} días:"
+  mail_subject_account_activation_request: "Petición de activación de conta %{value}"
+  mail_subject_lost_password: "O teu contrasinal de %{value}"
+  mail_subject_register: "Activación da conta de %{value}"
+  mail_subject_reminder: "%{count} petición(s) rematarán nos próximos %{days} días"
   notice_account_activated: A súa conta foi activada. Xa pode conectarse.
   notice_account_invalid_creditentials: Usuario ou contrasinal inválido.
   notice_account_lost_email_sent: Enviouse un correo con instrucións para elixir un novo contrasinal.
@@ -651,9 +652,9 @@
   notice_account_wrong_password: Contrasinal incorrecto.
   notice_can_t_change_password: Esta conta utiliza unha fonte de autenticación externa. Non é posible cambiar o contrasinal.
   notice_default_data_loaded: Configuración por defecto cargada correctamente.
-  notice_email_error: "Ocorreu un error enviando o correo ({{value}})"
-  notice_email_sent: "Enviouse un correo a {{value}}"
-  notice_failed_to_save_issues: "Imposible gravar %s petición(s) en {{count}} seleccionado: {{ids}}."
+  notice_email_error: "Ocorreu un error enviando o correo (%{value})"
+  notice_email_sent: "Enviouse un correo a %{value}"
+  notice_failed_to_save_issues: "Imposible gravar %s petición(s) en %{count} seleccionado: %{ids}."
   notice_feeds_access_key_reseted: A súa clave de acceso para RSS reiniciouse.
   notice_file_not_found: A páxina á que tenta acceder non existe.
   notice_locking_conflict: Os datos modificáronse por outro usuario.
@@ -764,25 +765,25 @@
   status_registered: rexistrado
   text_are_you_sure: ¿Está seguro?
   text_assign_time_entries_to_project: Asignar as horas ó proxecto
-  text_caracters_maximum: "{{count}} caracteres como máximo."
-  text_caracters_minimum: "{{count}} caracteres como mínimo"
+  text_caracters_maximum: "%{count} caracteres como máximo."
+  text_caracters_minimum: "%{count} caracteres como mínimo"
   text_comma_separated: Múltiples valores permitidos (separados por coma).
   text_default_administrator_account_changed: Conta de administrador por defecto modificada
   text_destroy_time_entries: Borrar as horas
-  text_destroy_time_entries_question: Existen {{hours}} horas asignadas á petición que quere borrar. ¿Que quere facer ?
+  text_destroy_time_entries_question: Existen %{hours} horas asignadas á petición que quere borrar. ¿Que quere facer ?
   text_diff_truncated: '... Diferencia truncada por exceder o máximo tamaño visualizable.'
   text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/email.yml e reinicie a aplicación para activar os cambios."
   text_enumeration_category_reassign_to: 'Reasignar ó seguinte valor:'
-  text_enumeration_destroy_question: "{{count}} obxectos con este valor asignado."
+  text_enumeration_destroy_question: "%{count} obxectos con este valor asignado."
   text_file_repository_writable: Pódese escribir no repositorio
-  text_issue_added: "Petición {{id}} engadida por {{author}}."
+  text_issue_added: "Petición %{id} engadida por %{author}."
   text_issue_category_destroy_assignments: Deixar as peticións sen categoría
-  text_issue_category_destroy_question: "Algunhas peticións ({{count}}) están asignadas a esta categoría. ¿Que desexa facer?"
+  text_issue_category_destroy_question: "Algunhas peticións (%{count}) están asignadas a esta categoría. ¿Que desexa facer?"
   text_issue_category_reassign_to: Reasignar as peticións á categoría
-  text_issue_updated: "A petición {{id}} actualizouse por {{author}}."
+  text_issue_updated: "A petición %{id} actualizouse por %{author}."
   text_issues_destroy_confirmation: '¿Seguro que quere borrar as peticións seleccionadas?'
   text_issues_ref_in_commit_messages: Referencia e petición de corrección nas mensaxes
-  text_length_between: "Lonxitude entre {{min}} e {{max}} caracteres."
+  text_length_between: "Lonxitude entre %{min} e %{max} caracteres."
   text_load_default_configuration: Cargar a configuración por defecto
   text_min_max_length_info: 0 para ningunha restrición
   text_no_configuration_data: "Inda non se configuraron perfiles, nin tipos, estados e fluxo de traballo asociado a peticións. Recoméndase encarecidamente cargar a configuración por defecto. Unha vez cargada, poderá modificala."
@@ -794,18 +795,18 @@
   text_rmagick_available: RMagick dispoñible (opcional)
   text_select_mail_notifications: Seleccionar os eventos a notificar
   text_select_project_modules: 'Seleccione os módulos a activar para este proxecto:'
-  text_status_changed_by_changeset: "Aplicado nos cambios {{value}}"
-  text_subprojects_destroy_warning: "Os proxectos secundarios: {{value}} tamén se eliminarán"
+  text_status_changed_by_changeset: "Aplicado nos cambios %{value}"
+  text_subprojects_destroy_warning: "Os proxectos secundarios: %{value} tamén se eliminarán"
   text_tip_issue_begin_day: tarefa que comeza este día
   text_tip_issue_begin_end_day: tarefa que comeza e remata este día
   text_tip_issue_end_day: tarefa que remata este día
   text_tracker_no_workflow: Non hai ningún fluxo de traballo definido para este tipo de petición
   text_unallowed_characters: Caracteres non permitidos
   text_user_mail_option: "Dos proxectos non seleccionados, só recibirá notificacións sobre elementos monitorizados ou elementos nos que estea involucrado (por exemplo, peticións das que vostede sexa autor ou asignadas a vostede)."
-  text_user_wrote: "{{value}} escribiu:"
+  text_user_wrote: "%{value} escribiu:"
   text_wiki_destroy_confirmation: ¿Seguro que quere borrar o wiki e todo o seu contido?
   text_workflow_edit: Seleccionar un fluxo de traballo para actualizar
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   field_editable: Editable
   text_plugin_assets_writable: Plugin assets directory writable
   label_display: Display
@@ -821,21 +822,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -843,14 +844,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -885,9 +886,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -914,12 +915,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -927,7 +928,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -938,8 +939,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/he.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/he.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -38,38 +38,38 @@
       less_than_x_seconds:
         zero: 'פחות משניה'
         one: 'פחות משניה'
-        other: 'פחות מ־{{count}} שניות'
+        other: 'פחות מ־%{count} שניות'
       x_seconds:
         one: 'שניה ×חת'
-        other: '{{count}} שניות'
+        other: '%{count} שניות'
       less_than_x_minutes:
         zero: 'פחות מדקה ×חת'
         one: 'פחות מדקה ×חת'
-        other: 'פחות מ־{{count}} דקות'
+        other: 'פחות מ־%{count} דקות'
       x_minutes:
         one: 'דקה ×חת'
-        other: '{{count}} דקות'
+        other: '%{count} דקות'
       about_x_hours:
         one: 'בערך שעה ×חת'
-        other: 'בערך {{count}} שעות'
+        other: 'בערך %{count} שעות'
       x_days:
         one: '×™×•× ×חד'
-        other: '{{count}} ימי×'
+        other: '%{count} ימי×'
       about_x_months:
         one: 'בערך חודש ×חד'
-        other: 'בערך {{count}} חודשי×'
+        other: 'בערך %{count} חודשי×'
       x_months:
         one: 'חודש ×חד'
-        other: '{{count}} חודשי×'
+        other: '%{count} חודשי×'
       about_x_years:
         one: 'בערך שנה ×חת'
-        other: 'בערך {{count}} שני×'
+        other: 'בערך %{count} שני×'
       over_x_years:
         one: 'מעל שנה ×חת'
-        other: 'מעל {{count}} שני×'
+        other: 'מעל %{count} שני×'
       almost_x_years:
         one:   "כמעט שנה"
-        other: "כמעט {{count}} שני×"
+        other: "כמעט %{count} שני×"
 
   number:
     format:
@@ -100,6 +100,10 @@
 
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "×œ× × ×›×œ×œ ברשימה"
         exclusion: "×œ× ×–×ž×™×Ÿ"
@@ -108,16 +112,16 @@
         accepted: "חייב ב×ישור"
         empty: "חייב להכלל"
         blank: "חייב להכלל"
-        too_long: "×רוך מדי (×œ× ×™×•×ª×¨ מ־{{count}} תוי×)"
-        too_short: "קצר מדי (×œ× ×™×•×ª×¨ מ־{{count}} תוי×)"
-        wrong_length: "×œ× ×‘×ורך הנכון (חייב להיות {{count}} תוי×)"
+        too_long: "×רוך מדי (×œ× ×™×•×ª×¨ מ־%{count} תוי×)"
+        too_short: "קצר מדי (×œ× ×™×•×ª×¨ מ־%{count} תוי×)"
+        wrong_length: "×œ× ×‘×ורך הנכון (חייב להיות %{count} תוי×)"
         taken: "×œ× ×–×ž×™×Ÿ"
         not_a_number: "×”×•× ×œ× ×ž×¡×¤×¨"
-        greater_than: "חייב להיות גדול מ־{{count}}"
-        greater_than_or_equal_to: "חייב להיות גדול ×ו שווה ל־{{count}}"
-        equal_to: "חייב להיות שווה ל־{{count}}"
-        less_than: "חייב להיות קטן מ־{{count}}"
-        less_than_or_equal_to: "חייב להיות קטן ×ו שווה ל־{{count}}"
+        greater_than: "חייב להיות גדול מ־%{count}"
+        greater_than_or_equal_to: "חייב להיות גדול ×ו שווה ל־%{count}"
+        equal_to: "חייב להיות שווה ל־%{count}"
+        less_than: "חייב להיות קטן מ־%{count}"
+        less_than_or_equal_to: "חייב להיות קטן ×ו שווה ל־%{count}"
         odd: "חייב להיות ××™ זוגי"
         even: "חייב להיות זוגי"
         greater_than_start_date: "חייב להיות מ×וחר יותר מת×ריך ההתחלה"
@@ -155,12 +159,12 @@
   notice_locking_conflict: המידע עודכן על ידי משתמש ×חר.
   notice_not_authorized: ×ינך מורשה לר×ות דף ×–×”.
   notice_not_authorized_archived_project: הפרויקט ש×תה מנסה לגשת ×ליו × ×ž×¦× ×‘×רכיון.
-  notice_email_sent: "דו×ל נשלח לכתובת {{value}}"
-  notice_email_error: "×רעה שגי××” בעת שליחת הדו×ל ({{value}})"
+  notice_email_sent: "דו×ל נשלח לכתובת %{value}"
+  notice_email_error: "×רעה שגי××” בעת שליחת הדו×ל (%{value})"
   notice_feeds_access_key_reseted: מפתח ×”Ö¾RSS שלך ×ופס.
   notice_api_access_key_reseted: מפתח הגישה שלך ל־API ×ופס.
-  notice_failed_to_save_issues: "נכשרת בשמירת {{count}} נוש×\×™× ×‘ {{total}} נבחרו: {{ids}}."
-  notice_failed_to_save_members: "כשלון בשמירת חבר(×™×): {{errors}}."
+  notice_failed_to_save_issues: "נכשרת בשמירת %{count} נוש×\×™× ×‘ %{total} נבחרו: %{ids}."
+  notice_failed_to_save_members: "כשלון בשמירת חבר(×™×): %{errors}."
   notice_no_issue_selected: "×œ× × ×‘×—×¨ ××£ נוש×! בחר בבקשה ×ת הנוש××™× ×©×‘×¨×¦×•× ×š לערוך."
   notice_account_pending: "החשבון שלך נוצר ועתה מחכה ל×ישור מנהל המערכת."
   notice_default_data_loaded: ×פשרויות ברירת מחדל מופעלות.
@@ -168,9 +172,9 @@
   notice_unable_delete_time_entry: ×œ× × ×™×ª×Ÿ למחוק רשומת זמן.
   notice_issue_done_ratios_updated: ×חוזי התקדמות ×œ× ×•×©× ×¢×•×“×›× ×•.
 
-  error_can_t_load_default_data: "×פשרויות ברירת המחדל ×œ× ×”×¦×œ×™×—×• להיטען: {{value}}"
+  error_can_t_load_default_data: "×פשרויות ברירת המחדל ×œ× ×”×¦×œ×™×—×• להיטען: %{value}"
   error_scm_not_found: כניסה ו\×ו מהדורה ××™× × ×§×™×™×ž×™× ×‘×ž×גר.
-  error_scm_command_failed: "×רעה שגי××” בעת ניסון גישה למ×גר: {{value}}"
+  error_scm_command_failed: "×רעה שגי××” בעת ניסון גישה למ×גר: %{value}"
   error_scm_annotate: "הכניסה ×œ× ×§×™×™×ž×ª ×ו ×©×œ× × ×™×ª×Ÿ לת×ר ×ותה."
   error_issue_not_found_in_project: 'הנוש××™× ×œ× × ×ž×¦×ו ×ו ××™× × ×©×™×›×™× ×œ×¤×¨×•×™×§×˜'
   error_no_tracker_in_project: ×œ× ×”×•×’×“×¨ סיווג לפרויקט ×–×”. × × ×‘×“×•×§ ×ת הגדרות הפרויקט.
@@ -184,26 +188,26 @@
   error_workflow_copy_source: × × ×‘×—×¨ סיווג ×ו תפקיד מקור
   error_workflow_copy_target: × × ×‘×—×¨ תפקיד(×™×) וסיווג(×™×)
   error_unable_delete_issue_status: ×œ× × ×™×ª×Ÿ למחוק מצב נוש×
-  error_unable_to_connect: ×œ× × ×™×ª×Ÿ להתחבר ({{value}})
-  warning_attachments_not_saved: "כשלון בשמירת {{count}} קבצי×."
+  error_unable_to_connect: ×œ× × ×™×ª×Ÿ להתחבר (%{value})
+  warning_attachments_not_saved: "כשלון בשמירת %{count} קבצי×."
 
-  mail_subject_lost_password: "סיסמת ה־{{value}} שלך"
+  mail_subject_lost_password: "סיסמת ה־%{value} שלך"
   mail_body_lost_password: 'לשינו סיסמת ×”Ö¾Redmine שלך, לחץ על הקישור הב×:'
-  mail_subject_register: "הפעלת חשבון {{value}}"
+  mail_subject_register: "הפעלת חשבון %{value}"
   mail_body_register: 'להפעלת חשבון ×”Ö¾Redmine שלך, לחץ על הקישור הב×:'
-  mail_body_account_information_external: "×תה יכול להשתמש בחשבון {{value}} כדי להתחבר"
+  mail_body_account_information_external: "×תה יכול להשתמש בחשבון %{value} כדי להתחבר"
   mail_body_account_information: פרטי החשבון שלך
-  mail_subject_account_activation_request: "בקשת הפעלה לחשבון {{value}}"
-  mail_body_account_activation_request: "משתמש חדש ({{value}}) נרש×. החשבון שלו מחכה ל×ישור שלך:"
-  mail_subject_reminder: "{{count}} נוש××™× ×ž×™×•×¢×“×™× ×œ×”×’×©×” ×‘×™×ž×™× ×”×§×¨×•×‘×™× ({{days}})"
-  mail_body_reminder: "{{count}} נוש××™× ×©×ž×™×•×¢×“×™× ×ליך ×ž×™×•×¢×“×™× ×œ×”×’×©×” בתוך {{days}} ימי×:"
-  mail_subject_wiki_content_added: "דף ×”Ö¾wiki â€'{{id}}' נוסף"
-  mail_body_wiki_content_added: דף ×”Ö¾wiki â€'{{id}}' נוסף ×¢"×™ {{author}}.
-  mail_subject_wiki_content_updated: "דף ×”Ö¾wiki â€'{{id}}' עודכן"
-  mail_body_wiki_content_updated: דף ×”Ö¾wiki â€'{{id}}' עודכן ×¢"×™ {{author}}.
+  mail_subject_account_activation_request: "בקשת הפעלה לחשבון %{value}"
+  mail_body_account_activation_request: "משתמש חדש (%{value}) נרש×. החשבון שלו מחכה ל×ישור שלך:"
+  mail_subject_reminder: "%{count} נוש××™× ×ž×™×•×¢×“×™× ×œ×”×’×©×” ×‘×™×ž×™× ×”×§×¨×•×‘×™× (%{days})"
+  mail_body_reminder: "%{count} נוש××™× ×©×ž×™×•×¢×“×™× ×ליך ×ž×™×•×¢×“×™× ×œ×”×’×©×” בתוך %{days} ימי×:"
+  mail_subject_wiki_content_added: "דף ×”Ö¾wiki â€'%{id}' נוסף"
+  mail_body_wiki_content_added: דף ×”Ö¾wiki â€'%{id}' נוסף ×¢"×™ %{author}.
+  mail_subject_wiki_content_updated: "דף ×”Ö¾wiki â€'%{id}' עודכן"
+  mail_body_wiki_content_updated: דף ×”Ö¾wiki â€'%{id}' עודכן ×¢"×™ %{author}.
 
   gui_validation_error: שגי××” 1
-  gui_validation_error_plural: "{{count}} שגי×ות"
+  gui_validation_error_plural: "%{count} שגי×ות"
 
   field_name: ש×
   field_description: תי×ור
@@ -266,6 +270,7 @@
   field_attr_lastname: תכונת ×©× ×ž×©×¤×—×”
   field_attr_mail: תכונת דו×"ל
   field_onthefly: יצירת ×ž×©×ª×ž×©×™× ×–×¨×™×–×”
+  field_start_date: ת×ריך התחלה
   field_done_ratio: % גמור
   field_auth_source: מקור הזדהות
   field_hide_mail: ×”×—×‘× ×ת כתובת הדו×"ל שלי
@@ -431,14 +436,14 @@
   label_x_projects:
     zero:  ×œ×œ× ×¤×¨×•×™×§×˜×™×
     one:   פרויקט ×חד
-    other: "{{count}} פרויקטי×"
+    other: "%{count} פרויקטי×"
   label_project_all: כל הפרויקטי×
   label_project_latest: ×”×¤×¨×•×™×§×˜×™× ×”×—×“×©×™× ×‘×™×•×ª×¨
   label_issue: נוש×
   label_issue_new: × ×•×©× ×—×“×©
   label_issue_plural: נוש××™×
   label_issue_view_all: צפה בכל הנוש××™×
-  label_issues_by: "נוש××™× ×œ×¤×™ {{value}}"
+  label_issues_by: "נוש××™× ×œ×¤×™ %{value}"
   label_issue_added: × ×•×©× × ×•×¡×£
   label_issue_updated: × ×•×©× ×¢×•×“×›×Ÿ
   label_document: מסמך
@@ -488,7 +493,7 @@
   label_registered_on: × ×¨×©× ×‘×ª×ריך
   label_activity: פעילות
   label_overall_activity: פעילות כוללת
-  label_user_activity: "הפעילות של {{value}}"
+  label_user_activity: "הפעילות של %{value}"
   label_new: חדש
   label_logged_as: מחובר כ
   label_environment: סביבה
@@ -498,7 +503,7 @@
   label_auth_source_plural: מקורות הזדהות
   label_subproject_plural: תת־פרויקטי×
   label_subproject_new: תת־פרויקט חדש
-  label_and_its_subprojects: "{{value}} וכל ×ª×ª×™Ö¾×”×¤×¨×•×™×§×˜×™× ×©×œ×•"
+  label_and_its_subprojects: "%{value} וכל ×ª×ª×™Ö¾×”×¤×¨×•×™×§×˜×™× ×©×œ×•"
   label_min_max_length: ×ורך מינימ×לי - מקסימ×לי
   label_list: רשימה
   label_date: ת×ריך
@@ -509,8 +514,8 @@
   label_text: טקסט ×רוך
   label_attribute: תכונה
   label_attribute_plural: תכונות
-  label_download: "הורדה {{count}}"
-  label_download_plural: "{{count}} הורדות"
+  label_download: "הורדה %{count}"
+  label_download_plural: "%{count} הורדות"
   label_no_data: ×ין מידע להציג
   label_change_status: שנה מצב
   label_history: היסטוריה
@@ -542,17 +547,17 @@
   label_closed_issues: סגור
   label_closed_issues_plural: סגורי×
   label_x_open_issues_abbr_on_total:
-    zero:  0 ×¤×ª×•×—×™× / {{total}}
-    one:   1 פתוח / {{total}}
-    other: "{{count}} ×¤×ª×•×—×™× / {{total}}"
+    zero:  0 ×¤×ª×•×—×™× / %{total}
+    one:   1 פתוח / %{total}
+    other: "%{count} ×¤×ª×•×—×™× / %{total}"
   label_x_open_issues_abbr:
     zero:  0 פתוחי×
     one:   1 פתוח
-    other: "{{count}} פתוחי×"
+    other: "%{count} פתוחי×"
   label_x_closed_issues_abbr:
     zero:  0 סגורי×
     one:   1 סגור
-    other: "{{count}} סגורי×"
+    other: "%{count} סגורי×"
   label_total: סה"כ
   label_permissions: הרש×ות
   label_current_status: מצב נוכחי
@@ -570,7 +575,7 @@
   label_months_from: ×—×•×“×©×™× ×ž
   label_gantt: ×’×נט
   label_internal: פנימי
-  label_last_changes: "{{count}} ×©×™× ×•×™× ×חרוני×"
+  label_last_changes: "%{count} ×©×™× ×•×™× ×חרוני×"
   label_change_view_all: צפה בכל השינוי×
   label_personalize_page: הת×× ×ישית דף ×–×”
   label_comment: תגובה
@@ -578,7 +583,7 @@
   label_x_comments:
     zero: ×ין הערות
     one: הערה ×חת
-    other: "{{count}} הערות"
+    other: "%{count} הערות"
   label_comment_add: הוסף תגובה
   label_comment_added: תגובה נוספה
   label_comment_delete: מחק תגובות
@@ -599,7 +604,7 @@
   label_yesterday: ×תמול
   label_this_week: השבוע
   label_last_week: השבוע שעבר
-  label_last_n_days: "ב־{{count}} ×™×ž×™× ×חרוני×"
+  label_last_n_days: "ב־%{count} ×™×ž×™× ×חרוני×"
   label_this_month: החודש
   label_last_month: חודש שעבר
   label_this_year: השנה
@@ -613,13 +618,13 @@
   label_repository: מ×גר
   label_repository_plural: מ×גרי×
   label_browse: סייר
-  label_modification: "שינוי {{count}}"
-  label_modification_plural: "{{count}} שינויי×"
+  label_modification: "שינוי %{count}"
+  label_modification_plural: "%{count} שינויי×"
   label_branch: ×¢× ×£
   label_tag: סימון
   label_revision: מהדורה
   label_revision_plural: מהדורות
-  label_revision_id: מהדורה {{value}}
+  label_revision_id: מהדורה %{value}
   label_associated_revisions: מהדורות קשורות
   label_added: נוסף
   label_modified: שונה
@@ -636,8 +641,8 @@
   label_sort_lower: הזז למטה
   label_sort_lowest: הזז לתחתית
   label_roadmap: מפת הדרכי×
-  label_roadmap_due_in: "נגמר בעוד {{value}}"
-  label_roadmap_overdue: "{{value}} מ×חר"
+  label_roadmap_due_in: "נגמר בעוד %{value}"
+  label_roadmap_overdue: "%{value} מ×חר"
   label_roadmap_no_issues: ×ין נוש××™× ×œ×’×™×¨×¡×” זו
   label_search: חפש
   label_result_plural: תוצ×ות
@@ -656,8 +661,8 @@
   label_issue_tracking: מעקב ×חר נוש××™×
   label_spent_time: זמן שהושקע
   label_overall_spent_time: זמן שהושקע סה"כ
-  label_f_hour: "{{value}} שעה"
-  label_f_hour_plural: "{{value}} שעות"
+  label_f_hour: "%{value} שעה"
+  label_f_hour_plural: "%{value} שעות"
   label_time_tracking: מעקב זמני×
   label_change_plural: שינויי×
   label_statistics: סטטיסטיקות
@@ -708,15 +713,15 @@
   label_date_from: מת×ריך
   label_date_to: עד
   label_language_based: מבוסס שפה
-  label_sort_by: "מיין לפי {{value}}"
+  label_sort_by: "מיין לפי %{value}"
   label_send_test_email: שלח דו×"ל בדיקה
   label_feeds_access_key: מפתח גישה ל־RSS
   label_missing_feeds_access_key: חסר מפתח גישה ל־RSS
-  label_feeds_access_key_created_on: "מפתח הזנת RSS נוצר לפני{{value}}"
+  label_feeds_access_key_created_on: "מפתח הזנת RSS נוצר לפני%{value}"
   label_module_plural: מודולי×
-  label_added_time_by: 'נוסף ע"י {{author}} לפני {{age}}'
-  label_updated_time_by: 'עודכן ע"י {{author}} לפני {{age}}'
-  label_updated_time: "עודכן לפני {{value}} "
+  label_added_time_by: 'נוסף ע"י %{author} לפני %{age}'
+  label_updated_time_by: 'עודכן ע"י %{author} לפני %{age}'
+  label_updated_time: "עודכן לפני %{value} "
   label_jump_to_a_project: קפוץ לפרויקט...
   label_file_plural: קבצי×
   label_changeset_plural: סדרות שינויי×
@@ -735,7 +740,7 @@
   label_registration_activation_by_email: הפעל חשבון ב×מצעות דו×"ל
   label_registration_manual_activation: הפעלת חשבון ידנית
   label_registration_automatic_activation: הפעלת חשבון ×וטומטית
-  label_display_per_page: "בכל דף: {{value}} תוצ×ות"
+  label_display_per_page: "בכל דף: %{value} תוצ×ות"
   label_age: גיל
   label_change_properties: שנה מ×פייני×
   label_general: כללי
@@ -758,7 +763,7 @@
   label_sort: מיון
   label_ascending: בסדר עולה
   label_descending: בסדר יורד
-  label_date_from_to: 'מת×ריך {{start}} ועד ת×ריך {{end}}'
+  label_date_from_to: 'מת×ריך %{start} ועד ת×ריך %{end}'
   label_wiki_content_added: נוסף דף ל־wiki
   label_wiki_content_updated: דף wiki עודכן
   label_group: קבוצה
@@ -777,7 +782,7 @@
   label_display_used_statuses_only: הצג רק ×ת ×”×ž×¦×‘×™× ×‘×©×™×ž×•×© לסיווג ×–×”
   label_api_access_key: מפתח גישה ל־API
   label_missing_api_access_key: חסר מפתח גישה ל־API
-  label_api_access_key_created_on: 'מפתח גישה ל־API נוצר לפני {{value}}'
+  label_api_access_key_created_on: 'מפתח גישה ל־API נוצר לפני %{value}'
   label_profile: פרופיל
   label_subtask_plural: תתי־משימות
   label_project_copy_notifications: שלח התר×ות דו×ר במהלך העתקת הפרויקט
@@ -792,7 +797,7 @@
   button_create_and_continue: צור ופתח חדש
   button_test: בדוק
   button_edit: ערוך
-  button_edit_associated_wikipage: "ערוך דף wiki מקושר: {{page_title}}"
+  button_edit_associated_wikipage: "ערוך דף wiki מקושר: %{page_title}"
   button_add: הוסף
   button_change: שנה
   button_apply: החל
@@ -841,54 +846,54 @@
   text_regexp_info: כגון. ^[A-Z0-9]+$
   text_min_max_length_info: 0 משמעו ×œ×œ× ×”×’×‘×œ×•×ª
   text_project_destroy_confirmation: ×”×× ×תה בטוח שברצונך למחוק ×ת הפרויקט ו×ת כל המידע הקשור ×ליו?
-  text_subprojects_destroy_warning: "תת־הפרויקט\×™×: {{value}} ימחקו ×’× ×›×Ÿ."
+  text_subprojects_destroy_warning: "תת־הפרויקט\×™×: %{value} ימחקו ×’× ×›×Ÿ."
   text_workflow_edit: בחר תפקיד וסיווג כדי לערוך ×ת זרימת העבודה
   text_are_you_sure: ×”×× ×תה בטוח?
   text_are_you_sure_with_children: ×”×× ×œ×ž×—×•×§ ×ת ×”× ×•×©× ×•×ת כל בניו?
-  text_journal_changed: "{{label}} השתנה מ{{old}} ל{{new}}"
-  text_journal_set_to: "{{label}} נקבע ל{{value}}"
-  text_journal_deleted: "{{label}} נמחק ({{old}})"
-  text_journal_added: "{{label}} {{value}} נוסף"
+  text_journal_changed: "%{label} השתנה מ%{old} ל%{new}"
+  text_journal_set_to: "%{label} נקבע ל%{value}"
+  text_journal_deleted: "%{label} נמחק (%{old})"
+  text_journal_added: "%{label} %{value} נוסף"
   text_tip_issue_begin_day: מטלה המתחילה היו×
   text_tip_issue_end_day: מטלה המסתיימת היו×
   text_tip_issue_begin_end_day: מטלה המתחילה ומסתיימת היו×
   text_project_identifier_info: '×ותיות לטיניות (a-z), ×ž×¡×¤×¨×™× ×•×ž×§×¤×™×.<br />ברגע שנשמר, ×œ× × ×™×ª×Ÿ לשנות ×ת המזהה.'
-  text_caracters_maximum: "×ž×§×¡×™×ž×•× {{count}} תווי×."
-  text_caracters_minimum: "חייב להיות לפחות ב×ורך של {{count}} תווי×."
-  text_length_between: "×ורך בין {{min}} ל {{max}} תווי×."
+  text_caracters_maximum: "×ž×§×¡×™×ž×•× %{count} תווי×."
+  text_caracters_minimum: "חייב להיות לפחות ב×ורך של %{count} תווי×."
+  text_length_between: "×ורך בין %{min} ל %{max} תווי×."
   text_tracker_no_workflow: זרימת עבודה ×œ× ×”×•×’×“×¨×” עבור סיווג ×–×”
   text_unallowed_characters: ×ª×•×•×™× ×œ× ×ž×•×¨×©×™×
   text_comma_separated: הכנסת ×¢×¨×›×™× ×ž×¨×•×‘×™× ×ž×•×ª×¨×ª (×ž×•×¤×¨×“×™× ×‘×¤×¡×™×§×™×).
   text_line_separated: ניתן להזין מספר ×¢×¨×›×™× (שורה ×חת לכל ערך).
   text_issues_ref_in_commit_messages: קישור ×•×ª×™×§×•× × ×•×©××™× ×‘×”×•×“×¢×•×ª הפקדה
-  text_issue_added: "×”× ×•×©× {{id}} דווח (בידי {{author}})."
-  text_issue_updated: "×”× ×•×©× {{id}} עודכן (בידי {{author}})."
+  text_issue_added: "×”× ×•×©× %{id} דווח (בידי %{author})."
+  text_issue_updated: "×”× ×•×©× %{id} עודכן (בידי %{author})."
   text_wiki_destroy_confirmation: ×”×× ×תה בטוח שברצונך למחוק ×ת ×”WIKI ×”×–×” ו×ת כל תוכנו?
-  text_issue_category_destroy_question: "כמה נוש××™× ({{count}}) ×ž×•×¦×‘×™× ×œ×§×˜×’×•×¨×™×” הזו. מה ברצונך לעשות?"
+  text_issue_category_destroy_question: "כמה נוש××™× (%{count}) ×ž×•×¦×‘×™× ×œ×§×˜×’×•×¨×™×” הזו. מה ברצונך לעשות?"
   text_issue_category_destroy_assignments: הסר הצבת קטגוריה
   text_issue_category_reassign_to: הצב מחדש ×ת הקטגוריה לנוש××™×
   text_user_mail_option: "×‘×¤×¨×•×™×§×˜×™× ×©×œ× ×‘×—×¨×ª, ×תה רק תקבל התרעות על ש×תה צופה ×ו קשור ××œ×™×”× (לדוגמ×:נוש××™× ×©×תה היוצר ×©×œ×”× ×ו ×חר××™ עליה×)."
   text_no_configuration_data: "×œ× ×”×•×’×“×¨×” תצורה עבור תפקידי×, סיווגי×, מצבי × ×•×©× ×•×–×¨×™×ž×ª עבודה.\nמומלץ מ×ד לטעון ×ת תצורת ברירת המחדל. תוכל לשנותה מ×וחר יותר."
   text_load_default_configuration: טען ×ת ×פשרויות ברירת המחדל
-  text_status_changed_by_changeset: "הוחל בסדרת ×”×©×™× ×•×™×™× {{value}}."
+  text_status_changed_by_changeset: "הוחל בסדרת ×”×©×™× ×•×™×™× %{value}."
   text_issues_destroy_confirmation: '×”×× ×תה בטוח שברצונך למחוק ×ת הנוש×\×™×?'
   text_select_project_modules: 'בחר ×ž×•×“×•×œ×™× ×œ×”×—×™×œ על פרויקט ×–×”:'
   text_default_administrator_account_changed: מנהל המערכת ברירת המחדל שונה
   text_file_repository_writable: מ×גר ×”×§×‘×¦×™× × ×™×ª×Ÿ לכתיבה
   text_plugin_assets_writable: ספרית נכסי ×ª×•×¡×¤×™× × ×™×ª× ×ª לכתיבה
   text_rmagick_available: RMagick זמין (רשות)
-  text_destroy_time_entries_question: "{{hours}} שעות דווחו על הנוש××™× ×©×תה עומד למחוק. מה ברצונך לעשות?"
+  text_destroy_time_entries_question: "%{hours} שעות דווחו על הנוש××™× ×©×תה עומד למחוק. מה ברצונך לעשות?"
   text_destroy_time_entries: מחק שעות שדווחו
   text_assign_time_entries_to_project: הצב שעות שדווחו לפרויקט הזה
   text_reassign_time_entries: 'הצב מחדש שעות שדווחו לפרויקט הזה:'
-  text_user_wrote: "{{value}} כתב:"
-  text_enumeration_destroy_question: "{{count}} ××•×‘×™×§×˜×™× ×ž×•×¦×‘×™× ×œ×¢×¨×š ×–×”."
+  text_user_wrote: "%{value} כתב:"
+  text_enumeration_destroy_question: "%{count} ××•×‘×™×§×˜×™× ×ž×•×¦×‘×™× ×œ×¢×¨×š ×–×”."
   text_enumeration_category_reassign_to: 'הצב מחדש לערך הזה:'
   text_email_delivery_not_configured: '×œ× × ×§×‘×¢×” תצורה לשליחת דו×ר, וההתר×ות כבויות.\nקבע ×ת תצורת שרת ×”Ö¾SMTP בקובץ /etc/redmine/&lt;instance&gt;/email.yml והתחל ×ת ×”×פליקציה מחדש ×¢"מ ל×פשר ×ות×.'
   text_repository_usernames_mapping: "בחר ×ו עדכן ×ת משתמש Redmine הממופה לכל ×©× ×ž×©×ª×ž×© ביומן המ×גר.\n×ž×©×ª×ž×©×™× ×‘×¢×œ×™ ×©× ×ו כתובת דו×ר ×–×”×” ב־Redmine ובמ×גר ×ž×ž×•×¤×™× ×‘×ופן ×וטומטי."
   text_diff_truncated: '... ×”×©×™× ×•×™×™× ×¢×•×‘×¨×™× ×ת מספר השורות המירבי לתצוגה, ולכן ×”× ×§×•×¦×¦×•.'
   text_custom_field_possible_values_info: שורה ×חת לכל ערך
-  text_wiki_page_destroy_question: לדף ×–×” יש {{descendants}} ×“×¤×™× ×‘× ×™× ×•×ª×œ×•×™×™×. מה ברצונך לעשות?
+  text_wiki_page_destroy_question: לדף ×–×” יש %{descendants} ×“×¤×™× ×‘× ×™× ×•×ª×œ×•×™×™×. מה ברצונך לעשות?
   text_wiki_page_nullify_children: הש×ר ×“×¤×™× ×‘× ×™× ×›×“×¤×™× ×¨×שיי×
   text_wiki_page_destroy_children: מחק ×ת ×”×“×¤×™× ×”×‘× ×™× ×•×ת כל ×”×ª×œ×•×™×™× ×‘×”×
   text_wiki_page_reassign_children: הצב מחדש ×“×¤×™× ×‘× ×™× ×œ×“×£ ×”×ב הנוכחי
@@ -927,8 +932,12 @@
   label_user_mail_option_none: No events
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/hr.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/hr.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -35,34 +35,34 @@
       half_a_minute: "pola minute"
       less_than_x_seconds:
         one:   "manje od sekunde"
-        other: "manje od {{count}} sekundi"
+        other: "manje od %{count} sekundi"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekundi"
+        other: "%{count} sekundi"
       less_than_x_minutes:
         one:   "manje od minute"
-        other: "manje od {{count}} minuta"
+        other: "manje od %{count} minuta"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minuta"
+        other: "%{count} minuta"
       about_x_hours:
         one:   "oko sat vremena"
-        other: "oko {{count}} sati"
+        other: "oko %{count} sati"
       x_days:
         one:   "1 dan"
-        other: "{{count}} dana"
+        other: "%{count} dana"
       about_x_months:
         one:   "oko 1 mjesec"
-        other: "oko {{count}} mjeseci"
+        other: "oko %{count} mjeseci"
       x_months:
         one:   "mjesec"
-        other: "{{count}} mjeseci"
+        other: "%{count} mjeseci"
       about_x_years:
         one:   "1 godina"
-        other: "{{count}} godina"
+        other: "%{count} godina"
       over_x_years:
         one:   "preko 1 godine"
-        other: "preko {{count}} godina"
+        other: "preko %{count} godina"
 
   number:
     format:
@@ -93,6 +93,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nije ukljuceno u listu"
         exclusion: "je rezervirano"
@@ -101,17 +105,17 @@
         accepted: "mora biti prihvaćen"
         empty: "ne može biti prazno"
         blank: "ne može biti razmaka"
-        too_long: "je predug (maximum is {{count}} characters)"
-        too_short: "je prekratak (minimum is {{count}} characters)"
-        wrong_length: "je pogrešne dužine (should be {{count}} characters)"
+        too_long: "je predug (maximum is %{count} characters)"
+        too_short: "je prekratak (minimum is %{count} characters)"
+        wrong_length: "je pogrešne dužine (should be %{count} characters)"
         taken: "već je zauzeto"
         not_a_number: "nije broj"
         not_a_date: "nije ispravan datum"
-        greater_than: "mora biti veći od {{count}}"
-        greater_than_or_equal_to: "mora biti veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora bit manji ili jednak{{count}}"
+        greater_than: "mora biti veći od %{count}"
+        greater_than_or_equal_to: "mora biti veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora bit manji ili jednak%{count}"
         odd: "mora biti neparan"
         even: "mora biti paran"
         greater_than_start_date: "mora biti veci nego pocetni datum"
@@ -148,20 +152,20 @@
   notice_file_not_found: Stranica kojoj ste pokušali pristupiti ne postoji ili je uklonjena.
   notice_locking_conflict: Podataci su ažurirani od strane drugog korisnika.
   notice_not_authorized: Niste ovlašteni za pristup ovoj stranici. 
-  notice_email_sent: E-mail je poslan {{value}}"
-  notice_email_error: Dogodila se pogreška tijekom slanja E-maila ({{value}})"
+  notice_email_sent: E-mail je poslan %{value}"
+  notice_email_error: Dogodila se pogreška tijekom slanja E-maila (%{value})"
   notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
   notice_api_access_key_reseted: Vaš API pristup je resetovan.
-  notice_failed_to_save_issues: "Neuspjelo spremanje {{count}} predmeta na {{total}} odabrane: {{ids}}."
+  notice_failed_to_save_issues: "Neuspjelo spremanje %{count} predmeta na %{total} odabrane: %{ids}."
   notice_no_issue_selected: "Niti jedan predmet nije odabran! Molim, odaberite predmete koje želite urediti."
   notice_account_pending: "VaÅ¡ korisnicki raÄun je otvoren, Äeka odobrenje administratora."
   notice_default_data_loaded: Konfiguracija je uspjeÅ¡no uÄitana.
   notice_unable_delete_version: Nije moguće izbrisati verziju.
   notice_issue_done_ratios_updated: Issue done ratios updated.
   
-  error_can_t_load_default_data: "Zadanu konfiguracija nije uÄitana: {{value}}"
+  error_can_t_load_default_data: "Zadanu konfiguracija nije uÄitana: %{value}"
   error_scm_not_found: "Unos i/ili revizija nije pronađen."
-  error_scm_command_failed: "Dogodila se pogreška prilikom pokušaja pristupa: {{value}}"
+  error_scm_command_failed: "Dogodila se pogreška prilikom pokušaja pristupa: %{value}"
   error_scm_annotate: "Ne postoji ili ne može biti obilježen."
   error_issue_not_found_in_project: 'Nije pronađen ili ne pripada u ovaj projekt'
   error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
@@ -172,25 +176,25 @@
   error_workflow_copy_source: 'Please select a source tracker or role'
   error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
     
-  warning_attachments_not_saved: "{{count}} Datoteka/e nije mogla biti spremljena."
+  warning_attachments_not_saved: "%{count} Datoteka/e nije mogla biti spremljena."
   
-  mail_subject_lost_password: "Vaša {{value}} zaporka"
+  mail_subject_lost_password: "Vaša %{value} zaporka"
   mail_body_lost_password: 'Kako biste promijenili Vašu zaporku slijedite poveznicu:'
-  mail_subject_register: "Aktivacija korisniÄog raÄuna {{value}}"
+  mail_subject_register: "Aktivacija korisniÄog raÄuna %{value}"
   mail_body_register: 'Da biste aktivirali svoj raÄun, kliknite na sljedeci link:'
-  mail_body_account_information_external: "Možete koristiti vaÅ¡ raÄun {{value}} za prijavu."
+  mail_body_account_information_external: "Možete koristiti vaÅ¡ raÄun %{value} za prijavu."
   mail_body_account_information: VaÅ¡i korisniÄki podaci
-  mail_subject_account_activation_request: "{{value}} predmet za aktivaciju korisniÄkog raÄuna"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) je registriran. Njegov korisniÄki raÄun Äeka vaÅ¡e odobrenje:"
-  mail_subject_reminder: "{{count}} predmet(a) dospijeva sljedećih {{days}} dana"
-  mail_body_reminder: "{{count}} vama dodijeljen(ih) predmet(a) dospijeva u sljedećih {{days}} dana:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
+  mail_subject_account_activation_request: "%{value} predmet za aktivaciju korisniÄkog raÄuna"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) je registriran. Njegov korisniÄki raÄun Äeka vaÅ¡e odobrenje:"
+  mail_subject_reminder: "%{count} predmet(a) dospijeva sljedećih %{days} dana"
+  mail_body_reminder: "%{count} vama dodijeljen(ih) predmet(a) dospijeva u sljedećih %{days} dana:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
   
   gui_validation_error: 1 pogreška
-  gui_validation_error_plural: "{{count}} pogrešaka"
+  gui_validation_error_plural: "%{count} pogrešaka"
    
   field_name: Ime
   field_description: Opis
@@ -253,6 +257,7 @@
   field_attr_lastname: Atribut prezimena
   field_attr_mail: Atribut e-pošte
   field_onthefly: "Izrada korisnika \"u hodu\""
+  field_start_date: Pocetak
   field_done_ratio: % UÄinjeno
   field_auth_source: Vrsta prijavljivanja
   field_hide_mail: Sakrij moju adresu e-pošte
@@ -407,14 +412,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Svi Projekti
   label_project_latest: Najnoviji projekt
   label_issue: Predmet
   label_issue_new: Novi predmet
   label_issue_plural: Predmeti
   label_issue_view_all: Pregled svih predmeta
-  label_issues_by: "Predmeti od {{value}}"
+  label_issues_by: "Predmeti od %{value}"
   label_issue_added: Predmet dodan
   label_issue_updated: Predmet promijenjen
   label_document: Dokument
@@ -463,7 +468,7 @@
   label_registered_on: Registrirano
   label_activity: Aktivnosti
   label_overall_activity: Aktivnosti
-  label_user_activity: "{{value}} ova/ina aktivnost"
+  label_user_activity: "%{value} ova/ina aktivnost"
   label_new: Novi
   label_logged_as: Prijavljeni ste kao
   label_environment: Okolina
@@ -473,7 +478,7 @@
   label_auth_source_plural: NaÄini prijavljivanja
   label_subproject_plural: Potprojekti
   label_subproject_new: Novi potprojekt
-  label_and_its_subprojects: "{{value}} i njegovi potprojekti"
+  label_and_its_subprojects: "%{value} i njegovi potprojekti"
   label_min_max_length: Min - Maks  veliÄina
   label_list: Liste
   label_date: Datum
@@ -484,8 +489,8 @@
   label_text: Long text
   label_attribute: Atribut
   label_attribute_plural: Atributi
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nema podataka za prikaz
   label_change_status: Promjena statusa
   label_history: Povijest
@@ -517,17 +522,17 @@
   label_closed_issues: Zatvoren
   label_closed_issues_plural: Zatvoreno
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Ukupno
   label_permissions: Dozvole
   label_current_status: Trenutni status
@@ -545,7 +550,7 @@
   label_months_from: Mjeseci od
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "Posljednjih {{count}} promjena"
+  label_last_changes: "Posljednjih %{count} promjena"
   label_change_view_all: Prikaz svih promjena
   label_personalize_page: Prilagodite ovu stranicu
   label_comment: Komentar
@@ -553,7 +558,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar dodan
   label_comment_delete: Brisanje komentara
@@ -574,7 +579,7 @@
   label_yesterday: juÄer
   label_this_week: ovog tjedna
   label_last_week: prošlog tjedna
-  label_last_n_days: "zadnjih {{count}} dana"
+  label_last_n_days: "zadnjih %{count} dana"
   label_this_month: ovog mjeseca
   label_last_month: prošlog mjeseca
   label_this_year: ove godine
@@ -588,13 +593,13 @@
   label_repository: Skladište
   label_repository_plural: Skladišta
   label_browse: Pregled
-  label_modification: "{{count}} promjena"
-  label_modification_plural: "{{count}} promjena"
+  label_modification: "%{count} promjena"
+  label_modification_plural: "%{count} promjena"
   label_branch: Branch
   label_tag: Tag 
   label_revision: Revizija
   label_revision_plural: Revizije
-  label_revision_id: "Revision {{value}}" 
+  label_revision_id: "Revision %{value}" 
   label_associated_revisions: Dodijeljene revizije
   label_added: dodano
   label_modified: promijenjen
@@ -611,8 +616,8 @@
   label_sort_lower: Premjesti prema dolje
   label_sort_lowest: Premjesti na dno
   label_roadmap: Putokaz
-  label_roadmap_due_in: "Završava se za {{value}}"
-  label_roadmap_overdue: "{{value}} kasni"
+  label_roadmap_due_in: "Završava se za %{value}"
+  label_roadmap_overdue: "%{value} kasni"
   label_roadmap_no_issues: Nema predmeta za ovu verziju
   label_search: Traži
   label_result_plural: Rezultati
@@ -630,8 +635,8 @@
   label_changes_details: Detalji svih promjena
   label_issue_tracking: Praćenje predmeta
   label_spent_time: Utrošeno vrijeme
-  label_f_hour: "{{value}} sata"
-  label_f_hour_plural: "{{value}} sati"
+  label_f_hour: "%{value} sata"
+  label_f_hour_plural: "%{value} sati"
   label_time_tracking: Praćenje vremena
   label_change_plural: Promjene
   label_statistics: Statistika
@@ -680,15 +685,15 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Zasnovano na jeziku
-  label_sort_by: "Uredi po {{value}}"
+  label_sort_by: "Uredi po %{value}"
   label_send_test_email: Pošalji testno E-pismo
   label_feeds_access_key: RSS access key
   label_missing_feeds_access_key: Missing a RSS access key
-  label_feeds_access_key_created_on: "RSS kljuc za pristup je napravljen prije {{value}}"  
+  label_feeds_access_key_created_on: "RSS kljuc za pristup je napravljen prije %{value}"  
   label_module_plural: Moduli
-  label_added_time_by: "Promijenio {{author}} prije {{age}}"
-  label_updated_time_by: "Dodao/la {{author}} prije {{age}}"
-  label_updated_time: "Promijenjeno prije {{value}}"
+  label_added_time_by: "Promijenio %{author} prije %{age}"
+  label_updated_time_by: "Dodao/la %{author} prije %{age}"
+  label_updated_time: "Promijenjeno prije %{value}"
   label_jump_to_a_project: Prebaci se na projekt...
   label_file_plural: Datoteke
   label_changeset_plural: Promjene
@@ -704,7 +709,7 @@
   label_registration_activation_by_email: aktivacija putem e-pošte
   label_registration_manual_activation: ruÄna aktivacija
   label_registration_automatic_activation: automatska aktivacija
-  label_display_per_page: "Po stranici: {{value}}"
+  label_display_per_page: "Po stranici: %{value}"
   label_age: Starost
   label_change_properties: Promijeni svojstva
   label_general: Općenito
@@ -727,7 +732,7 @@
   label_sort: Sort
   label_ascending: Ascending
   label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_wiki_content_added: Wiki page added
   label_wiki_content_updated: Wiki page updated
   label_group: Group
@@ -746,7 +751,7 @@
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   label_api_access_key: API access key
   label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
+  label_api_access_key_created_on: "API access key created %{value} ago"
   
   button_login: Prijavi
   button_submit: Pošalji
@@ -806,54 +811,54 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 znaÄi bez ograniÄenja
   text_project_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj projekt i sve njegove podatke?
-  text_subprojects_destroy_warning: "Njegov(i) potprojekt(i): {{value}} će također biti obrisan."
+  text_subprojects_destroy_warning: "Njegov(i) potprojekt(i): %{value} će također biti obrisan."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Da li ste sigurni?
-  text_journal_changed: "{{label}} promijenjen iz {{old}} u {{new}}"
-  text_journal_set_to: "{{label}} postavi na {{value}}"
-  text_journal_deleted: "{{label}} izbrisano ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"  
+  text_journal_changed: "%{label} promijenjen iz %{old} u %{new}"
+  text_journal_set_to: "%{label} postavi na %{value}"
+  text_journal_deleted: "%{label} izbrisano (%{old})"
+  text_journal_added: "%{label} %{value} added"  
   text_tip_issue_begin_day: Zadaci koji poÄinju ovog dana
   text_tip_issue_end_day: zadaci koji se završavaju ovog dana
   text_tip_issue_begin_end_day: Zadaci koji poÄinju i zavrÅ¡avaju se ovog dana
   text_project_identifier_info: 'mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Jednom snimljen identifikator se ne može mijenjati!'
-  text_caracters_maximum: "Najviše {{count}} znakova."
-  text_caracters_minimum: "Mora biti dugaÄko najmanje {{count}} znakova."
-  text_length_between: "Dužina izmedu {{min}} i {{max}} znakova."
+  text_caracters_maximum: "Najviše %{count} znakova."
+  text_caracters_minimum: "Mora biti dugaÄko najmanje %{count} znakova."
+  text_length_between: "Dužina izmedu %{min} i %{max} znakova."
   text_tracker_no_workflow: Tijek rada nije definiran za ovaj tracker
   text_unallowed_characters: Nedozvoljeni znakovi
   text_comma_separated: Višestruke vrijednosti su dozvoljene (razdvojene zarezom).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
   text_tracker_no_workflow: No workflow defined for this tracker
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Predmet {{id}} je prijavljen (prijavio {{author}})."
-  text_issue_updated: "Predmet {{id}} je promijenjen {{author}})."
+  text_issue_added: "Predmet %{id} je prijavljen (prijavio %{author})."
+  text_issue_updated: "Predmet %{id} je promijenjen %{author})."
   text_wiki_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj wiki i njegov sadržaj?
-  text_issue_category_destroy_question: "Neke predmeti ({{count}}) su dodijeljeni ovoj kategoriji. Što želite uraditi?"
+  text_issue_category_destroy_question: "Neke predmeti (%{count}) su dodijeljeni ovoj kategoriji. Što želite uraditi?"
   text_issue_category_destroy_assignments: Ukloni dodjeljivanje kategorija
   text_issue_category_reassign_to: Ponovo dodijeli predmete ovoj kategoriji
   text_user_mail_option: "Za neizabrane projekte, primit ćete obavjesti samo o stvarima koje pratite ili u kojima sudjelujete (npr. predmete koje ste vi napravili ili koje su vama dodjeljeni)."
   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." 
   text_load_default_configuration: UÄitaj poÄetnu konfiguraciju
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Jeste li sigurni da želite obrisati izabrani/e predmet(e)?'
   text_select_project_modules: 'Odaberite module koji će biti omogućeni za ovaj projekt:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: Dozvoljeno pisanje u direktorij za privitke
   text_plugin_assets_writable: Plugin assets directory writable
   text_rmagick_available: RMagick dostupan (nije obavezno)
-  text_destroy_time_entries_question: "{{hours}} sati je prijavljeno za predmete koje želite obrisati. Å to ćete uÄiniti?"
+  text_destroy_time_entries_question: "%{hours} sati je prijavljeno za predmete koje želite obrisati. Å to ćete uÄiniti?"
   text_destroy_time_entries: Obriši prijavljene sate
   text_assign_time_entries_to_project: Pridruži prijavljene sate projektu
   text_reassign_time_entries: 'Premjesti prijavljene sate ovom predmetu:'
-  text_user_wrote: "{{value}} je napisao/la:"
-  text_enumeration_destroy_question: "{{count}} objekata je pridruženo toj vrijednosti."
+  text_user_wrote: "%{value} je napisao/la:"
+  text_enumeration_destroy_question: "%{count} objekata je pridruženo toj vrijednosti."
   text_enumeration_category_reassign_to: 'Premjesti ih ovoj vrijednosti:'
   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."
   text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   text_diff_truncated: '... Ovaj diff je odrezan zato Å¡to prelazi maksimalnu veliÄinu koja može biti prikazana.'
   text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
   text_wiki_page_nullify_children: "Keep child pages as root pages"
   text_wiki_page_destroy_children: "Delete child pages and all their descendants"
   text_wiki_page_reassign_children: "Reassign child pages to this parent page"
@@ -905,12 +910,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -918,7 +923,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -929,8 +934,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/hu.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/hu.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -33,38 +33,38 @@
       less_than_x_seconds:
 #        zero: 'kevesebb, mint 1 másodperc'
         one: 'kevesebb, mint 1 másodperc'
-        other: 'kevesebb, mint {{count}} másodperc'
+        other: 'kevesebb, mint %{count} másodperc'
       x_seconds:
         one: '1 másodperc'
-        other: '{{count}} másodperc'
+        other: '%{count} másodperc'
       less_than_x_minutes:
 #        zero: 'kevesebb, mint 1 perc'
         one: 'kevesebb, mint 1 perc'
-        other: 'kevesebb, mint {{count}} perc'
+        other: 'kevesebb, mint %{count} perc'
       x_minutes:
         one: '1 perc'
-        other: '{{count}} perc'
+        other: '%{count} perc'
       about_x_hours:
         one: 'majdnem 1 óra'
-        other: 'majdnem {{count}} óra'
+        other: 'majdnem %{count} óra'
       x_days:
         one: '1 nap'
-        other: '{{count}} nap'
+        other: '%{count} nap'
       about_x_months:
         one: 'majdnem 1 hónap'
-        other: 'majdnem {{count}} hónap'
+        other: 'majdnem %{count} hónap'
       x_months:
         one: '1 hónap'
-        other: '{{count}} hónap'
+        other: '%{count} hónap'
       about_x_years:
         one: 'majdnem 1 év'
-        other: 'majdnem {{count}} év'
+        other: 'majdnem %{count} év'
       over_x_years:
         one: 'több, mint 1 év'
-        other: 'több, mint {{count}} év'
+        other: 'több, mint %{count} év'
       almost_x_years:
         one:   "közel 1 év"
-        other: "közel {{count}} év"
+        other: "közel %{count} év"
     prompts:
       year:   "Év"
       month:  "Hónap"
@@ -117,8 +117,8 @@
     errors:
       template:
         header:
-          one: "1 hiba miatt nem menthető a következő: {{model}}"
-          other: "{{count}} hiba miatt nem menthető a következő: {{model}}"
+          one: "1 hiba miatt nem menthető a következő: %{model}"
+          other: "%{count} hiba miatt nem menthető a következő: %{model}"
         body: "Problémás mezők:"
       messages:
         inclusion: "nincs a listában"
@@ -128,16 +128,16 @@
         accepted: "nincs elfogadva"
         empty: "nincs megadva"
         blank: "nincs megadva"
-        too_long: "túl hosszú (nem lehet több {{count}} karakternél)"
-        too_short: "túl rövid (legalább {{count}} karakter kell legyen)"
-        wrong_length: "nem megfelelő hosszúságú ({{count}} karakter szükséges)"
+        too_long: "túl hosszú (nem lehet több %{count} karakternél)"
+        too_short: "túl rövid (legalább %{count} karakter kell legyen)"
+        wrong_length: "nem megfelelő hosszúságú (%{count} karakter szükséges)"
         taken: "már foglalt"
         not_a_number: "nem szám"
-        greater_than: "nagyobb kell legyen, mint {{count}}"
-        greater_than_or_equal_to: "legalább {{count}} kell legyen"
-        equal_to: "pontosan {{count}} kell legyen"
-        less_than: "kevesebb, mint {{count}} kell legyen"
-        less_than_or_equal_to: "legfeljebb {{count}} lehet"
+        greater_than: "nagyobb kell legyen, mint %{count}"
+        greater_than_or_equal_to: "legalább %{count} kell legyen"
+        equal_to: "pontosan %{count} kell legyen"
+        less_than: "kevesebb, mint %{count} kell legyen"
+        less_than_or_equal_to: "legfeljebb %{count} lehet"
         odd: "páratlan kell legyen"
         even: "páros kell legyen"
         greater_than_start_date: "nagyobbnak kell lennie, mint az indítás dátuma"
@@ -174,17 +174,17 @@
   notice_file_not_found: Az oldal, amit meg szeretne nézni nem található, vagy átkerült egy másik helyre.
   notice_locking_conflict: Az adatot egy másik felhasználó idő közben módosította.
   notice_not_authorized: Nincs hozzáférési engedélye ehhez az oldalhoz.
-  notice_email_sent: "Egy e-mail üzenetet küldtünk a következő címre {{value}}"
-  notice_email_error: "Hiba történt a levél küldése közben ({{value}})"
+  notice_email_sent: "Egy e-mail üzenetet küldtünk a következő címre %{value}"
+  notice_email_error: "Hiba történt a levél küldése közben (%{value})"
   notice_feeds_access_key_reseted: Az RSS hozzáférési kulcsát újra generáltuk.
-  notice_failed_to_save_issues: "Nem sikerült a {{count}} feladat(ok) mentése a {{total}} -ban kiválasztva: {{ids}}."
+  notice_failed_to_save_issues: "Nem sikerült a %{count} feladat(ok) mentése a %{total} -ban kiválasztva: %{ids}."
   notice_no_issue_selected: "Nincs feladat kiválasztva! Kérem jelölje meg melyik feladatot szeretné szerkeszteni!"
   notice_account_pending: "A fiókja létrejött, és adminisztrátori jóváhagyásra vár."
   notice_default_data_loaded: Az alapértelmezett konfiguráció betöltése sikeresen megtörtént.
   
-  error_can_t_load_default_data: "Az alapértelmezett konfiguráció betöltése nem lehetséges: {{value}}"
+  error_can_t_load_default_data: "Az alapértelmezett konfiguráció betöltése nem lehetséges: %{value}"
   error_scm_not_found: "A bejegyzés, vagy revízió nem található a tárolóban."
-  error_scm_command_failed: "A tároló elérése közben hiba lépett fel: {{value}}"
+  error_scm_command_failed: "A tároló elérése közben hiba lépett fel: %{value}"
   error_scm_annotate: "A bejegyzés nem létezik, vagy nics jegyzetekkel ellátva."
   error_issue_not_found_in_project: 'A feladat nem található, vagy nem ehhez a projekthez tartozik'
   
@@ -192,13 +192,13 @@
   mail_body_lost_password: 'A Redmine jelszó megváltoztatásához, kattintson a következő linkre:'
   mail_subject_register: Redmine azonosító aktiválása
   mail_body_register: 'A Redmine azonosítója aktiválásához, kattintson a következő linkre:'
-  mail_body_account_information_external: "A {{value}} azonosító használatával bejelentkezhet a Redmine-ba."
+  mail_body_account_information_external: "A %{value} azonosító használatával bejelentkezhet a Redmine-ba."
   mail_body_account_information: Az Ön Redmine azonosítójának információi
   mail_subject_account_activation_request: Redmine azonosító aktiválási kérelem
-  mail_body_account_activation_request: "Egy új felhasználó ({{value}}) regisztrált, azonosítója jóváhasgyásra várakozik:"
+  mail_body_account_activation_request: "Egy új felhasználó (%{value}) regisztrált, azonosítója jóváhasgyásra várakozik:"
   
   gui_validation_error: 1 hiba
-  gui_validation_error_plural: "{{count}} hiba"
+  gui_validation_error_plural: "%{count} hiba"
   
   field_name: Név
   field_description: Leírás
@@ -260,6 +260,7 @@
   field_attr_lastname: Vezetéknév
   field_attr_mail: E-mail
   field_onthefly: On-the-fly felhasználó létrehozás
+  field_start_date: Kezdés dátuma
   field_done_ratio: Elkészült (%)
   field_auth_source: Azonosítási mód
   field_hide_mail: Rejtse el az e-mail címem
@@ -334,14 +335,14 @@
   label_x_projects:
     zero:  nincsenek projektek
     one:   1 projekt
-    other: "{{count}} projekt"
+    other: "%{count} projekt"
   label_project_all: Az összes projekt
   label_project_latest: Legutóbbi projektek
   label_issue: Feladat
   label_issue_new: Új feladat
   label_issue_plural: Feladatok
   label_issue_view_all: Minden feladat
-  label_issues_by: "{{value}} feladatai"
+  label_issues_by: "%{value} feladatai"
   label_issue_added: Feladat hozzáadva
   label_issue_updated: Feladat frissítve
   label_document: Dokumentum
@@ -397,7 +398,7 @@
   label_auth_source_new: Új azonosítási mód
   label_auth_source_plural: Azonosítási módok
   label_subproject_plural: Alprojektek
-  label_and_its_subprojects: "{{value}} és alprojektjei"
+  label_and_its_subprojects: "%{value} és alprojektjei"
   label_min_max_length: Min - Max hossz
   label_list: Lista
   label_date: Dátum
@@ -408,8 +409,8 @@
   label_text: Hosszú szöveg
   label_attribute: Tulajdonság
   label_attribute_plural: Tulajdonságok
-  label_download: "{{count}} Letöltés"
-  label_download_plural: "{{count}} Letöltés"
+  label_download: "%{count} Letöltés"
+  label_download_plural: "%{count} Letöltés"
   label_no_data: Nincs megjeleníthető adat
   label_change_status: Státusz módosítása
   label_history: Történet
@@ -440,17 +441,17 @@
   label_closed_issues: lezárt
   label_closed_issues_plural: lezárt
   label_x_open_issues_abbr_on_total:
-    zero:  nyitott 0 / {{total}}
-    one:   nyitott 1 / {{total}}
-    other: "nyitott {{count}} / {{total}}"
+    zero:  nyitott 0 / %{total}
+    one:   nyitott 1 / %{total}
+    other: "nyitott %{count} / %{total}"
   label_x_open_issues_abbr:
     zero:  0 nyitott
     one:   1 nyitott
-    other: "{{count}} nyitott"
+    other: "%{count} nyitott"
   label_x_closed_issues_abbr:
     zero:  0 lezárt
     one:   1 lezárt
-    other: "{{count}} lezárt"
+    other: "%{count} lezárt"
   label_total: Összesen
   label_permissions: Jogosultságok
   label_current_status: Jelenlegi státusz
@@ -468,7 +469,7 @@
   label_months_from: hónap, kezdve
   label_gantt: Gantt
   label_internal: Belső
-  label_last_changes: "utolsó {{count}} változás"
+  label_last_changes: "utolsó %{count} változás"
   label_change_view_all: Minden változás megtekintése
   label_personalize_page: Az oldal testreszabása
   label_comment: Megjegyzés
@@ -476,7 +477,7 @@
   label_x_comments:
     zero: nincs megjegyzés
     one: 1 megjegyzés
-    other: "{{count}} megjegyzés"
+    other: "%{count} megjegyzés"
   label_comment_add: Megjegyzés hozzáadása
   label_comment_added: Megjegyzés hozzáadva
   label_comment_delete: Megjegyzések törlése
@@ -495,7 +496,7 @@
   label_yesterday: tegnap
   label_this_week: aktuális hét
   label_last_week: múlt hét
-  label_last_n_days: "az elmúlt {{count}} nap"
+  label_last_n_days: "az elmúlt %{count} nap"
   label_this_month: aktuális hónap
   label_last_month: múlt hónap
   label_this_year: aktuális év
@@ -509,8 +510,8 @@
   label_repository: Tároló
   label_repository_plural: Tárolók
   label_browse: Tallóz
-  label_modification: "{{count}} változás"
-  label_modification_plural: "{{count}} változás"
+  label_modification: "%{count} változás"
+  label_modification_plural: "%{count} változás"
   label_revision: Revízió
   label_revision_plural: Revíziók
   label_associated_revisions: Kapcsolt revíziók
@@ -526,8 +527,8 @@
   label_sort_lower: Eggyel lejjebb
   label_sort_lowest: Az aljára
   label_roadmap: Életút
-  label_roadmap_due_in: "Elkészültéig várhatóan még {{value}}"
-  label_roadmap_overdue: "{{value}} késésben"
+  label_roadmap_due_in: "Elkészültéig várhatóan még %{value}"
+  label_roadmap_overdue: "%{value} késésben"
   label_roadmap_no_issues: Nincsenek feladatok ehhez a verzióhoz
   label_search: Keresés
   label_result_plural: Találatok
@@ -545,8 +546,8 @@
   label_changes_details: Változások részletei
   label_issue_tracking: Feladat követés
   label_spent_time: Ráfordított idő
-  label_f_hour: "{{value}} óra"
-  label_f_hour_plural: "{{value}} óra"
+  label_f_hour: "%{value} óra"
+  label_f_hour_plural: "%{value} óra"
   label_time_tracking: Idő rögzítés
   label_change_plural: Változások
   label_statistics: Statisztikák
@@ -594,12 +595,12 @@
   label_date_from: 'Kezdet:'
   label_date_to: 'Vége:'
   label_language_based: A felhasználó nyelve alapján
-  label_sort_by: "{{value}} szerint rendezve"
+  label_sort_by: "%{value} szerint rendezve"
   label_send_test_email: Teszt e-mail küldése
-  label_feeds_access_key_created_on: "RSS hozzáférési kulcs létrehozva ennyivel ezelőtt: {{value}}"
+  label_feeds_access_key_created_on: "RSS hozzáférési kulcs létrehozva ennyivel ezelőtt: %{value}"
   label_module_plural: Modulok
-  label_added_time_by: "{{author}} adta hozzá ennyivel ezelőtt: {{age}}"
-  label_updated_time: "Utolsó módosítás ennyivel ezelőtt: {{value}}"
+  label_added_time_by: "%{author} adta hozzá ennyivel ezelőtt: %{age}"
+  label_updated_time: "Utolsó módosítás ennyivel ezelőtt: %{value}"
   label_jump_to_a_project: Ugrás projekthez...
   label_file_plural: Fájlok
   label_changeset_plural: Changesets
@@ -615,7 +616,7 @@
   label_registration_activation_by_email: Fiók aktiválása e-mailben
   label_registration_manual_activation: Manuális fiók aktiválás
   label_registration_automatic_activation: Automatikus fiók aktiválás
-  label_display_per_page: "Oldalanként: {{value}}"
+  label_display_per_page: "Oldalanként: %{value}"
   label_age: Kor
   label_change_properties: Tulajdonságok változtatása
   label_general: Ãltalános
@@ -677,36 +678,36 @@
   text_regexp_info: pl. ^[A-Z0-9]+$
   text_min_max_length_info: 0 = nincs korlátozás
   text_project_destroy_confirmation: Biztosan törölni szeretné a projektet és vele együtt minden kapcsolódó adatot ?
-  text_subprojects_destroy_warning: "Az alprojekt(ek): {{value}} szintén törlésre kerülnek."
+  text_subprojects_destroy_warning: "Az alprojekt(ek): %{value} szintén törlésre kerülnek."
   text_workflow_edit: Válasszon egy szerepkört, és egy feladat típust a workflow szerkesztéséhez
   text_are_you_sure: Biztos benne ?
   text_tip_issue_begin_day: a feladat ezen a napon kezdődik
   text_tip_issue_end_day: a feladat ezen a napon ér véget
   text_tip_issue_begin_end_day: a feladat ezen a napon kezdődik és ér véget
   text_project_identifier_info: 'Kis betűk (a-z), számok és kötőjel megengedett.<br />Mentés után az azonosítót megváltoztatni nem lehet.'
-  text_caracters_maximum: "maximum {{count}} karakter."
-  text_caracters_minimum: "Legkevesebb {{count}} karakter hosszúnek kell lennie."
-  text_length_between: "Legalább {{min}} és legfeljebb {{max}} hosszú karakter."
+  text_caracters_maximum: "maximum %{count} karakter."
+  text_caracters_minimum: "Legkevesebb %{count} karakter hosszúnek kell lennie."
+  text_length_between: "Legalább %{min} és legfeljebb %{max} hosszú karakter."
   text_tracker_no_workflow: Nincs workflow definiálva ehhez a feladat típushoz
   text_unallowed_characters: Tiltott karakterek
   text_comma_separated: Több érték megengedett (vesszővel elválasztva)
   text_issues_ref_in_commit_messages: Hivatkozás feladatokra, feladatok javítása a commit üzenetekben
-  text_issue_added: "A feladatot {{id}} bejelentette: {{author}}."
-  text_issue_updated: "A feladatot {{id}} módosította: {{author}}."
+  text_issue_added: "A feladatot %{id} bejelentette: %{author}."
+  text_issue_updated: "A feladatot %{id} módosította: %{author}."
   text_wiki_destroy_confirmation: Biztosan törölni szeretné ezt a wiki-t minden tartalmával együtt ?
-  text_issue_category_destroy_question: "Néhány feladat ({{count}}) hozzá van rendelve ehhez a kategóriához. Mit szeretne tenni ?"
+  text_issue_category_destroy_question: "Néhány feladat (%{count}) hozzá van rendelve ehhez a kategóriához. Mit szeretne tenni ?"
   text_issue_category_destroy_assignments: Kategória hozzárendelés megszűntetése
   text_issue_category_reassign_to: Feladatok újra hozzárendelése másik kategóriához
   text_user_mail_option: "A nem kiválasztott projektekről csak akkor kap értesítést, ha figyelést kér rá, vagy részt vesz benne (pl. Ön a létrehozó, vagy a hozzárendelő)"
   text_no_configuration_data: "Szerepkörök, feladat típusok, feladat státuszok, és workflow adatok még nincsenek konfigurálva.\nErősen ajánlott, az alapértelmezett konfiguráció betöltése, és utána módosíthatja azt."
   text_load_default_configuration: Alapértelmezett konfiguráció betöltése
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Biztos benne, hogy törölni szeretné a kijelölt feladato(ka)t ?'
   text_select_project_modules: 'Válassza ki az engedélyezett modulokat ehhez a projekthez:'
   text_default_administrator_account_changed: Alapértelmezett adminisztrátor fiók megváltoztatva
   text_file_repository_writable: Fájl tároló írható
   text_rmagick_available: RMagick elérhető (opcionális)
-  text_destroy_time_entries_question: "{{hours}} órányi munka van rögzítve a feladatokon, amiket törölni szeretne. Mit szeretne tenni ?"
+  text_destroy_time_entries_question: "%{hours} órányi munka van rögzítve a feladatokon, amiket törölni szeretne. Mit szeretne tenni ?"
   text_destroy_time_entries: A rögzített órák törlése
   text_assign_time_entries_to_project: A rögzített órák hozzárendelése a projekthez
   text_reassign_time_entries: 'A rögzített órák újra hozzárendelése másik feladathoz:'
@@ -736,13 +737,13 @@
   enumeration_issue_priorities: Feladat prioritások
   enumeration_doc_categories: Dokumentum kategóriák
   enumeration_activities: Tevékenységek (idő rögzítés)
-  mail_body_reminder: "{{count}} neked kiosztott feladat határidős az elkövetkező {{days}} napban:"
-  mail_subject_reminder: "{{count}} feladat határidős az elkövetkező {{days}} napokban"
-  text_user_wrote: "{{value}} írta:"
+  mail_body_reminder: "%{count} neked kiosztott feladat határidős az elkövetkező %{days} napban:"
+  mail_subject_reminder: "%{count} feladat határidős az elkövetkező %{days} napokban"
+  text_user_wrote: "%{value} írta:"
   label_duplicated_by: duplikálta
   setting_enabled_scm: Forráskódkezelő (SCM) engedélyezése
   text_enumeration_category_reassign_to: 'Újra hozzárendelés ehhez:'
-  text_enumeration_destroy_question: "{{count}} objektum van hozzárendelve ehhez az értékhez."
+  text_enumeration_destroy_question: "%{count} objektum van hozzárendelve ehhez az értékhez."
   label_incoming_emails: Beérkezett levelek
   label_generate_key: Kulcs generálása
   setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez
@@ -808,12 +809,12 @@
   text_repository_usernames_mapping: "Ãllítsd be a felhasználó összerendeléseket a Redmine, és a tároló logban található felhasználók között.\nAz azonos felhasználó nevek összerendelése automatikusan megtörténik."
   permission_edit_own_messages: Saját üzenetek szerkesztése
   permission_delete_own_messages: Saját üzenetek törlése
-  label_user_activity: "{{value}} tevékenységei"
-  label_updated_time_by: "Módosította {{author}} ennyivel ezelőtt: {{age}}"
+  label_user_activity: "%{value} tevékenységei"
+  label_updated_time_by: "Módosította %{author} ennyivel ezelőtt: %{age}"
   text_diff_truncated: '... A diff fájl vége nem jelenik meg, mert hosszab, mint a megjeleníthető sorok száma.'
   setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
   text_plugin_assets_writable: Plugin eszközök könyvtár írható
-  warning_attachments_not_saved: "{{count}} fájl mentése nem sikerült."
+  warning_attachments_not_saved: "%{count} fájl mentése nem sikerült."
   button_create_and_continue: Létrehozás és folytatás
   text_custom_field_possible_values_info: 'Értékenként egy sor'
   label_display: Megjelenés
@@ -828,21 +829,21 @@
   label_descending: Csökkenő
   label_sort: Rendezés
   label_ascending: Növekvő
-  label_date_from_to: "{{start}} -tól {{end}} -ig"
+  label_date_from_to: "%{start} -tól %{end} -ig"
   label_greater_or_equal: ">="
   label_less_or_equal: "<="
-  text_wiki_page_destroy_question: Ennek az oldalnak {{descendants}} gyermek-, és leszármazott oldala van. Mit szeretne tenni?
+  text_wiki_page_destroy_question: Ennek az oldalnak %{descendants} gyermek-, és leszármazott oldala van. Mit szeretne tenni?
   text_wiki_page_reassign_children: Az aloldalak hozzárendelése ehhez a szülő oldalhoz
   text_wiki_page_nullify_children: Az aloldalak megtartása, mint főoldalak
   text_wiki_page_destroy_children: Minden aloldal és leszármazottjának törlése
   setting_password_min_length: Minimum jelszó hosszúság
   field_group_by: Szerint csoportosítva
-  mail_subject_wiki_content_updated: "'{{id}}' wiki oldal frissítve"
+  mail_subject_wiki_content_updated: "'%{id}' wiki oldal frissítve"
   label_wiki_content_added: Wiki oldal hozzáadva
-  mail_subject_wiki_content_added: "Új wiki oldal: '{{id}}'"
-  mail_body_wiki_content_added: A '{{id}}' wiki oldalt {{author}} hozta létre.
+  mail_subject_wiki_content_added: "Új wiki oldal: '%{id}'"
+  mail_body_wiki_content_added: A '%{id}' wiki oldalt %{author} hozta létre.
   label_wiki_content_updated: Wiki oldal frissítve
-  mail_body_wiki_content_updated: A '{{id}}' wiki oldalt {{author}} frissítette.
+  mail_body_wiki_content_updated: A '%{id}' wiki oldalt %{author} frissítette.
   permission_add_project: Projekt létrehozása
   setting_new_project_user_role_id: Projekt létrehozási jog nem adminisztrátor felhasználóknak
   label_view_all_revisions: Minden revízió megtekintése
@@ -850,14 +851,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nincs feladat típus hozzárendelve ehhez a projekthez. Kérem ellenőrizze a projekt beállításait.
   error_no_default_issue_status: Nincs alapértelmezett feladat státusz beállítva. Kérem ellenőrizze a beállításokat (Itt találja "Adminisztráció -> Feladat státuszok").
-  text_journal_changed: "{{label}} változott erről: {{old}} erre: {{new}}"
-  text_journal_set_to: "{{label}} új értéke: {{value}}"
-  text_journal_deleted: "{{label}} törölve ({{old}})"
+  text_journal_changed: "%{label} változott erről: %{old} erre: %{new}"
+  text_journal_set_to: "%{label} új értéke: %{value}"
+  text_journal_deleted: "%{label} törölve (%{old})"
   label_group_plural: Csoportok
   label_group: Csoport
   label_group_new: Új csoport
   label_time_entry_plural: Rögzített idő
-  text_journal_added: "{{label}} {{value}} hozzáadva"
+  text_journal_added: "%{label} %{value} hozzáadva"
   field_active: Aktív
   enumeration_system_activity: Rendszer Tevékenység
   permission_delete_issue_watchers: Megfigyelők törlése
@@ -892,9 +893,9 @@
   setting_start_of_week: A hét első napja
   permission_view_issues: Feladatok megtekintése
   label_display_used_statuses_only: Csak olyan feladat státuszok megjelenítése, amit ez a feladat típus használ
-  label_revision_id: Revízió {{value}}
+  label_revision_id: Revízió %{value}
   label_api_access_key: API hozzáférési kulcs
-  label_api_access_key_created_on: API hozzáférési kulcs létrehozva {{value}} ezelőtt
+  label_api_access_key_created_on: API hozzáférési kulcs létrehozva %{value} ezelőtt
   label_feeds_access_key: RSS hozzáférési kulcs
   notice_api_access_key_reseted: Az API hozzáférési kulcsa újragenerálva.
   setting_rest_api_enabled: REST web service engedélyezése
@@ -917,7 +918,7 @@
   error_can_not_delete_custom_field: Nem lehet törölni az egyéni mezőt
   permission_manage_subtasks: Alfeladatok kezelése
   label_profile: Profil
-  error_unable_to_connect: Nem lehet csatlakozni ({{value}})
+  error_unable_to_connect: Nem lehet csatlakozni (%{value})
   error_can_not_remove_role: Ez a szerepkör használatban van és ezért nem törölhető-
   field_parent_issue: Szülő feladat
   error_unable_delete_issue_status: Nem lehet törölni a feladat állapotát
@@ -926,7 +927,7 @@
   label_project_copy_notifications: Küldjön e-mail értesítéseket projektmásolás közben.
   field_principal: Felelős
   label_my_page_block: Saját kezdőlap-blokk
-  notice_failed_to_save_members: "Nem sikerült menteni a tago(ka)t: {{errors}}."
+  notice_failed_to_save_members: "Nem sikerült menteni a tago(ka)t: %{errors}."
   text_zoom_out: Kicsinyít
   text_zoom_in: Nagyít
   notice_unable_delete_time_entry: Az időrögzítés nem törölhető
@@ -934,7 +935,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -945,8 +946,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/id.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/id.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -30,37 +30,37 @@
       half_a_minute: "setengah menit"
       less_than_x_seconds:
         one:   "kurang dari sedetik"
-        other: "kurang dari {{count}} detik"
+        other: "kurang dari %{count} detik"
       x_seconds:
         one:   "sedetik"
-        other: "{{count}} detik"
+        other: "%{count} detik"
       less_than_x_minutes:
         one:   "kurang dari semenit"
-        other: "kurang dari {{count}} menit"
+        other: "kurang dari %{count} menit"
       x_minutes:
         one:   "semenit"
-        other: "{{count}} menit"
+        other: "%{count} menit"
       about_x_hours:
         one:   "sekitar sejam"
-        other: "sekitar {{count}} jam"
+        other: "sekitar %{count} jam"
       x_days:
         one:   "sehari"
-        other: "{{count}} hari"
+        other: "%{count} hari"
       about_x_months:
         one:   "sekitar sebulan"
-        other: "sekitar {{count}} bulan"
+        other: "sekitar %{count} bulan"
       x_months:
         one:   "sebulan"
-        other: "{{count}} bulan"
+        other: "%{count} bulan"
       about_x_years:
         one:   "sekitar setahun"
-        other: "sekitar {{count}} tahun"
+        other: "sekitar %{count} tahun"
       over_x_years:
         one:   "lebih dari setahun"
-        other: "lebih dari {{count}} tahun"
+        other: "lebih dari %{count} tahun"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "tidak termasuk dalam daftar"
         exclusion: "sudah dicadangkan"
@@ -103,17 +107,17 @@
         accepted: "harus disetujui"
         empty: "tidak boleh kosong"
         blank: "tidak boleh kosong"
-        too_long: "terlalu panjang (maksimum {{count}} karakter)"
-        too_short: "terlalu pendek (minimum {{count}} karakter)"
-        wrong_length: "panjangnya salah (seharusnya {{count}} karakter)"
+        too_long: "terlalu panjang (maksimum %{count} karakter)"
+        too_short: "terlalu pendek (minimum %{count} karakter)"
+        wrong_length: "panjangnya salah (seharusnya %{count} karakter)"
         taken: "sudah diambil"
         not_a_number: "bukan angka"
         not_a_date: "bukan tanggal"
-        greater_than: "harus lebih besar dari {{count}}"
-        greater_than_or_equal_to: "harus lebih besar atau sama dengan {{count}}"
-        equal_to: "harus sama dengan {{count}}"
-        less_than: "harus kurang dari {{count}}"
-        less_than_or_equal_to: "harus kurang atau sama dengan {{count}}"
+        greater_than: "harus lebih besar dari %{count}"
+        greater_than_or_equal_to: "harus lebih besar atau sama dengan %{count}"
+        equal_to: "harus sama dengan %{count}"
+        less_than: "harus kurang dari %{count}"
+        less_than_or_equal_to: "harus kurang atau sama dengan %{count}"
         odd: "harus ganjil"
         even: "harus genap"
         greater_than_start_date: "harus lebih besar dari tanggal mulai"
@@ -150,18 +154,18 @@
   notice_file_not_found: Berkas yang anda buka tidak ada atau sudah dihapus.
   notice_locking_conflict: Data sudah diubah oleh pengguna lain.
   notice_not_authorized: Anda tidak memiliki akses ke halaman ini.
-  notice_email_sent: "Email sudah dikirim ke {{value}}"
-  notice_email_error: "Terjadi kesalahan pada saat pengiriman email ({{value}})"
+  notice_email_sent: "Email sudah dikirim ke %{value}"
+  notice_email_error: "Terjadi kesalahan pada saat pengiriman email (%{value})"
   notice_feeds_access_key_reseted: RSS access key anda sudah direset.
-  notice_failed_to_save_issues: "Gagal menyimpan {{count}} masalah dari {{total}} yang dipilih: {{ids}}."
+  notice_failed_to_save_issues: "Gagal menyimpan %{count} masalah dari %{total} yang dipilih: %{ids}."
   notice_no_issue_selected: "Tidak ada masalah yang dipilih! Silakan pilih masalah yang akan anda sunting."
   notice_account_pending: "Akun anda sudah dibuat dan sekarang sedang menunggu persetujuan administrator."
   notice_default_data_loaded: Konfigurasi default sudah berhasil dimuat.
   notice_unable_delete_version: Tidak bisa menghapus versi.
   
-  error_can_t_load_default_data: "Konfigurasi default tidak bisa dimuat: {{value}}"
+  error_can_t_load_default_data: "Konfigurasi default tidak bisa dimuat: %{value}"
   error_scm_not_found: "Entri atau revisi tidak terdapat pada repositori."
-  error_scm_command_failed: "Terjadi kesalahan pada saat mengakses repositori: {{value}}"
+  error_scm_command_failed: "Terjadi kesalahan pada saat mengakses repositori: %{value}"
   error_scm_annotate: "Entri tidak ada, atau tidak dapat di anotasi."
   error_issue_not_found_in_project: 'Masalah tidak ada atau tidak tergabung dalam proyek ini.'
   error_no_tracker_in_project: 'Tidak ada pelacak yang diasosiasikan pada proyek ini. Silakan pilih Pengaturan Proyek.'
@@ -169,25 +173,25 @@
   error_can_not_reopen_issue_on_closed_version: 'Masalah yang ditujukan pada versi tertutup tidak bisa dibuka kembali'
   error_can_not_archive_project: Proyek ini tidak bisa diarsipkan
   
-  warning_attachments_not_saved: "{{count}} berkas tidak bisa disimpan."
+  warning_attachments_not_saved: "%{count} berkas tidak bisa disimpan."
   
-  mail_subject_lost_password: "Kata sandi {{value}} anda"
+  mail_subject_lost_password: "Kata sandi %{value} anda"
   mail_body_lost_password: 'Untuk mengubah kata sandi anda, klik tautan berikut::'
-  mail_subject_register: "Aktivasi akun {{value}} anda"
+  mail_subject_register: "Aktivasi akun %{value} anda"
   mail_body_register: 'Untuk mengaktifkan akun anda, klik tautan berikut:'
-  mail_body_account_information_external: "Anda dapat menggunakan akun {{value}} anda untuk login."
+  mail_body_account_information_external: "Anda dapat menggunakan akun %{value} anda untuk login."
   mail_body_account_information: Informasi akun anda
-  mail_subject_account_activation_request: "Permintaan aktivasi akun {{value}} "
-  mail_body_account_activation_request: "Pengguna baru ({{value}}) sudan didaftarkan. Akun tersebut menunggu persetujuan anda:"
-  mail_subject_reminder: "{{count}} masalah harus selesai pada hari berikutnya ({{days}})"
-  mail_body_reminder: "{{count}} masalah yang ditugaskan pada anda harus selesai dalam {{days}} hari kedepan:"
-  mail_subject_wiki_content_added: "'{{id}}' halaman wiki sudah ditambahkan"
-  mail_body_wiki_content_added: "The '{{id}}' halaman wiki sudah ditambahkan oleh {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' halaman wiki sudah diperbarui"
-  mail_body_wiki_content_updated: "The '{{id}}' halaman wiki sudah diperbarui oleh {{author}}."
+  mail_subject_account_activation_request: "Permintaan aktivasi akun %{value} "
+  mail_body_account_activation_request: "Pengguna baru (%{value}) sudan didaftarkan. Akun tersebut menunggu persetujuan anda:"
+  mail_subject_reminder: "%{count} masalah harus selesai pada hari berikutnya (%{days})"
+  mail_body_reminder: "%{count} masalah yang ditugaskan pada anda harus selesai dalam %{days} hari kedepan:"
+  mail_subject_wiki_content_added: "'%{id}' halaman wiki sudah ditambahkan"
+  mail_body_wiki_content_added: "The '%{id}' halaman wiki sudah ditambahkan oleh %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' halaman wiki sudah diperbarui"
+  mail_body_wiki_content_updated: "The '%{id}' halaman wiki sudah diperbarui oleh %{author}."
   
   gui_validation_error: 1 kesalahan
-  gui_validation_error_plural: "{{count}} kesalahan"
+  gui_validation_error_plural: "%{count} kesalahan"
 
   
   field_name: Nama
@@ -251,6 +255,7 @@
   field_attr_lastname: Atribut nama belakang
   field_attr_mail: Atribut email
   field_onthefly: Pembuatan pengguna seketika
+  field_start_date: Mulai
   field_done_ratio: % Selesai
   field_auth_source: Mode otentikasi
   field_hide_mail: Sembunyikan email saya
@@ -398,14 +403,14 @@
   label_x_projects:
     zero:  tidak ada proyek 
     one:   1 proyek 
-    other: "{{count}} proyek"
+    other: "%{count} proyek"
   label_project_all: Semua Proyek 
   label_project_latest: Proyek terakhir
   label_issue: Masalah
   label_issue_new: Masalah baru
   label_issue_plural: Masalah
   label_issue_view_all: tampilkan semua masalah
-  label_issues_by: "Masalah ditambahkan oleh {{value}}"
+  label_issues_by: "Masalah ditambahkan oleh %{value}"
   label_issue_added: Masalah ditambahan
   label_issue_updated: Masalah diperbarui
   label_document: Dokumen
@@ -454,7 +459,7 @@
   label_registered_on: Terdaftar pada
   label_activity: Kegiatan
   label_overall_activity: Kegiatan umum
-  label_user_activity: "kegiatan {{value}}"
+  label_user_activity: "kegiatan %{value}"
   label_new: Baru
   label_logged_as: Login sebagai
   label_environment: Lingkungan
@@ -463,7 +468,7 @@
   label_auth_source_new: Mode otentikasi baru
   label_auth_source_plural: Mode Otentikasi
   label_subproject_plural: Subproyek
-  label_and_its_subprojects: "{{value}} dan subproyeknya"
+  label_and_its_subprojects: "%{value} dan subproyeknya"
   label_min_max_length: Panjang Min - Maks
   label_list: Daftar
   label_date: Tanggal
@@ -474,8 +479,8 @@
   label_text: Long text
   label_attribute: Atribut
   label_attribute_plural: Atribut
-  label_download: "{{count}} Unduhan"
-  label_download_plural: "{{count}} Unduhan"
+  label_download: "%{count} Unduhan"
+  label_download_plural: "%{count} Unduhan"
   label_no_data: Tidak ada data untuk ditampilkan
   label_change_status: Status perubahan
   label_history: Riwayat
@@ -507,17 +512,17 @@
   label_closed_issues: selesai
   label_closed_issues_plural: selesai
   label_x_open_issues_abbr_on_total:
-    zero:  0 belum selesai / {{total}}
-    one:   1 belum selesai / {{total}}
-    other: "{{count}} terbuka / {{total}}"
+    zero:  0 belum selesai / %{total}
+    one:   1 belum selesai / %{total}
+    other: "%{count} terbuka / %{total}"
   label_x_open_issues_abbr:
     zero:  0 belum selesai
     one:   1 belum selesai
-    other: "{{count}} belum selesai"
+    other: "%{count} belum selesai"
   label_x_closed_issues_abbr:
     zero:  0 selesai
     one:   1 selesai
-    other: "{{count}} selesai"
+    other: "%{count} selesai"
   label_total: Total
   label_permissions: Perijinan
   label_current_status: Status sekarang
@@ -535,7 +540,7 @@
   label_months_from: dari bulan
   label_gantt: Gantt
   label_internal: Internal
-  label_last_changes: "{{count}} perubahan terakhir"
+  label_last_changes: "%{count} perubahan terakhir"
   label_change_view_all: Tampilkan semua perubahan
   label_personalize_page: Personalkan halaman ini
   label_comment: Komentar
@@ -543,7 +548,7 @@
   label_x_comments:
     zero: tak ada komentar
     one: 1 komentar
-    other: "{{count}} komentar"
+    other: "%{count} komentar"
   label_comment_add: Tambahkan komentar
   label_comment_added: Komentar ditambahkan
   label_comment_delete: Hapus komentar
@@ -564,7 +569,7 @@
   label_yesterday: kemarin
   label_this_week: minggu ini
   label_last_week: minggu lalu
-  label_last_n_days: "{{count}} hari terakhir"
+  label_last_n_days: "%{count} hari terakhir"
   label_this_month: bulan ini
   label_last_month: bulan lalu
   label_this_year: this year
@@ -578,8 +583,8 @@
   label_repository: Repositori
   label_repository_plural: Repositori
   label_browse: Jelajah
-  label_modification: "{{count}} perubahan"
-  label_modification_plural: "{{count}} perubahan"
+  label_modification: "%{count} perubahan"
+  label_modification_plural: "%{count} perubahan"
   label_branch: Cabang
   label_tag: Tag 
   label_revision: Revisi
@@ -600,8 +605,8 @@
   label_sort_lower: Ke bawah
   label_sort_lowest: Ke paling bawah
   label_roadmap: Rencana kerja
-  label_roadmap_due_in: "Harus selesai dalam {{value}}"
-  label_roadmap_overdue: "{{value}} terlambat"
+  label_roadmap_due_in: "Harus selesai dalam %{value}"
+  label_roadmap_overdue: "%{value} terlambat"
   label_roadmap_no_issues: Tak ada masalah pada versi ini
   label_search: Cari
   label_result_plural: Hasil
@@ -619,8 +624,8 @@
   label_changes_details: Rincian semua perubahan
   label_issue_tracking: Pelacak masalah
   label_spent_time: Waktu terpakai
-  label_f_hour: "{{value}} jam"
-  label_f_hour_plural: "{{value}} jam"
+  label_f_hour: "%{value} jam"
+  label_f_hour_plural: "%{value} jam"
   label_time_tracking: Pelacak waktu
   label_change_plural: Perubahan
   label_statistics: Statistik
@@ -669,13 +674,13 @@
   label_date_from: Dari
   label_date_to: Sampai
   label_language_based: Berdasarkan bahasa pengguna
-  label_sort_by: "Urut berdasarkan {{value}}"
+  label_sort_by: "Urut berdasarkan %{value}"
   label_send_test_email: Kirim email percobaan
-  label_feeds_access_key_created_on: "RSS access key dibuat {{value}} yang lalu"
+  label_feeds_access_key_created_on: "RSS access key dibuat %{value} yang lalu"
   label_module_plural: Modul
-  label_added_time_by: "Ditambahkan oleh {{author}} {{age}} yang lalu"
-  label_updated_time_by: "Diperbarui oleh {{author}} {{age}} yang lalu"
-  label_updated_time: "Diperbarui oleh {{value}} yang lalu"
+  label_added_time_by: "Ditambahkan oleh %{author} %{age} yang lalu"
+  label_updated_time_by: "Diperbarui oleh %{author} %{age} yang lalu"
+  label_updated_time: "Diperbarui oleh %{value} yang lalu"
   label_jump_to_a_project: Pilih proyek...
   label_file_plural: Berkas
   label_changeset_plural: Set perubahan
@@ -693,7 +698,7 @@
   label_registration_activation_by_email: aktivasi akun melalui email
   label_registration_manual_activation: aktivasi akun secara manual
   label_registration_automatic_activation: aktivasi akun secara otomatis
-  label_display_per_page: "Per halaman: {{value}}"
+  label_display_per_page: "Per halaman: %{value}"
   label_age: Umur
   label_change_properties: Rincian perubahan
   label_general: Umum
@@ -716,7 +721,7 @@
   label_sort: Urut
   label_ascending: Menaik
   label_descending: Menurun
-  label_date_from_to: Dari {{start}} sampai {{end}}
+  label_date_from_to: Dari %{start} sampai %{end}
   label_wiki_content_added: Halaman wiki ditambahkan
   label_wiki_content_updated: Halaman wiki diperbarui
   label_group: Kelompok
@@ -787,52 +792,52 @@
   text_regexp_info: mis. ^[A-Z0-9]+$
   text_min_max_length_info: 0 berarti tidak ada pembatasan
   text_project_destroy_confirmation: Apakah anda benar-benar akan menghapus proyek ini beserta data terkait ?
-  text_subprojects_destroy_warning: "Subproyek: {{value}} juga akan dihapus."
+  text_subprojects_destroy_warning: "Subproyek: %{value} juga akan dihapus."
   text_workflow_edit: Pilih peran dan pelacak untuk menyunting alur kerja
   text_are_you_sure: Anda yakin ?
-  text_journal_changed: "{{label}} berubah dari {{old}} menjadi {{new}}"
-  text_journal_set_to: "{{label}} di set ke {{value}}"
-  text_journal_deleted: "{{label}} dihapus ({{old}})"
-  text_journal_added: "{{label}} {{value}} ditambahkan"
+  text_journal_changed: "%{label} berubah dari %{old} menjadi %{new}"
+  text_journal_set_to: "%{label} di set ke %{value}"
+  text_journal_deleted: "%{label} dihapus (%{old})"
+  text_journal_added: "%{label} %{value} ditambahkan"
   text_tip_issue_begin_day: tugas dimulai hari itu
   text_tip_issue_end_day: tugas berakhir hari itu
   text_tip_issue_begin_end_day: tugas dimulai dan berakhir hari itu
   text_project_identifier_info: 'Yang diijinkan hanya huruf kecil (a-z), angka dan tanda minus.<br />Sekali disimpan, pengenal tidak bisa diubah.'
-  text_caracters_maximum: "maximum {{count}} karakter."
-  text_caracters_minimum: "Setidaknya harus sepanjang {{count}} karakter."
-  text_length_between: "Panjang diantara {{min}} dan {{max}} karakter."
+  text_caracters_maximum: "maximum %{count} karakter."
+  text_caracters_minimum: "Setidaknya harus sepanjang %{count} karakter."
+  text_length_between: "Panjang diantara %{min} dan %{max} karakter."
   text_tracker_no_workflow: Tidak ada alur kerja untuk pelacak ini
   text_unallowed_characters: Karakter tidak diperbolehkan
   text_comma_separated: Beberapa nilai diperbolehkan (dipisahkan koma).
   text_issues_ref_in_commit_messages: Mereferensikan dan membetulkan masalah pada pesan komit
-  text_issue_added: "Masalah {{id}} sudah dilaporkan oleh {{author}}."
-  text_issue_updated: "Masalah {{id}} sudah diperbarui oleh {{author}}."
+  text_issue_added: "Masalah %{id} sudah dilaporkan oleh %{author}."
+  text_issue_updated: "Masalah %{id} sudah diperbarui oleh %{author}."
   text_wiki_destroy_confirmation: Apakah anda benar-benar akan menghapus wiki ini beserta semua isinya ?
-  text_issue_category_destroy_question: "Beberapa masalah ({{count}}) ditugaskan pada kategori ini. Apa yang anda lakukan ?"
+  text_issue_category_destroy_question: "Beberapa masalah (%{count}) ditugaskan pada kategori ini. Apa yang anda lakukan ?"
   text_issue_category_destroy_assignments: Hapus kategori penugasan
   text_issue_category_reassign_to: Tugaskan kembali masalah untuk kategori ini
   text_user_mail_option: "Untuk proyek yang tidak dipilih, anda hanya akan menerima notifikasi hal-hal yang anda pantau atau anda terlibat di dalamnya (misalnya masalah yang anda tulis atau ditugaskan pada anda)."
   text_no_configuration_data: "Peran, pelacak, status masalah dan alur kerja belum dikonfigur.\nSangat disarankan untuk memuat konfigurasi default. Anda akan bisa mengubahnya setelah konfigurasi dimuat."
   text_load_default_configuration: Muat konfigurasi default
-  text_status_changed_by_changeset: "Diterapkan di set perubahan {{value}}."
+  text_status_changed_by_changeset: "Diterapkan di set perubahan %{value}."
   text_issues_destroy_confirmation: 'Apakah anda yakin untuk menghapus masalah terpilih ?'
   text_select_project_modules: 'Pilih modul untuk diaktifkan pada proyek ini:'
   text_default_administrator_account_changed: Akun administrator default sudah berubah
   text_file_repository_writable: Direktori yang bisa ditulisi untuk lampiran
   text_plugin_assets_writable: Direktori yang bisa ditulisi untuk plugin asset
   text_rmagick_available: RMagick tersedia (optional)
-  text_destroy_time_entries_question: "{{hours}} jam sudah dilaporkan pada masalah yang akan anda hapus. Apa yang akan anda lakukan ?"
+  text_destroy_time_entries_question: "%{hours} jam sudah dilaporkan pada masalah yang akan anda hapus. Apa yang akan anda lakukan ?"
   text_destroy_time_entries: Hapus jam yang terlapor
   text_assign_time_entries_to_project: Tugaskan jam terlapor pada proyek
   text_reassign_time_entries: 'Tugaskan kembali jam terlapor pada masalah ini:'
-  text_user_wrote: "{{value}} menulis:"
-  text_enumeration_destroy_question: "{{count}} obyek ditugaskan untuk nilai ini."
+  text_user_wrote: "%{value} menulis:"
+  text_enumeration_destroy_question: "%{count} obyek ditugaskan untuk nilai ini."
   text_enumeration_category_reassign_to: 'Tugaskan kembali untuk nilai ini:'
   text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/email.yml dan restart kembali aplikasi untuk mengaktifkan."
   text_repository_usernames_mapping: "Pilih atau perbarui pengguna Redmine yang terpetakan ke setiap nama pengguna yang ditemukan di log repositori.\nPengguna dengan nama pengguna dan repositori atau email yang sama  secara otomasit akan dipetakan."
   text_diff_truncated: '... Perbedaan terpotong karena melebihi batas maksimum yang bisa ditampilkan.'
   text_custom_field_possible_values_info: 'Satu baris untuk setiap nilai'
-  text_wiki_page_destroy_question: "Halaman ini mempunyai {{descendants}} halaman anak dan turunannya. Apa yang akan anda lakukan ?"
+  text_wiki_page_destroy_question: "Halaman ini mempunyai %{descendants} halaman anak dan turunannya. Apa yang akan anda lakukan ?"
   text_wiki_page_nullify_children: "Biarkan halaman anak sebagai halaman teratas (root)"
   text_wiki_page_destroy_children: "Hapus halaman anak dan semua turunannya"
   text_wiki_page_reassign_children: "Tujukan halaman anak ke halaman induk yang ini"
@@ -868,13 +873,13 @@
   setting_issue_done_ratio: Calculate the issue done ratio with
   label_api_access_key: API access key
   text_line_separated: Multiple values allowed (one line for each value).
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   permission_view_issues: View Issues
   setting_issue_done_ratio_issue_status: Use the issue status
   error_issue_done_ratios_not_updated: Issue done ratios not updated.
   label_display_used_statuses_only: Only display statuses that are used by this tracker
   error_workflow_copy_target: Please select target tracker(s) and role(s)
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -906,12 +911,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -919,7 +924,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -930,8 +935,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/it.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/it.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,6 +1,7 @@
 # Italian translations for Ruby on Rails 
 # by Claudio Poli (masterkain@gmail.com)
 # by Diego Pierotto (ita.translations@tiscali.it)
+# by Emidio Stani (emidiostani@gmail.com)
 
 it:
   direction: ltr
@@ -37,37 +38,37 @@
       half_a_minute: "mezzo minuto"
       less_than_x_seconds:
         one:  "meno di un secondo"
-        other: "meno di {{count}} secondi"
+        other: "meno di %{count} secondi"
       x_seconds:
         one:  "1 secondo"
-        other: "{{count}} secondi"
+        other: "%{count} secondi"
       less_than_x_minutes:
         one:  "meno di un minuto"
-        other: "meno di {{count}} minuti"
+        other: "meno di %{count} minuti"
       x_minutes:
         one:  "1 minuto"
-        other: "{{count}} minuti"
+        other: "%{count} minuti"
       about_x_hours:
         one:  "circa un'ora"
-        other: "circa {{count}} ore"
+        other: "circa %{count} ore"
       x_days:
         one:  "1 giorno"
-        other: "{{count}} giorni"
+        other: "%{count} giorni"
       about_x_months:
         one:  "circa un mese"
-        other: "circa {{count}} mesi"
+        other: "circa %{count} mesi"
       x_months:
         one:  "1 mese"
-        other: "{{count}} mesi"
+        other: "%{count} mesi"
       about_x_years:
         one:  "circa un anno"
-        other: "circa {{count}} anni"
+        other: "circa %{count} anni"
       over_x_years:
         one:  "oltre un anno"
-        other: "oltre {{count}} anni"
+        other: "oltre %{count} anni"
       almost_x_years:
         one:   "quasi 1 anno"
-        other: "quasi {{count}} anni"
+        other: "quasi %{count} anni"
       
   number:
     format:
@@ -100,8 +101,8 @@
     errors:
       template:
         header: 
-          one: "Non posso salvare questo {{model}}: 1 errore"
-          other: "Non posso salvare questo {{model}}: {{count}} errori."
+          one: "Non posso salvare questo %{model}: 1 errore"
+          other: "Non posso salvare questo %{model}: %{count} errori."
         body: "Per favore ricontrolla i seguenti campi:"
       messages:
         inclusion: "non è incluso nella lista"
@@ -111,22 +112,22 @@
         accepted: "deve essere accettata"
         empty: "non può essere vuoto"
         blank: "non può essere lasciato in bianco"
-        too_long: "è troppo lungo (il massimo è {{count}} lettere)"
-        too_short: "è troppo corto (il minimo è {{count}} lettere)"
-        wrong_length: "è della lunghezza sbagliata (deve essere di {{count}} lettere)"
+        too_long: "è troppo lungo (il massimo è %{count} lettere)"
+        too_short: "è troppo corto (il minimo è %{count} lettere)"
+        wrong_length: "è della lunghezza sbagliata (deve essere di %{count} lettere)"
         taken: "è già in uso"
         not_a_number: "non è un numero"
-        greater_than: "deve essere superiore a {{count}}"
-        greater_than_or_equal_to: "deve essere superiore o uguale a {{count}}"
-        equal_to: "deve essere uguale a {{count}}"
-        less_than: "deve essere meno di {{count}}"
-        less_than_or_equal_to: "deve essere meno o uguale a {{count}}"
+        greater_than: "deve essere superiore a %{count}"
+        greater_than_or_equal_to: "deve essere superiore o uguale a %{count}"
+        equal_to: "deve essere uguale a %{count}"
+        less_than: "deve essere meno di %{count}"
+        less_than_or_equal_to: "deve essere meno o uguale a %{count}"
         odd: "deve essere dispari"
         even: "deve essere pari"
         greater_than_start_date: "deve essere maggiore della data di partenza"
         not_same_project: "non appartiene allo stesso progetto"
         circular_dependency: "Questa relazione creerebbe una dipendenza circolare"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+        cant_link_an_issue_with_a_descendant: "Una segnalazione non può essere collegata a una delle sue discendenti"
 
   actionview_instancetag_blank_option: Scegli
   
@@ -141,11 +142,11 @@
   general_pdf_encoding: ISO-8859-1
   general_first_day_of_week: '1'
   
-  notice_account_updated: L'utente è stata aggiornato.
+  notice_account_updated: L'utente è stato aggiornato.
   notice_account_invalid_creditentials: Nome utente o password non validi.
   notice_account_password_updated: La password è stata aggiornata.
   notice_account_wrong_password: Password errata
-  notice_account_register_done: L'utente è stata creato.
+  notice_account_register_done: L'utente è stato creato.
   notice_account_unknown_email: Utente sconosciuto.
   notice_can_t_change_password: Questo utente utilizza un metodo di autenticazione esterno. Impossibile cambiare la password.
   notice_account_lost_email_sent: Ti è stata spedita una email con le istruzioni per cambiare la password.
@@ -157,20 +158,20 @@
   notice_file_not_found: La pagina desiderata non esiste o è stata rimossa.
   notice_locking_conflict: Le informazioni sono state modificate da un altro utente.
   notice_not_authorized: Non sei autorizzato ad accedere a questa pagina.
-  notice_email_sent: "Una email è stata spedita a {{value}}"
-  notice_email_error: "Si è verificato un errore durante l'invio di una email ({{value}})"
+  notice_email_sent: "Una email è stata spedita a %{value}"
+  notice_email_error: "Si è verificato un errore durante l'invio di una email (%{value})"
   notice_feeds_access_key_reseted: La tua chiave di accesso RSS è stata reimpostata.
   
   error_scm_not_found: "La risorsa e/o la versione non esistono nel repository."
-  error_scm_command_failed: "Si è verificato un errore durante l'accesso al repository: {{value}}"
+  error_scm_command_failed: "Si è verificato un errore durante l'accesso al repository: %{value}"
   
-  mail_subject_lost_password: "Password {{value}}"
+  mail_subject_lost_password: "Password %{value}"
   mail_body_lost_password: 'Per cambiare la password, usa il seguente collegamento:'
-  mail_subject_register: "Attivazione utente {{value}}"
+  mail_subject_register: "Attivazione utente %{value}"
   mail_body_register: "Per attivare l'utente, usa il seguente collegamento:"
   
   gui_validation_error: 1 errore
-  gui_validation_error_plural: "{{count}} errori"
+  gui_validation_error_plural: "%{count} errori"
   
   field_name: Nome
   field_description: Descrizione
@@ -232,6 +233,7 @@
   field_attr_lastname: Attributo cognome
   field_attr_mail: Attributo email
   field_onthefly: Creazione utente "al volo"
+  field_start_date: Inizio
   field_done_ratio: % completato
   field_auth_source: Modalità di autenticazione
   field_hide_mail: Nascondi il mio indirizzo email
@@ -281,7 +283,7 @@
   label_x_projects:
     zero:  nessun progetto
     one:   1 progetto
-    other: "{{count}} progetti"
+    other: "%{count} progetti"
   label_project_all: Tutti i progetti
   label_project_latest: Ultimi progetti registrati
   label_issue: Segnalazione
@@ -348,8 +350,8 @@
   label_text: Testo esteso
   label_attribute: Attributo
   label_attribute_plural: Attributi
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Download"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Download"
   label_no_data: Nessun dato disponibile
   label_change_status: Cambia stato
   label_history: Cronologia
@@ -378,17 +380,17 @@
   label_closed_issues: chiusa
   label_closed_issues_plural: chiuse
   label_x_open_issues_abbr_on_total:
-    zero:  0 aperte / {{total}}
-    one:   1 aperta / {{total}}
-    other: "{{count}} aperte / {{total}}"
+    zero:  0 aperte / %{total}
+    one:   1 aperta / %{total}
+    other: "%{count} aperte / %{total}"
   label_x_open_issues_abbr:
     zero:  0 aperte
     one:   1 aperta
-    other: "{{count}} aperte"
+    other: "%{count} aperte"
   label_x_closed_issues_abbr:
     zero:  0 chiuse
     one:   1 chiusa
-    other: "{{count}} chiuse"
+    other: "%{count} chiuse"
   label_total: Totale
   label_permissions: Permessi
   label_current_status: Stato attuale
@@ -405,7 +407,7 @@
   label_months_from: mesi da
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "ultime {{count}} modifiche"
+  label_last_changes: "ultime %{count} modifiche"
   label_change_view_all: Tutte le modifiche
   label_personalize_page: Personalizza la pagina
   label_comment: Commento
@@ -413,7 +415,7 @@
   label_x_comments:
     zero: nessun commento
     one: 1 commento
-    other: "{{count}} commenti"
+    other: "%{count} commenti"
   label_comment_add: Aggiungi un commento
   label_comment_added: Commento aggiunto
   label_comment_delete: Elimina commenti
@@ -437,8 +439,8 @@
   label_day_plural: giorni
   label_repository: Repository
   label_browse: Sfoglia
-  label_modification: "{{count}} modifica"
-  label_modification_plural: "{{count}} modifiche"
+  label_modification: "%{count} modifica"
+  label_modification_plural: "%{count} modifiche"
   label_revision: Versione
   label_revision_plural: Versioni
   label_added: aggiunto
@@ -453,15 +455,15 @@
   label_sort_lower: Giù
   label_sort_lowest: Sposta in fondo
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Da ultimare in {{value}}"
-  label_roadmap_overdue: "{{value}} di ritardo"
+  label_roadmap_due_in: "Da ultimare in %{value}"
+  label_roadmap_overdue: "%{value} di ritardo"
   label_roadmap_no_issues: Nessuna segnalazione per questa versione
   label_search: Ricerca
   label_result_plural: Risultati
   label_all_words: Tutte le parole
   label_wiki: Wiki
   label_wiki_edit: Modifica wiki
-  label_wiki_edit_plural: Modfiche wiki
+  label_wiki_edit_plural: Modifiche wiki
   label_wiki_page: Pagina Wiki
   label_wiki_page_plural: Pagine wiki
   label_index_by_title: Ordina per titolo
@@ -472,8 +474,8 @@
   label_changes_details: Particolari di tutti i cambiamenti
   label_issue_tracking: Tracking delle segnalazioni
   label_spent_time: Tempo impiegato
-  label_f_hour: "{{value}} ora"
-  label_f_hour_plural: "{{value}} ore"
+  label_f_hour: "%{value} ora"
+  label_f_hour_plural: "%{value} ore"
   label_time_tracking: Tracking del tempo
   label_change_plural: Modifiche
   label_statistics: Statistiche
@@ -520,12 +522,12 @@
   label_date_from: Da
   label_date_to: A
   label_language_based: Basato sul linguaggio
-  label_sort_by: "Ordina per {{value}}"
+  label_sort_by: "Ordina per %{value}"
   label_send_test_email: Invia una email di prova
-  label_feeds_access_key_created_on: "chiave di accesso RSS creata {{value}} fa"
+  label_feeds_access_key_created_on: "chiave di accesso RSS creata %{value} fa"
   label_module_plural: Moduli
-  label_added_time_by: "Aggiunto da {{author}} {{age}} fa"
-  label_updated_time: "Aggiornato {{value}} fa"
+  label_added_time_by: "Aggiunto da %{author} %{age} fa"
+  label_updated_time: "Aggiornato %{value} fa"
   label_jump_to_a_project: Vai al progetto...
   
   button_login: Entra
@@ -575,16 +577,16 @@
   text_tip_issue_end_day: attività che terminano in questa giornata
   text_tip_issue_begin_end_day: attività che iniziano e terminano in questa giornata
   text_project_identifier_info: "Lettere minuscole (a-z), numeri e trattini permessi.<br />Una volta salvato, l'identificativo non può essere modificato."
-  text_caracters_maximum: "massimo {{count}} caratteri."
-  text_length_between: "Lunghezza compresa tra {{min}} e {{max}} caratteri."
+  text_caracters_maximum: "massimo %{count} caratteri."
+  text_length_between: "Lunghezza compresa tra %{min} e %{max} caratteri."
   text_tracker_no_workflow: Nessun workflow definito per questo tracker
   text_unallowed_characters: Caratteri non permessi
   text_comma_separated: Valori multipli permessi (separati da virgole).
   text_issues_ref_in_commit_messages: Segnalazioni di riferimento e chiusura nei messaggi di commit
-  text_issue_added: "E' stata segnalata l'anomalia {{id}} da {{author}}."
-  text_issue_updated: "L'anomalia {{id}} è stata aggiornata da {{author}}."
+  text_issue_added: "E' stata segnalata l'anomalia %{id} da %{author}."
+  text_issue_updated: "L'anomalia %{id} è stata aggiornata da %{author}."
   text_wiki_destroy_confirmation: Sicuro di voler eliminare questo wiki e tutti i suoi contenuti?
-  text_issue_category_destroy_question: "Alcune segnalazioni ({{count}}) risultano assegnate a questa categoria. Cosa vuoi fare ?"
+  text_issue_category_destroy_question: "Alcune segnalazioni (%{count}) risultano assegnate a questa categoria. Cosa vuoi fare ?"
   text_issue_category_destroy_assignments: Rimuovi le assegnazioni a questa categoria
   text_issue_category_reassign_to: Riassegna segnalazioni a questa categoria
   
@@ -622,7 +624,7 @@
   notice_no_issue_selected: "Nessuna segnalazione selezionata! Seleziona le segnalazioni che intendi modificare."
   label_bulk_edit_selected_issues: Modifica massiva delle segnalazioni selezionate
   label_no_change_option: (Nessuna modifica)
-  notice_failed_to_save_issues: "Impossibile salvare {{count}} segnalazioni su {{total}} selezionate: {{ids}}."
+  notice_failed_to_save_issues: "Impossibile salvare %{count} segnalazioni su %{total} selezionate: %{ids}."
   label_theme: Tema
   label_default: Predefinito
   label_search_titles_only: Cerca solo nei titoli
@@ -634,37 +636,37 @@
   setting_emails_footer: Piè di pagina email
   label_float: Decimale
   button_copy: Copia
-  mail_body_account_information_external: "Puoi utilizzare il tuo account {{value}} per accedere al sistema."
+  mail_body_account_information_external: "Puoi utilizzare il tuo account %{value} per accedere al sistema."
   mail_body_account_information: Le informazioni riguardanti il tuo account
   setting_protocol: Protocollo
   label_user_mail_no_self_notified: "Non voglio notifiche riguardanti modifiche da me apportate"
   setting_time_format: Formato ora
   label_registration_activation_by_email: attivazione account via email
-  mail_subject_account_activation_request: "{{value}} richiesta attivazione account"
-  mail_body_account_activation_request: "Un nuovo utente ({{value}}) ha effettuato la registrazione. Il suo account è in attesa di abilitazione da parte tua:"
+  mail_subject_account_activation_request: "%{value} richiesta attivazione account"
+  mail_body_account_activation_request: "Un nuovo utente (%{value}) ha effettuato la registrazione. Il suo account è in attesa di abilitazione da parte tua:"
   label_registration_automatic_activation: attivazione account automatica
   label_registration_manual_activation: attivazione account manuale
   notice_account_pending: "Il tuo account è stato creato ed è in attesa di attivazione da parte dell'amministratore."
   field_time_zone: Fuso orario
-  text_caracters_minimum: "Deve essere lungo almeno {{count}} caratteri."
+  text_caracters_minimum: "Deve essere lungo almeno %{count} caratteri."
   setting_bcc_recipients: Destinatari in copia nascosta (bcc)
   button_annotate: Annota
-  label_issues_by: "Segnalazioni di {{value}}"
+  label_issues_by: "Segnalazioni di %{value}"
   field_searchable: Ricercabile
-  label_display_per_page: "Per pagina: {{value}}"
+  label_display_per_page: "Per pagina: %{value}"
   setting_per_page_options: Opzioni oggetti per pagina
   label_age: Età
   notice_default_data_loaded: Configurazione predefinita caricata con successo.
   text_load_default_configuration: Carica la configurazione predefinita
   text_no_configuration_data: "Ruoli, tracker, stati delle segnalazioni e workflow non sono stati ancora configurati.\nE' vivamente consigliato caricare la configurazione predefinita. Potrai modificarla una volta caricata."
-  error_can_t_load_default_data: "Non è stato possibile caricare la configurazione predefinita : {{value}}"
+  error_can_t_load_default_data: "Non è stato possibile caricare la configurazione predefinita : %{value}"
   button_update: Aggiorna
   label_change_properties: Modifica le proprietà
   label_general: Generale
   label_repository_plural: Repository
   label_associated_revisions: Revisioni associate
   setting_user_format: Formato visualizzazione utenti
-  text_status_changed_by_changeset: "Applicata nel changeset {{value}}."
+  text_status_changed_by_changeset: "Applicata nel changeset %{value}."
   label_more: Altro
   text_issues_destroy_confirmation: 'Sei sicuro di voler eliminare le segnalazioni selezionate?'
   label_scm: SCM
@@ -691,7 +693,7 @@
   label_ldap_authentication: Autenticazione LDAP
   label_downloads_abbr: D/L
   label_this_month: questo mese
-  label_last_n_days: "ultimi {{count}} giorni"
+  label_last_n_days: "ultimi %{count} giorni"
   label_all_time: sempre
   label_this_year: quest'anno
   label_date_range: Intervallo di date
@@ -700,7 +702,7 @@
   label_last_month: ultimo mese
   label_add_another_file: Aggiungi un altro file
   label_optional_description: Descrizione opzionale
-  text_destroy_time_entries_question: "{{hours}} ore risultano spese sulle segnalazioni che stai per eliminare. Cosa vuoi fare ?"
+  text_destroy_time_entries_question: "%{hours} ore risultano spese sulle segnalazioni che stai per eliminare. Cosa vuoi fare ?"
   error_issue_not_found_in_project: 'La segnalazione non è stata trovata o non appartiene al progetto'
   text_assign_time_entries_to_project: Assegna le ore segnalate al progetto
   text_destroy_time_entries: Elimina le ore segnalate
@@ -715,15 +717,15 @@
   setting_default_projects_public: I nuovi progetti sono pubblici in modo predefinito
   error_scm_annotate: "L'oggetto non esiste o non può essere annotato."
   label_planning: Pianificazione
-  text_subprojects_destroy_warning: "Anche i suoi sottoprogetti: {{value}} verranno eliminati."
-  label_and_its_subprojects: "{{value}} ed i suoi sottoprogetti"
-  mail_body_reminder: "{{count}} segnalazioni che ti sono state assegnate scadranno nei prossimi {{days}} giorni:"
-  mail_subject_reminder: "{{count}} segnalazioni in scadenza nei prossimi {{days}} giorni"
-  text_user_wrote: "{{value}} ha scritto:"
+  text_subprojects_destroy_warning: "Anche i suoi sottoprogetti: %{value} verranno eliminati."
+  label_and_its_subprojects: "%{value} ed i suoi sottoprogetti"
+  mail_body_reminder: "%{count} segnalazioni che ti sono state assegnate scadranno nei prossimi %{days} giorni:"
+  mail_subject_reminder: "%{count} segnalazioni in scadenza nei prossimi %{days} giorni"
+  text_user_wrote: "%{value} ha scritto:"
   label_duplicated_by: duplicato da
   setting_enabled_scm: SCM abilitato
   text_enumeration_category_reassign_to: 'Riassegnale a questo valore:'
-  text_enumeration_destroy_question: "{{count}} oggetti hanno un assegnamento su questo valore."
+  text_enumeration_destroy_question: "%{count} oggetti hanno un assegnamento su questo valore."
   label_incoming_emails: Email in arrivo
   label_generate_key: Genera una chiave
   setting_mail_handler_api_enabled: Abilita WS per le email in arrivo
@@ -789,12 +791,12 @@
   text_repository_usernames_mapping: "Seleziona per aggiornare la corrispondenza tra gli utenti Redmine e quelli presenti nel log del repository.\nGli utenti Redmine e repository con lo stesso note utente o email sono mappati automaticamente."
   permission_edit_own_messages: Modifica propri messaggi
   permission_delete_own_messages: Elimina propri messaggi
-  label_user_activity: "attività di {{value}}"
-  label_updated_time_by: "Aggiornato da {{author}} {{age}} fa"
+  label_user_activity: "attività di %{value}"
+  label_updated_time_by: "Aggiornato da %{author} %{age} fa"
   text_diff_truncated: '... Le differenze sono state troncate perchè superano il limite massimo visualizzabile.'
   setting_diff_max_lines_displayed: Limite massimo di differenze (linee) mostrate
   text_plugin_assets_writable: Directory attività dei plugins scrivibile
-  warning_attachments_not_saved: "{{count}} file non possono essere salvati."
+  warning_attachments_not_saved: "%{count} file non possono essere salvati."
   button_create_and_continue: Crea e continua
   text_custom_field_possible_values_info: 'Un valore per ogni riga'
   label_display: Mostra
@@ -809,21 +811,21 @@
   label_descending: Discendente
   label_sort: Ordina
   label_ascending: Ascendente
-  label_date_from_to: Da {{start}} a {{end}}
+  label_date_from_to: Da %{start} a %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Questa pagina ha {{descendants}} pagine figlie. Cosa ne vuoi fare?
+  text_wiki_page_destroy_question: Questa pagina ha %{descendants} pagine figlie. Cosa ne vuoi fare?
   text_wiki_page_reassign_children: Riassegna le pagine figlie al padre di questa pagina
   text_wiki_page_nullify_children: Mantieni le pagine figlie come pagine radice
   text_wiki_page_destroy_children: Elimina le pagine figlie e tutta la discendenza
   setting_password_min_length: Lunghezza minima password
   field_group_by: Raggruppa risultati per
-  mail_subject_wiki_content_updated: "La pagina wiki '{{id}}' è stata aggiornata"
+  mail_subject_wiki_content_updated: "La pagina wiki '%{id}' è stata aggiornata"
   label_wiki_content_added: Aggiunta pagina al wiki
-  mail_subject_wiki_content_added: "La pagina '{{id}}' è stata aggiunta al wiki"
-  mail_body_wiki_content_added: La pagina '{{id}}' è stata aggiunta al wiki da {{author}}.
+  mail_subject_wiki_content_added: "La pagina '%{id}' è stata aggiunta al wiki"
+  mail_body_wiki_content_added: La pagina '%{id}' è stata aggiunta al wiki da %{author}.
   label_wiki_content_updated: Aggiornata pagina wiki
-  mail_body_wiki_content_updated: La pagina '{{id}}' wiki è stata aggiornata da{{author}}.
+  mail_body_wiki_content_updated: La pagina '%{id}' wiki è stata aggiornata da%{author}.
   permission_add_project: Crea progetto
   setting_new_project_user_role_id: Ruolo assegnato agli utenti non amministratori che creano un progetto
   label_view_all_revisions: Mostra tutte le revisioni
@@ -831,14 +833,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nessun tracker è associato a questo progetto. Per favore verifica le impostazioni del Progetto.
   error_no_default_issue_status: Nessuno stato predefinito delle segnalazioni è configurato. Per favore verifica le impostazioni (Vai in "Amministrazione -> Stati segnalazioni").
-  text_journal_changed: "{{label}} modificata da {{old}} a {{new}}"
-  text_journal_set_to: "{{label}} impostata a {{value}}"
-  text_journal_deleted: "{{label}} eliminata ({{old}})"
+  text_journal_changed: "%{label} modificata da %{old} a %{new}"
+  text_journal_set_to: "%{label} impostata a %{value}"
+  text_journal_deleted: "%{label} eliminata (%{old})"
   label_group_plural: Gruppi
   label_group: Gruppo
   label_group_new: Nuovo gruppo
   label_time_entry_plural: Tempo impiegato
-  text_journal_added: "{{value}} {{label}} aggiunto"
+  text_journal_added: "%{value} %{label} aggiunto"
   field_active: Attivo
   enumeration_system_activity: Attività di sistema
   permission_delete_issue_watchers: Elimina osservatori
@@ -873,9 +875,9 @@
   setting_start_of_week: Avvia calendari il
   permission_view_issues: Mostra segnalazioni
   label_display_used_statuses_only: Mostra solo stati che vengono usati per questo tracker
-  label_revision_id: Revisione {{value}}
+  label_revision_id: Revisione %{value}
   label_api_access_key: Chiave di accesso API
-  label_api_access_key_created_on: Chiave di accesso API creata {{value}} fa
+  label_api_access_key_created_on: Chiave di accesso API creata %{value} fa
   label_feeds_access_key: Chiave di accesso RSS
   notice_api_access_key_reseted: La chiave di accesso API è stata reimpostata.
   setting_rest_api_enabled: Abilita il servizio web REST
@@ -902,32 +904,36 @@
   label_subtask_plural: Sottoattività
   label_project_copy_notifications: Invia notifiche email durante la copia del progetto
   error_can_not_delete_custom_field: Impossibile eliminare il campo personalizzato
-  error_unable_to_connect: Impossibile connettersi ({{value}})
+  error_unable_to_connect: Impossibile connettersi (%{value})
   error_can_not_remove_role: Questo ruolo è in uso e non può essere eliminato.
   error_can_not_delete_tracker: Questo tracker contiene segnalazioni e non può essere eliminato.
   field_principal: Principale
   label_my_page_block: La mia pagina di blocco
-  notice_failed_to_save_members: "Impossibile salvare il membro(i): {{errors}}."
+  notice_failed_to_save_members: "Impossibile salvare il membro(i): %{errors}."
   text_zoom_out: Riduci ingrandimento
   text_zoom_in: Aumenta ingrandimento
   notice_unable_delete_time_entry: Impossibile eliminare il valore time log.
   label_overall_spent_time: Totale tempo impiegato
-  field_time_entries: Log time
+  field_time_entries: Tempo di collegamento
   project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  project_module_calendar: Calendario
+  button_edit_associated_wikipage: "Modifica la pagina wiki associata: %{page_title}"
+  text_are_you_sure_with_children: Eliminare la segnalazione e tutte le discendenti?
+  field_text: Campo di testo
+  label_user_mail_option_only_owner: Solo se io sono il proprietario
+  setting_default_notification_option: Opzione di notifica predefinita
+  label_user_mail_option_only_my_events: Solo se sono un osservatore o sono coinvolto
+  label_user_mail_option_only_assigned: Solo quando mi assegnano attività
+  label_user_mail_option_none: Nessun evento
+  field_member_of_group: Gruppo dell'assegnatario
+  field_assigned_to_role: Ruolo dell'assegnatario
+  notice_not_authorized_archived_project: Il progetto a cui stai accedendo è stato archiviato.
+  label_principal_search: "Cerca utente o gruppo:"
+  label_user_search: "Cerca utente:"
+  field_visible: Visibile
+  setting_emails_header: Intestazione email
+  setting_commit_logtime_activity_id: Attività per il tempo di collegamento
+  text_time_logged_by_changeset: Usato nel changeset %{value}.
+  setting_commit_logtime_enabled: Abilita registrazione del tempo di collegamento
+  notice_gantt_chart_truncated: Il grafico è stato troncato perchè eccede il numero di oggetti (%{max}) da visualizzare
+  setting_gantt_items_limit: Massimo numero di oggetti da visualizzare sul diagramma di gantt
--- a/config/locales/ja.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/ja.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -36,37 +36,37 @@
       half_a_minute: "30ç§’å‰å¾Œ"
       less_than_x_seconds:
         one:   "1秒以内"
-        other: "{{count}}秒以内"
+        other: "%{count}秒以内"
       x_seconds:
         one:   "1ç§’"
-        other: "{{count}}ç§’"
+        other: "%{count}ç§’"
       less_than_x_minutes:
         one:   "1分以内"
-        other: "{{count}}分以内"
+        other: "%{count}分以内"
       x_minutes:
         one:   "1分"
-        other: "{{count}}分"
+        other: "%{count}分"
       about_x_hours:
         one:   "約1時間"
-        other: "約{{count}}時間"
+        other: "約%{count}時間"
       x_days:
         one:   "1æ—¥"
-        other: "{{count}}æ—¥"
+        other: "%{count}æ—¥"
       about_x_months:
         one:   "約1ヶ月"
-        other: "約{{count}}ヶ月"
+        other: "約%{count}ヶ月"
       x_months:
         one:   "1ヶ月"
-        other: "{{count}}ヶ月"
+        other: "%{count}ヶ月"
       about_x_years:
         one:   "ç´„1å¹´"
-        other: "ç´„{{count}}å¹´"
+        other: "ç´„%{count}å¹´"
       over_x_years:
         one:   "1年以上"
-        other: "{{count}}年以上"
+        other: "%{count}年以上"
       almost_x_years:
         one:   "ã»ã¼1å¹´"
-        other: "ã»ã¼{{count}}å¹´"
+        other: "ã»ã¼%{count}å¹´"
 
   number:
     format:
@@ -116,8 +116,8 @@
     errors:
       template:
         header:
-          one:   "{{model}} ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-          other: "{{model}} ã« {{count}} ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+          one:   "%{model} ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+          other: "%{model} ã« %{count} ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
         body: "次ã®é …目を確èªã—ã¦ãã ã•ã„。"
 
       messages:
@@ -128,17 +128,17 @@
         accepted: "ã‚’å—諾ã—ã¦ãã ã•ã„。"
         empty: "を入力ã—ã¦ãã ã•ã„。"
         blank: "を入力ã—ã¦ãã ã•ã„。"
-        too_long: "ã¯{{count}}文字以内ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
-        too_short: "ã¯{{count}}文字以上ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
-        wrong_length: "ã¯{{count}}文字ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        too_long: "ã¯%{count}文字以内ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        too_short: "ã¯%{count}文字以上ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
+        wrong_length: "ã¯%{count}文字ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
         taken: "ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚"
         not_a_number: "ã¯æ•°å€¤ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"
         not_a_date: "ã¯æ—¥ä»˜ã‚’入力ã—ã¦ãã ã•ã„。"
-        greater_than: "ã¯{{count}}より大ãã„値ã«ã—ã¦ãã ã•ã„。"
-        greater_than_or_equal_to: "ã¯{{count}}以上ã®å€¤ã«ã—ã¦ãã ã•ã„。"
-        equal_to: "ã¯{{count}}ã«ã—ã¦ãã ã•ã„。"
-        less_than: "ã¯{{count}}よりå°ã•ã„値ã«ã—ã¦ãã ã•ã„。"
-        less_than_or_equal_to: "ã¯{{count}}以下ã®å€¤ã«ã—ã¦ãã ã•ã„。"
+        greater_than: "ã¯%{count}より大ãã„値ã«ã—ã¦ãã ã•ã„。"
+        greater_than_or_equal_to: "ã¯%{count}以上ã®å€¤ã«ã—ã¦ãã ã•ã„。"
+        equal_to: "ã¯%{count}ã«ã—ã¦ãã ã•ã„。"
+        less_than: "ã¯%{count}よりå°ã•ã„値ã«ã—ã¦ãã ã•ã„。"
+        less_than_or_equal_to: "ã¯%{count}以下ã®å€¤ã«ã—ã¦ãã ã•ã„。"
         odd: "ã¯å¥‡æ•°ã«ã—ã¦ãã ã•ã„。"
         even: "ã¯å¶æ•°ã«ã—ã¦ãã ã•ã„。"
         greater_than_start_date: "を開始日より後ã«ã—ã¦ãã ã•ã„"
@@ -176,29 +176,30 @@
   notice_locking_conflict: 別ã®ãƒ¦ãƒ¼ã‚¶ãŒãƒ‡ãƒ¼ã‚¿ã‚’æ›´æ–°ã—ã¦ã„ã¾ã™ã€‚
   notice_not_authorized: ã“ã®ãƒšãƒ¼ã‚¸ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯èªè¨¼ãŒå¿…è¦ã§ã™ã€‚
   notice_not_authorized_archived_project: ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã¯æ›¸åº«ã«ä¿å­˜ã•れã¦ã„ã¾ã™ã€‚
-  notice_email_sent: "{{value}} å®›ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚"
-  notice_email_error: "メールé€ä¿¡ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠({{value}})"
+  notice_email_sent: "%{value} å®›ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚"
+  notice_email_error: "メールé€ä¿¡ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠(%{value})"
   notice_feeds_access_key_reseted: RSSã‚¢ã‚¯ã‚»ã‚¹ã‚­ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã—ãŸã€‚
   notice_api_access_key_reseted: APIã‚¢ã‚¯ã‚»ã‚¹ã‚­ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã—ãŸã€‚
-  notice_failed_to_save_issues: "{{total}}ä»¶ã®ã†ã¡{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ: {{ids}}."
-  notice_failed_to_save_members: "メンãƒãƒ¼ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ: {{errors}}."
+  notice_failed_to_save_issues: "%{total}ä»¶ã®ã†ã¡%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{ids}."
+  notice_failed_to_save_members: "メンãƒãƒ¼ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ: %{errors}."
   notice_no_issue_selected: "ãƒã‚±ãƒƒãƒˆãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“! 更新対象ã®ãƒã‚±ãƒƒãƒˆã‚’é¸æŠžã—ã¦ãã ã•ã„。"
   notice_account_pending: アカウントã¯ä½œæˆæ¸ˆã¿ã§ã€ç®¡ç†è€…ã®æ‰¿èªå¾…ã¡ã§ã™ã€‚
   notice_default_data_loaded: デフォルト設定をロードã—ã¾ã—ãŸã€‚
   notice_unable_delete_version: ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’削除ã§ãã¾ã›ã‚“
   notice_unable_delete_time_entry: 作業時間を削除ã§ãã¾ã›ã‚“
   notice_issue_done_ratios_updated: ãƒã‚±ãƒƒãƒˆã®é€²æ—ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚
+  notice_gantt_chart_truncated: ガントãƒãƒ£ãƒ¼ãƒˆã¯ã€æœ€å¤§è¡¨ç¤ºé …目数(%{max})ã‚’è¶…ãˆãŸãŸãŸã‚切りæ¨ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚
   
-  error_can_t_load_default_data: "デフォルト設定ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: {{value}}"
+  error_can_t_load_default_data: "デフォルト設定ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: %{value}"
   error_scm_not_found: リãƒã‚¸ãƒˆãƒªã«ã€ã‚¨ãƒ³ãƒˆãƒª/リビジョンãŒå­˜åœ¨ã—ã¾ã›ã‚“。
-  error_scm_command_failed: "リãƒã‚¸ãƒˆãƒªã¸ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¦ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã—ãŸ: {{value}}"
+  error_scm_command_failed: "リãƒã‚¸ãƒˆãƒªã¸ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¦ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã—ãŸ: %{value}"
   error_scm_annotate: "エントリãŒå­˜åœ¨ã—ãªã„ã€ã‚‚ã—ãã¯ã‚¢ãƒŽãƒ†ãƒ¼ãƒˆã§ãã¾ã›ã‚“。"
   error_issue_not_found_in_project: 'ãƒã‚±ãƒƒãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã€ã‚‚ã—ãã¯ã“ã®ãƒ—ロジェクトã«å±žã—ã¦ã„ã¾ã›ã‚“'
   error_unable_delete_issue_status: "ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
   error_no_tracker_in_project: 'ã“ã®ãƒ—ロジェクトã«ã¯ãƒˆãƒ©ãƒƒã‚«ãƒ¼ãŒç™»éŒ²ã•れã¦ã„ã¾ã›ã‚“。プロジェクト設定を確èªã—ã¦ãã ã•ã„。'
   error_no_default_issue_status: 'デフォルトã®ãƒã‚±ãƒƒãƒˆã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“。設定を確èªã—ã¦ãã ã•ã„(管ç†â†’ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ï¼‰ã€‚'
   error_can_not_delete_custom_field: 'カスタムフィールドを削除ã§ãã¾ã›ã‚“。'
-  error_unable_to_connect: "接続ã§ãã¾ã›ã‚“。 ({{value}})"
+  error_unable_to_connect: "接続ã§ãã¾ã›ã‚“。 (%{value})"
   error_can_not_remove_role: 'ã“ã®ãƒ­ãƒ¼ãƒ«ã¯ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚削除ã§ãã¾ã›ã‚“。'
   error_can_not_reopen_issue_on_closed_version: '終了ã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã²ã‚‚付ã‘ã•れãŸãƒã‚±ãƒƒãƒˆã®å†ã‚ªãƒ¼ãƒ—ンã¯ã§ãã¾ã›ã‚“。'
   error_can_not_archive_project: ã“ã®ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã¯æ›¸åº«ã«ä¿å­˜ã§ãã¾ã›ã‚“
@@ -207,25 +208,25 @@
   error_workflow_copy_target: 'コピー先ã¨ãªã‚‹ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã¨ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„'
   error_can_not_delete_tracker: 'ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã¯ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚削除ã§ãã¾ã›ã‚“。'
   
-  warning_attachments_not_saved: "{{count}}å€‹ã®æ·»ä»˜ãƒ•ァイルãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
+  warning_attachments_not_saved: "%{count}å€‹ã®æ·»ä»˜ãƒ•ァイルãŒä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚"
   
-  mail_subject_lost_password: "{{value}} パスワードå†ç™ºè¡Œ"
+  mail_subject_lost_password: "%{value} パスワードå†ç™ºè¡Œ"
   mail_body_lost_password: 'パスワードを変更ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ãƒªãƒ³ã‚¯ã‚’クリックã—ã¦ãã ã•ã„:'
-  mail_subject_register: "{{value}} アカウント登録ã®ç¢ºèª"
+  mail_subject_register: "%{value} アカウント登録ã®ç¢ºèª"
   mail_body_register: 'アカウント登録を完了ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’クリックã—ã¦ãã ã•ã„:'
-  mail_body_account_information_external: "{{value}} アカウントを使ã£ã¦ã«ãƒ­ã‚°ã‚¤ãƒ³ã§ãã¾ã™ã€‚"
+  mail_body_account_information_external: "%{value} アカウントを使ã£ã¦ã«ãƒ­ã‚°ã‚¤ãƒ³ã§ãã¾ã™ã€‚"
   mail_body_account_information: アカウント情報
-  mail_subject_account_activation_request: "{{value}} ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æ‰¿èªè¦æ±‚"
-  mail_body_account_activation_request: "æ–°ã—ã„ユーザ {{value}} ãŒç™»éŒ²ã•れã¾ã—ãŸã€‚ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ã‚ãªãŸã®æ‰¿èªå¾…ã¡ã§ã™ï¼š"
-  mail_subject_reminder: "{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ{{days}}日以内ã«åˆ°æ¥ã—ã¾ã™"
-  mail_body_reminder: "{{count}}ä»¶ã®æ‹…当ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ{{days}}日以内ã«åˆ°æ¥ã—ã¾ã™:"
-  mail_subject_wiki_content_added: "Wikiページ {{id}} ãŒè¿½åŠ ã•れã¾ã—ãŸ"
-  mail_body_wiki_content_added: "{{author}} ã«ã‚ˆã£ã¦Wikiページ {{id}} ãŒè¿½åŠ ã•れã¾ã—ãŸã€‚"
-  mail_subject_wiki_content_updated: "Wikiページ {{id}} ãŒæ›´æ–°ã•れã¾ã—ãŸ"
-  mail_body_wiki_content_updated: "{{author}} ã«ã‚ˆã£ã¦Wikiページ {{id}} ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚"
+  mail_subject_account_activation_request: "%{value} ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æ‰¿èªè¦æ±‚"
+  mail_body_account_activation_request: "æ–°ã—ã„ユーザ %{value} ãŒç™»éŒ²ã•れã¾ã—ãŸã€‚ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ã‚ãªãŸã®æ‰¿èªå¾…ã¡ã§ã™ï¼š"
+  mail_subject_reminder: "%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ%{days}日以内ã«åˆ°æ¥ã—ã¾ã™"
+  mail_body_reminder: "%{count}ä»¶ã®æ‹…当ãƒã‚±ãƒƒãƒˆã®æœŸæ—¥ãŒ%{days}日以内ã«åˆ°æ¥ã—ã¾ã™:"
+  mail_subject_wiki_content_added: "Wikiページ %{id} ãŒè¿½åŠ ã•れã¾ã—ãŸ"
+  mail_body_wiki_content_added: "%{author} ã«ã‚ˆã£ã¦Wikiページ %{id} ãŒè¿½åŠ ã•れã¾ã—ãŸã€‚"
+  mail_subject_wiki_content_updated: "Wikiページ %{id} ãŒæ›´æ–°ã•れã¾ã—ãŸ"
+  mail_body_wiki_content_updated: "%{author} ã«ã‚ˆã£ã¦Wikiページ %{id} ãŒæ›´æ–°ã•れã¾ã—ãŸã€‚"
   
   gui_validation_error: 1ä»¶ã®ã‚¨ãƒ©ãƒ¼
-  gui_validation_error_plural: "{{count}}ä»¶ã®ã‚¨ãƒ©ãƒ¼"
+  gui_validation_error_plural: "%{count}ä»¶ã®ã‚¨ãƒ©ãƒ¼"
   
   field_name: åç§°
   field_description: 説明
@@ -288,6 +289,7 @@
   field_attr_lastname: 苗字属性
   field_attr_mail: メール属性
   field_onthefly: ã‚ã‚ã›ã¦ãƒ¦ãƒ¼ã‚¶ã‚’作æˆ
+  field_start_date: é–‹å§‹æ—¥
   field_done_ratio: é€²æ— %
   field_auth_source: èªè¨¼æ–¹å¼
   field_hide_mail: メールアドレスを隠ã™
@@ -322,6 +324,7 @@
   field_member_of_group: 担当者ã®ã‚°ãƒ«ãƒ¼ãƒ—
   field_assigned_to_role: 担当者ã®ãƒ­ãƒ¼ãƒ«
   field_text: テキスト
+  field_visible: 表示
   
   setting_app_title: アプリケーションã®ã‚¿ã‚¤ãƒˆãƒ«
   setting_app_subtitle: アプリケーションã®ã‚µãƒ–タイトル
@@ -351,6 +354,7 @@
   setting_issue_list_default_columns: ãƒã‚±ãƒƒãƒˆã®ä¸€è¦§ã§è¡¨ç¤ºã™ã‚‹é …ç›®
   setting_repositories_encodings: リãƒã‚¸ãƒˆãƒªã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
   setting_commit_logs_encoding: コミットメッセージã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
+  setting_emails_header: メールã®ãƒ˜ãƒƒãƒ€
   setting_emails_footer: メールã®ãƒ•ッタ
   setting_protocol: プロトコル
   setting_per_page_options: ページ毎ã®è¡¨ç¤ºä»¶æ•°
@@ -377,6 +381,9 @@
   setting_start_of_week: 週ã®é–‹å§‹æ›œæ—¥
   setting_rest_api_enabled: RESTã«ã‚ˆã‚‹Webサービスを有効ã«ã™ã‚‹
   setting_default_notification_option: デフォルトã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã‚ªãƒ—ション
+  setting_commit_logtime_enabled: コミット時ã«ä½œæ¥­æ™‚間を記録ã™ã‚‹
+  setting_commit_logtime_activity_id: 作業時間ã®ä½œæ¥­åˆ†é¡ž
+  setting_gantt_items_limit: ガントãƒãƒ£ãƒ¼ãƒˆæœ€å¤§è¡¨ç¤ºé …目数
   
   permission_add_project: プロジェクトã®è¿½åŠ 
   permission_add_subprojects: サブプロジェクトã®è¿½åŠ 
@@ -456,14 +463,14 @@
   label_x_projects:
     zero:  プロジェクトã¯ã‚りã¾ã›ã‚“
     one:   1プロジェクト
-    other: "{{count}}プロジェクト"
+    other: "%{count}プロジェクト"
   label_project_all: 全プロジェクト
   label_project_latest: 最近ã®ãƒ—ロジェクト
   label_issue: ãƒã‚±ãƒƒãƒˆ
   label_issue_new: æ–°ã—ã„ãƒã‚±ãƒƒãƒˆ
   label_issue_plural: ãƒã‚±ãƒƒãƒˆ
   label_issue_view_all: å…¨ã¦ã®ãƒã‚±ãƒƒãƒˆã‚’見る
-  label_issues_by: "{{value}} 別ã®ãƒã‚±ãƒƒãƒˆ"
+  label_issues_by: "%{value} 別ã®ãƒã‚±ãƒƒãƒˆ"
   label_issue_added: ãƒã‚±ãƒƒãƒˆãŒè¿½åŠ ã•れã¾ã—ãŸ
   label_issue_updated: ãƒã‚±ãƒƒãƒˆãŒæ›´æ–°ã•れã¾ã—ãŸ
   label_document: 文書
@@ -513,7 +520,7 @@
   label_registered_on: 登録日
   label_activity: 活動
   label_overall_activity: å…¨ã¦ã®æ´»å‹•
-  label_user_activity: "{{value}} ã®æ´»å‹•"
+  label_user_activity: "%{value} ã®æ´»å‹•"
   label_new: æ–°ã—ã作æˆ
   label_logged_as: ログイン中:
   label_environment: 環境
@@ -523,7 +530,7 @@
   label_auth_source_plural: èªè¨¼æ–¹å¼
   label_subproject_plural: サブプロジェクト
   label_subproject_new: æ–°ã—ã„サブプロジェクト
-  label_and_its_subprojects: "{{value}} ã¨ã‚µãƒ–プロジェクト"
+  label_and_its_subprojects: "%{value} ã¨ã‚µãƒ–プロジェクト"
   label_min_max_length: 最å°å€¤ - 最大値ã®é•·ã•
   label_list: リストã‹ã‚‰é¸æŠž
   label_date: 日付
@@ -534,8 +541,8 @@
   label_text: é•·ã„テキスト
   label_attribute: 属性
   label_attribute_plural: 属性
-  label_download: "{{count}}ダウンロード"
-  label_download_plural: "{{count}}ダウンロード"
+  label_download: "%{count}ダウンロード"
+  label_download_plural: "%{count}ダウンロード"
   label_no_data: 表示ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã›ã‚“
   label_change_status: ステータスã®å¤‰æ›´
   label_history: 履歴
@@ -567,17 +574,17 @@
   label_closed_issues: 完了
   label_closed_issues_plural: 完了
   label_x_open_issues_abbr_on_total:
-    zero:  0件未完了 / 全{{total}}件
-    one:   1件未完了 / 全{{total}}件
-    other: "{{count}}件未完了 / 全{{total}}件"
+    zero:  0件未完了 / 全%{total}件
+    one:   1件未完了 / 全%{total}件
+    other: "%{count}件未完了 / 全%{total}件"
   label_x_open_issues_abbr:
     zero:  0件未完了
     one:   1件未完了
-    other: "{{count}}件未完了"
+    other: "%{count}件未完了"
   label_x_closed_issues_abbr:
     zero:  0件完了
     one:   1件完了
-    other: "{{count}}件完了"
+    other: "%{count}件完了"
   label_total: åˆè¨ˆ
   label_permissions: 権é™
   label_current_status: ç¾åœ¨ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹
@@ -595,7 +602,7 @@
   label_months_from: ヶ月分
   label_gantt: ガントãƒãƒ£ãƒ¼ãƒˆ
   label_internal: 内部
-  label_last_changes: "最新ã®å¤‰æ›´ {{count}}ä»¶"
+  label_last_changes: "最新ã®å¤‰æ›´ %{count}ä»¶"
   label_change_view_all: å…¨ã¦ã®å¤‰æ›´ã‚’見る
   label_personalize_page: ã“ã®ãƒšãƒ¼ã‚¸ã‚’パーソナライズã™ã‚‹
   label_comment: コメント
@@ -603,7 +610,7 @@
   label_x_comments:
     zero: コメントãŒã‚りã¾ã›ã‚“
     one: 1コメント
-    other: "{{count}}コメント"
+    other: "%{count}コメント"
   label_comment_add: コメント追加
   label_comment_added: 追加ã•れãŸã‚³ãƒ¡ãƒ³ãƒˆ
   label_comment_delete: コメント削除
@@ -624,7 +631,7 @@
   label_yesterday: 昨日
   label_this_week: ã“ã®é€±
   label_last_week: 先週
-  label_last_n_days: "最後ã®{{count}}日間"
+  label_last_n_days: "最後ã®%{count}日間"
   label_this_month: 今月
   label_last_month: 先月
   label_this_year: 今年
@@ -638,13 +645,13 @@
   label_repository: リãƒã‚¸ãƒˆãƒª
   label_repository_plural: リãƒã‚¸ãƒˆãƒª
   label_browse: ブラウズ
-  label_modification: "{{count}}点ã®å¤‰æ›´"
-  label_modification_plural: "{{count}}点ã®å¤‰æ›´"
+  label_modification: "%{count}点ã®å¤‰æ›´"
+  label_modification_plural: "%{count}点ã®å¤‰æ›´"
   label_branch: ブランãƒ
   label_tag: ã‚¿ã‚°
   label_revision: リビジョン
   label_revision_plural: リビジョン
-  label_revision_id: リビジョン {{value}}
+  label_revision_id: リビジョン %{value}
   label_associated_revisions: 関係ã—ã¦ã„るリビジョン
   label_added: 追加
   label_modified: 変更
@@ -661,8 +668,8 @@
   label_sort_lower: 下ã¸
   label_sort_lowest: 一番下ã¸
   label_roadmap: ロードマップ
-  label_roadmap_due_in: "期日ã¾ã§ {{value}}"
-  label_roadmap_overdue: "{{value}} é…れ"
+  label_roadmap_due_in: "期日ã¾ã§ %{value}"
+  label_roadmap_overdue: "%{value} é…れ"
   label_roadmap_no_issues: ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é–¢ã™ã‚‹ãƒã‚±ãƒƒãƒˆã¯ã‚りã¾ã›ã‚“
   label_search: 検索
   label_result_plural: çµæžœ
@@ -681,8 +688,8 @@
   label_issue_tracking: ãƒã‚±ãƒƒãƒˆãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°
   label_spent_time: 作業時間ã®è¨˜éŒ²
   label_overall_spent_time: å…¨ã¦ã®ä½œæ¥­æ™‚é–“ã®è¨˜éŒ²
-  label_f_hour: "{{value}}時間"
-  label_f_hour_plural: "{{value}}時間"
+  label_f_hour: "%{value}時間"
+  label_f_hour_plural: "%{value}時間"
   label_time_tracking: 時間トラッキング
   label_change_plural: 変更
   label_statistics: 統計
@@ -733,15 +740,15 @@
   label_date_from: "日付指定: "
   label_date_to: ã‹ã‚‰
   label_language_based: 既定ã®è¨€èªžã®è¨­å®šã«å¾“ã†
-  label_sort_by: "ä¸¦ã³æ›¿ãˆ {{value}}"
+  label_sort_by: "ä¸¦ã³æ›¿ãˆ %{value}"
   label_send_test_email: テストメールをé€ä¿¡
   label_feeds_access_key: RSSアクセスキー
   label_missing_feeds_access_key: RSSアクセスキーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
-  label_feeds_access_key_created_on: "RSSアクセスキーã¯{{value}}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
+  label_feeds_access_key_created_on: "RSSアクセスキーã¯%{value}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
   label_module_plural: モジュール
-  label_added_time_by: "{{author}} ãŒ{{age}}å‰ã«è¿½åŠ "
-  label_updated_time_by: "{{author}} ãŒ{{age}}å‰ã«æ›´æ–°"
-  label_updated_time: "{{value}}å‰ã«æ›´æ–°"
+  label_added_time_by: "%{author} ãŒ%{age}å‰ã«è¿½åŠ "
+  label_updated_time_by: "%{author} ãŒ%{age}å‰ã«æ›´æ–°"
+  label_updated_time: "%{value}å‰ã«æ›´æ–°"
   label_jump_to_a_project: プロジェクトã¸ç§»å‹•...
   label_file_plural: ファイル
   label_changeset_plural: 更新履歴
@@ -761,7 +768,7 @@
   label_registration_activation_by_email: メールã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
   label_registration_manual_activation: 手動ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
   label_registration_automatic_activation: 自動ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’有効化
-  label_display_per_page: "1ページã«: {{value}}"
+  label_display_per_page: "1ページã«: %{value}"
   label_age: å¹´é½¢
   label_change_properties: プロパティã®å¤‰æ›´
   label_general: 全般
@@ -784,7 +791,7 @@
   label_sort: ソートæ¡ä»¶
   label_ascending: 昇順
   label_descending: é™é †
-  label_date_from_to: "{{start}}ã‹ã‚‰{{end}}ã¾ã§"
+  label_date_from_to: "%{start}ã‹ã‚‰%{end}ã¾ã§"
   label_wiki_content_added: WikiページãŒè¿½åŠ ã•れã¾ã—ãŸ
   label_wiki_content_updated: Wikiãƒšãƒ¼ã‚¸ãŒæ›´æ–°ã•れã¾ã—ãŸ
   label_group: グループ
@@ -803,9 +810,11 @@
   label_display_used_statuses_only: ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã§ä½¿ã‚れã¦ã„るステータスã®ã¿è¡¨ç¤ºã™ã‚‹
   label_api_access_key: APIアクセスキー
   label_missing_api_access_key: APIアクセスキーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
-  label_api_access_key_created_on: "APIアクセスキーã¯{{value}}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
+  label_api_access_key_created_on: "APIアクセスキーã¯%{value}å‰ã«ä½œæˆã•れã¾ã—ãŸ"
   label_subtask_plural: å­ãƒã‚±ãƒƒãƒˆ
   label_project_copy_notifications: コピーã—ãŸãƒã‚±ãƒƒãƒˆã®ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã‚’é€ä¿¡ã™ã‚‹
+  label_principal_search: "ユーザã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢:"
+  label_user_search: "ãƒ¦ãƒ¼ã‚¶ã®æ¤œç´¢:"
   
   button_login: ログイン
   button_submit: 変更
@@ -817,7 +826,7 @@
   button_create_and_continue: 連続作æˆ
   button_test: テスト
   button_edit: 編集
-  button_edit_associated_wikipage: "関連ã™ã‚‹Wikiページを編集: {{page_title}}"
+  button_edit_associated_wikipage: "関連ã™ã‚‹Wikiページを編集: %{page_title}"
   button_add: 追加
   button_change: 変更
   button_apply: é©ç”¨
@@ -866,54 +875,55 @@
   text_regexp_info: 例) ^[A-Z0-9]+$
   text_min_max_length_info: 0ã ã¨ç„¡åˆ¶é™ã«ãªã‚Šã¾ã™
   text_project_destroy_confirmation: 本当ã«ã“ã®ãƒ—ロジェクトã¨é–¢é€£ãƒ‡ãƒ¼ã‚¿ã‚’削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
-  text_subprojects_destroy_warning: "サブプロジェクト {{value}} も削除ã•れã¾ã™ã€‚"
+  text_subprojects_destroy_warning: "サブプロジェクト %{value} も削除ã•れã¾ã™ã€‚"
   text_workflow_edit: ワークフローを編集ã™ã‚‹ãƒ­ãƒ¼ãƒ«ã¨ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã‚’é¸ã‚“ã§ãã ã•ã„
   text_are_you_sure: よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
   text_are_you_sure_with_children: ãƒã‚±ãƒƒãƒˆã¨ãã®å­ãƒã‚±ãƒƒãƒˆå…¨ã¦ã‚’削除ã—ã¾ã™ã‹?
-  text_journal_changed: "{{label}} ã‚’ {{old}} ã‹ã‚‰ {{new}} ã«å¤‰æ›´"
-  text_journal_set_to: "{{label}} ã‚’ {{value}} ã«ã‚»ãƒƒãƒˆ"
-  text_journal_deleted: "{{label}} を削除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} を追加"
+  text_journal_changed: "%{label} ã‚’ %{old} ã‹ã‚‰ %{new} ã«å¤‰æ›´"
+  text_journal_set_to: "%{label} ã‚’ %{value} ã«ã‚»ãƒƒãƒˆ"
+  text_journal_deleted: "%{label} を削除 (%{old})"
+  text_journal_added: "%{label} %{value} を追加"
   text_tip_issue_begin_day: ã“ã®æ—¥ã«é–‹å§‹ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_tip_issue_end_day: ã“ã®æ—¥ã«çµ‚了ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_tip_issue_begin_end_day: ã“ã®æ—¥ã®ã†ã¡ã«é–‹å§‹ã—ã¦çµ‚了ã™ã‚‹ã‚¿ã‚¹ã‚¯
   text_project_identifier_info: 'è‹±å°æ–‡å­—(a-z)ã¨æ•°å­—ã¨ãƒ€ãƒƒã‚·ãƒ¥(-)ãŒä½¿ãˆã¾ã™ã€‚<br />一度ä¿å­˜ã™ã‚‹ã¨ã€è­˜åˆ¥å­ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。'
-  text_caracters_maximum: "最大{{count}}文字ã§ã™ã€‚"
-  text_caracters_minimum: "最低{{count}}文字ã®é•·ã•ãŒå¿…è¦ã§ã™"
-  text_length_between: "é•·ã•ã¯{{min}}ã‹ã‚‰{{max}}文字ã¾ã§ã§ã™ã€‚"
+  text_caracters_maximum: "最大%{count}文字ã§ã™ã€‚"
+  text_caracters_minimum: "最低%{count}文字ã®é•·ã•ãŒå¿…è¦ã§ã™"
+  text_length_between: "é•·ã•ã¯%{min}ã‹ã‚‰%{max}文字ã¾ã§ã§ã™ã€‚"
   text_tracker_no_workflow: ã“ã®ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã«ãƒ¯ãƒ¼ã‚¯ãƒ•ローãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“
   text_unallowed_characters: æ¬¡ã®æ–‡å­—ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“
   text_comma_separated: (カンマã§åŒºåˆ‡ã‚‹ã“ã¨ã§)複数ã®å€¤ã‚’設定ã§ãã¾ã™ã€‚
   text_line_separated: (1行ã”ã¨ã«æ›¸ãã“ã¨ã§)複数ã®å€¤ã‚’設定ã§ãã¾ã™ã€‚
   text_issues_ref_in_commit_messages: コミットメッセージ内ã§ãƒã‚±ãƒƒãƒˆã®å‚ç…§/修正
-  text_issue_added: "ãƒã‚±ãƒƒãƒˆ {{id}} ㌠{{author}} ã«ã‚ˆã£ã¦å ±å‘Šã•れã¾ã—ãŸã€‚"
-  text_issue_updated: "ãƒã‚±ãƒƒãƒˆ {{id}} ㌠{{author}} ã«ã‚ˆã£ã¦æ›´æ–°ã•れã¾ã—ãŸã€‚"
+  text_issue_added: "ãƒã‚±ãƒƒãƒˆ %{id} ㌠%{author} ã«ã‚ˆã£ã¦å ±å‘Šã•れã¾ã—ãŸã€‚"
+  text_issue_updated: "ãƒã‚±ãƒƒãƒˆ %{id} ㌠%{author} ã«ã‚ˆã£ã¦æ›´æ–°ã•れã¾ã—ãŸã€‚"
   text_wiki_destroy_confirmation: 本当ã«ã“ã®wikiã¨ãã®å†…容ã®å…¨ã¦ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ
-  text_issue_category_destroy_question: "{{count}}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒã“ã®ã‚«ãƒ†ã‚´ãƒªã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
+  text_issue_category_destroy_question: "%{count}ä»¶ã®ãƒã‚±ãƒƒãƒˆãŒã“ã®ã‚«ãƒ†ã‚´ãƒªã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
   text_issue_category_destroy_assignments: カテゴリã®å‰²ã‚Šå½“ã¦ã‚’削除ã™ã‚‹
   text_issue_category_reassign_to: ãƒã‚±ãƒƒãƒˆã‚’ã“ã®ã‚«ãƒ†ã‚´ãƒªã«å†å‰²ã‚Šå½“ã¦ã™ã‚‹
   text_user_mail_option: "æœªé¸æŠžã®ãƒ—ロジェクトã§ã¯ã€ã‚¦ã‚©ãƒƒãƒã¾ãŸã¯é–¢ä¿‚ã—ã¦ã„る事柄(例: 自分ãŒå ±å‘Šè€…ã‚‚ã—ãã¯æ‹…当者ã§ã‚ã‚‹ãƒã‚±ãƒƒãƒˆ)ã®ã¿ãƒ¡ãƒ¼ãƒ«ãŒé€ä¿¡ã•れã¾ã™ã€‚"
   text_no_configuration_data: "ロールã€ãƒˆãƒ©ãƒƒã‚«ãƒ¼ã€ãƒã‚±ãƒƒãƒˆã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã€ãƒ¯ãƒ¼ã‚¯ãƒ•ローãŒã¾ã è¨­å®šã•れã¦ã„ã¾ã›ã‚“。\nデフォルト設定ã®ãƒ­ãƒ¼ãƒ‰ã‚’å¼·ããŠå‹§ã‚ã—ã¾ã™ã€‚ロードã—ãŸå¾Œã€ãれを修正ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
   text_load_default_configuration: デフォルト設定をロード
-  text_status_changed_by_changeset: "更新履歴 {{value}} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
+  text_status_changed_by_changeset: "更新履歴 %{value} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
+  text_time_logged_by_changeset: "更新履歴 %{value} ã§é©ç”¨ã•れã¾ã—ãŸã€‚"
   text_issues_destroy_confirmation: '本当ã«é¸æŠžã—ãŸãƒã‚±ãƒƒãƒˆã‚’削除ã—ã¾ã™ã‹ï¼Ÿ'
   text_select_project_modules: 'ã“ã®ãƒ—ロジェクトã§ä½¿ç”¨ã™ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„:'
   text_default_administrator_account_changed: デフォルト管ç†ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒå¤‰æ›´æ¸ˆ
   text_file_repository_writable: ファイルリãƒã‚¸ãƒˆãƒªã«æ›¸ãè¾¼ã¿å¯èƒ½
   text_plugin_assets_writable: Plugin assetsãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ›¸ãè¾¼ã¿å¯èƒ½
   text_rmagick_available: RMagickãŒä½¿ç”¨å¯èƒ½ (オプション)
-  text_destroy_time_entries_question: ã“ã®ãƒã‚±ãƒƒãƒˆã®{{hours}}時間分ã®ä½œæ¥­è¨˜éŒ²ã®æ‰±ã„ã‚’é¸æŠžã—ã¦ãã ã•ã„。
+  text_destroy_time_entries_question: ã“ã®ãƒã‚±ãƒƒãƒˆã®%{hours}時間分ã®ä½œæ¥­è¨˜éŒ²ã®æ‰±ã„ã‚’é¸æŠžã—ã¦ãã ã•ã„。
   text_destroy_time_entries: 記録ã•れãŸä½œæ¥­æ™‚é–“ã‚’å«ã‚ã¦å‰Šé™¤
   text_assign_time_entries_to_project: 記録ã•れãŸä½œæ¥­æ™‚間をプロジェクト自体ã«å‰²ã‚Šå½“ã¦
   text_reassign_time_entries: '記録ã•れãŸä½œæ¥­æ™‚é–“ã‚’ã“ã®ãƒã‚±ãƒƒãƒˆã«å†å‰²ã‚Šå½“ã¦ï¼š'
-  text_user_wrote: "{{value}} ã¯æ›¸ãã¾ã—ãŸ:"
-  text_enumeration_destroy_question: "{{count}}個ã®ã‚ªãƒ–ジェクトãŒã“ã®å€¤ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
+  text_user_wrote: "%{value} ã¯æ›¸ãã¾ã—ãŸ:"
+  text_enumeration_destroy_question: "%{count}個ã®ã‚ªãƒ–ジェクトãŒã“ã®å€¤ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚"
   text_enumeration_category_reassign_to: '次ã®å€¤ã«å‰²ã‚Šå½“ã¦ç›´ã™:'
   text_email_delivery_not_configured: "メールをé€ä¿¡ã™ã‚‹ãŸã‚ã«å¿…è¦ãªè¨­å®šãŒè¡Œã‚れã¦ã„ãªã„ãŸã‚ã€ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。\nconfig/email.ymlã§SMTPサーãƒã®è¨­å®šã‚’行ã„ã€ã‚¢ãƒ—リケーションをå†èµ·å‹•ã—ã¦ãã ã•ã„。"
   text_repository_usernames_mapping: "リãƒã‚¸ãƒˆãƒªã®ãƒ­ã‚°ã‹ã‚‰æ¤œå‡ºã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼åã‚’ã©ã®Redmineユーザーã«é–¢é€£ã¥ã‘ã‚‹ã®ã‹é¸æŠžã—ã¦ãã ã•ã„。\nログ上ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¾ãŸã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒRedmineã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¨ä¸€è‡´ã™ã‚‹å ´åˆã¯è‡ªå‹•çš„ã«é–¢é€£ã¥ã‘られã¾ã™ã€‚"
   text_diff_truncated: '... 差分ã®è¡Œæ•°ãŒè¡¨ç¤ºå¯èƒ½ãªä¸Šé™ã‚’è¶…ãˆã¾ã—ãŸã€‚è¶…éŽåˆ†ã¯è¡¨ç¤ºã—ã¾ã›ã‚“。'
   text_custom_field_possible_values_info: 'é¸æŠžè‚¢ã®å€¤ã¯1行ã«1個ãšã¤è¨˜è¿°ã—ã¦ãã ã•ã„。'
-  text_wiki_page_destroy_question: "ã“ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«{{descendants}}ページã®å­å­«ãƒšãƒ¼ã‚¸ãŒã‚りã¾ã™ã€‚"
+  text_wiki_page_destroy_question: "ã“ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«%{descendants}ページã®å­å­«ãƒšãƒ¼ã‚¸ãŒã‚りã¾ã™ã€‚"
   text_wiki_page_nullify_children: "å­ãƒšãƒ¼ã‚¸ã‚’メインページé…下ã«ç§»å‹•ã™ã‚‹"
   text_wiki_page_destroy_children: "é…下ã®å­å­«ãƒšãƒ¼ã‚¸ã‚‚削除ã™ã‚‹"
   text_wiki_page_reassign_children: "å­ãƒšãƒ¼ã‚¸ã‚’次ã®è¦ªãƒšãƒ¼ã‚¸ã®é…下ã«ç§»å‹•ã™ã‚‹"
@@ -947,8 +957,3 @@
   enumeration_doc_categories: 文書カテゴリ
   enumeration_activities: 作業分類 (時間トラッキング)
   enumeration_system_activity: システム作業分類
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
--- a/config/locales/ko.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/ko.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -37,37 +37,37 @@
       half_a_minute: "30ì´ˆ"
       less_than_x_seconds:
         one:   "ì¼ì´ˆ ì´í•˜"
-        other: "{{count}}ì´ˆ ì´í•˜"
+        other: "%{count}ì´ˆ ì´í•˜"
       x_seconds:
         one:   "ì¼ì´ˆ"
-        other: "{{count}}ì´ˆ"
+        other: "%{count}ì´ˆ"
       less_than_x_minutes:
         one:   "ì¼ë¶„ ì´í•˜"
-        other: "{{count}}ë¶„ ì´í•˜"
+        other: "%{count}ë¶„ ì´í•˜"
       x_minutes:
         one:   "ì¼ë¶„"
-        other: "{{count}}ë¶„"
+        other: "%{count}ë¶„"
       about_x_hours:
         one:   "약 한시간"
-        other: "약 {{count}}시간"
+        other: "약 %{count}시간"
       x_days:
         one:   "하루"
-        other: "{{count}}ì¼"
+        other: "%{count}ì¼"
       about_x_months:
         one:   "약 한달"
-        other: "약 {{count}}달"
+        other: "약 %{count}달"
       x_months:
         one:   "한달"
-        other: "{{count}}달"
+        other: "%{count}달"
       about_x_years:
         one:   "약 ì¼ë…„"
-        other: "약 {{count}}년"
+        other: "약 %{count}년"
       over_x_years:
         one:   "ì¼ë…„ ì´ìƒ"
-        other: "{{count}}ë…„ ì´ìƒ"
+        other: "%{count}ë…„ ì´ìƒ"
       almost_x_years:
         one:   "약 1년"
-        other: "약 {{count}}년"
+        other: "약 %{count}년"
     prompts:
       year:   "ë…„"
       month:  "ì›”"
@@ -145,8 +145,8 @@
     errors:
       template:
         header:
-          one:    "í•œê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ {{model}}ì„(를) 저장하지 않았습니다."
-          other:  "{{count}}ê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ {{model}}ì„(를) 저장하지 않았습니다."
+          one:    "í•œê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ %{model}ì„(를) 저장하지 않았습니다."
+          other:  "%{count}ê°œì˜ ì˜¤ë¥˜ê°€ ë°œìƒí•´ %{model}ì„(를) 저장하지 않았습니다."
         # The variable :count is also available
         body: "ë‹¤ìŒ í•­ëª©ì— ë¬¸ì œê°€ 발견했습니다:"
 
@@ -158,16 +158,16 @@
         accepted: "ì€ ì¸ì •ë˜ì–´ì•¼ 합니다"
         empty: "ì€ ê¸¸ì´ê°€ 0ì´ì–´ì„œëŠ” 안ë©ë‹ˆë‹¤."
         blank: "ì€ ë¹ˆ ê°’ì´ì–´ì„œëŠ” 안 ë©ë‹ˆë‹¤"
-        too_long: "ì€ ë„ˆë¬´ ê¹ë‹ˆë‹¤ (최대 {{count}}ìž ê¹Œì§€)"
-        too_short: "ì€ ë„ˆë¬´ 짧습니다 (최소 {{count}}ìž ê¹Œì§€)"
-        wrong_length: "ì€ ê¸¸ì´ê°€ 틀렸습니다 ({{count}}ìžì´ì–´ì•¼ 합니다.)"
+        too_long: "ì€ ë„ˆë¬´ ê¹ë‹ˆë‹¤ (최대 %{count}ìž ê¹Œì§€)"
+        too_short: "ì€ ë„ˆë¬´ 짧습니다 (최소 %{count}ìž ê¹Œì§€)"
+        wrong_length: "ì€ ê¸¸ì´ê°€ 틀렸습니다 (%{count}ìžì´ì–´ì•¼ 합니다.)"
         taken: "ì€ ì´ë¯¸ ì„ íƒëœ ê²ë‹ˆë‹¤"
         not_a_number: "ì€ ìˆ«ìžê°€ 아닙니다"
-        greater_than: "ì€ {{count}}보다 커야 합니다."
-        greater_than_or_equal_to: "ì€ {{count}}보다 í¬ê±°ë‚˜ 같아야 합니다"
-        equal_to: "ì€ {{count}}(와)ê³¼ 같아야 합니다"
-        less_than: "ì€ {{count}}보다 작어야 합니다"
-        less_than_or_equal_to: "ì€ {{count}}ê³¼ 같거나 ì´í•˜ì„ 요구합니다"
+        greater_than: "ì€ %{count}보다 커야 합니다."
+        greater_than_or_equal_to: "ì€ %{count}보다 í¬ê±°ë‚˜ 같아야 합니다"
+        equal_to: "ì€ %{count}(와)ê³¼ 같아야 합니다"
+        less_than: "ì€ %{count}보다 작어야 합니다"
+        less_than_or_equal_to: "ì€ %{count}ê³¼ 같거나 ì´í•˜ì„ 요구합니다"
         odd: "ì€ í™€ìˆ˜ì—¬ì•¼ 합니다"
         even: "ì€ ì§ìˆ˜ì—¬ì•¼ 합니다"
         greater_than_start_date: "는 시작날짜보다 커야 합니다"
@@ -204,40 +204,40 @@
   notice_file_not_found: 요청하신 페ì´ì§€ëŠ” ì‚­ì œë˜ì—ˆê±°ë‚˜ 옮겨졌습니다.
   notice_locking_conflict: 다른 사용ìžì— ì˜í•´ì„œ ë°ì´í„°ê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤.
   notice_not_authorized: ì´ íŽ˜ì´ì§€ì— 접근할 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.
-  notice_email_sent: "{{value}}님ì—게 ë©”ì¼ì´ 발송ë˜ì—ˆìŠµë‹ˆë‹¤."
-  notice_email_error: "ë©”ì¼ì„ 전송하는 ê³¼ì •ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ({{value}})"
+  notice_email_sent: "%{value}님ì—게 ë©”ì¼ì´ 발송ë˜ì—ˆìŠµë‹ˆë‹¤."
+  notice_email_error: "ë©”ì¼ì„ 전송하는 ê³¼ì •ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. (%{value})"
   notice_feeds_access_key_reseted: RSSì— ì ‘ê·¼ê°€ëŠ¥í•œ 열쇠(key)ê°€ ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
-  notice_failed_to_save_issues: "ì €ìž¥ì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤: 실패 {{count}}(ì„ íƒ {{total}}): {{ids}}."
+  notice_failed_to_save_issues: "ì €ìž¥ì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤: 실패 %{count}(ì„ íƒ %{total}): %{ids}."
   notice_no_issue_selected: "ì¼ê°ì´ ì„ íƒë˜ì§€ 않았습니다. 수정하기 ì›í•˜ëŠ” ì¼ê°ì„ ì„ íƒí•˜ì„¸ìš”"
   notice_account_pending: "ê³„ì •ì´ ë§Œë“¤ì–´ì¡Œìœ¼ë©° ê´€ë¦¬ìž ìŠ¹ì¸ ëŒ€ê¸°ì¤‘ìž…ë‹ˆë‹¤."
   notice_default_data_loaded: ê¸°ë³¸ê°’ì„ ì„±ê³µì ìœ¼ë¡œ ì½ì–´ë“¤ì˜€ìŠµë‹ˆë‹¤.
   notice_unable_delete_version: 삭제할 수 없는 버전입니다.
   
-  error_can_t_load_default_data: "ê¸°ë³¸ê°’ì„ ì½ì–´ë“¤ì¼ 수 없습니다.: {{value}}"
+  error_can_t_load_default_data: "ê¸°ë³¸ê°’ì„ ì½ì–´ë“¤ì¼ 수 없습니다.: %{value}"
   error_scm_not_found: 항목ì´ë‚˜ ë¦¬ë¹„ì ¼ì´ ì €ìž¥ì†Œì— ì¡´ìž¬í•˜ì§€ 않습니다.
-  error_scm_command_failed: "ì €ìž¥ì†Œì— ì ‘ê·¼í•˜ëŠ” ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤.: {{value}}"
+  error_scm_command_failed: "ì €ìž¥ì†Œì— ì ‘ê·¼í•˜ëŠ” ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤.: %{value}"
   error_scm_annotate: "í•­ëª©ì´ ì—†ê±°ë‚˜ 행별 ì´ë ¥ì„ ë³¼ 수 없습니다."
   error_issue_not_found_in_project: 'ì¼ê°ì´ 없거나 ì´ í”„ë¡œì íŠ¸ì˜ ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤.'
 
-  warning_attachments_not_saved: "{{count}}ê°œ 파ì¼ì„ 저장할 수 없습니다."
+  warning_attachments_not_saved: "%{count}ê°œ 파ì¼ì„ 저장할 수 없습니다."
   
-  mail_subject_lost_password: "{{value}} 비밀번호"
+  mail_subject_lost_password: "%{value} 비밀번호"
   mail_body_lost_password: '비밀번호를 변경하려면 ë‹¤ìŒ ë§í¬ë¥¼ í´ë¦­í•˜ì„¸ìš”.'
-  mail_subject_register: "{{value}} 계정 활성화"
+  mail_subject_register: "%{value} 계정 활성화"
   mail_body_register: 'ê³„ì •ì„ í™œì„±í™”í•˜ë ¤ë©´ ë§í¬ë¥¼ í´ë¦­í•˜ì„¸ìš”.:'
-  mail_body_account_information_external: "로그ì¸í•  때 {{value}} ê³„ì •ì„ ì‚¬ìš©í•˜ì‹¤ 수 있습니다."
+  mail_body_account_information_external: "로그ì¸í•  때 %{value} ê³„ì •ì„ ì‚¬ìš©í•˜ì‹¤ 수 있습니다."
   mail_body_account_information: 계정 정보
-  mail_subject_account_activation_request: "{{value}} 계정 활성화 요청"
-  mail_body_account_activation_request: "새 사용ìž({{value}})ê°€ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤. 관리ìžë‹˜ì˜ 승ì¸ì„ 기다리고 있습니다.:"
-  mail_body_reminder: "ë‹¹ì‹ ì´ ë§¡ê³  있는 ì¼ê° {{count}}ê°œì˜ ì™„ë£Œ ê¸°í•œì´ {{days}}ì¼ í›„ 입니다."
-  mail_subject_reminder: "ë‚´ì¼ì´ ë§Œê¸°ì¸ ì¼ê° {{count}}ê°œ ({{days}})"
-  mail_subject_wiki_content_added: "위키페ì´ì§€ '{{id}}'ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
-  mail_subject_wiki_content_updated: "'위키페ì´ì§€ {{id}}'ì´(ê°€) 수정ë˜ì—ˆìŠµë‹ˆë‹¤."
-  mail_body_wiki_content_added: "{{author}}ì´(ê°€) 위키페ì´ì§€ '{{id}}'ì„(를) 추가하였습니다."
-  mail_body_wiki_content_updated: "{{author}}ì´(ê°€) 위키페ì´ì§€ '{{id}}'ì„(를) 수정하였습니다."
+  mail_subject_account_activation_request: "%{value} 계정 활성화 요청"
+  mail_body_account_activation_request: "새 사용ìž(%{value})ê°€ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤. 관리ìžë‹˜ì˜ 승ì¸ì„ 기다리고 있습니다.:"
+  mail_body_reminder: "ë‹¹ì‹ ì´ ë§¡ê³  있는 ì¼ê° %{count}ê°œì˜ ì™„ë£Œ ê¸°í•œì´ %{days}ì¼ í›„ 입니다."
+  mail_subject_reminder: "ë‚´ì¼ì´ ë§Œê¸°ì¸ ì¼ê° %{count}ê°œ (%{days})"
+  mail_subject_wiki_content_added: "위키페ì´ì§€ '%{id}'ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
+  mail_subject_wiki_content_updated: "'위키페ì´ì§€ %{id}'ì´(ê°€) 수정ë˜ì—ˆìŠµë‹ˆë‹¤."
+  mail_body_wiki_content_added: "%{author}ì´(ê°€) 위키페ì´ì§€ '%{id}'ì„(를) 추가하였습니다."
+  mail_body_wiki_content_updated: "%{author}ì´(ê°€) 위키페ì´ì§€ '%{id}'ì„(를) 수정하였습니다."
   
   gui_validation_error: ì—러
-  gui_validation_error_plural: "{{count}}ê°œ ì—러"
+  gui_validation_error_plural: "%{count}ê°œ ì—러"
   
   field_name: ì´ë¦„
   field_description: 설명
@@ -299,6 +299,7 @@
   field_attr_lastname: 성 ì†ì„±
   field_attr_mail: ë©”ì¼ ì†ì„±
   field_onthefly: ë™ì  ì‚¬ìš©ìž ìƒì„±
+  field_start_date: 시작시간
   field_done_ratio: ì§„ì²™ë„
   field_auth_source: ì¸ì¦ 공급ìž
   field_hide_mail: ë©”ì¼ ì£¼ì†Œ 숨기기
@@ -441,14 +442,14 @@
   label_x_projects:
     zero:  ì—†ìŒ
     one:   "한 프로ì íЏ"
-    other: "{{count}}ê°œ 프로ì íЏ"
+    other: "%{count}ê°œ 프로ì íЏ"
   label_project_all: 모든 프로ì íЏ
   label_project_latest: 최근 프로ì íЏ
   label_issue: ì¼ê°
   label_issue_new: 새 ì¼ê°ë§Œë“¤ê¸°
   label_issue_plural: ì¼ê°
   label_issue_view_all: 모든 ì¼ê° 보기
-  label_issues_by: "{{value}}별 ì¼ê°"
+  label_issues_by: "%{value}별 ì¼ê°"
   label_issue_added: ì¼ê° 추가
   label_issue_updated: ì¼ê° 수정
   label_document: 문서
@@ -497,7 +498,7 @@
   label_registered_on: 등ë¡ì‹œê°
   label_activity: 작업내역
   label_overall_activity: 전체 작업내역
-  label_user_activity: "{{value}}ì˜ ìž‘ì—…ë‚´ì—­"
+  label_user_activity: "%{value}ì˜ ìž‘ì—…ë‚´ì—­"
   label_new: 새로 만들기
   label_logged_as: '로그ì¸ê³„ì •:'
   label_environment: 환경
@@ -506,7 +507,7 @@
   label_auth_source_new: 새 ì¸ì¦ 공급ìž
   label_auth_source_plural: ì¸ì¦ 공급ìž
   label_subproject_plural: 하위 프로ì íЏ
-  label_and_its_subprojects: "{{value}}와 하위 프로ì íŠ¸ë“¤"
+  label_and_its_subprojects: "%{value}와 하위 프로ì íŠ¸ë“¤"
   label_min_max_length: 최소 - 최대 길ì´
   label_list: 목ë¡
   label_date: 날짜
@@ -517,8 +518,8 @@
   label_text: í…스트
   label_attribute: ì†ì„±
   label_attribute_plural: ì†ì„±
-  label_download: "{{count}}회 다운로드"
-  label_download_plural: "{{count}}회 다운로드"
+  label_download: "%{count}회 다운로드"
+  label_download_plural: "%{count}회 다운로드"
   label_no_data: 표시할 ë°ì´í„°ê°€ 없습니다.
   label_change_status: ìƒíƒœ 변경
   label_history: ì´ë ¥
@@ -549,17 +550,17 @@
   label_closed_issues: 완료ë¨
   label_closed_issues_plural: 완료ë¨
   label_x_open_issues_abbr_on_total:
-    zero:  "ì´ {{total}} ê±´ ëª¨ë‘ ì™„ë£Œ"
-    one:   "한 ê±´ ì§„í–‰ 중 / ì´ {{total}} ê±´ 중 "
-    other: "{{count}} ê±´ ì§„í–‰ 중 / ì´ {{total}} ê±´"
+    zero:  "ì´ %{total} ê±´ ëª¨ë‘ ì™„ë£Œ"
+    one:   "한 ê±´ ì§„í–‰ 중 / ì´ %{total} ê±´ 중 "
+    other: "%{count} ê±´ ì§„í–‰ 중 / ì´ %{total} ê±´"
   label_x_open_issues_abbr:
     zero:  ëª¨ë‘ ì™„ë£Œ
     one:   한 건 진행 중
-    other: "{{count}} 건 진행 중"
+    other: "%{count} 건 진행 중"
   label_x_closed_issues_abbr:
     zero:  ëª¨ë‘ ë¯¸ì™„ë£Œ
     one:   한 건 완료
-    other: "{{count}} 건 완료"
+    other: "%{count} 건 완료"
   label_total: 합계
   label_permissions: 권한
   label_current_status: ì¼ê° ìƒíƒœ
@@ -577,7 +578,7 @@
   label_months_from: 개월 ë™ì•ˆ | 다ìŒë¶€í„° 
   label_gantt: Gantt 챠트
   label_internal: ë‚´ë¶€
-  label_last_changes: "최근 {{count}}ê°œì˜ ë³€ê²½ì‚¬í•­"
+  label_last_changes: "최근 %{count}ê°œì˜ ë³€ê²½ì‚¬í•­"
   label_change_view_all: 모든 변경 내역 보기
   label_personalize_page: 입맛대로 구성하기
   label_comment: 댓글
@@ -585,7 +586,7 @@
   label_x_comments:
     zero: 댓글 ì—†ìŒ
     one: 한 ê°œì˜ ëŒ“ê¸€
-    other: "{{count}} ê°œì˜ ëŒ“ê¸€"
+    other: "%{count} ê°œì˜ ëŒ“ê¸€"
   label_comment_add: 댓글 추가
   label_comment_added: ëŒ“ê¸€ì´ ì¶”ê°€ë˜ì—ˆìŠµë‹ˆë‹¤.
   label_comment_delete: 댓글 삭제
@@ -606,7 +607,7 @@
   label_yesterday: 어제
   label_this_week: ì´ë²ˆì£¼
   label_last_week: 지난 주
-  label_last_n_days: "지난 {{count}} ì¼"
+  label_last_n_days: "지난 %{count} ì¼"
   label_this_month: ì´ë²ˆ 달
   label_last_month: 지난 달
   label_this_year: 올해
@@ -620,8 +621,8 @@
   label_repository: 저장소
   label_repository_plural: 저장소
   label_browse: 저장소 둘러보기
-  label_modification: "{{count}} 변경"
-  label_modification_plural: "{{count}} 변경"
+  label_modification: "%{count} 변경"
+  label_modification_plural: "%{count} 변경"
   label_revision: 개정íŒ
   label_revision_plural: 개정íŒ
   label_associated_revisions: ê´€ë ¨ëœ ê°œì •íŒë“¤
@@ -639,8 +640,8 @@
   label_sort_lower: 아래로
   label_sort_lowest: 맨 아래로
   label_roadmap: 로드맵
-  label_roadmap_due_in: "기한  {{value}}"
-  label_roadmap_overdue: "{{value}} 지연"
+  label_roadmap_due_in: "기한  %{value}"
+  label_roadmap_overdue: "%{value} 지연"
   label_roadmap_no_issues: ì´ ë²„ì „ì— í•´ë‹¹í•˜ëŠ” ì¼ê° ì—†ìŒ
   label_search: 검색
   label_result_plural: ê²°ê³¼
@@ -658,8 +659,8 @@
   label_changes_details: 모든 ìƒì„¸ 변경 ë‚´ì—­
   label_issue_tracking: ì¼ê° ì¶”ì 
   label_spent_time: 소요 시간
-  label_f_hour: "{{value}} 시간"
-  label_f_hour_plural: "{{value}} 시간"
+  label_f_hour: "%{value} 시간"
+  label_f_hour_plural: "%{value} 시간"
   label_time_tracking: 시간추ì 
   label_change_plural: 변경사항들
   label_statistics: 통계
@@ -708,13 +709,13 @@
   label_date_from: '기간:'
   label_date_to: ' ~ '
   label_language_based: ì–¸ì–´ì„¤ì •ì— ë”°ë¦„
-  label_sort_by: "{{value}}(으)로 정렬"
+  label_sort_by: "%{value}(으)로 정렬"
   label_send_test_email: 테스트 ë©”ì¼ ë³´ë‚´ê¸°
-  label_feeds_access_key_created_on: "피드 ì ‘ê·¼ 키가 {{value}} ì´ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤."
+  label_feeds_access_key_created_on: "피드 ì ‘ê·¼ 키가 %{value} ì´ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤."
   label_module_plural: 모듈
-  label_added_time_by: "{{author}}ì´(ê°€) {{age}} ì „ì— ì¶”ê°€í•¨"
-  label_updated_time_by: "{{author}}ì´(ê°€) {{age}} ì „ì— ë³€ê²½"
-  label_updated_time: "{{value}} ì „ì— ìˆ˜ì •ë¨"
+  label_added_time_by: "%{author}ì´(ê°€) %{age} ì „ì— ì¶”ê°€í•¨"
+  label_updated_time_by: "%{author}ì´(ê°€) %{age} ì „ì— ë³€ê²½"
+  label_updated_time: "%{value} ì „ì— ìˆ˜ì •ë¨"
   label_jump_to_a_project: 프로ì íЏ 바로가기
   label_file_plural: 파ì¼
   label_changeset_plural: 변경묶ìŒ
@@ -730,7 +731,7 @@
   label_registration_activation_by_email: ë©”ì¼ë¡œ ê³„ì •ì„ í™œì„±í™”í•˜ê¸°
   label_registration_automatic_activation: ìžë™ 계정 활성화
   label_registration_manual_activation: ìˆ˜ë™ ê³„ì • 활성화
-  label_display_per_page: "페ì´ì§€ë‹¹ 줄수: {{value}}"
+  label_display_per_page: "페ì´ì§€ë‹¹ 줄수: %{value}"
   label_age: 마지막 수정ì¼
   label_change_properties: ì†ì„± 변경
   label_general: ì¼ë°˜
@@ -753,7 +754,7 @@
   label_sort: ì •ë ¬
   label_ascending: 오름차순
   label_descending: 내림차순
-  label_date_from_to: "{{start}}부터 {{end}}까지"
+  label_date_from_to: "%{start}부터 %{end}까지"
   label_wiki_content_added: 위키페ì´ì§€ 추가
   label_wiki_content_updated: 위키페ì´ì§€ 수정
 
@@ -805,48 +806,48 @@
   text_regexp_info: 예) ^[A-Z0-9]+$
   text_min_max_length_info: 0 는 ì œí•œì´ ì—†ìŒì„ ì˜ë¯¸í•¨
   text_project_destroy_confirmation: ì´ í”„ë¡œì íŠ¸ë¥¼ 삭제하고 모든 ë°ì´í„°ë¥¼ 지우시겠습니까?
-  text_subprojects_destroy_warning: "하위 프로ì íЏ({{value}})ì´(ê°€) ìžë™ìœ¼ë¡œ 지워질 것입니다."
+  text_subprojects_destroy_warning: "하위 프로ì íЏ(%{value})ì´(ê°€) ìžë™ìœ¼ë¡œ 지워질 것입니다."
   text_workflow_edit: 업무í름 수정하려면 ì—­í• ê³¼ ì¼ê°ìœ í˜•ì„ ì„ íƒí•˜ì„¸ìš”.
   text_are_you_sure: ê³„ì† ì§„í–‰ 하시겠습니까?
   text_tip_issue_begin_day: 오늘 시작하는 업무(task)
   text_tip_issue_end_day: 오늘 종료하는 업무(task)
   text_tip_issue_begin_end_day: 오늘 시작하고 종료하는 업무(task)
   text_project_identifier_info: 'ì˜ë¬¸ 소문ìž(a-z) ë° ìˆ«ìž, 대쉬(-) 가능.<br />저장ëœí›„ì—는 ì‹ë³„ìž ë³€ê²½ 불가능.'
-  text_caracters_maximum: "최대 {{count}} ê¸€ìž ê°€ëŠ¥"
-  text_caracters_minimum: "최소한 {{count}} ê¸€ìž ì´ìƒì´ì–´ì•¼ 합니다."
-  text_length_between: "{{min}} ì—서 {{max}} 글ìž"
+  text_caracters_maximum: "최대 %{count} ê¸€ìž ê°€ëŠ¥"
+  text_caracters_minimum: "최소한 %{count} ê¸€ìž ì´ìƒì´ì–´ì•¼ 합니다."
+  text_length_between: "%{min} ì—서 %{max} 글ìž"
   text_tracker_no_workflow: ì´ ì¼ê° 유형ì—는 업무íë¦„ì´ ì •ì˜ë˜ì§€ 않았습니다.
   text_unallowed_characters: 허용ë˜ì§€ 않는 문ìžì—´
   text_comma_separated: "구분ìž','를 ì´ìš©í•´ì„œ 여러 ê°œì˜ ê°’ì„ ìž…ë ¥í•  수 있습니다."
   text_issues_ref_in_commit_messages: 제출 메시지ì—서 ì¼ê°ì„ 참조하거나 해결하기
-  text_issue_added: "{{author}}ì´(ê°€) ì¼ê° {{id}}ì„(를) 보고하였습니다."
-  text_issue_updated: "{{author}}ì´(ê°€) ì¼ê° {{id}}ì„(를) 수정하였습니다."
+  text_issue_added: "%{author}ì´(ê°€) ì¼ê° %{id}ì„(를) 보고하였습니다."
+  text_issue_updated: "%{author}ì´(ê°€) ì¼ê° %{id}ì„(를) 수정하였습니다."
   text_wiki_destroy_confirmation: ì´ ìœ„í‚¤ì™€ 모든 ë‚´ìš©ì„ ì§€ìš°ì‹œê² ìŠµë‹ˆê¹Œ?
-  text_issue_category_destroy_question: "ì¼ë¶€ ì¼ê°ë“¤({{count}}ê°œ)ì´ ì´ ë²”ì£¼ì— ì§€ì •ë˜ì–´ 있습니다. 어떻게 하시겠습니까?"
+  text_issue_category_destroy_question: "ì¼ë¶€ ì¼ê°ë“¤(%{count}ê°œ)ì´ ì´ ë²”ì£¼ì— ì§€ì •ë˜ì–´ 있습니다. 어떻게 하시겠습니까?"
   text_issue_category_destroy_assignments: 범주 지정 지우기
   text_issue_category_reassign_to: ì¼ê°ì„ ì´ ë²”ì£¼ì— ë‹¤ì‹œ 지정하기
   text_user_mail_option: "ì„ íƒí•˜ì§€ ì•Šì€ í”„ë¡œì íЏì—서ë„, 지켜보는 중ì´ê±°ë‚˜ ì†í•´ìžˆëŠ” 사항(ì¼ê°ì„ 발행했거나 í• ë‹¹ëœ ê²½ìš°)ì´ ìžˆìœ¼ë©´ 알림메ì¼ì„ 받게 ë©ë‹ˆë‹¤."
   text_no_configuration_data: "ì—­í• , ì¼ê° 유형, ì¼ê° ìƒíƒœë“¤ê³¼ 업무íë¦„ì´ ì•„ì§ ì„¤ì •ë˜ì§€ 않았습니다.\n기본 ì„¤ì •ì„ ì½ì–´ë“¤ì´ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤. ì½ì–´ë“¤ì¸ í›„ì— ìˆ˜ì •í•  수 있습니다."
   text_load_default_configuration: 기본 ì„¤ì •ì„ ì½ì–´ë“¤ì´ê¸°
-  text_status_changed_by_changeset: "ë³€ê²½ë¬¶ìŒ {{value}}ì— ì˜í•˜ì—¬ 변경ë¨"
+  text_status_changed_by_changeset: "ë³€ê²½ë¬¶ìŒ %{value}ì— ì˜í•˜ì—¬ 변경ë¨"
   text_issues_destroy_confirmation: 'ì„ íƒí•œ ì¼ê°ì„ ì •ë§ë¡œ 삭제하시겠습니까?'
   text_select_project_modules: 'ì´ í”„ë¡œì íЏì—서 활성화시킬 ëª¨ë“ˆì„ ì„ íƒí•˜ì„¸ìš”:'
   text_default_administrator_account_changed: 기본 ê´€ë¦¬ìž ê³„ì •ì´ ë³€ê²½
   text_file_repository_writable: íŒŒì¼ ì €ìž¥ì†Œ 쓰기 가능
   text_plugin_assets_writable: í”ŒëŸ¬ê·¸ì¸ ì „ìš© 디렉토리가 쓰기 가능
   text_rmagick_available: RMagick 사용 가능 (ì„ íƒì )
-  text_destroy_time_entries_question: 삭제하려는 ì¼ê°ì— {{hours}} ì‹œê°„ì´ ë³´ê³ ë˜ì–´ 있습니다. 어떻게 하시겠습니까?
+  text_destroy_time_entries_question: 삭제하려는 ì¼ê°ì— %{hours} ì‹œê°„ì´ ë³´ê³ ë˜ì–´ 있습니다. 어떻게 하시겠습니까?
   text_destroy_time_entries: ë³´ê³ ëœ ì‹œê°„ì„ ì‚­ì œí•˜ê¸°
   text_assign_time_entries_to_project: ë³´ê³ ëœ ì‹œê°„ì„ í”„ë¡œì íŠ¸ì— í• ë‹¹í•˜ê¸°
   text_reassign_time_entries: 'ì´ ì•Œë¦¼ì— ë³´ê³ ëœ ì‹œê°„ì„ ìž¬í• ë‹¹í•˜ê¸°:'
-  text_user_wrote: "{{value}}ì˜ ë§ê¸€:"
+  text_user_wrote: "%{value}ì˜ ë§ê¸€:"
   text_enumeration_category_reassign_to: '새로운 ê°’ì„ ì„¤ì •:'
-  text_enumeration_destroy_question: "{{count}} ê°œì˜ ì¼ê°ì´ ì´ ê°’ì„ ì‚¬ìš©í•˜ê³  있습니다."
+  text_enumeration_destroy_question: "%{count} ê°œì˜ ì¼ê°ì´ ì´ ê°’ì„ ì‚¬ìš©í•˜ê³  있습니다."
   text_email_delivery_not_configured: "ì´ë©”ì¼ ì „ë‹¬ì´ ì„¤ì •ë˜ì§€ 않았습니다. 그래서 ì•Œë¦¼ì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤.\n SMTP서버를 config/email.ymlì—서 설정하고 어플리케ì´ì…˜ì„ 다시 시작하십시오. 그러면 ë™ìž‘합니다."
   text_repository_usernames_mapping: "저장소 로그ì—서 ë°œê²¬ëœ ê° ì‚¬ìš©ìžì— ë ˆë“œë§ˆì¸ ì‚¬ìš©ìžë¥¼ ì—…ë°ì´íŠ¸í• ë•Œ ì„ íƒí•©ë‹ˆë‹¤.\n레드마ì¸ê³¼ ì €ìž¥ì†Œì˜ ì´ë¦„ì´ë‚˜ ì´ë©”ì¼ì´ ê°™ì€ ì‚¬ìš©ìžê°€ ìžë™ìœ¼ë¡œ ì—°ê²°ë©ë‹ˆë‹¤."
   text_diff_truncated: '... ì´ ì°¨ì´ì ì€ 표시할 수 있는 최대 줄수를 초과해서 ì´ ì°¨ì´ì ì€ 잘렸습니다.'
   text_custom_field_possible_values_info: 'ê° ê°’ 당 한 줄'
-  text_wiki_page_destroy_question: ì´ íŽ˜ì´ì§€ëŠ” {{descendants}} ê°œì˜ í•˜ìœ„ 페ì´ì§€ì™€ 관련 ë‚´ìš©ì´ ìžˆìŠµë‹ˆë‹¤. ì´ ë‚´ìš©ì„ ì–´ë–»ê²Œ 하시겠습니까?
+  text_wiki_page_destroy_question: ì´ íŽ˜ì´ì§€ëŠ” %{descendants} ê°œì˜ í•˜ìœ„ 페ì´ì§€ì™€ 관련 ë‚´ìš©ì´ ìžˆìŠµë‹ˆë‹¤. ì´ ë‚´ìš©ì„ ì–´ë–»ê²Œ 하시겠습니까?
   text_wiki_page_nullify_children: 하위 페ì´ì§€ë¥¼ 최ìƒìœ„ 페ì´ì§€ 아래로 지정
   text_wiki_page_destroy_children: 모든 하위 페ì´ì§€ì™€ 관련 ë‚´ìš©ì„ ì‚­ì œ
   text_wiki_page_reassign_children: 하위 페ì´ì§€ë¥¼ ì´ íŽ˜ì´ì§€ 아래로 지정
@@ -883,14 +884,14 @@
   label_branch: 분기(分å²)저장소
   error_no_tracker_in_project: 사용할 수 있ë„ë¡ ì„¤ì •ëœ ì¼ê° ìœ í˜•ì´ ì—†ìŠµë‹ˆë‹¤. 프로ì íЏ ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤.
   error_no_default_issue_status: '기본 ìƒíƒœê°€ ì •í•´ì ¸ 있지 않습니다. ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤. (주 ë©”ë‰´ì˜ "관리" -> "ì¼ê° ìƒíƒœ")'
-  text_journal_changed: "{{label}}ì„(를) {{old}}ì—서 {{new}}(으)로 변경ë˜ì—ˆìŠµë‹ˆë‹¤."
-  text_journal_set_to: "{{label}}ì„(를) {{value}}(으)로 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
-  text_journal_deleted: "{{label}} ê°’ì´ ì§€ì›Œì¡ŒìŠµë‹ˆë‹¤. ({{old}})"
+  text_journal_changed: "%{label}ì„(를) %{old}ì—서 %{new}(으)로 변경ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_set_to: "%{label}ì„(를) %{value}(으)로 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_deleted: "%{label} ê°’ì´ ì§€ì›Œì¡ŒìŠµë‹ˆë‹¤. (%{old})"
   label_group_plural: 그룹
   label_group: 그룹
   label_group_new: 새 그룹
   label_time_entry_plural: 작업시간
-  text_journal_added: "{{label}}ì— {{value}}ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
+  text_journal_added: "%{label}ì— %{value}ì´(ê°€) 추가ë˜ì—ˆìŠµë‹ˆë‹¤."
   field_active: 사용중
   enumeration_system_activity: 시스템 작업
   permission_delete_issue_watchers: ì¼ê°ì§€í‚´ì´ 지우기
@@ -925,9 +926,9 @@
   setting_start_of_week: 달력 시작 ìš”ì¼
   permission_view_issues: ì¼ê° 보기
   label_display_used_statuses_only: ì´ ì¼ê°ìœ í˜•ì—서 사용ë˜ëŠ” ìƒíƒœë§Œ 보여주기
-  label_revision_id: ê°œì •íŒ {{value}}
+  label_revision_id: ê°œì •íŒ %{value}
   label_api_access_key: API 접근키
-  label_api_access_key_created_on: API 접근키가 {{value}} ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
+  label_api_access_key_created_on: API 접근키가 %{value} ì „ì— ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤.
   label_feeds_access_key: RSS 접근키
   notice_api_access_key_reseted: API 접근키가 초기화ë˜ì—ˆìŠµë‹ˆë‹¤.
   setting_rest_api_enabled: REST 웹서비스 활성화
@@ -954,12 +955,12 @@
   label_subtask_plural: 하위 ì¼ê°
   label_project_copy_notifications: 프로ì íЏ 복사 ì¤‘ì— ì´ë©”ì¼ ì•Œë¦¼ 보내기
   error_can_not_delete_custom_field: ì‚¬ìš©ìž ì •ì˜ í•„ë“œë¥¼ 삭제할 수 없습니다.
-  error_unable_to_connect: 연결할 수 없습니다(({{value}})
+  error_unable_to_connect: 연결할 수 없습니다((%{value})
   error_can_not_remove_role: ì´ ì—­í• ì€ í˜„ìž¬ 사용 중ì´ì´ì„œ 삭제할 수 없습니다.
-  error_can_not_delete_tracker: ì´ ìœ í˜•ì˜ ì¼ê°ë“¤ì´ 있ì—서 삭제할 수 없습니다.
+  error_can_not_delete_tracker: ì´ ìœ í˜•ì˜ ì¼ê°ë“¤ì´ 있어서 삭제할 수 없습니다.
   field_principal: ì‹ ì›
   label_my_page_block: ë‚´ 페ì´ì§€ 출력화면
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "%{errors}:구성ì›ì„ 저장 중 실패하였습니다"
   text_zoom_out: ë” ìž‘ê²Œ
   text_zoom_in: ë” í¬ê²Œ
   notice_unable_delete_time_entry: 시간 ê¸°ë¡ í•­ëª©ì„ ì‚­ì œí•  수 없습니다.
@@ -967,19 +968,23 @@
   field_time_entries: 기ë¡ëœ 시간
   project_module_gantt: Gantt 챠트
   project_module_calendar: 달력
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
-  notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  button_edit_associated_wikipage: "ì—°ê´€ëœ ìœ„í‚¤ 페ì´ì§€ %{page_title} 수정"
+  text_are_you_sure_with_children: ì¼ê°ê³¼ 모든 하위 ì¼ê°ë“¤ì„ 삭제하시겠습니까?
+  field_text: í…스트 ì˜ì—­
+  label_user_mail_option_only_owner: ë‚´ê°€ ì €ìžì¸ 사항만
+  setting_default_notification_option: 기본 알림 옵션
+  label_user_mail_option_only_my_events: ë‚´ê°€ 지켜보거나 ì†í•´ìžˆëŠ” 사항만
+  label_user_mail_option_only_assigned: ë‚´ì—게 í• ë‹¹ëœ ì‚¬í•­ë§Œ
+  label_user_mail_option_none: 알림 ì—†ìŒ
+  field_member_of_group: í• ë‹¹ëœ ì‚¬ëžŒì˜ ê·¸ë£¹
+  field_assigned_to_role: í• ë‹¹ëœ ì‚¬ëžŒì˜ ì—­í• 
+  notice_not_authorized_archived_project: 접근하려는 프로ì íŠ¸ëŠ” ì´ë¯¸ 잠금보관ë˜ì–´ 있습니다.
+  label_principal_search: "ì‚¬ìš©ìž ë° ê·¸ë£¹ 찾기:"
+  label_user_search: "ì‚¬ìš©ìž ì°¾ê¸°::"
+  field_visible: ë³´ì´ê¸°
+  setting_emails_header: ì´ë©”ì¼ í—¤ë”
+  setting_commit_logtime_activity_id: 기ë¡ëœ ì‹œê°„ì— ì ìš©í•  작업분류
+  text_time_logged_by_changeset: "ë³€ê²½ë¬¶ìŒ %{value}ì—서 ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤."
+  setting_commit_logtime_enabled: 커밋 시ì ì— 작업 시간 ê¸°ë¡ í™œì„±í™”
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/lt.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/lt.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -37,42 +37,42 @@
     distance_in_words:
       half_a_minute: "pusÄ— minutÄ—s"
       less_than_x_seconds:
-        one:   "mažiau nei {{count}} sekundė"
-        few:   "mažiau nei {{count}} sekundžių"
-        many:  "mažiau nei {{count}} sekundžių"
-        other: "mažiau nei {{count}} sekundės"
+        one:   "mažiau nei %{count} sekundė"
+        few:   "mažiau nei %{count} sekundžių"
+        many:  "mažiau nei %{count} sekundžių"
+        other: "mažiau nei %{count} sekundės"
       x_seconds:
-        one:   "{{count}} sekundÄ—"
-        few:   "{{count}} sekundžių"
-        many:  "{{count}} sekundžių"
-        other: "{{count}} sekundÄ—s"
+        one:   "%{count} sekundÄ—"
+        few:   "%{count} sekundžių"
+        many:  "%{count} sekundžių"
+        other: "%{count} sekundÄ—s"
       less_than_x_minutes:
         one:   "mažiau nei minutė"
-        other: "mažiau nei {{count}} minutės"
+        other: "mažiau nei %{count} minutės"
       x_minutes:
         one:   "1 minutÄ—"
-        other: "{{count}} minutÄ—s"
+        other: "%{count} minutÄ—s"
       about_x_hours:
         one:   "apie 1 valanda"
-        other: "apie {{count}} valandų"
+        other: "apie %{count} valandų"
       x_days:
         one:   "1 diena"
-        other: "{{count}} dienų"
+        other: "%{count} dienų"
       about_x_months:
         one:   "apie 1 mÄ—nuo"
-        other: "apie {{count}} mÄ—nesiai"
+        other: "apie %{count} mÄ—nesiai"
       x_months:
         one:   "1 mÄ—nuo"
-        other: "{{count}} mÄ—nesiai"
+        other: "%{count} mÄ—nesiai"
       about_x_years:
         one:   "apie 1 metai"
-        other: "apie {{count}} metų"
+        other: "apie %{count} metų"
       over_x_years:
         one:   "virš 1 metų"
-        other: "virš {{count}} metų"
+        other: "virš %{count} metų"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Metai"
       month:  "MÄ—nuo"
@@ -137,10 +137,10 @@
     errors:
       template:
         header:
-          one:    "Išsaugant objektą {{model}} rasta {{count}} klaida"
-          few:    "Išsaugant objektą {{model}} rasta {{count}} klaidų"
-          many:   "Išsaugant objektą {{model}} rasta {{count}} klaidų"
-          other:  "Išsaugant objektą {{model}} rastos {{count}} klaidos"
+          one:    "Išsaugant objektą %{model} rasta %{count} klaida"
+          few:    "Išsaugant objektą %{model} rasta %{count} klaidų"
+          many:   "Išsaugant objektą %{model} rasta %{count} klaidų"
+          other:  "Išsaugant objektą %{model} rastos %{count} klaidos"
         body: "Šiuose laukuose yra klaidų:"
 
       messages:
@@ -152,28 +152,28 @@
         empty: "negali bÅ«ti tuÅ¡Äias"
         blank: "negali bÅ«ti tuÅ¡Äias"
         too_long:
-          one:   "per ilgas (daugiausiai {{count}} simbolius)"
-          few:   "per ilgas (daugiausiai {{count}} simboliu)"
-          many:  "per ilgas (daugiausiai {{count}} simboliu)"
-          other: "per ilgas (daugiausiai {{count}} simboliai)"
+          one:   "per ilgas (daugiausiai %{count} simbolius)"
+          few:   "per ilgas (daugiausiai %{count} simboliu)"
+          many:  "per ilgas (daugiausiai %{count} simboliu)"
+          other: "per ilgas (daugiausiai %{count} simboliai)"
         too_short:
-          one:   "per trumpas (mažiausiai {{count}} simbolius)"
-          few:   "per trumpas (mažiausiai {{count}} simboliu)"
-          many:  "per trumpas (mažiausiai {{count}} simboliu)"
-          other: "per trumpas (mažiausiai {{count}} simboliai)"
+          one:   "per trumpas (mažiausiai %{count} simbolius)"
+          few:   "per trumpas (mažiausiai %{count} simboliu)"
+          many:  "per trumpas (mažiausiai %{count} simboliu)"
+          other: "per trumpas (mažiausiai %{count} simboliai)"
         wrong_length:
-          one:   "neteisingo ilgio (turi būti lygiai {{count}} simbolius)"
-          few:   "neteisingo ilgio (turi būti lygiai {{count}} simboliu)"
-          many:  "neteisingo ilgio (turi būti lygiai {{count}} simboliu)"
-          other: "neteisingo ilgio (turi būti lygiai {{count}} simboliai)"
+          one:   "neteisingo ilgio (turi būti lygiai %{count} simbolius)"
+          few:   "neteisingo ilgio (turi būti lygiai %{count} simboliu)"
+          many:  "neteisingo ilgio (turi būti lygiai %{count} simboliu)"
+          other: "neteisingo ilgio (turi būti lygiai %{count} simboliai)"
         taken: "jau užimtas"
         not_a_number: "ne skaiÄius"
         not_a_date: "is not a valid date"
-        greater_than: "turi būti didesnis už {{count}}"
-        greater_than_or_equal_to: "turi būti didesnis arba lygus {{count}}"
-        equal_to: "turi būti lygus {{count}}"
-        less_than: "turi būti mažesnis už {{count}}"
-        less_than_or_equal_to: "turi būti mažesnis arba lygus {{count}}"
+        greater_than: "turi būti didesnis už %{count}"
+        greater_than_or_equal_to: "turi būti didesnis arba lygus %{count}"
+        equal_to: "turi būti lygus %{count}"
+        less_than: "turi būti mažesnis už %{count}"
+        less_than_or_equal_to: "turi būti mažesnis arba lygus %{count}"
         odd: "turi būti nelyginis"
         even: "turi būti lyginis"
         greater_than_start_date: "turi būti didesnė negu pradžios data"
@@ -210,18 +210,18 @@
   notice_file_not_found: Puslapis, į kurį ketinate įeiti, neegzistuoja arba yra pašalintas.
   notice_locking_conflict: Duomenys atnaujinti kito vartotojo.
   notice_not_authorized: Jūs neturite teisių gauti prieigą prie šio puslapio.
-  notice_email_sent: "Laiškas išsiųstas {{value}}"
-  notice_email_error: "Laiško siuntimo metu įvyko klaida ({{value}})"
+  notice_email_sent: "Laiškas išsiųstas %{value}"
+  notice_email_error: "Laiško siuntimo metu įvyko klaida (%{value})"
   notice_feeds_access_key_reseted: Jūsų RSS raktas buvo atnaujintas.
-  notice_failed_to_save_issues: "Nepavyko išsaugoti {{count}} problemos(ų) iš {{total}} pasirinkto: {{ids}}."
+  notice_failed_to_save_issues: "Nepavyko išsaugoti %{count} problemos(ų) iš %{total} pasirinkto: %{ids}."
   notice_no_issue_selected: "Nepasirinkta nė viena problema! Prašom pažymėti problemą, kurią norite redaguoti."
   notice_account_pending: "Jūsų paskyra buvo sukurta ir dabar laukiama administratoriaus patvirtinimo."
   notice_default_data_loaded: Numatytoji konfiguracija sėkmingai užkrauta.
   notice_unable_delete_version: Neįmanoma panaikinti versiją
   
-  error_can_t_load_default_data: "Numatytoji konfiguracija negali būti užkrauta: {{value}}"
+  error_can_t_load_default_data: "Numatytoji konfiguracija negali būti užkrauta: %{value}"
   error_scm_not_found: "Duomenys ir/ar pakeitimai saugykloje(repozitorojoje) neegzistuoja."
-  error_scm_command_failed: "Įvyko klaida jungiantis prie saugyklos: {{value}}"
+  error_scm_command_failed: "Įvyko klaida jungiantis prie saugyklos: %{value}"
   error_scm_annotate: "Įrašas neegzistuoja arba negalima jo atvaizduoti."
   error_issue_not_found_in_project: 'Darbas nerastas arba nesurištas su šiuo projektu'
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
@@ -229,25 +229,25 @@
   error_can_not_reopen_issue_on_closed_version: Uždarytai versijai priskirtas darbas negali būti atnaujintas.
   error_can_not_archive_project: Å io projekto negalima suarchyvuoti
 
-  warning_attachments_not_saved: "{{count}} byla(ų) negali būti išsaugota."
+  warning_attachments_not_saved: "%{count} byla(ų) negali būti išsaugota."
 
-  mail_subject_lost_password: "Jūsų {{value}} slaptažodis"
+  mail_subject_lost_password: "Jūsų %{value} slaptažodis"
   mail_body_lost_password: 'Norėdami pakeisti slaptažodį, spauskite nuorodą:'
-  mail_subject_register: "Jūsų {{value}} paskyros aktyvavimas"
+  mail_subject_register: "Jūsų %{value} paskyros aktyvavimas"
   mail_body_register: 'NorÄ—dami aktyvuoti paskyrÄ…, spauskite nuorodÄ…:'
-  mail_body_account_information_external: "Jūs galite naudoti Jūsų {{value}} paskyrą, norėdami prisijungti."
+  mail_body_account_information_external: "Jūs galite naudoti Jūsų %{value} paskyrą, norėdami prisijungti."
   mail_body_account_information: Informacija apie Jūsų paskyrą
-  mail_subject_account_activation_request: "{{value}} paskyros aktyvavimo prašymas"
-  mail_body_account_activation_request: "Užsiregistravo naujas vartotojas ({{value}}). Jo paskyra laukia jūsų patvirtinimo:"
-  mail_subject_reminder: "{{count}} darbas(ai) po kelių {{days}} dienų"
-  mail_body_reminder: "{{count}} darbas(ai), kurie yra jums priskirti, baigiasi po {{days}} dienų(os):"
-  mail_subject_wiki_content_added: "'{{id}}' pridÄ—tas wiki puslapis"
-  mail_body_wiki_content_added: "The '{{id}}' wiki puslapi pridÄ—jo {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' atnaujintas wiki puslapis"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki puslapį atnaujino {{author}}."
+  mail_subject_account_activation_request: "%{value} paskyros aktyvavimo prašymas"
+  mail_body_account_activation_request: "Užsiregistravo naujas vartotojas (%{value}). Jo paskyra laukia jūsų patvirtinimo:"
+  mail_subject_reminder: "%{count} darbas(ai) po kelių %{days} dienų"
+  mail_body_reminder: "%{count} darbas(ai), kurie yra jums priskirti, baigiasi po %{days} dienų(os):"
+  mail_subject_wiki_content_added: "'%{id}' pridÄ—tas wiki puslapis"
+  mail_body_wiki_content_added: "The '%{id}' wiki puslapi pridÄ—jo %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' atnaujintas wiki puslapis"
+  mail_body_wiki_content_updated: "The '%{id}' wiki puslapį atnaujino %{author}."
 
   gui_validation_error: 1 klaida
-  gui_validation_error_plural: "{{count}} klaidų(os)"
+  gui_validation_error_plural: "%{count} klaidų(os)"
   
   field_name: Pavadinimas
   field_description: Aprašas
@@ -310,6 +310,7 @@
   field_attr_lastname: PavardÄ—s priskiria
   field_attr_mail: Elektroninio pašto požymis
   field_onthefly: Automatinis vartotojų registravimas
+  field_start_date: PradÄ—ti
   field_done_ratio: % atlikta
   field_auth_source: Autentiškumo nustatymo būdas
   field_hide_mail: Paslėpkite mano elektroninio pašto adresą
@@ -458,14 +459,14 @@
   label_x_projects:
     zero:  nėra projektų
     one:   1 projektas
-    other: "{{count}} projektų"
+    other: "%{count} projektų"
   label_project_all: Visi Projektai
   label_project_latest: Paskutiniai projektai
   label_issue: Darbas
   label_issue_new: Naujas darbas
   label_issue_plural: Darbai
   label_issue_view_all: Peržiūrėti visus darbus
-  label_issues_by: "Darbai pagal {{value}}"
+  label_issues_by: "Darbai pagal %{value}"
   label_issue_added: Darbas pridÄ—tas
   label_issue_updated: Darbas atnaujintas
   label_document: Dokumentas
@@ -513,7 +514,7 @@
   label_registered_on: Užregistruota
   label_activity: Veikla
   label_overall_activity: Visa veikla
-  label_user_activity: "{{value}}o veiksmai"
+  label_user_activity: "%{value}o veiksmai"
   label_new: Naujas
   label_logged_as: Prisijungęs kaip
   label_environment: Aplinka
@@ -522,7 +523,7 @@
   label_auth_source_new: Naujas autentiškumo nustatymo būdas
   label_auth_source_plural: Autentiškumo nustatymo būdai
   label_subproject_plural: Subprojektai
-  label_and_its_subprojects: "{{value}} projektas ir jo subprojektai"
+  label_and_its_subprojects: "%{value} projektas ir jo subprojektai"
   label_min_max_length: Min - Maks ilgis
   label_list: Sąrašas
   label_date: Data
@@ -533,8 +534,8 @@
   label_text: Ilgas tekstas
   label_attribute: Požymis
   label_attribute_plural: Požymiai
-  label_download: "{{count}} persiuntimas"
-  label_download_plural: "{{count}} persiuntimai"
+  label_download: "%{count} persiuntimas"
+  label_download_plural: "%{count} persiuntimai"
   label_no_data: NÄ—ra kÄ… atvaizduoti
   label_change_status: Pakeitimo būsena
   label_history: Istorija
@@ -566,17 +567,17 @@
   label_closed_issues: uždaryta
   label_closed_issues_plural: uždaryti
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 uždarytu
     one:   1 uždarytas
-    other: "{{count}} uždarytu"
+    other: "%{count} uždarytu"
   label_total: Bendra suma
   label_permissions: Leidimai
   label_current_status: Einamoji būsena
@@ -594,7 +595,7 @@
   label_months_from: mÄ—nesiai nuo
   label_gantt: Gantt
   label_internal: Vidinis
-  label_last_changes: "paskutiniai {{count}}, pokyÄiai"
+  label_last_changes: "paskutiniai %{count}, pokyÄiai"
   label_change_view_all: Peržiūrėti visus pakeitimus
   label_personalize_page: Suasmeninti šį puslapį
   label_comment: Komentaras
@@ -602,7 +603,7 @@
   label_x_comments:
     zero: nėra komentarų
     one: 1 komentaras
-    other: "{{count}} komentarų"
+    other: "%{count} komentarų"
   label_comment_add: PridÄ—kite komentarÄ…
   label_comment_added: Komentaras pridÄ—tas
   label_comment_delete: Pašalinkite komentarus
@@ -621,7 +622,7 @@
   label_yesterday: vakar
   label_this_week: šią savaitę
   label_last_week: paskutinÄ— savaitÄ—
-  label_last_n_days: "paskutinių {{count}} dienų"
+  label_last_n_days: "paskutinių %{count} dienų"
   label_this_month: šis menuo
   label_last_month: paskutinis menuo
   label_this_year: šiemet
@@ -635,8 +636,8 @@
   label_repository: Saugykla
   label_repository_plural: Saugyklos
   label_browse: Naršyti
-  label_modification: "{{count}} pakeitimas"
-  label_modification_plural: "{{count}} pakeitimai"
+  label_modification: "%{count} pakeitimas"
+  label_modification_plural: "%{count} pakeitimai"
   label_revision: Revizija
   label_revision_plural: Revizijos
   label_associated_revisions: susijusios revizijos
@@ -654,8 +655,8 @@
   label_sort_lower: Perkelti žemyn
   label_sort_lowest: Perkelti į apaÄiÄ…
   label_roadmap: Veiklos grafikas
-  label_roadmap_due_in: "Baigiasi po {{value}}"
-  label_roadmap_overdue: "{{value}} vÄ—luojama"
+  label_roadmap_due_in: "Baigiasi po %{value}"
+  label_roadmap_overdue: "%{value} vÄ—luojama"
   label_roadmap_no_issues: Jokio darbo šiai versijai nėra
   label_search: Ieškoti
   label_result_plural: Rezultatai
@@ -673,8 +674,8 @@
   label_changes_details: Visų pakeitimų detalės
   label_issue_tracking: Darbų sekimas
   label_spent_time: Dirbtas laikas
-  label_f_hour: "{{value}} valanda"
-  label_f_hour_plural: "{{value}} valandų"
+  label_f_hour: "%{value} valanda"
+  label_f_hour_plural: "%{value} valandų"
   label_time_tracking: Laiko sekimas
   label_change_plural: Pakeitimai
   label_statistics: Statistika
@@ -723,13 +724,13 @@
   label_date_from: Nuo
   label_date_to: Iki
   label_language_based: Pagrįsta vartotojo kalba
-  label_sort_by: "Rūšiuoti pagal {{value}}"
+  label_sort_by: "Rūšiuoti pagal %{value}"
   label_send_test_email: Nusiųsti bandomąjį elektroninį laišką
-  label_feeds_access_key_created_on: "RSS prieigos raktas sukurtas prieš {{value}}"
+  label_feeds_access_key_created_on: "RSS prieigos raktas sukurtas prieš %{value}"
   label_module_plural: Moduliai
-  label_added_time_by: "Pridėjo {{author}} prieš {{age}}"
-  label_updated_time_by: "Atnaujino {{author}} {{age}} atgal"
-  label_updated_time: "Atnaujinta prieš {{value}}"
+  label_added_time_by: "Pridėjo %{author} prieš %{age}"
+  label_updated_time_by: "Atnaujino %{author} %{age} atgal"
+  label_updated_time: "Atnaujinta prieš %{value}"
   label_jump_to_a_project: Šuolis į projektą...
   label_file_plural: Bylos
   label_changeset_plural: Changesets
@@ -745,7 +746,7 @@
   label_registration_activation_by_email: "paskyros aktyvacija per e-paštą"
   label_registration_manual_activation: "rankinÄ— paskyros aktyvacija"
   label_registration_automatic_activation: "automatinÄ— paskyros aktyvacija"
-  label_display_per_page: "{{value}} įrašų puslapyje"
+  label_display_per_page: "%{value} įrašų puslapyje"
   label_age: Amžius
   label_change_properties: Pakeisti nustatymus
   label_general: Bendri
@@ -769,7 +770,7 @@
   label_descending: Descending
   label_sort: Rūšiuoti
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
   label_wiki_content_added: Wiki puslapis pridÄ—tas
@@ -843,52 +844,52 @@
   text_regexp_info: pvz. ^[A-Z0-9]+$
   text_min_max_length_info: 0 reiškia jokių apribojimų
   text_project_destroy_confirmation: Ar esate įsitikinęs, kad jūs norite pašalinti šį projektą ir visus susijusius duomenis?
-  text_subprojects_destroy_warning: "Šis(ie) subprojektas(ai): {{value}} taip pat bus ištrintas(i)."
+  text_subprojects_destroy_warning: "Šis(ie) subprojektas(ai): %{value} taip pat bus ištrintas(i)."
   text_workflow_edit: Išrinkite vaidmenį ir pėdsekį, kad redaguotumėte darbų eigą
   text_are_you_sure: Ar esate įsitikinęs?
-  text_journal_changed: "{{label}} pakeista iš {{old}} į {{new}}"
-  text_journal_set_to: "{{label}} pakeista į {{value}}"
-  text_journal_deleted: "{{label}} ištrintas ({{old}})"
-  text_journal_added: "{{label}} {{value}} pridÄ—tas"
+  text_journal_changed: "%{label} pakeista iš %{old} į %{new}"
+  text_journal_set_to: "%{label} pakeista į %{value}"
+  text_journal_deleted: "%{label} ištrintas (%{old})"
+  text_journal_added: "%{label} %{value} pridÄ—tas"
   text_tip_issue_begin_day: užduotis, prasidedanti šią dieną
   text_tip_issue_end_day: užduotis, pasibaigianti šią dieną
   text_tip_issue_begin_end_day: užduotis, prasidedanti ir pasibaigianti šią dieną
   text_project_identifier_info: 'Mažosios raidÄ—s (a-z), skaiÄiai ir brÅ«kÅ¡niai galimi.<br/>IÅ¡saugojus, identifikuotojas negali bÅ«ti keiÄiamas.'
-  text_caracters_maximum: "{{count}} simbolių maksimumas."
-  text_caracters_minimum: "Turi būti mažiausiai {{count}} simbolių ilgio."
-  text_length_between: "Ilgis tarp {{min}} ir {{max}} simbolių."
+  text_caracters_maximum: "%{count} simbolių maksimumas."
+  text_caracters_minimum: "Turi būti mažiausiai %{count} simbolių ilgio."
+  text_length_between: "Ilgis tarp %{min} ir %{max} simbolių."
   text_tracker_no_workflow: Jokia darbų eiga neapibrėžta šiam pėdsekiui
   text_unallowed_characters: Neleistini simboliai
   text_comma_separated: Leistinos kelios reikšmės (atskirtos kableliu).
   text_issues_ref_in_commit_messages: Darbų pavedimų(commit) nurodymas ir fiksavimas  pranešimuose
-  text_issue_added: "Darbas {{id}} buvo praneštas (by {{author}})."
-  text_issue_updated: "Darbas {{id}} buvo atnaujintas (by {{author}})."
+  text_issue_added: "Darbas %{id} buvo praneštas (by %{author})."
+  text_issue_updated: "Darbas %{id} buvo atnaujintas (by %{author})."
   text_wiki_destroy_confirmation: Ar esate įsitikinęs, kad jūs norite pašalinti wiki ir visą jos turinį?
-  text_issue_category_destroy_question: "Kai kurie darbai ({{count}}) yra paskirti šiai kategorijai. Ką jūs norite daryti?"
+  text_issue_category_destroy_question: "Kai kurie darbai (%{count}) yra paskirti šiai kategorijai. Ką jūs norite daryti?"
   text_issue_category_destroy_assignments: Pašalinti kategorijos užduotis
   text_issue_category_reassign_to: Iš naujo priskirti darbus šiai kategorijai
   text_user_mail_option: "neišrinktiems projektams, jūs tiktai gausite pranešimus apie įvykius, kuriuos jūs stebite, arba į kuriuos esate įtrauktas (pvz. darbai, jūs esate autorius ar įgaliotinis)."
   text_no_configuration_data: "Vaidmenys, pėdsekiai, darbų būsenos ir darbų eiga dar nebuvo konfigūruoti.\nGriežtai rekomenduojam užkrauti numatytąją(default)konfiguraciją. Užkrovus, galėsite ją modifikuoti."
   text_load_default_configuration: Užkrauti numatytąj konfiguraciją
-  text_status_changed_by_changeset: "Pakeista {{value}} revizijoje."
+  text_status_changed_by_changeset: "Pakeista %{value} revizijoje."
   text_issues_destroy_confirmation: 'Ar jūs tikrai norite sunaikinti pažymėtą(us) darbą(us)?'
   text_select_project_modules: 'Parinkite modulius, kuriuos norite naudoti šiame projekte:'
   text_default_administrator_account_changed: Administratoriaus numatyta paskyra pakeista
   text_file_repository_writable: Ä® rinkmenu saugyklÄ… galima saugoti (RW)
   text_plugin_assets_writable: Įskiepių 'assets' katalogas įrašomas
   text_rmagick_available: RMagick pasiekiamas (pasirinktinai)
-  text_destroy_time_entries_question: Naikinamam darbui priskirta {{hours}} valandų. Ką jūs noryte su jomis daryti?
+  text_destroy_time_entries_question: Naikinamam darbui priskirta %{hours} valandų. Ką jūs noryte su jomis daryti?
   text_destroy_time_entries: Ištrinti paskelbtas valandas
   text_assign_time_entries_to_project: Priskirti valandas prie projekto
   text_reassign_time_entries: 'Priskirti paskelbtas valandas šiam darbui:'
-  text_user_wrote: "{{value}} parašė:"
-  text_enumeration_destroy_question: "{{count}} objektai priskirti šiai reikšmei."
+  text_user_wrote: "%{value} parašė:"
+  text_enumeration_destroy_question: "%{count} objektai priskirti šiai reikšmei."
   text_enumeration_category_reassign_to: 'Priskirti juos šiai reikšmei:'
   text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/email.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
   text_repository_usernames_mapping: "Parinkite  ar atnaujinkite Redmine vartotojo vardą kiekvienam saugyklos vardui, kuris paminėtas saugyklos log'e.\nVartotojai, turintys tą patį Redmine ir saugyklos vardą ar el.paštą automatiškai surišti."
   text_diff_truncated: "... Å is diff'as nukarpytas, nes jis virÅ¡ijo maksimalų rodomÄ… eiluÄių skaiÄių."
   text_custom_field_possible_values_info: 'Po vieną eilutę kiekvienai reikšmei'
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Priskirkite iš naujo 'child' puslapius šiam puslapiui
   text_wiki_page_nullify_children: Laikyti child puslapius as root puslapius
   text_wiki_page_destroy_children: Pašalinti child puslapius ir jų sekinius
@@ -933,9 +934,9 @@
   label_update_issue_done_ratios: Update issue done ratios
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -962,12 +963,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -975,7 +976,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -986,8 +987,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/lv.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/lv.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,924 +1,933 @@
-# translated by Dzintars Bergs (dzintars.bergs@gmail.com)
-
-lv:
-  direction: ltr
-  date:
-    formats:
-      default: "%d.%m.%Y"
-      short: "%d %b"
-      long: "%d %B %Y"
-      
-    day_names: [Svētdiena, Pirmdiena, Otrdiena, Trešdiena, Ceturtdiena, Piektdiena, Sestdiena]
-    abbr_day_names: [Sv, Pr, Ot, Tr, Ct, Pk, St]
-      
-    month_names: [~, JanvÄris, FebruÄris, Marts, AprÄ«lis , Maijs, JÅ«nijs, JÅ«lijs, Augusts, Septembris, Oktobris, Novembris, Decembris]
-    abbr_month_names: [~, Jan, Feb, Mar, Apr, Mai, Jūn, Jūl, Aug, Sep, Okt, Nov, Dec]
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%a, %d %b %Y, %H:%M:%S %z"
-      time: "%H:%M"
-      short: "%d %b, %H:%M"
-      long: "%B %d, %Y %H:%M"
-    am: "rÄ«tÄ"
-    pm: "vakarÄ"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "pus minūte"
-      less_than_x_seconds:
-        one:   "mazÄk kÄ 1 sekunde"
-        other: "mazÄk kÄ {{count}} sekundes"
-      x_seconds:
-        one:   "1 sekunde"
-        other: "{{count}} sekundes"
-      less_than_x_minutes:
-        one:   "mazÄk kÄ minÅ«te"
-        other: "mazÄk kÄ {{count}} minÅ«tes"
-      x_minutes:
-        one:   "1 minūte"
-        other: "{{count}} minūtes"
-      about_x_hours:
-        one:   "aptuveni 1 stunda"
-        other: "aptuveni {{count}} stundas"
-      x_days:
-        one:   "1 diena"
-        other: "{{count}} dienas"
-      about_x_months:
-        one:   "aptuveni 1 mēnesis"
-        other: "aptuveni {{count}} mēneši"
-      x_months:
-        one:   "1 mēnesis"
-        other: "{{count}} mēneši"
-      about_x_years:
-        one:   "aptuveni 1 gads"
-        other: "aptuveni {{count}} gadi"
-      over_x_years:
-        one:   "ilgÄk par 1 gadu"
-        other: "ilgÄk par {{count}} gadiem"
-      almost_x_years:
-        one:   "gandrīz 1 gadu"
-        other: "gandrīz {{count}} gadus"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: " "
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Baits"
-            other: "Baiti"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-  support:
-    array:
-      sentence_connector: "un"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "nav iekļauts sarakstÄ"
-        exclusion: "ir rezervēts"
-        invalid: "nederīgs"
-        confirmation: "apstiprinÄjums nesakrÄ«t"
-        accepted: "jÄbÅ«t akceptÄ“tam"
-        empty: "nevar būt tukšs"
-        blank: "nevar būt neaizpildīts"
-        too_long: "ir pÄrÄk gara(Å¡) (maksimÄlais garums ir {{count}} simboli)"
-        too_short: "ir pÄrÄk Ä«sa(s) (minimÄlais garums ir {{count}} simboli)"
-        wrong_length: "ir nepareiza garuma (vajadzētu būt {{count}} simboli)"
-        taken: "eksistē"
-        not_a_number: "nav skaitlis"
-        not_a_date: "nav derīgs datums"
-        greater_than: "jÄbÅ«t lielÄkam par {{count}}"
-        greater_than_or_equal_to: "jÄbÅ«t lielÄkam vai vienÄdam ar {{count}}"
-        equal_to: "jÄbÅ«t vienÄdam ar {{count}}"
-        less_than: "jÄbÅ«t mazÄkam kÄ {{count}}"
-        less_than_or_equal_to: "jÄbÅ«t mazÄkam vai vienÄdam ar {{count}}"
-        odd: "jÄatšķirÄs"
-        even: "jÄsakrÄ«t"
-        greater_than_start_date: "jÄbÅ«t vÄ“lÄkam par sÄkuma datumu"
-        not_same_project: "nepieder pie tÄ paÅ¡a projekta"
-        circular_dependency: "Å Ä« relÄcija radÄ«tu ciklisku atkarÄ«bu"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Izvēlieties
-  
-  general_text_No: 'NÄ“'
-  general_text_Yes: 'JÄ'
-  general_text_no: 'nē'
-  general_text_yes: 'jÄ'
-  general_lang_name: 'Latvian (Latviešu)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Konts tika atjaunots veiksmīgi.
-  notice_account_invalid_creditentials: Nepareizs lietotÄja vÄrds vai parole.
-  notice_account_password_updated: Parole tika veiksmīgi atjaunota.
-  notice_account_wrong_password: Nepareiza parole
-  notice_account_register_done: Konts veiksmīgi izveidots. Lai aktivizētu kontu, spiediet uz saites, kas Jums tika nosūtīta.
-  notice_account_unknown_email: NezinÄms lietotÄjs
-  notice_can_t_change_password: Å is konts izmanto ÄrÄ“ju pilnvaroÅ¡anas avotu. Nav iespÄ“jams nomainÄ«t paroli.
-  notice_account_lost_email_sent: Jums tika nosÅ«tÄ«ts e-pasts ar instrukcijÄm, kÄ izveidot jaunu paroli.
-  notice_account_activated: Jūsu konts ir aktivizēts. Varat pieslēgties sistēmai.
-  notice_successful_create: Veiksmīga izveide.
-  notice_successful_update: Veiksmīga atjaunošana.
-  notice_successful_delete: Veiksmīga dzēšana.
-  notice_successful_connection: Veiksmīgs savienojums.
-  notice_file_not_found: Lapa, ko JÅ«s mēģinÄt atvÄ“rt, neeksistÄ“ vai ir pÄrvietota.
-  notice_locking_conflict: Datus ir atjaunojis cits lietotÄjs.
-  notice_not_authorized: Jums nav tiesību piekļūt šai lapai.
-  notice_email_sent: "E-pasts tika nosūtīts uz {{value}}"
-  notice_email_error: "Kļūda sūtot e-pastu ({{value}})"
-  notice_feeds_access_key_reseted: JÅ«su RSS pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
-  notice_api_access_key_reseted: JÅ«su API pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
-  notice_failed_to_save_issues: "NeizdevÄs saglabÄt {{count}} uzdevumu(us) no {{total}} izvÄ“lÄ“ti: {{ids}}."
-  notice_no_issue_selected: "Nav izvēlēts uzdevums! Lūdzu, atzīmējiet uzdevumus, kurus vēlaties rediģēt!"
-  notice_account_pending: "JÅ«su konts tika izveidots un Å¡obrÄ«d gaida administratora apstiprinÄjumu."
-  notice_default_data_loaded: NoklusÄ“tÄ konfigurÄcija tika veiksmÄ«gi ielÄdÄ“ta.
-  notice_unable_delete_version: NeizdevÄs dzÄ“st versiju.
-  notice_issue_done_ratios_updated: Uzdevuma izpildes koeficients atjaunots.
-  
-  error_can_t_load_default_data: "Nevar ielÄdÄ“t noklusÄ“tos konfigurÄcijas datus: {{value}}"
-  error_scm_not_found: "Ieraksts vai versija nebija repozitorijÄ."
-  error_scm_command_failed: "Mēģinot piekļūt repozitorijam, notika kļūda: {{value}}"
-  error_scm_annotate: "Ieraksts neeksistē vai tam nevar tikt pievienots paskaidrojums."
-  error_issue_not_found_in_project: 'Uzdevums netika atrasts vai nepieder šim projektam.'
-  error_no_tracker_in_project: 'Neviens trakeris nav saistÄ«ts ar Å¡o projektu. PÄrbaudiet projekta iestatÄ«jumus.'
-  error_no_default_issue_status: 'Nav definÄ“ts uzdevuma noklusÄ“tais statuss. PÄrbaudiet konfigurÄciju (Ejat uz: "AdministrÄcija -> Uzdevumu statusi")!'
-  error_can_not_reopen_issue_on_closed_version: 'Nevar pievienot atsauksmi uzdevumam, kas saistīts ar slēgtu versiju.'
-  error_can_not_archive_project: Šis projekts nevar tikt arhivēts
-  error_issue_done_ratios_not_updated: "Uzdevuma izpildes koeficients nav atjaunots."
-  error_workflow_copy_source: 'Lūdzu izvēlieties avota trakeri vai lomu'
-  error_workflow_copy_target: 'Lūdzu izvēlēties mērķa trakeri(us) un lomu(as)'
-  
-  warning_attachments_not_saved: "{{count}} datnes netika saglabÄtas."
-  
-  mail_subject_lost_password: "Jūsu {{value}} parole"
-  mail_body_lost_password: 'Lai mainītu paroli, spiediet uz šīs saites:'
-  mail_subject_register: "JÅ«su {{value}} konta aktivizÄcija"
-  mail_body_register: 'Lai izveidotu kontu, spiediet uz šīs saites:'
-  mail_body_account_information_external: "Varat izmantot Jūsu {{value}} kontu, lai pieslēgtos."
-  mail_body_account_information: JÅ«su konta informÄcija
-  mail_subject_account_activation_request: "{{value}} konta aktivizÄcijas pieprasÄ«jums"
-  mail_body_account_activation_request: "Jauns lietotÄjs ({{value}}) ir reÄ£istrÄ“ts. LietotÄja konts gaida JÅ«su apstiprinÄjumu:"
-  mail_subject_reminder: "{{count}} uzdevums(i) sagaidÄms(i) tuvÄkajÄs {{days}} dienÄs"
-  mail_body_reminder: "{{count}} uzdevums(i), kurÅ¡(i) ir nozÄ«mÄ“ts(i) Jums, sagaidÄms(i) tuvÄkajÄs {{days}} dienÄs:"
-  mail_subject_wiki_content_added: "'{{id}}' Wiki lapa pievienota"
-  mail_body_wiki_content_added: "The '{{id}}' Wiki lapu pievienojis {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki lapa atjaunota"
-  mail_body_wiki_content_updated: "The '{{id}}' Wiki lapu atjaunojis {{author}}."
-  
-  gui_validation_error: 1 kļūda
-  gui_validation_error_plural: "{{count}} kļūdas"
-  
-  field_name: Nosaukums
-  field_description: Apraksts
-  field_summary: Kopsavilkums
-  field_is_required: Nepieciešams
-  field_firstname: VÄrds
-  field_lastname: UzvÄrds
-  field_mail: "E-pasts"
-  field_filename: Datne
-  field_filesize: Izmērs
-  field_downloads: LejupielÄdes
-  field_author: Autors
-  field_created_on: Izveidots
-  field_updated_on: Atjaunots
-  field_field_format: FormÄts
-  field_is_for_all: Visiem projektiem
-  field_possible_values: IespÄ“jamÄs vÄ“rtÄ«bas
-  field_regexp: RegulÄrÄ izteiksme
-  field_min_length: MinimÄlais garums
-  field_max_length: MaksimÄlais garums
-  field_value: Vērtība
-  field_category: Kategorija
-  field_title: Nosaukums
-  field_project: Projekts
-  field_issue: Uzdevums
-  field_status: Statuss
-  field_notes: Piezīmes
-  field_is_closed: Uzdevums slēgts
-  field_is_default: NoklusÄ“tÄ vÄ“rtÄ«ba
-  field_tracker: Trakeris
-  field_subject: Temats
-  field_due_date: SagaidÄmais datums
-  field_assigned_to: Piešķirts
-  field_priority: PrioritÄte
-  field_fixed_version: Mērķa versija
-  field_user: LietotÄjs
-  field_role: Loma
-  field_homepage: Vietne
-  field_is_public: Publisks
-  field_parent: Apakšprojekts projektam
-  field_is_in_roadmap: CeļvedÄ« parÄdÄ«tie uzdevumi
-  field_login: Pieslēgties
-  field_mail_notification: "E-pasta paziņojumi"
-  field_admin: Administrators
-  field_last_login_on: Pēdējo reizi pieslēdzies
-  field_language: Valoda
-  field_effective_date: Datums
-  field_password: Parole
-  field_new_password: JanÄ parole
-  field_password_confirmation: Paroles apstiprinÄjums
-  field_version: Versija
-  field_type: Tips
-  field_host: Hosts
-  field_port: Ports
-  field_account: Konts
-  field_base_dn: Base DN
-  field_attr_login: PieslÄ“gÅ¡anÄs atribÅ«ts
-  field_attr_firstname: VÄrda atribÅ«ts
-  field_attr_lastname: UzvÄrda atribÅ«ts
-  field_attr_mail: "E-pasta atribūts"
-  field_onthefly: "LietotÄja izveidoÅ¡ana on-the-fly"
-  field_done_ratio: % padarīti
-  field_auth_source: Pilnvarošanas režīms
-  field_hide_mail: "Paslēpt manu e-pasta adresi"
-  field_comments: KomentÄrs
-  field_url: URL
-  field_start_page: SÄkuma lapa
-  field_subproject: Apakšprojekts
-  field_hours: Stundas
-  field_activity: AktivitÄte
-  field_spent_on: Datums
-  field_identifier: Identifikators
-  field_is_filter: Izmantots kÄ filtrs
-  field_issue_to: Saistīts uzdevums
-  field_delay: Kavējums
-  field_assignable: Uzdevums var tikt piesaistīts šai lomai
-  field_redirect_existing_links: PÄradresÄ“t eksistÄ“joÅ¡Äs saites
-  field_estimated_hours: Paredzētais laiks
-  field_column_names: Kolonnas
-  field_time_zone: Laika zona
-  field_searchable: Meklējams
-  field_default_value: NoklusÄ“tÄ vÄ“rtÄ«ba
-  field_comments_sorting: RÄdÄ«t komentÄrus
-  field_parent_title: VecÄka lapa
-  field_editable: Rediģējams
-  field_watcher: VÄ“rotÄjs
-  field_identity_url: OpenID URL
-  field_content: Saturs
-  field_group_by: GrupÄ“t rezultÄtus pÄ“c
-  field_sharing: Koplietošana
-  
-  setting_app_title: Programmas nosaukums
-  setting_app_subtitle: Programmas apakš-nosaukums
-  setting_welcome_text: Sveiciena teksts
-  setting_default_language: NoklusÄ“tÄ valoda
-  setting_login_required: Nepieciešama pilnvarošana
-  setting_self_registration: PaÅ¡reÄ£istrēšanÄs
-  setting_attachment_max_size: Pielikuma maksimÄlais izmÄ“rs
-  setting_issues_export_limit: Uzdevumu eksporta ierobežojums
-  setting_mail_from: "E-pasta adrese informÄcijas nosÅ«tīšanai"
-  setting_bcc_recipients: "SaņēmÄ“ju adreses neparÄdÄ«sies citu saņēmÄ“ju vÄ“stulÄ“s (bcc)"
-  setting_plain_text_mail: "VÄ“stule brÄ«vÄ tekstÄ (bez HTML)"
-  setting_host_name: Hosta nosaukums un piekļuves ceļš
-  setting_text_formatting: Teksta formatēšana
-  setting_wiki_compression: Wiki vēstures saspiešana
-  setting_feeds_limit: Barotnes satura ierobežojums
-  setting_default_projects_public: Jaunie projekti noklusēti ir publiski pieejami
-  setting_autofetch_changesets: "AutomÄtiski lietot jaunÄko versiju, pieslÄ“dzoties repozitorijam (Autofetch)"
-  setting_sys_api_enabled: Ieslēgt WS repozitoriju menedžmentam
-  setting_commit_ref_keywords: NorÄdes atslÄ“gvÄrdi
-  setting_commit_fix_keywords:  FiksÄ“joÅ¡ie atslÄ“gvÄrdi
-  setting_autologin: AutomÄtiskÄ pieslÄ“gÅ¡anÄs
-  setting_date_format: Datuma formÄts
-  setting_time_format: Laika formÄts
-  setting_cross_project_issue_relations: "Atļaut starp-projektu uzdevumu relÄcijas"
-  setting_issue_list_default_columns: NoklusÄ“ti rÄdÄ«tÄs kolonnas uzdevumu sarakstÄ
-  setting_repositories_encodings: Repozitoriju kodējumi
-  setting_commit_logs_encoding: Kodēt ziņojumus
-  setting_emails_footer: "E-pastu kÄjene"
-  setting_protocol: Protokols
-  setting_per_page_options: Objekti vienÄ lapÄ
-  setting_user_format: LietotÄju rÄdīšanas formÄts
-  setting_activity_days_default: Dienus skaits aktivitÄÅ¡u rÄdīšanai aktivitÄÅ¡u sadaļÄ
-  setting_display_subprojects_issues: RÄdÄ«t apakÅ¡projekta uzdevumus galvenajÄ projektÄ pÄ“c noklusÄ“juma
-  setting_enabled_scm: Lietot SCM
-  setting_mail_handler_body_delimiters: "SaÄ«sinÄt pÄ“c vienas no Å¡im rindÄm"
-  setting_mail_handler_api_enabled: "Lietot WS ienÄkoÅ¡ajiem e-pastiem"
-  setting_mail_handler_api_key: API atslēga
-  setting_sequential_project_identifiers: Ģenerēt secīgus projektu identifikatorus
-  setting_gravatar_enabled: Izmantot Gravatar lietotÄju ikonas
-  setting_gravatar_default: Noklusētais Gravatar attēls
-  setting_diff_max_lines_displayed: MaksimÄlais rÄdÄ«to diff rindu skaits
-  setting_file_max_size_displayed: MaksimÄlais izmÄ“rs iekļautajiem teksta failiem
-  setting_repository_log_display_limit: MaksimÄlais žurnÄla datnÄ“ rÄdÄ«to revÄ«ziju skaits
-  setting_openid: Atļaut OpenID pieslēgšanos un reģistrēšanos
-  setting_password_min_length: MinimÄlais paroles garums
-  setting_new_project_user_role_id: Loma, kura tiek piešķirta ne-administratora lietotÄjam, kurÅ¡ izveido projektu
-  setting_default_projects_modules: Noklusētie lietotie moduļi jaunam projektam
-  setting_issue_done_ratio: AprēķinÄt uzdevuma izpildes koeficientu ar
-  setting_issue_done_ratio_issue_field: uzdevuma lauku
-  setting_issue_done_ratio_issue_status: uzdevuma statusu
-  setting_start_of_week: SÄkt kalendÄru ar
-  setting_rest_api_enabled: Lietot REST web-servisu
-  setting_cache_formatted_text: Kešot formatētu tekstu
-  
-  permission_add_project: Izveidot projektu
-  permission_add_subprojects: Izveidot apakšprojektu
-  permission_edit_project: Rediģēt projektu
-  permission_select_project_modules: Izvēlēties projekta moduļus
-  permission_manage_members: PÄrvaldÄ«t dalÄ«bniekus
-  permission_manage_project_activities: PÄrvaldÄ«t projekta aktivitÄtes
-  permission_manage_versions: PÄrvaldÄ«t versijas
-  permission_manage_categories: PÄrvaldÄ«t uzdevumu kategorijas
-  permission_view_issues: Apskatīt uzdevumus
-  permission_add_issues: Pievienot uzdevumus
-  permission_edit_issues: Rediģēt uzdevumus
-  permission_manage_issue_relations: PÄrvaldÄ«t uzdevumu relÄcijas
-  permission_add_issue_notes: Pievienot piezīmes
-  permission_edit_issue_notes: Rediģēt piezīmes
-  permission_edit_own_issue_notes: Rediģēt paša piezīmes
-  permission_move_issues: PÄrvietot uzdevumus
-  permission_delete_issues: Dzēst uzdevumus
-  permission_manage_public_queries: PÄrvaldÄ«t publiskos pieprasÄ«jumus
-  permission_save_queries: SaglabÄt pieprasÄ«jumus
-  permission_view_gantt: Skatīt Ganta diagrammu
-  permission_view_calendar: SkatÄ«t kalendÄru
-  permission_view_issue_watchers: SkatÄ«t vÄ“rotÄju sarakstu
-  permission_add_issue_watchers: Pievienot vÄ“rotÄjus
-  permission_delete_issue_watchers: DzÄ“st vÄ“rotÄjus
-  permission_log_time: Piereģistrēt pavadīto laiku
-  permission_view_time_entries: Skatīt pavadīto laiku
-  permission_edit_time_entries: Rdiģēt laika reģistrus
-  permission_edit_own_time_entries:  Rediģēt savus laika reģistrus
-  permission_manage_news: PÄrvaldÄ«t jaunumus
-  permission_comment_news: Komentēt jaunumus
-  permission_manage_documents: PÄrvaldÄ«t dokumentus
-  permission_view_documents: Skatīt dokumentus
-  permission_manage_files: PÄrvaldÄ«t failus
-  permission_view_files: Skatīt failus
-  permission_manage_wiki: PÄrvaldÄ«t wiki
-  permission_rename_wiki_pages: PÄrsaukt wiki lapas
-  permission_delete_wiki_pages: Dzēst wiki lapas
-  permission_view_wiki_pages: Skatīt wiki
-  permission_view_wiki_edits: Skatīt wiki vēsturi
-  permission_edit_wiki_pages: Rdiģēt wiki lapas
-  permission_delete_wiki_pages_attachments: Dzēst pielikumus
-  permission_protect_wiki_pages: Projekta wiki lapas
-  permission_manage_repository: PÄrvaldÄ«t repozitoriju
-  permission_browse_repository: PÄrlÅ«kot repozitoriju
-  permission_view_changesets: Skatīt izmaiņu kopumus  
-  permission_commit_access: Atļaut piekļuvi
-  permission_manage_boards: PÄrvaldÄ«t ziņojumu dēļus
-  permission_view_messages: Skatīt ziņas
-  permission_add_messages: Publicēt ziņas
-  permission_edit_messages: Rediģēt ziņas
-  permission_edit_own_messages: Rediģēt savas ziņas
-  permission_delete_messages: Dzēst ziņas
-  permission_delete_own_messages: Dzēst savas ziņas
-  permission_export_wiki_pages: Eksportēt Wiki lapas
-  
-  project_module_issue_tracking: Uzdevumu uzskaite
-  project_module_time_tracking: Laika uzskaite
-  project_module_news: Jaunumi
-  project_module_documents: Dokumenti
-  project_module_files: Datnes
-  project_module_wiki: Wiki
-  project_module_repository: Repozitorijs
-  project_module_boards: Ziņojumu dēļi
-  
-  label_user: LietotÄjs
-  label_user_plural: LietotÄji
-  label_user_new: Jauns lietotÄjs
-  label_user_anonymous: Anonīms
-  label_project: Projekts
-  label_project_new: Jauns projekts
-  label_project_plural: Projekti
-  label_x_projects:
-    zero:  nav projektu
-    one:   1 projekts
-    other: "{{count}} projekti"
-  label_project_all: Visi projekti
-  label_project_latest: JaunÄkie projekti
-  label_issue: Uzdevums
-  label_issue_new: Jauns uzdevums
-  label_issue_plural: Uzdevumi
-  label_issue_view_all: Skatīt visus uzdevumus
-  label_issues_by: "KÄrtot pÄ“c {{value}}"
-  label_issue_added: Uzdevums pievienots
-  label_issue_updated: Uzdevums atjaunots
-  label_document: Dokuments
-  label_document_new: Jauns dokuments
-  label_document_plural: Dokumenti
-  label_document_added: Dokuments pievienots
-  label_role: Loma
-  label_role_plural: Lomas
-  label_role_new: Jauna loma
-  label_role_and_permissions: Lomas un atļaujas
-  label_member: Dalībnieks
-  label_member_new: Jauns dalībnieks
-  label_member_plural: Dalībnieki
-  label_tracker: Trakeris
-  label_tracker_plural: Trakeri
-  label_tracker_new: Jauns trakeris
-  label_workflow: Darba gaita
-  label_issue_status: Uzdevuma statuss
-  label_issue_status_plural: Uzdevumu statusi
-  label_issue_status_new: Jauns statuss
-  label_issue_category: Uzdevuma kategorija
-  label_issue_category_plural: Uzdevumu kategorijas
-  label_issue_category_new: Jauna kategorija
-  label_custom_field: PielÄgojams lauks
-  label_custom_field_plural: PielÄgojami lauki
-  label_custom_field_new: Jauns pielÄgojams lauks
-  label_enumerations: Uzskaitījumi
-  label_enumeration_new: Jauna vērtība
-  label_information: InformÄcija
-  label_information_plural: InformÄcija
-  label_please_login: Lūdzu pieslēdzieties
-  label_register: Reģistrēties
-  label_login_with_open_id_option: vai pieslēgties ar OpenID
-  label_password_lost: Nozaudēta parole
-  label_home: SÄkums
-  label_my_page: Mana lapa
-  label_my_account: Mans konts
-  label_my_projects: Mani projekti
-  label_administration: AdministrÄcija
-  label_login: Pieslēgties
-  label_logout: Atslēgties
-  label_help: Palīdzība
-  label_reported_issues: Ziņotie uzdevumi
-  label_assigned_to_me_issues: Man piesaistītie uzdevumi
-  label_last_login: PÄ“dÄ“jÄ pieslÄ“gÅ¡anÄs
-  label_registered_on: Reģistrējies
-  label_activity: AktivitÄte
-  label_overall_activity: KopÄ“jÄs aktivitÄtes
-  label_user_activity: "LietotÄja {{value}} aktivitÄtes"
-  label_new: Jauns
-  label_logged_as: PieslÄ“dzies kÄ
-  label_environment: Vide
-  label_authentication: Pilnvarošana
-  label_auth_source: Pilnvarošanas režīms
-  label_auth_source_new: Jauns pilnvarošanas režīms
-  label_auth_source_plural: Pilnvarošanas režīmi
-  label_subproject_plural: Apakšprojekti
-  label_subproject_new: Jauns apakšprojekts
-  label_and_its_subprojects: "{{value}} un tÄ apakÅ¡projekti"
-  label_min_max_length: MinimÄlais - MaksimÄlais garums
-  label_list: Saraksts
-  label_date: Datums
-  label_integer: Vesels skaitlis
-  label_float: DecimÄlskaitlis
-  label_boolean: Patiesuma vērtība
-  label_string: Teksts
-  label_text: Garš teksts
-  label_attribute: Atribūts
-  label_attribute_plural: Atribūti
-  label_download: "{{count}} LejupielÄde"
-  label_download_plural: "{{count}} LejupielÄdes"
-  label_no_data: Nav datu, ko parÄdÄ«t
-  label_change_status: Mainīt statusu
-  label_history: Vēsture
-  label_attachment: Pielikums
-  label_attachment_new: Jauns pielikums
-  label_attachment_delete: Dzēst pielikumu
-  label_attachment_plural: Pielikumi
-  label_file_added: Lauks pievienots
-  label_report: Atskaite
-  label_report_plural: Atskaites
-  label_news: Ziņa
-  label_news_new: Pievienot ziņu
-  label_news_plural: Ziņas
-  label_news_latest: JaunÄkÄs ziņas
-  label_news_view_all: Skatīt visas ziņas
-  label_news_added: Ziņas pievienotas
-  label_settings: Iestatījumi
-  label_overview: PÄrskats
-  label_version: Versija
-  label_version_new: Jauna versija
-  label_version_plural: Versijas
-  label_close_versions: AizvÄ“rt pabeigtÄs versijas
-  label_confirmation: ApstiprinÄjums
-  label_export_to: 'Pieejams arī:'
-  label_read: Lasīt...
-  label_public_projects: Publiskie projekti
-  label_open_issues: atvērts
-  label_open_issues_plural: atvērti
-  label_closed_issues: slēgts
-  label_closed_issues_plural: slēgti
-  label_x_open_issues_abbr_on_total:
-    zero:  0 atvērti / {{total}}
-    one:   1 atvērts / {{total}}
-    other: "{{count}} atvērti / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 atvērti
-    one:   1 atvērts
-    other: "{{count}} atvērti"
-  label_x_closed_issues_abbr:
-    zero:  0 slēgti
-    one:   1 slēgts
-    other: "{{count}} slēgti"
-  label_total: KopÄ
-  label_permissions: Atļaujas
-  label_current_status: Pašreizējais statuss
-  label_new_statuses_allowed: Jauni statusi atļauti
-  label_all: visi
-  label_none: neviens
-  label_nobody: nekas
-  label_next: NÄkoÅ¡ais
-  label_previous: Iepriekšējais
-  label_used_by: Izmanto
-  label_details: Detaļas
-  label_add_note: Pievienot piezīmi
-  label_per_page: katrÄ lapÄ
-  label_calendar: KalendÄrs
-  label_months_from: mēneši no
-  label_gantt: Ganta diagramma
-  label_internal: Iekšējais
-  label_last_changes: "pÄ“dÄ“jÄs {{count}} izmaiņas"
-  label_change_view_all: Skatīt visas izmaiņas
-  label_personalize_page: PielÄgot Å¡o lapu
-  label_comment: KomentÄrs
-  label_comment_plural: KomentÄri
-  label_x_comments:
-    zero: nav komentÄru
-    one: 1 komentÄrs
-    other: "{{count}} komentÄri"
-  label_comment_add: Pievienot komentÄru
-  label_comment_added: KomentÄrs pievienots
-  label_comment_delete: DzÄ“st komentÄrus
-  label_query: PielÄgots pieprasÄ«jums
-  label_query_plural: PielÄgoti pieprasÄ«jumi
-  label_query_new: Jauns pieprasījums
-  label_filter_add: Pievienot filtru
-  label_filter_plural: Filtri
-  label_equals: ir
-  label_not_equals: nav
-  label_in_less_than: ir mazÄk kÄ
-  label_in_more_than: ir vairÄk kÄ
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: iekš
-  label_today: šodien
-  label_all_time: visu laiku
-  label_yesterday: vakar
-  label_this_week: šonedēļ
-  label_last_week: pagÄjuÅ¡o Å¡onedēļ
-  label_last_n_days: "pÄ“dÄ“jÄs {{count}} dienas"
-  label_this_month: šomēnes
-  label_last_month: pagÄjuÅ¡o mÄ“nes
-  label_this_year: šogad
-  label_date_range: Datumu apgabals
-  label_less_than_ago: mazÄk kÄ dienas iepriekÅ¡
-  label_more_than_ago: vairÄk kÄ dienas iepriekÅ¡
-  label_ago: dienas iepriekš
-  label_contains: satur
-  label_not_contains: nesatur
-  label_day_plural: dienas
-  label_repository: Repozitorijs
-  label_repository_plural: Repozitoriji
-  label_browse: PÄrlÅ«kot
-  label_modification: "{{count}} izmaiņa"
-  label_modification_plural: "{{count}} izmaiņas"
-  label_branch: Zars
-  label_tag: Birka 
-  label_revision: Revīzija
-  label_revision_plural: Revīzijas
-  label_revision_id: "Revīzija {{value}}"
-  label_associated_revisions: SaistÄ«tÄs revÄ«zijas
-  label_added: pievienots
-  label_modified: modificēts
-  label_copied: nokopēts
-  label_renamed: pÄrsaukts
-  label_deleted: dzēsts
-  label_latest_revision: PÄ“dÄ“jÄ revÄ«zija
-  label_latest_revision_plural: PÄ“dÄ“jÄs revÄ«zijas
-  label_view_revisions: Skatīt revīzijas
-  label_view_all_revisions: Skatīt visas revīzijas
-  label_max_size: MaksimÄlais izmÄ“rs
-  label_sort_highest: PÄrvietot uz augÅ¡u
-  label_sort_higher: PÄrvietot soli augÅ¡up
-  label_sort_lower: PÄrvietot uz leju
-  label_sort_lowest: PÄrvietot vienu soli uz leju
-  label_roadmap: Ceļvedis
-  label_roadmap_due_in: "SagaidÄms pÄ“c {{value}}"
-  label_roadmap_overdue: "nokavēts {{value}}"
-  label_roadmap_no_issues: Å ai versijai nav uzdevumu
-  label_search: Meklēt
-  label_result_plural: RezultÄti
-  label_all_words: Visi vÄrdi
-  label_wiki: Wiki
-  label_wiki_edit: Wiki labojums
-  label_wiki_edit_plural: Wiki labojumi
-  label_wiki_page: Wiki lapa
-  label_wiki_page_plural: Wiki lapas
-  label_index_by_title: Indeksēt pēc nosaukuma
-  label_index_by_date: Indeksēt pēc datuma
-  label_current_version: TekoÅ¡Ä versija
-  label_preview: Priekšskatījums
-  label_feed_plural: Barotnes
-  label_changes_details: Visu izmaiņu detaļas
-  label_issue_tracking: Uzdevumu uzskaite
-  label_spent_time: Pavadītais laiks
-  label_f_hour: "{{value}} stunda"
-  label_f_hour_plural: "{{value}} stundas"
-  label_time_tracking: Laika uzskaite
-  label_change_plural: Izmaiņas
-  label_statistics: Statistika
-  label_commits_per_month: Nodevumi mēnesī
-  label_commits_per_author: Nodevumi no autora
-  label_view_diff: Skatīt atšķirības
-  label_diff_inline: iekļauts
-  label_diff_side_by_side: blakus
-  label_options: Opcijas
-  label_copy_workflow_from: Kopēt darba plūsmu no
-  label_permissions_report: Atļauju atskaite
-  label_watched_issues: Vērotie uzdevumi
-  label_related_issues: Saistītie uzdevumi
-  label_applied_status: Piešķirtais statuss
-  label_loading: LÄdÄ“jas...
-  label_relation_new: Jauna relÄcija
-  label_relation_delete: DzÄ“st relÄciju
-  label_relates_to: saistīts ar
-  label_duplicates: dublikÄti
-  label_duplicated_by: dublējas ar
-  label_blocks: bloÄ·Ä“
-  label_blocked_by: nobloķējis
-  label_precedes: pirms
-  label_follows: seko
-  label_end_to_start: no beigÄm uz sÄkumu
-  label_end_to_end: no beigÄm uz beigÄm
-  label_start_to_start: no sÄkuma uz sÄkumu
-  label_start_to_end: no sÄkuma uz beigÄm
-  label_stay_logged_in: Atcerēties mani
-  label_disabled: izslēgts
-  label_show_completed_versions: RÄdÄ«t pabeigtÄs versijas
-  label_me: es
-  label_board: Forums
-  label_board_new: Jauns forums
-  label_board_plural: Forumi
-  label_board_locked: Slēgts
-  label_board_sticky: Svarīgs
-  label_topic_plural: Tēmas
-  label_message_plural: Ziņas
-  label_message_last: PÄ“dÄ“jÄ ziņa
-  label_message_new: Jauna ziņa
-  label_message_posted: Ziņa pievienota
-  label_reply_plural: Atbildes
-  label_send_information: SÅ«tÄ«t konta informÄciju lietotÄjam
-  label_year: Gads
-  label_month: Mēnesis
-  label_week: Nedēļa
-  label_date_from: No
-  label_date_to: Kam
-  label_language_based: Izmantot lietotÄja valodu
-  label_sort_by: "KÄrtot pÄ“c {{value}}"
-  label_send_test_email: "Sūtīt testa e-pastu"
-  label_feeds_access_key: RSS piekļuves atslēga
-  label_missing_feeds_access_key: Trūkst RSS piekļuves atslēgas
-  label_feeds_access_key_created_on: "RSS piekļuves atslēga izveidota pirms {{value}}"
-  label_module_plural: Moduļi
-  label_added_time_by: "Pievienojis {{author}} pirms {{age}}"
-  label_updated_time_by: "Atjaunojis {{author}} pirms {{age}}"
-  label_updated_time: "Atjaunots pirms {{value}}"
-  label_jump_to_a_project: PÄriet uz projektu...
-  label_file_plural: Datnes
-  label_changeset_plural: Izmaiņu kopumi
-  label_default_columns: NoklusÄ“tÄs kolonnas
-  label_no_change_option: (Nav izmaiņu)
-  label_bulk_edit_selected_issues: Labot visus izvēlētos uzdevumus
-  label_theme: Tēma
-  label_default: Noklusēts
-  label_search_titles_only: Meklēt tikai nosaukumos
-  label_user_mail_option_all: "Par visiem notikumiem visos manos projektos"
-  label_user_mail_option_selected: "Par visiem notikumiem tikai izvēlētajos projektos..."
-  label_user_mail_no_self_notified: "Neziņot man par izmaiņÄm, kuras veicu es pats"
-  label_registration_activation_by_email: "konta aktivizÄcija caur e-pastu"
-  label_registration_manual_activation: manuÄlÄ konta aktivizÄcija
-  label_registration_automatic_activation: automÄtiskÄ konta aktivizÄcija
-  label_display_per_page: "RÄdÄ«t vienÄ lapÄ: {{value}}"
-  label_age: Vecums
-  label_change_properties: Mainīt atribūtus
-  label_general: Galvenais
-  label_more: Vēl
-  label_scm: SCM
-  label_plugins: Spraudņi
-  label_ldap_authentication: LDAP pilnvarošana
-  label_downloads_abbr: L-lÄd.
-  label_optional_description: "Apraksts (neobligÄts)"
-  label_add_another_file: Pievienot citu failu
-  label_preferences: Priekšrocības
-  label_chronological_order: HronoloÄ£iskÄ kÄrtÄ«bÄ
-  label_reverse_chronological_order: Apgriezti hronoloÄ£iskÄ kÄrtÄ«bÄ
-  label_planning: PlÄnoÅ¡ana
-  label_incoming_emails: "IenÄkoÅ¡ie e-pasti"
-  label_generate_key: Ģenerēt atslēgu
-  label_issue_watchers: VÄ“rotÄji
-  label_example: Piemērs
-  label_display: RÄdÄ«t
-  label_sort: KÄrtot
-  label_ascending: Augoši
-  label_descending: Dilstoši
-  label_date_from_to: "No {{start}} līdz {{end}}"
-  label_wiki_content_added: Wiki lapa pievienota
-  label_wiki_content_updated: Wiki lapa atjaunota
-  label_group: Grupa
-  label_group_plural: Grupas
-  label_group_new: Jauna grupa
-  label_time_entry_plural: Pavadītais laiks
-  label_version_sharing_none: Nav koplietošanai
-  label_version_sharing_descendants: Ar apakšprojektiem
-  label_version_sharing_hierarchy: Ar projektu hierarhiju
-  label_version_sharing_tree: Ar projekta koku
-  label_version_sharing_system: Ar visiem projektiem
-  label_update_issue_done_ratios: Atjaunot uzdevuma veikuma attiecību
-  label_copy_source: Avots
-  label_copy_target: Mērķis
-  label_copy_same_as_target: TÄds pats kÄ mÄ“rÄ·is
-  label_display_used_statuses_only: "RÄdÄ«t tikai statusus, ko lieto Å¡is trakeris"
-  label_api_access_key: API pieejas atslēga
-  label_missing_api_access_key: Trūkst API pieejas atslēga
-  label_api_access_key_created_on: "API pieejas atslēga izveidota pirms {{value}}"
-  
-  button_login: Pieslēgties
-  button_submit: Nosūtīt
-  button_save: SaglabÄt
-  button_check_all: Atzīmēt visu
-  button_uncheck_all: Noņemt visus atzīmējumus
-  button_delete: Dzēst
-  button_create: Izveidot
-  button_create_and_continue: Izveidot un turpinÄt
-  button_test: Testēt
-  button_edit: Labot
-  button_add: Pievienot
-  button_change: Mainīt
-  button_apply: ApstiprinÄt
-  button_clear: Notīrīt
-  button_lock: Slēgt
-  button_unlock: Atslēgt
-  button_download: LejuplÄdÄ“t
-  button_list: Saraksts
-  button_view: Skats
-  button_move: PÄrvietot
-  button_move_and_follow: PÄrvietot un sekot
-  button_back: Atpakaļ
-  button_cancel: Atcelt
-  button_activate: Aktivizēt
-  button_sort: KÄrtot
-  button_log_time: Ilgs laiks
-  button_rollback: Atjaunot uz šo versiju
-  button_watch: Vērot
-  button_unwatch: Nevērot
-  button_reply: Atbildēt
-  button_archive: Arhivēt
-  button_unarchive: Atarhivēt
-  button_reset: Atiestatīt
-  button_rename: PÄrsaukt
-  button_change_password: Mainīt paroli
-  button_copy: Kopēt
-  button_copy_and_follow: Kopēt un sekot
-  button_annotate: Pierakstīt paskaidrojumu
-  button_update: Atjaunot
-  button_configure: Konfigurēt
-  button_quote: CitÄts
-  button_duplicate: Dublēt
-  button_show: RÄdÄ«t
-  
-  status_active: aktīvs
-  status_registered: reģistrēts
-  status_locked: slēgts
-  
-  version_status_open: atvērta
-  version_status_locked: slēgta
-  version_status_closed: aizvērta
-
-  field_active: Aktīvs
-  
-  text_select_mail_notifications: "IzvÄ“lieties darbÄ«bas, par kurÄm vÄ“laties saņemt ziņojumus e-pastÄ"
-  text_regexp_info: "piem. ^[A-Z0-9]+$"
-  text_min_max_length_info: "0 nozīmē, ka nav ierobežojumu"
-  text_project_destroy_confirmation: "Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o projektu un ar to saistÄ«tos datus?"
-  text_subprojects_destroy_warning: "TÄ apakÅ¡projekts(i): {{value}} arÄ« tiks dzÄ“sts(i)."
-  text_workflow_edit: Lai labotu darba plūsmu, izvēlieties lomu un trakeri
-  text_are_you_sure: "Vai esat pÄrliecinÄts?"
-  text_journal_changed: "{{label}} mainīts no {{old}} uz {{new}}"
-  text_journal_set_to: "{{label}} iestatīts uz {{value}}"
-  text_journal_deleted: "{{label}} dzēsts ({{old}})"
-  text_journal_added: "{{label}} {{value}} pievienots"
-  text_tip_issue_begin_day: uzdevums sÄkas Å¡odien
-  text_tip_issue_end_day: uzdevums beidzas šodien
-  text_tip_issue_begin_end_day: uzdevums sÄkas un beidzas Å¡odien
-  text_project_identifier_info: 'Tikai mazie burti (a-z), cipari un domuzÄ«mes ir atļauti.<br />Kad saglabÄts, identifikators nevar tikt mainÄ«ts.'
-  text_caracters_maximum: "{{count}} simboli maksimÄli."
-  text_caracters_minimum: "JÄbÅ«t vismaz {{count}} simbolu garumÄ."
-  text_length_between: "Garums starp {{min}} un {{max}} simboliem."
-  text_tracker_no_workflow: Šim trakerim nav definēta darba plūsma
-  text_unallowed_characters: Neatļauti simboli
-  text_comma_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (atdalÄ«t ar komatu)."
-  text_line_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (rakstÄ«t katru savÄ rindÄ)."
-  text_issues_ref_in_commit_messages: "Izmaiņu salÄ«dzinÄÅ¡ana izejot no ziņojumiem"
-  text_issue_added: "Uzdevumu {{id}} pievienojis {{author}}."
-  text_issue_updated: "Uzdevumu {{id}} atjaunojis {{author}}."
-  text_wiki_destroy_confirmation: "Vai esat droÅ¡s, ka vÄ“laties dzÄ“st Å¡o wiki un visu tÄs saturu?"
-  text_issue_category_destroy_question: "Daži uzdevumi ({{count}}) ir nozīmēti šai kategorijai. Ko Jūs vēlaties darīt?"
-  text_issue_category_destroy_assignments: Dzēst kategoriju nozīmējumus
-  text_issue_category_reassign_to: Nozīmēt uzdevumus šai kategorijai
-  text_user_mail_option: "No neizvÄ“lÄ“tajiem projektiem JÅ«s saņemsiet ziņojumus e-pastÄ tikai par notikumiem, kuriem JÅ«s sekojat vai kuros esat iesaistÄ«ts." 
-  text_no_configuration_data: "Lomas, trakeri, uzdevumu statusi un darba plÅ«smas vÄ“l nav konfigurÄ“tas.\nÄ»oti ieteicams ielÄdÄ“t noklusÄ“to konfigurÄciju. PÄ“c ielÄdēšanas to bÅ«s iespÄ“jams modificÄ“t."
-  text_load_default_configuration: IelÄdÄ“t noklusÄ“to konfigurÄciju
-  text_status_changed_by_changeset: "ApstiprinÄts izmaiņu kopumÄ {{value}}."
-  text_issues_destroy_confirmation: 'Vai tieÅ¡Äm vÄ“laties dzÄ“st izvÄ“lÄ“to uzdevumu(us)?'
-  text_select_project_modules: 'Izvēlieties moduļus šim projektam:'
-  text_default_administrator_account_changed: Noklusētais administratora konts mainīts
-  text_file_repository_writable: Pielikumu direktorijÄ atļauts rakstÄ«t
-  text_plugin_assets_writable: Spraudņu kataloga direktorijÄ atļauts rakstÄ«t
-  text_rmagick_available: "RMagick pieejams (neobligÄts)"
-  text_destroy_time_entries_question: "{{hours}} stundas tika ziņotas par uzdevumu, ko vēlaties dzēst. Ko darīt?"
-  text_destroy_time_entries: DzÄ“st ziņotÄs stundas
-  text_assign_time_entries_to_project: Piešķirt ziņotÄs stundas projektam
-  text_reassign_time_entries: 'Piešķirt ziņotÄs stundas uzdevumam:'
-  text_user_wrote: "{{value}} rakstīja:"
-  text_enumeration_destroy_question: "{{count}} objekti ir piešķirti šai vērtībai."
-  text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
-  text_email_delivery_not_configured: "E-pastu nosÅ«tīšana nav konfigurÄ“ta, un ziņojumi ir izslÄ“gti.\nKonfigurÄ“jiet savu SMTP serveri datnÄ“ config/email.yml un pÄrstartÄ“jiet lietotni."
-  text_repository_usernames_mapping: "IzvÄ“lieties vai atjaunojiet Redmine lietotÄju, saistÄ«tu ar katru lietotÄjvÄrdu, kas atrodams repozitorija žurnÄlÄ.\nLietotÄji ar to paÅ¡u Redmine un repozitorija lietotÄjvÄrdu bÅ«s saistÄ«ti automÄtiski."
-  text_diff_truncated: '... Å is diff tika nošķelts, jo tas pÄrsniedz maksimÄlo izmÄ“ru, ko var parÄdÄ«t.'
-  text_custom_field_possible_values_info: 'Katra vÄ“rtÄ«bas savÄ rindÄ'
-  text_wiki_page_destroy_question: "Å ij lapai ir {{descendants}} apakÅ¡lapa(as) un pÄ“cnÄcÄ“ji. Ko darÄ«t?"
-  text_wiki_page_nullify_children: "PaturÄ“t apakÅ¡lapas kÄ pamatlapas"
-  text_wiki_page_destroy_children: "DzÄ“st apakÅ¡lapas un visus pÄ“cnÄcÄ“jus"
-  text_wiki_page_reassign_children: "Piešķirt apakšlapas šai lapai"
-  text_own_membership_delete_confirmation: "JÅ«s tÅ«lÄ«t dzÄ“sÄ«siet dažas vai visas atļaujas, un Jums pÄ“c tam var nebÅ«t atļauja labot Å¡o projektu.\nVai turpinÄt?"
-  
-  default_role_manager: Menedžeris
-  default_role_developer: IzstrÄdÄtÄjs
-  default_role_reporter: ZiņotÄjs
-  default_tracker_bug: Kļūda
-  default_tracker_feature: Iezīme
-  default_tracker_support: Atbalsts
-  default_issue_status_new: Jauns
-  default_issue_status_in_progress: AttÄ«stÄ«bÄ
-  default_issue_status_resolved: AtrisinÄts
-  default_issue_status_feedback: Atsauksmes
-  default_issue_status_closed: Slēgts
-  default_issue_status_rejected: Noraidīts
-  default_doc_category_user: LietotÄja dokumentÄcija
-  default_doc_category_tech: TehniskÄ dokumentÄcija
-  default_priority_low: Zema
-  default_priority_normal: NormÄla
-  default_priority_high: Augsta
-  default_priority_urgent: Steidzama
-  default_priority_immediate: Tūlītēja
-  default_activity_design: Dizains
-  default_activity_development: IzstrÄdÄÅ¡ana
-  
-  enumeration_issue_priorities: Uzdevumu prioritÄtes
-  enumeration_doc_categories: Dokumentu kategorijas
-  enumeration_activities: AktivitÄtes (laika uzskaite)
-  enumeration_system_activity: SistÄ“mas aktivitÄtes
-
-  error_can_not_delete_custom_field: Unable to delete custom field
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  field_parent_issue: Parent task
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  label_project_copy_notifications: Send email notifications during the project copy
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# translated by Dzintars Bergs (dzintars.bergs@gmail.com)
+
+lv:
+  direction: ltr
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+      
+    day_names: [Svētdiena, Pirmdiena, Otrdiena, Trešdiena, Ceturtdiena, Piektdiena, Sestdiena]
+    abbr_day_names: [Sv, Pr, Ot, Tr, Ct, Pk, St]
+      
+    month_names: [~, JanvÄris, FebruÄris, Marts, AprÄ«lis , Maijs, JÅ«nijs, JÅ«lijs, Augusts, Septembris, Oktobris, Novembris, Decembris]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, Mai, Jūn, Jūl, Aug, Sep, Okt, Nov, Dec]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y, %H:%M:%S %z"
+      time: "%H:%M"
+      short: "%d %b, %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "rÄ«tÄ"
+    pm: "vakarÄ"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "pus minūte"
+      less_than_x_seconds:
+        one:   "mazÄk kÄ 1 sekunde"
+        other: "mazÄk kÄ %{count} sekundes"
+      x_seconds:
+        one:   "1 sekunde"
+        other: "%{count} sekundes"
+      less_than_x_minutes:
+        one:   "mazÄk kÄ minÅ«te"
+        other: "mazÄk kÄ %{count} minÅ«tes"
+      x_minutes:
+        one:   "1 minūte"
+        other: "%{count} minūtes"
+      about_x_hours:
+        one:   "aptuveni 1 stunda"
+        other: "aptuveni %{count} stundas"
+      x_days:
+        one:   "1 diena"
+        other: "%{count} dienas"
+      about_x_months:
+        one:   "aptuveni 1 mēnesis"
+        other: "aptuveni %{count} mēneši"
+      x_months:
+        one:   "1 mēnesis"
+        other: "%{count} mēneši"
+      about_x_years:
+        one:   "aptuveni 1 gads"
+        other: "aptuveni %{count} gadi"
+      over_x_years:
+        one:   "ilgÄk par 1 gadu"
+        other: "ilgÄk par %{count} gadiem"
+      almost_x_years:
+        one:   "gandrīz 1 gadu"
+        other: "gandrīz %{count} gadus"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: " "
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Baits"
+            other: "Baiti"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+  support:
+    array:
+      sentence_connector: "un"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "nav iekļauts sarakstÄ"
+        exclusion: "ir rezervēts"
+        invalid: "nederīgs"
+        confirmation: "apstiprinÄjums nesakrÄ«t"
+        accepted: "jÄbÅ«t akceptÄ“tam"
+        empty: "nevar būt tukšs"
+        blank: "nevar būt neaizpildīts"
+        too_long: "ir pÄrÄk gara(Å¡) (maksimÄlais garums ir %{count} simboli)"
+        too_short: "ir pÄrÄk Ä«sa(s) (minimÄlais garums ir %{count} simboli)"
+        wrong_length: "ir nepareiza garuma (vajadzētu būt %{count} simboli)"
+        taken: "eksistē"
+        not_a_number: "nav skaitlis"
+        not_a_date: "nav derīgs datums"
+        greater_than: "jÄbÅ«t lielÄkam par %{count}"
+        greater_than_or_equal_to: "jÄbÅ«t lielÄkam vai vienÄdam ar %{count}"
+        equal_to: "jÄbÅ«t vienÄdam ar %{count}"
+        less_than: "jÄbÅ«t mazÄkam kÄ %{count}"
+        less_than_or_equal_to: "jÄbÅ«t mazÄkam vai vienÄdam ar %{count}"
+        odd: "jÄatšķirÄs"
+        even: "jÄsakrÄ«t"
+        greater_than_start_date: "jÄbÅ«t vÄ“lÄkam par sÄkuma datumu"
+        not_same_project: "nepieder pie tÄ paÅ¡a projekta"
+        circular_dependency: "Å Ä« relÄcija radÄ«tu ciklisku atkarÄ«bu"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Izvēlieties
+  
+  general_text_No: 'NÄ“'
+  general_text_Yes: 'JÄ'
+  general_text_no: 'nē'
+  general_text_yes: 'jÄ'
+  general_lang_name: 'Latvian (Latviešu)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Konts tika atjaunots veiksmīgi.
+  notice_account_invalid_creditentials: Nepareizs lietotÄja vÄrds vai parole.
+  notice_account_password_updated: Parole tika veiksmīgi atjaunota.
+  notice_account_wrong_password: Nepareiza parole
+  notice_account_register_done: Konts veiksmīgi izveidots. Lai aktivizētu kontu, spiediet uz saites, kas Jums tika nosūtīta.
+  notice_account_unknown_email: NezinÄms lietotÄjs
+  notice_can_t_change_password: Å is konts izmanto ÄrÄ“ju pilnvaroÅ¡anas avotu. Nav iespÄ“jams nomainÄ«t paroli.
+  notice_account_lost_email_sent: Jums tika nosÅ«tÄ«ts e-pasts ar instrukcijÄm, kÄ izveidot jaunu paroli.
+  notice_account_activated: Jūsu konts ir aktivizēts. Varat pieslēgties sistēmai.
+  notice_successful_create: Veiksmīga izveide.
+  notice_successful_update: Veiksmīga atjaunošana.
+  notice_successful_delete: Veiksmīga dzēšana.
+  notice_successful_connection: Veiksmīgs savienojums.
+  notice_file_not_found: Lapa, ko JÅ«s mēģinÄt atvÄ“rt, neeksistÄ“ vai ir pÄrvietota.
+  notice_locking_conflict: Datus ir atjaunojis cits lietotÄjs.
+  notice_not_authorized: Jums nav tiesību piekļūt šai lapai.
+  notice_email_sent: "E-pasts tika nosūtīts uz %{value}"
+  notice_email_error: "Kļūda sūtot e-pastu (%{value})"
+  notice_feeds_access_key_reseted: JÅ«su RSS pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
+  notice_api_access_key_reseted: JÅ«su API pieejas atslÄ“ga tika iestatÄ«ta sÄkuma stÄvoklÄ«.
+  notice_failed_to_save_issues: "NeizdevÄs saglabÄt %{count} uzdevumu(us) no %{total} izvÄ“lÄ“ti: %{ids}."
+  notice_no_issue_selected: "Nav izvēlēts uzdevums! Lūdzu, atzīmējiet uzdevumus, kurus vēlaties rediģēt!"
+  notice_account_pending: "JÅ«su konts tika izveidots un Å¡obrÄ«d gaida administratora apstiprinÄjumu."
+  notice_default_data_loaded: NoklusÄ“tÄ konfigurÄcija tika veiksmÄ«gi ielÄdÄ“ta.
+  notice_unable_delete_version: NeizdevÄs dzÄ“st versiju.
+  notice_issue_done_ratios_updated: Uzdevuma izpildes koeficients atjaunots.
+  
+  error_can_t_load_default_data: "Nevar ielÄdÄ“t noklusÄ“tos konfigurÄcijas datus: %{value}"
+  error_scm_not_found: "Ieraksts vai versija nebija repozitorijÄ."
+  error_scm_command_failed: "Mēģinot piekļūt repozitorijam, notika kļūda: %{value}"
+  error_scm_annotate: "Ieraksts neeksistē vai tam nevar tikt pievienots paskaidrojums."
+  error_issue_not_found_in_project: 'Uzdevums netika atrasts vai nepieder šim projektam.'
+  error_no_tracker_in_project: 'Neviens trakeris nav saistÄ«ts ar Å¡o projektu. PÄrbaudiet projekta iestatÄ«jumus.'
+  error_no_default_issue_status: 'Nav definÄ“ts uzdevuma noklusÄ“tais statuss. PÄrbaudiet konfigurÄciju (Ejat uz: "AdministrÄcija -> Uzdevumu statusi")!'
+  error_can_not_reopen_issue_on_closed_version: 'Nevar pievienot atsauksmi uzdevumam, kas saistīts ar slēgtu versiju.'
+  error_can_not_archive_project: Šis projekts nevar tikt arhivēts
+  error_issue_done_ratios_not_updated: "Uzdevuma izpildes koeficients nav atjaunots."
+  error_workflow_copy_source: 'Lūdzu izvēlieties avota trakeri vai lomu'
+  error_workflow_copy_target: 'Lūdzu izvēlēties mērķa trakeri(us) un lomu(as)'
+  
+  warning_attachments_not_saved: "%{count} datnes netika saglabÄtas."
+  
+  mail_subject_lost_password: "Jūsu %{value} parole"
+  mail_body_lost_password: 'Lai mainītu paroli, spiediet uz šīs saites:'
+  mail_subject_register: "JÅ«su %{value} konta aktivizÄcija"
+  mail_body_register: 'Lai izveidotu kontu, spiediet uz šīs saites:'
+  mail_body_account_information_external: "Varat izmantot Jūsu %{value} kontu, lai pieslēgtos."
+  mail_body_account_information: JÅ«su konta informÄcija
+  mail_subject_account_activation_request: "%{value} konta aktivizÄcijas pieprasÄ«jums"
+  mail_body_account_activation_request: "Jauns lietotÄjs (%{value}) ir reÄ£istrÄ“ts. LietotÄja konts gaida JÅ«su apstiprinÄjumu:"
+  mail_subject_reminder: "%{count} uzdevums(i) sagaidÄms(i) tuvÄkajÄs %{days} dienÄs"
+  mail_body_reminder: "%{count} uzdevums(i), kurÅ¡(i) ir nozÄ«mÄ“ts(i) Jums, sagaidÄms(i) tuvÄkajÄs %{days} dienÄs:"
+  mail_subject_wiki_content_added: "'%{id}' Wiki lapa pievienota"
+  mail_body_wiki_content_added: "The '%{id}' Wiki lapu pievienojis %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' Wiki lapa atjaunota"
+  mail_body_wiki_content_updated: "The '%{id}' Wiki lapu atjaunojis %{author}."
+  
+  gui_validation_error: 1 kļūda
+  gui_validation_error_plural: "%{count} kļūdas"
+  
+  field_name: Nosaukums
+  field_description: Apraksts
+  field_summary: Kopsavilkums
+  field_is_required: Nepieciešams
+  field_firstname: VÄrds
+  field_lastname: UzvÄrds
+  field_mail: "E-pasts"
+  field_filename: Datne
+  field_filesize: Izmērs
+  field_downloads: LejupielÄdes
+  field_author: Autors
+  field_created_on: Izveidots
+  field_updated_on: Atjaunots
+  field_field_format: FormÄts
+  field_is_for_all: Visiem projektiem
+  field_possible_values: IespÄ“jamÄs vÄ“rtÄ«bas
+  field_regexp: RegulÄrÄ izteiksme
+  field_min_length: MinimÄlais garums
+  field_max_length: MaksimÄlais garums
+  field_value: Vērtība
+  field_category: Kategorija
+  field_title: Nosaukums
+  field_project: Projekts
+  field_issue: Uzdevums
+  field_status: Statuss
+  field_notes: Piezīmes
+  field_is_closed: Uzdevums slēgts
+  field_is_default: NoklusÄ“tÄ vÄ“rtÄ«ba
+  field_tracker: Trakeris
+  field_subject: Temats
+  field_due_date: SagaidÄmais datums
+  field_assigned_to: Piešķirts
+  field_priority: PrioritÄte
+  field_fixed_version: Mērķa versija
+  field_user: LietotÄjs
+  field_role: Loma
+  field_homepage: Vietne
+  field_is_public: Publisks
+  field_parent: Apakšprojekts projektam
+  field_is_in_roadmap: CeļvedÄ« parÄdÄ«tie uzdevumi
+  field_login: Pieslēgties
+  field_mail_notification: "E-pasta paziņojumi"
+  field_admin: Administrators
+  field_last_login_on: Pēdējo reizi pieslēdzies
+  field_language: Valoda
+  field_effective_date: Datums
+  field_password: Parole
+  field_new_password: JanÄ parole
+  field_password_confirmation: Paroles apstiprinÄjums
+  field_version: Versija
+  field_type: Tips
+  field_host: Hosts
+  field_port: Ports
+  field_account: Konts
+  field_base_dn: Base DN
+  field_attr_login: PieslÄ“gÅ¡anÄs atribÅ«ts
+  field_attr_firstname: VÄrda atribÅ«ts
+  field_attr_lastname: UzvÄrda atribÅ«ts
+  field_attr_mail: "E-pasta atribūts"
+  field_onthefly: "LietotÄja izveidoÅ¡ana on-the-fly"
+  field_start_date: SÄkuma datums
+  field_done_ratio: % padarīti
+  field_auth_source: Pilnvarošanas režīms
+  field_hide_mail: "Paslēpt manu e-pasta adresi"
+  field_comments: KomentÄrs
+  field_url: URL
+  field_start_page: SÄkuma lapa
+  field_subproject: Apakšprojekts
+  field_hours: Stundas
+  field_activity: AktivitÄte
+  field_spent_on: Datums
+  field_identifier: Identifikators
+  field_is_filter: Izmantots kÄ filtrs
+  field_issue_to: Saistīts uzdevums
+  field_delay: Kavējums
+  field_assignable: Uzdevums var tikt piesaistīts šai lomai
+  field_redirect_existing_links: PÄradresÄ“t eksistÄ“joÅ¡Äs saites
+  field_estimated_hours: Paredzētais laiks
+  field_column_names: Kolonnas
+  field_time_zone: Laika zona
+  field_searchable: Meklējams
+  field_default_value: NoklusÄ“tÄ vÄ“rtÄ«ba
+  field_comments_sorting: RÄdÄ«t komentÄrus
+  field_parent_title: VecÄka lapa
+  field_editable: Rediģējams
+  field_watcher: VÄ“rotÄjs
+  field_identity_url: OpenID URL
+  field_content: Saturs
+  field_group_by: GrupÄ“t rezultÄtus pÄ“c
+  field_sharing: Koplietošana
+  
+  setting_app_title: Programmas nosaukums
+  setting_app_subtitle: Programmas apakš-nosaukums
+  setting_welcome_text: Sveiciena teksts
+  setting_default_language: NoklusÄ“tÄ valoda
+  setting_login_required: Nepieciešama pilnvarošana
+  setting_self_registration: PaÅ¡reÄ£istrēšanÄs
+  setting_attachment_max_size: Pielikuma maksimÄlais izmÄ“rs
+  setting_issues_export_limit: Uzdevumu eksporta ierobežojums
+  setting_mail_from: "E-pasta adrese informÄcijas nosÅ«tīšanai"
+  setting_bcc_recipients: "SaņēmÄ“ju adreses neparÄdÄ«sies citu saņēmÄ“ju vÄ“stulÄ“s (bcc)"
+  setting_plain_text_mail: "VÄ“stule brÄ«vÄ tekstÄ (bez HTML)"
+  setting_host_name: Hosta nosaukums un piekļuves ceļš
+  setting_text_formatting: Teksta formatēšana
+  setting_wiki_compression: Wiki vēstures saspiešana
+  setting_feeds_limit: Barotnes satura ierobežojums
+  setting_default_projects_public: Jaunie projekti noklusēti ir publiski pieejami
+  setting_autofetch_changesets: "AutomÄtiski lietot jaunÄko versiju, pieslÄ“dzoties repozitorijam (Autofetch)"
+  setting_sys_api_enabled: Ieslēgt WS repozitoriju menedžmentam
+  setting_commit_ref_keywords: NorÄdes atslÄ“gvÄrdi
+  setting_commit_fix_keywords:  FiksÄ“joÅ¡ie atslÄ“gvÄrdi
+  setting_autologin: AutomÄtiskÄ pieslÄ“gÅ¡anÄs
+  setting_date_format: Datuma formÄts
+  setting_time_format: Laika formÄts
+  setting_cross_project_issue_relations: "Atļaut starp-projektu uzdevumu relÄcijas"
+  setting_issue_list_default_columns: NoklusÄ“ti rÄdÄ«tÄs kolonnas uzdevumu sarakstÄ
+  setting_repositories_encodings: Repozitoriju kodējumi
+  setting_commit_logs_encoding: Kodēt ziņojumus
+  setting_emails_footer: "E-pastu kÄjene"
+  setting_protocol: Protokols
+  setting_per_page_options: Objekti vienÄ lapÄ
+  setting_user_format: LietotÄju rÄdīšanas formÄts
+  setting_activity_days_default: Dienus skaits aktivitÄÅ¡u rÄdīšanai aktivitÄÅ¡u sadaļÄ
+  setting_display_subprojects_issues: RÄdÄ«t apakÅ¡projekta uzdevumus galvenajÄ projektÄ pÄ“c noklusÄ“juma
+  setting_enabled_scm: Lietot SCM
+  setting_mail_handler_body_delimiters: "SaÄ«sinÄt pÄ“c vienas no Å¡im rindÄm"
+  setting_mail_handler_api_enabled: "Lietot WS ienÄkoÅ¡ajiem e-pastiem"
+  setting_mail_handler_api_key: API atslēga
+  setting_sequential_project_identifiers: Ģenerēt secīgus projektu identifikatorus
+  setting_gravatar_enabled: Izmantot Gravatar lietotÄju ikonas
+  setting_gravatar_default: Noklusētais Gravatar attēls
+  setting_diff_max_lines_displayed: MaksimÄlais rÄdÄ«to diff rindu skaits
+  setting_file_max_size_displayed: MaksimÄlais izmÄ“rs iekļautajiem teksta failiem
+  setting_repository_log_display_limit: MaksimÄlais žurnÄla datnÄ“ rÄdÄ«to revÄ«ziju skaits
+  setting_openid: Atļaut OpenID pieslēgšanos un reģistrēšanos
+  setting_password_min_length: MinimÄlais paroles garums
+  setting_new_project_user_role_id: Loma, kura tiek piešķirta ne-administratora lietotÄjam, kurÅ¡ izveido projektu
+  setting_default_projects_modules: Noklusētie lietotie moduļi jaunam projektam
+  setting_issue_done_ratio: AprēķinÄt uzdevuma izpildes koeficientu ar
+  setting_issue_done_ratio_issue_field: uzdevuma lauku
+  setting_issue_done_ratio_issue_status: uzdevuma statusu
+  setting_start_of_week: SÄkt kalendÄru ar
+  setting_rest_api_enabled: Lietot REST web-servisu
+  setting_cache_formatted_text: Kešot formatētu tekstu
+  
+  permission_add_project: Izveidot projektu
+  permission_add_subprojects: Izveidot apakšprojektu
+  permission_edit_project: Rediģēt projektu
+  permission_select_project_modules: Izvēlēties projekta moduļus
+  permission_manage_members: PÄrvaldÄ«t dalÄ«bniekus
+  permission_manage_project_activities: PÄrvaldÄ«t projekta aktivitÄtes
+  permission_manage_versions: PÄrvaldÄ«t versijas
+  permission_manage_categories: PÄrvaldÄ«t uzdevumu kategorijas
+  permission_view_issues: Apskatīt uzdevumus
+  permission_add_issues: Pievienot uzdevumus
+  permission_edit_issues: Rediģēt uzdevumus
+  permission_manage_issue_relations: PÄrvaldÄ«t uzdevumu relÄcijas
+  permission_add_issue_notes: Pievienot piezīmes
+  permission_edit_issue_notes: Rediģēt piezīmes
+  permission_edit_own_issue_notes: Rediģēt paša piezīmes
+  permission_move_issues: PÄrvietot uzdevumus
+  permission_delete_issues: Dzēst uzdevumus
+  permission_manage_public_queries: PÄrvaldÄ«t publiskos pieprasÄ«jumus
+  permission_save_queries: SaglabÄt pieprasÄ«jumus
+  permission_view_gantt: Skatīt Ganta diagrammu
+  permission_view_calendar: SkatÄ«t kalendÄru
+  permission_view_issue_watchers: SkatÄ«t vÄ“rotÄju sarakstu
+  permission_add_issue_watchers: Pievienot vÄ“rotÄjus
+  permission_delete_issue_watchers: DzÄ“st vÄ“rotÄjus
+  permission_log_time: Piereģistrēt pavadīto laiku
+  permission_view_time_entries: Skatīt pavadīto laiku
+  permission_edit_time_entries: Rdiģēt laika reģistrus
+  permission_edit_own_time_entries:  Rediģēt savus laika reģistrus
+  permission_manage_news: PÄrvaldÄ«t jaunumus
+  permission_comment_news: Komentēt jaunumus
+  permission_manage_documents: PÄrvaldÄ«t dokumentus
+  permission_view_documents: Skatīt dokumentus
+  permission_manage_files: PÄrvaldÄ«t failus
+  permission_view_files: Skatīt failus
+  permission_manage_wiki: PÄrvaldÄ«t wiki
+  permission_rename_wiki_pages: PÄrsaukt wiki lapas
+  permission_delete_wiki_pages: Dzēst wiki lapas
+  permission_view_wiki_pages: Skatīt wiki
+  permission_view_wiki_edits: Skatīt wiki vēsturi
+  permission_edit_wiki_pages: Rdiģēt wiki lapas
+  permission_delete_wiki_pages_attachments: Dzēst pielikumus
+  permission_protect_wiki_pages: Projekta wiki lapas
+  permission_manage_repository: PÄrvaldÄ«t repozitoriju
+  permission_browse_repository: PÄrlÅ«kot repozitoriju
+  permission_view_changesets: Skatīt izmaiņu kopumus  
+  permission_commit_access: Atļaut piekļuvi
+  permission_manage_boards: PÄrvaldÄ«t ziņojumu dēļus
+  permission_view_messages: Skatīt ziņas
+  permission_add_messages: Publicēt ziņas
+  permission_edit_messages: Rediģēt ziņas
+  permission_edit_own_messages: Rediģēt savas ziņas
+  permission_delete_messages: Dzēst ziņas
+  permission_delete_own_messages: Dzēst savas ziņas
+  permission_export_wiki_pages: Eksportēt Wiki lapas
+  
+  project_module_issue_tracking: Uzdevumu uzskaite
+  project_module_time_tracking: Laika uzskaite
+  project_module_news: Jaunumi
+  project_module_documents: Dokumenti
+  project_module_files: Datnes
+  project_module_wiki: Wiki
+  project_module_repository: Repozitorijs
+  project_module_boards: Ziņojumu dēļi
+  
+  label_user: LietotÄjs
+  label_user_plural: LietotÄji
+  label_user_new: Jauns lietotÄjs
+  label_user_anonymous: Anonīms
+  label_project: Projekts
+  label_project_new: Jauns projekts
+  label_project_plural: Projekti
+  label_x_projects:
+    zero:  nav projektu
+    one:   1 projekts
+    other: "%{count} projekti"
+  label_project_all: Visi projekti
+  label_project_latest: JaunÄkie projekti
+  label_issue: Uzdevums
+  label_issue_new: Jauns uzdevums
+  label_issue_plural: Uzdevumi
+  label_issue_view_all: Skatīt visus uzdevumus
+  label_issues_by: "KÄrtot pÄ“c %{value}"
+  label_issue_added: Uzdevums pievienots
+  label_issue_updated: Uzdevums atjaunots
+  label_document: Dokuments
+  label_document_new: Jauns dokuments
+  label_document_plural: Dokumenti
+  label_document_added: Dokuments pievienots
+  label_role: Loma
+  label_role_plural: Lomas
+  label_role_new: Jauna loma
+  label_role_and_permissions: Lomas un atļaujas
+  label_member: Dalībnieks
+  label_member_new: Jauns dalībnieks
+  label_member_plural: Dalībnieki
+  label_tracker: Trakeris
+  label_tracker_plural: Trakeri
+  label_tracker_new: Jauns trakeris
+  label_workflow: Darba gaita
+  label_issue_status: Uzdevuma statuss
+  label_issue_status_plural: Uzdevumu statusi
+  label_issue_status_new: Jauns statuss
+  label_issue_category: Uzdevuma kategorija
+  label_issue_category_plural: Uzdevumu kategorijas
+  label_issue_category_new: Jauna kategorija
+  label_custom_field: PielÄgojams lauks
+  label_custom_field_plural: PielÄgojami lauki
+  label_custom_field_new: Jauns pielÄgojams lauks
+  label_enumerations: Uzskaitījumi
+  label_enumeration_new: Jauna vērtība
+  label_information: InformÄcija
+  label_information_plural: InformÄcija
+  label_please_login: Lūdzu pieslēdzieties
+  label_register: Reģistrēties
+  label_login_with_open_id_option: vai pieslēgties ar OpenID
+  label_password_lost: Nozaudēta parole
+  label_home: SÄkums
+  label_my_page: Mana lapa
+  label_my_account: Mans konts
+  label_my_projects: Mani projekti
+  label_administration: AdministrÄcija
+  label_login: Pieslēgties
+  label_logout: Atslēgties
+  label_help: Palīdzība
+  label_reported_issues: Ziņotie uzdevumi
+  label_assigned_to_me_issues: Man piesaistītie uzdevumi
+  label_last_login: PÄ“dÄ“jÄ pieslÄ“gÅ¡anÄs
+  label_registered_on: Reģistrējies
+  label_activity: AktivitÄte
+  label_overall_activity: KopÄ“jÄs aktivitÄtes
+  label_user_activity: "LietotÄja %{value} aktivitÄtes"
+  label_new: Jauns
+  label_logged_as: PieslÄ“dzies kÄ
+  label_environment: Vide
+  label_authentication: Pilnvarošana
+  label_auth_source: Pilnvarošanas režīms
+  label_auth_source_new: Jauns pilnvarošanas režīms
+  label_auth_source_plural: Pilnvarošanas režīmi
+  label_subproject_plural: Apakšprojekti
+  label_subproject_new: Jauns apakšprojekts
+  label_and_its_subprojects: "%{value} un tÄ apakÅ¡projekti"
+  label_min_max_length: MinimÄlais - MaksimÄlais garums
+  label_list: Saraksts
+  label_date: Datums
+  label_integer: Vesels skaitlis
+  label_float: DecimÄlskaitlis
+  label_boolean: Patiesuma vērtība
+  label_string: Teksts
+  label_text: Garš teksts
+  label_attribute: Atribūts
+  label_attribute_plural: Atribūti
+  label_download: "%{count} LejupielÄde"
+  label_download_plural: "%{count} LejupielÄdes"
+  label_no_data: Nav datu, ko parÄdÄ«t
+  label_change_status: Mainīt statusu
+  label_history: Vēsture
+  label_attachment: Pielikums
+  label_attachment_new: Jauns pielikums
+  label_attachment_delete: Dzēst pielikumu
+  label_attachment_plural: Pielikumi
+  label_file_added: Lauks pievienots
+  label_report: Atskaite
+  label_report_plural: Atskaites
+  label_news: Ziņa
+  label_news_new: Pievienot ziņu
+  label_news_plural: Ziņas
+  label_news_latest: JaunÄkÄs ziņas
+  label_news_view_all: Skatīt visas ziņas
+  label_news_added: Ziņas pievienotas
+  label_settings: Iestatījumi
+  label_overview: PÄrskats
+  label_version: Versija
+  label_version_new: Jauna versija
+  label_version_plural: Versijas
+  label_close_versions: AizvÄ“rt pabeigtÄs versijas
+  label_confirmation: ApstiprinÄjums
+  label_export_to: 'Pieejams arī:'
+  label_read: Lasīt...
+  label_public_projects: Publiskie projekti
+  label_open_issues: atvērts
+  label_open_issues_plural: atvērti
+  label_closed_issues: slēgts
+  label_closed_issues_plural: slēgti
+  label_x_open_issues_abbr_on_total:
+    zero:  0 atvērti / %{total}
+    one:   1 atvērts / %{total}
+    other: "%{count} atvērti / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 atvērti
+    one:   1 atvērts
+    other: "%{count} atvērti"
+  label_x_closed_issues_abbr:
+    zero:  0 slēgti
+    one:   1 slēgts
+    other: "%{count} slēgti"
+  label_total: KopÄ
+  label_permissions: Atļaujas
+  label_current_status: Pašreizējais statuss
+  label_new_statuses_allowed: Jauni statusi atļauti
+  label_all: visi
+  label_none: neviens
+  label_nobody: nekas
+  label_next: NÄkoÅ¡ais
+  label_previous: Iepriekšējais
+  label_used_by: Izmanto
+  label_details: Detaļas
+  label_add_note: Pievienot piezīmi
+  label_per_page: katrÄ lapÄ
+  label_calendar: KalendÄrs
+  label_months_from: mēneši no
+  label_gantt: Ganta diagramma
+  label_internal: Iekšējais
+  label_last_changes: "pÄ“dÄ“jÄs %{count} izmaiņas"
+  label_change_view_all: Skatīt visas izmaiņas
+  label_personalize_page: PielÄgot Å¡o lapu
+  label_comment: KomentÄrs
+  label_comment_plural: KomentÄri
+  label_x_comments:
+    zero: nav komentÄru
+    one: 1 komentÄrs
+    other: "%{count} komentÄri"
+  label_comment_add: Pievienot komentÄru
+  label_comment_added: KomentÄrs pievienots
+  label_comment_delete: DzÄ“st komentÄrus
+  label_query: PielÄgots pieprasÄ«jums
+  label_query_plural: PielÄgoti pieprasÄ«jumi
+  label_query_new: Jauns pieprasījums
+  label_filter_add: Pievienot filtru
+  label_filter_plural: Filtri
+  label_equals: ir
+  label_not_equals: nav
+  label_in_less_than: ir mazÄk kÄ
+  label_in_more_than: ir vairÄk kÄ
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: iekš
+  label_today: šodien
+  label_all_time: visu laiku
+  label_yesterday: vakar
+  label_this_week: šonedēļ
+  label_last_week: pagÄjuÅ¡o Å¡onedēļ
+  label_last_n_days: "pÄ“dÄ“jÄs %{count} dienas"
+  label_this_month: šomēnes
+  label_last_month: pagÄjuÅ¡o mÄ“nes
+  label_this_year: šogad
+  label_date_range: Datumu apgabals
+  label_less_than_ago: mazÄk kÄ dienas iepriekÅ¡
+  label_more_than_ago: vairÄk kÄ dienas iepriekÅ¡
+  label_ago: dienas iepriekš
+  label_contains: satur
+  label_not_contains: nesatur
+  label_day_plural: dienas
+  label_repository: Repozitorijs
+  label_repository_plural: Repozitoriji
+  label_browse: PÄrlÅ«kot
+  label_modification: "%{count} izmaiņa"
+  label_modification_plural: "%{count} izmaiņas"
+  label_branch: Zars
+  label_tag: Birka 
+  label_revision: Revīzija
+  label_revision_plural: Revīzijas
+  label_revision_id: "Revīzija %{value}"
+  label_associated_revisions: SaistÄ«tÄs revÄ«zijas
+  label_added: pievienots
+  label_modified: modificēts
+  label_copied: nokopēts
+  label_renamed: pÄrsaukts
+  label_deleted: dzēsts
+  label_latest_revision: PÄ“dÄ“jÄ revÄ«zija
+  label_latest_revision_plural: PÄ“dÄ“jÄs revÄ«zijas
+  label_view_revisions: Skatīt revīzijas
+  label_view_all_revisions: Skatīt visas revīzijas
+  label_max_size: MaksimÄlais izmÄ“rs
+  label_sort_highest: PÄrvietot uz augÅ¡u
+  label_sort_higher: PÄrvietot soli augÅ¡up
+  label_sort_lower: PÄrvietot uz leju
+  label_sort_lowest: PÄrvietot vienu soli uz leju
+  label_roadmap: Ceļvedis
+  label_roadmap_due_in: "SagaidÄms pÄ“c %{value}"
+  label_roadmap_overdue: "nokavēts %{value}"
+  label_roadmap_no_issues: Å ai versijai nav uzdevumu
+  label_search: Meklēt
+  label_result_plural: RezultÄti
+  label_all_words: Visi vÄrdi
+  label_wiki: Wiki
+  label_wiki_edit: Wiki labojums
+  label_wiki_edit_plural: Wiki labojumi
+  label_wiki_page: Wiki lapa
+  label_wiki_page_plural: Wiki lapas
+  label_index_by_title: Indeksēt pēc nosaukuma
+  label_index_by_date: Indeksēt pēc datuma
+  label_current_version: TekoÅ¡Ä versija
+  label_preview: Priekšskatījums
+  label_feed_plural: Barotnes
+  label_changes_details: Visu izmaiņu detaļas
+  label_issue_tracking: Uzdevumu uzskaite
+  label_spent_time: Pavadītais laiks
+  label_f_hour: "%{value} stunda"
+  label_f_hour_plural: "%{value} stundas"
+  label_time_tracking: Laika uzskaite
+  label_change_plural: Izmaiņas
+  label_statistics: Statistika
+  label_commits_per_month: Nodevumi mēnesī
+  label_commits_per_author: Nodevumi no autora
+  label_view_diff: Skatīt atšķirības
+  label_diff_inline: iekļauts
+  label_diff_side_by_side: blakus
+  label_options: Opcijas
+  label_copy_workflow_from: Kopēt darba plūsmu no
+  label_permissions_report: Atļauju atskaite
+  label_watched_issues: Vērotie uzdevumi
+  label_related_issues: Saistītie uzdevumi
+  label_applied_status: Piešķirtais statuss
+  label_loading: LÄdÄ“jas...
+  label_relation_new: Jauna relÄcija
+  label_relation_delete: DzÄ“st relÄciju
+  label_relates_to: saistīts ar
+  label_duplicates: dublikÄti
+  label_duplicated_by: dublējas ar
+  label_blocks: bloÄ·Ä“
+  label_blocked_by: nobloķējis
+  label_precedes: pirms
+  label_follows: seko
+  label_end_to_start: no beigÄm uz sÄkumu
+  label_end_to_end: no beigÄm uz beigÄm
+  label_start_to_start: no sÄkuma uz sÄkumu
+  label_start_to_end: no sÄkuma uz beigÄm
+  label_stay_logged_in: Atcerēties mani
+  label_disabled: izslēgts
+  label_show_completed_versions: RÄdÄ«t pabeigtÄs versijas
+  label_me: es
+  label_board: Forums
+  label_board_new: Jauns forums
+  label_board_plural: Forumi
+  label_board_locked: Slēgts
+  label_board_sticky: Svarīgs
+  label_topic_plural: Tēmas
+  label_message_plural: Ziņas
+  label_message_last: PÄ“dÄ“jÄ ziņa
+  label_message_new: Jauna ziņa
+  label_message_posted: Ziņa pievienota
+  label_reply_plural: Atbildes
+  label_send_information: SÅ«tÄ«t konta informÄciju lietotÄjam
+  label_year: Gads
+  label_month: Mēnesis
+  label_week: Nedēļa
+  label_date_from: No
+  label_date_to: Kam
+  label_language_based: Izmantot lietotÄja valodu
+  label_sort_by: "KÄrtot pÄ“c %{value}"
+  label_send_test_email: "Sūtīt testa e-pastu"
+  label_feeds_access_key: RSS piekļuves atslēga
+  label_missing_feeds_access_key: Trūkst RSS piekļuves atslēgas
+  label_feeds_access_key_created_on: "RSS piekļuves atslēga izveidota pirms %{value}"
+  label_module_plural: Moduļi
+  label_added_time_by: "Pievienojis %{author} pirms %{age}"
+  label_updated_time_by: "Atjaunojis %{author} pirms %{age}"
+  label_updated_time: "Atjaunots pirms %{value}"
+  label_jump_to_a_project: PÄriet uz projektu...
+  label_file_plural: Datnes
+  label_changeset_plural: Izmaiņu kopumi
+  label_default_columns: NoklusÄ“tÄs kolonnas
+  label_no_change_option: (Nav izmaiņu)
+  label_bulk_edit_selected_issues: Labot visus izvēlētos uzdevumus
+  label_theme: Tēma
+  label_default: Noklusēts
+  label_search_titles_only: Meklēt tikai nosaukumos
+  label_user_mail_option_all: "Par visiem notikumiem visos manos projektos"
+  label_user_mail_option_selected: "Par visiem notikumiem tikai izvēlētajos projektos..."
+  label_user_mail_no_self_notified: "Neziņot man par izmaiņÄm, kuras veicu es pats"
+  label_registration_activation_by_email: "konta aktivizÄcija caur e-pastu"
+  label_registration_manual_activation: manuÄlÄ konta aktivizÄcija
+  label_registration_automatic_activation: automÄtiskÄ konta aktivizÄcija
+  label_display_per_page: "RÄdÄ«t vienÄ lapÄ: %{value}"
+  label_age: Vecums
+  label_change_properties: Mainīt atribūtus
+  label_general: Galvenais
+  label_more: Vēl
+  label_scm: SCM
+  label_plugins: Spraudņi
+  label_ldap_authentication: LDAP pilnvarošana
+  label_downloads_abbr: L-lÄd.
+  label_optional_description: "Apraksts (neobligÄts)"
+  label_add_another_file: Pievienot citu failu
+  label_preferences: Priekšrocības
+  label_chronological_order: HronoloÄ£iskÄ kÄrtÄ«bÄ
+  label_reverse_chronological_order: Apgriezti hronoloÄ£iskÄ kÄrtÄ«bÄ
+  label_planning: PlÄnoÅ¡ana
+  label_incoming_emails: "IenÄkoÅ¡ie e-pasti"
+  label_generate_key: Ģenerēt atslēgu
+  label_issue_watchers: VÄ“rotÄji
+  label_example: Piemērs
+  label_display: RÄdÄ«t
+  label_sort: KÄrtot
+  label_ascending: Augoši
+  label_descending: Dilstoši
+  label_date_from_to: "No %{start} līdz %{end}"
+  label_wiki_content_added: Wiki lapa pievienota
+  label_wiki_content_updated: Wiki lapa atjaunota
+  label_group: Grupa
+  label_group_plural: Grupas
+  label_group_new: Jauna grupa
+  label_time_entry_plural: Pavadītais laiks
+  label_version_sharing_none: Nav koplietošanai
+  label_version_sharing_descendants: Ar apakšprojektiem
+  label_version_sharing_hierarchy: Ar projektu hierarhiju
+  label_version_sharing_tree: Ar projekta koku
+  label_version_sharing_system: Ar visiem projektiem
+  label_update_issue_done_ratios: Atjaunot uzdevuma veikuma attiecību
+  label_copy_source: Avots
+  label_copy_target: Mērķis
+  label_copy_same_as_target: TÄds pats kÄ mÄ“rÄ·is
+  label_display_used_statuses_only: "RÄdÄ«t tikai statusus, ko lieto Å¡is trakeris"
+  label_api_access_key: API pieejas atslēga
+  label_missing_api_access_key: Trūkst API pieejas atslēga
+  label_api_access_key_created_on: "API pieejas atslēga izveidota pirms %{value}"
+  
+  button_login: Pieslēgties
+  button_submit: Nosūtīt
+  button_save: SaglabÄt
+  button_check_all: Atzīmēt visu
+  button_uncheck_all: Noņemt visus atzīmējumus
+  button_delete: Dzēst
+  button_create: Izveidot
+  button_create_and_continue: Izveidot un turpinÄt
+  button_test: Testēt
+  button_edit: Labot
+  button_add: Pievienot
+  button_change: Mainīt
+  button_apply: ApstiprinÄt
+  button_clear: Notīrīt
+  button_lock: Slēgt
+  button_unlock: Atslēgt
+  button_download: LejuplÄdÄ“t
+  button_list: Saraksts
+  button_view: Skats
+  button_move: PÄrvietot
+  button_move_and_follow: PÄrvietot un sekot
+  button_back: Atpakaļ
+  button_cancel: Atcelt
+  button_activate: Aktivizēt
+  button_sort: KÄrtot
+  button_log_time: Ilgs laiks
+  button_rollback: Atjaunot uz šo versiju
+  button_watch: Vērot
+  button_unwatch: Nevērot
+  button_reply: Atbildēt
+  button_archive: Arhivēt
+  button_unarchive: Atarhivēt
+  button_reset: Atiestatīt
+  button_rename: PÄrsaukt
+  button_change_password: Mainīt paroli
+  button_copy: Kopēt
+  button_copy_and_follow: Kopēt un sekot
+  button_annotate: Pierakstīt paskaidrojumu
+  button_update: Atjaunot
+  button_configure: Konfigurēt
+  button_quote: CitÄts
+  button_duplicate: Dublēt
+  button_show: RÄdÄ«t
+  
+  status_active: aktīvs
+  status_registered: reģistrēts
+  status_locked: slēgts
+  
+  version_status_open: atvērta
+  version_status_locked: slēgta
+  version_status_closed: aizvērta
+
+  field_active: Aktīvs
+  
+  text_select_mail_notifications: "IzvÄ“lieties darbÄ«bas, par kurÄm vÄ“laties saņemt ziņojumus e-pastÄ"
+  text_regexp_info: "piem. ^[A-Z0-9]+$"
+  text_min_max_length_info: "0 nozīmē, ka nav ierobežojumu"
+  text_project_destroy_confirmation: "Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o projektu un ar to saistÄ«tos datus?"
+  text_subprojects_destroy_warning: "TÄ apakÅ¡projekts(i): %{value} arÄ« tiks dzÄ“sts(i)."
+  text_workflow_edit: Lai labotu darba plūsmu, izvēlieties lomu un trakeri
+  text_are_you_sure: "Vai esat pÄrliecinÄts?"
+  text_journal_changed: "%{label} mainīts no %{old} uz %{new}"
+  text_journal_set_to: "%{label} iestatīts uz %{value}"
+  text_journal_deleted: "%{label} dzēsts (%{old})"
+  text_journal_added: "%{label} %{value} pievienots"
+  text_tip_issue_begin_day: uzdevums sÄkas Å¡odien
+  text_tip_issue_end_day: uzdevums beidzas šodien
+  text_tip_issue_begin_end_day: uzdevums sÄkas un beidzas Å¡odien
+  text_project_identifier_info: 'Tikai mazie burti (a-z), cipari un domuzÄ«mes ir atļauti.<br />Kad saglabÄts, identifikators nevar tikt mainÄ«ts.'
+  text_caracters_maximum: "%{count} simboli maksimÄli."
+  text_caracters_minimum: "JÄbÅ«t vismaz %{count} simbolu garumÄ."
+  text_length_between: "Garums starp %{min} un %{max} simboliem."
+  text_tracker_no_workflow: Šim trakerim nav definēta darba plūsma
+  text_unallowed_characters: Neatļauti simboli
+  text_comma_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (atdalÄ«t ar komatu)."
+  text_line_separated: "Atļautas vairÄkas vÄ“rtÄ«bas (rakstÄ«t katru savÄ rindÄ)."
+  text_issues_ref_in_commit_messages: "Izmaiņu salÄ«dzinÄÅ¡ana izejot no ziņojumiem"
+  text_issue_added: "Uzdevumu %{id} pievienojis %{author}."
+  text_issue_updated: "Uzdevumu %{id} atjaunojis %{author}."
+  text_wiki_destroy_confirmation: "Vai esat droÅ¡s, ka vÄ“laties dzÄ“st Å¡o wiki un visu tÄs saturu?"
+  text_issue_category_destroy_question: "Daži uzdevumi (%{count}) ir nozīmēti šai kategorijai. Ko Jūs vēlaties darīt?"
+  text_issue_category_destroy_assignments: Dzēst kategoriju nozīmējumus
+  text_issue_category_reassign_to: Nozīmēt uzdevumus šai kategorijai
+  text_user_mail_option: "No neizvÄ“lÄ“tajiem projektiem JÅ«s saņemsiet ziņojumus e-pastÄ tikai par notikumiem, kuriem JÅ«s sekojat vai kuros esat iesaistÄ«ts." 
+  text_no_configuration_data: "Lomas, trakeri, uzdevumu statusi un darba plÅ«smas vÄ“l nav konfigurÄ“tas.\nÄ»oti ieteicams ielÄdÄ“t noklusÄ“to konfigurÄciju. PÄ“c ielÄdēšanas to bÅ«s iespÄ“jams modificÄ“t."
+  text_load_default_configuration: IelÄdÄ“t noklusÄ“to konfigurÄciju
+  text_status_changed_by_changeset: "ApstiprinÄts izmaiņu kopumÄ %{value}."
+  text_issues_destroy_confirmation: 'Vai tieÅ¡Äm vÄ“laties dzÄ“st izvÄ“lÄ“to uzdevumu(us)?'
+  text_select_project_modules: 'Izvēlieties moduļus šim projektam:'
+  text_default_administrator_account_changed: Noklusētais administratora konts mainīts
+  text_file_repository_writable: Pielikumu direktorijÄ atļauts rakstÄ«t
+  text_plugin_assets_writable: Spraudņu kataloga direktorijÄ atļauts rakstÄ«t
+  text_rmagick_available: "RMagick pieejams (neobligÄts)"
+  text_destroy_time_entries_question: "%{hours} stundas tika ziņotas par uzdevumu, ko vēlaties dzēst. Ko darīt?"
+  text_destroy_time_entries: DzÄ“st ziņotÄs stundas
+  text_assign_time_entries_to_project: Piešķirt ziņotÄs stundas projektam
+  text_reassign_time_entries: 'Piešķirt ziņotÄs stundas uzdevumam:'
+  text_user_wrote: "%{value} rakstīja:"
+  text_enumeration_destroy_question: "%{count} objekti ir piešķirti šai vērtībai."
+  text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
+  text_email_delivery_not_configured: "E-pastu nosÅ«tīšana nav konfigurÄ“ta, un ziņojumi ir izslÄ“gti.\nKonfigurÄ“jiet savu SMTP serveri datnÄ“ config/email.yml un pÄrstartÄ“jiet lietotni."
+  text_repository_usernames_mapping: "IzvÄ“lieties vai atjaunojiet Redmine lietotÄju, saistÄ«tu ar katru lietotÄjvÄrdu, kas atrodams repozitorija žurnÄlÄ.\nLietotÄji ar to paÅ¡u Redmine un repozitorija lietotÄjvÄrdu bÅ«s saistÄ«ti automÄtiski."
+  text_diff_truncated: '... Å is diff tika nošķelts, jo tas pÄrsniedz maksimÄlo izmÄ“ru, ko var parÄdÄ«t.'
+  text_custom_field_possible_values_info: 'Katra vÄ“rtÄ«bas savÄ rindÄ'
+  text_wiki_page_destroy_question: "Å ij lapai ir %{descendants} apakÅ¡lapa(as) un pÄ“cnÄcÄ“ji. Ko darÄ«t?"
+  text_wiki_page_nullify_children: "PaturÄ“t apakÅ¡lapas kÄ pamatlapas"
+  text_wiki_page_destroy_children: "DzÄ“st apakÅ¡lapas un visus pÄ“cnÄcÄ“jus"
+  text_wiki_page_reassign_children: "Piešķirt apakšlapas šai lapai"
+  text_own_membership_delete_confirmation: "JÅ«s tÅ«lÄ«t dzÄ“sÄ«siet dažas vai visas atļaujas, un Jums pÄ“c tam var nebÅ«t atļauja labot Å¡o projektu.\nVai turpinÄt?"
+  
+  default_role_manager: Menedžeris
+  default_role_developer: IzstrÄdÄtÄjs
+  default_role_reporter: ZiņotÄjs
+  default_tracker_bug: Kļūda
+  default_tracker_feature: Iezīme
+  default_tracker_support: Atbalsts
+  default_issue_status_new: Jauns
+  default_issue_status_in_progress: AttÄ«stÄ«bÄ
+  default_issue_status_resolved: AtrisinÄts
+  default_issue_status_feedback: Atsauksmes
+  default_issue_status_closed: Slēgts
+  default_issue_status_rejected: Noraidīts
+  default_doc_category_user: LietotÄja dokumentÄcija
+  default_doc_category_tech: TehniskÄ dokumentÄcija
+  default_priority_low: Zema
+  default_priority_normal: NormÄla
+  default_priority_high: Augsta
+  default_priority_urgent: Steidzama
+  default_priority_immediate: Tūlītēja
+  default_activity_design: Dizains
+  default_activity_development: IzstrÄdÄÅ¡ana
+  
+  enumeration_issue_priorities: Uzdevumu prioritÄtes
+  enumeration_doc_categories: Dokumentu kategorijas
+  enumeration_activities: AktivitÄtes (laika uzskaite)
+  enumeration_system_activity: SistÄ“mas aktivitÄtes
+
+  error_can_not_delete_custom_field: Unable to delete custom field
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  error_unable_to_connect: Unable to connect (%{value})
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  field_parent_issue: Parent task
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  label_project_copy_notifications: Send email notifications during the project copy
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/mk.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/mk.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,929 +1,938 @@
-mk:
-  # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d/%m/%Y"
-      short: "%d %b"
-      long: "%d %B, %Y"
-
-    day_names: [недела, понеделник, вторник, Ñреда, четврток, петок, Ñабота]
-    abbr_day_names: [нед, пон, вто, Ñре, чет, пет, Ñаб]
-
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, јануари, февруари, март, април, мај, јуни, јули, авгуÑÑ‚, Ñептември, октомври, ноември, декември]
-    abbr_month_names: [~, јан, фев, мар, апр, мај, јун, јул, авг, Ñеп, окт, ное, дек]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%d/%m/%Y %H:%M"
-      time: "%H:%M"
-      short: "%d %b %H:%M"
-      long: "%d %B, %Y %H:%M"
-    am: "предпладне"
-    pm: "попладне"
-
-  datetime:
-    distance_in_words:
-      half_a_minute: "пола минута"
-      less_than_x_seconds:
-        one:   "помалку од 1 Ñекунда"
-        other: "помалку од {{count}} Ñекунди"
-      x_seconds:
-        one:   "1 Ñекунда"
-        other: "{{count}} Ñекунди"
-      less_than_x_minutes:
-        one:   "помалку од 1 минута"
-        other: "помалку од {{count}} минути"
-      x_minutes:
-        one:   "1 минута"
-        other: "{{count}} минути"
-      about_x_hours:
-        one:   "околу 1 чаÑ"
-        other: "околу {{count}} чаÑа"
-      x_days:
-        one:   "1 ден"
-        other: "{{count}} дена"
-      about_x_months:
-        one:   "околу 1 меÑец"
-        other: "околу {{count}} меÑеци"
-      x_months:
-        one:   "1 меÑец"
-        other: "{{count}} меÑеци"
-      about_x_years:
-        one:   "околу 1 година"
-        other: "околу {{count}} години"
-      over_x_years:
-        one:   "преку 1 година"
-        other: "преку {{count}} години"
-      almost_x_years:
-        one:   "Ñкоро 1 година"
-        other: "Ñкоро {{count}} години"
-
-  number:
-    # Default format for numbers
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "и"
-      skip_last_comma: false
-
-  activerecord:
-    errors:
-      messages:
-        inclusion: "не е вклучено во лиÑтата"
-        exclusion: "е резервирано"
-        invalid: "е невалидно"
-        confirmation: "не Ñе Ñовпаѓа Ñо потврдата"
-        accepted: "мора да е прифатено"
-        empty: "неможе да е празно"
-        blank: "неможе да е празно"
-        too_long: "е предолго (макÑ. {{count}} знаци)"
-        too_short: "е прекратко (мин. {{count}} знаци)"
-        wrong_length: "е погрешна должина (треба да е  {{count}} знаци)"
-        taken: "е веќе зафатено"
-        not_a_number: "не е број"
-        not_a_date: "не е валидна дата"
-        greater_than: "мора да е поголемо од {{count}}"
-        greater_than_or_equal_to: "мора да е поголемо или еднакво на {{count}}"
-        equal_to: "мора да е еднакво на {{count}}"
-        less_than: "мора да е помало од {{count}}"
-        less_than_or_equal_to: "мора да е помало или еднакво на {{count}}"
-        odd: "мора да е непарно"
-        even: "мора да е парно"
-        greater_than_start_date: "мора да е поголема од почетната дата"
-        not_same_project: "не припаѓа на иÑтиот проект"
-        circular_dependency: "Оваа врÑка ќе креира кружна завиÑноÑÑ‚"
-        cant_link_an_issue_with_a_descendant: "Задача неможе да Ñе поврзе Ñо една од нејзините подзадачи"
-
-  actionview_instancetag_blank_option: Изберете
-
-  general_text_No: 'Ðе'
-  general_text_Yes: 'Да'
-  general_text_no: 'не'
-  general_text_yes: 'да'
-  general_lang_name: 'Macedonian (МакедонÑки)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-
-  notice_account_updated: Профилот е уÑпешно ажуриран.
-  notice_account_invalid_creditentials: Ðеточен кориÑник или лозинка
-  notice_account_password_updated: Лозинката е уÑпешно ажурирана.
-  notice_account_wrong_password: Погрешна лозинка
-  notice_account_register_done: Профилот е уÑпешно креиран. За активација, клкнете на врÑката што ви е пратена по е-пошта.
-  notice_account_unknown_email: Ðепознат кориÑник.
-  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
-  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
-  notice_account_activated: Your account has been activated. You can now log in.
-  notice_successful_create: УÑпешно креирање.
-  notice_successful_update: УÑпешно ажурирање.
-  notice_successful_delete: УÑпешно бришење.
-  notice_successful_connection: УÑпешна конекција.
-  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
-  notice_locking_conflict: Data has been updated by another user.
-  notice_not_authorized: You are not authorized to access this page.
-  notice_email_sent: "Е-порака е пратена на {{value}}"
-  notice_email_error: "Се Ñлучи грешка при праќање на е-пораката ({{value}})"
-  notice_feeds_access_key_reseted: Вашиот RSS клуч за приÑтап е reset.
-  notice_api_access_key_reseted: Вашиот API клуч за приÑтап е reset.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
-  notice_account_pending: "Your account was created and is now pending administrator approval."
-  notice_default_data_loaded: Default configuration successfully loaded.
-  notice_unable_delete_version: Unable to delete version.
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
-  error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
-  error_scm_annotate: "The entry does not exist or can not be annotated."
-  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_can_not_delete_tracker: "This tracker contains issues and can't be deleted."
-  error_can_not_remove_role: "This role is in use and can not be deleted."
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  error_unable_delete_issue_status: 'Unable to delete issue status'
-  error_unable_to_connect: "Unable to connect ({{value}})"
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
-
-  mail_subject_lost_password: "Вашата {{value}} лозинка"
-  mail_body_lost_password: 'To change your password, click on the following link:'
-  mail_subject_register: "Your {{value}} account activation"
-  mail_body_register: 'To activate your account, click on the following link:'
-  mail_body_account_information_external: "You can use your {{value}} account to log in."
-  mail_body_account_information: Your account information
-  mail_subject_account_activation_request: "{{value}} account activation request"
-  mail_body_account_activation_request: "Ðов кориÑник ({{value}}) е региÑтриран. The account is pending your approval:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-
-  gui_validation_error: 1 грешка
-  gui_validation_error_plural: "{{count}} грешки"
-
-  field_name: Име
-  field_description: ОпиÑ
-  field_summary: Краток опиÑ
-  field_is_required: Задолжително
-  field_firstname: Име
-  field_lastname: Презиме
-  field_mail: Е-пошта
-  field_filename: Датотека
-  field_filesize: Големина
-  field_downloads: Превземања
-  field_author: Ðвтор
-  field_created_on: Креиран
-  field_updated_on: Ðжурирано
-  field_field_format: Формат
-  field_is_for_all: За Ñите проекти
-  field_possible_values: Можни вредноÑти
-  field_regexp: Regular expression
-  field_min_length: Минимална должина
-  field_max_length: МакÑимална должина
-  field_value: ВредноÑÑ‚
-  field_category: Категорија
-  field_title: ÐаÑлов
-  field_project: Проект
-  field_issue: Задача
-  field_status: СтатуÑ
-  field_notes: Белешки
-  field_is_closed: Задачата е затворена
-  field_is_default: Default value
-  field_tracker: Tracker
-  field_subject: ÐаÑлов
-  field_due_date: Краен рок
-  field_assigned_to: Доделена на
-  field_priority: Приоритет
-  field_fixed_version: Target version
-  field_user: КориÑник
-  field_principal: Principal
-  field_role: Улога
-  field_homepage: Веб Ñтрана
-  field_is_public: Јавен
-  field_parent: Подпроект на
-  field_is_in_roadmap: Issues displayed in roadmap
-  field_login: КориÑник
-  field_mail_notification: ИзвеÑтувања по e-пошта
-  field_admin: ÐдминиÑтратор
-  field_last_login_on: ПоÑледна најава
-  field_language: Јазик
-  field_effective_date: Дата
-  field_password: Лозинка
-  field_new_password: Ðова лозинка
-  field_password_confirmation: Потврда
-  field_version: Верзија
-  field_type: Тип
-  field_host: ХоÑÑ‚
-  field_port: Порт
-  field_account: Account
-  field_base_dn: Base DN
-  field_attr_login: Login attribute
-  field_attr_firstname: Firstname attribute
-  field_attr_lastname: Lastname attribute
-  field_attr_mail: Email attribute
-  field_onthefly: Моментално (On-the-fly) креирање на кориÑници
-  field_done_ratio: % Завршено
-  field_auth_source: Режим на автентикација
-  field_hide_mail: Криј ја мојата адреÑа на е-пошта
-  field_comments: Коментар
-  field_url: URL
-  field_start_page: Почетна Ñтрана
-  field_subproject: Подпроект
-  field_hours: ЧаÑови
-  field_activity: ÐктивноÑÑ‚
-  field_spent_on: Дата
-  field_identifier: Идентификатор
-  field_is_filter: КориÑти како филтер
-  field_issue_to: Поврзана задача
-  field_delay: Доцнење
-  field_assignable: Ðа оваа улога може да Ñе доделуваат задачи
-  field_redirect_existing_links: ПренаÑочи ги поÑтоечките врÑки
-  field_estimated_hours: Проценето време
-  field_column_names: Колони
-  field_time_entries: Бележи време
-  field_time_zone: ВременÑка зона
-  field_searchable: Може да Ñе пребарува
-  field_default_value: Default value
-  field_comments_sorting: Прикажувај коментари
-  field_parent_title: Parent page
-  field_editable: Може да Ñе уредува
-  field_watcher: Watcher
-  field_identity_url: OpenID URL
-  field_content: Содржина
-  field_group_by: Групирај ги резултатите Ñпоред
-  field_sharing: Споделување
-  field_parent_issue: Parent task
-
-  setting_app_title: ÐаÑлов на апликацијата
-  setting_app_subtitle: ПоднаÑлов на апликацијата
-  setting_welcome_text: ТекÑÑ‚ за добредојде
-  setting_default_language: Default јазик
-  setting_login_required: Задолжителна автентикација
-  setting_self_registration: Само-региÑтрација
-  setting_attachment_max_size: МакÑ. големина на прилог
-  setting_issues_export_limit: Issues export limit
-  setting_mail_from: Emission email address
-  setting_bcc_recipients: Blind carbon copy recipients (bcc)
-  setting_plain_text_mail: ТекÑтуални е-пораки (без HTML)
-  setting_host_name: Име на хоÑÑ‚ и патека
-  setting_text_formatting: Форматирање на текÑÑ‚
-  setting_wiki_compression: КомпреÑија на иÑторијата на вики
-  setting_feeds_limit: Feed content limit
-  setting_default_projects_public: Ðовите проекти Ñе иницијално јавни
-  setting_autofetch_changesets: Autofetch commits
-  setting_sys_api_enabled: Enable WS for repository management
-  setting_commit_ref_keywords: Referencing keywords
-  setting_commit_fix_keywords: Fixing keywords
-  setting_autologin: ÐвтоматÑка најава
-  setting_date_format: Формат на дата
-  setting_time_format: Формат на време
-  setting_cross_project_issue_relations: Дозволи релации на задачи меѓу проекти
-  setting_issue_list_default_columns: Default columns displayed on the issue list
-  setting_repositories_encodings: Repositories encodings
-  setting_commit_logs_encoding: Commit messages encoding
-  setting_emails_footer: Emails footer
-  setting_protocol: Протокол
-  setting_per_page_options: Objects per page options
-  setting_user_format: Приказ на кориÑниците
-  setting_activity_days_default: Денови прикажана во активноÑта на проектот
-  setting_display_subprojects_issues: Прикажи ги задачите на подпроектите во главните проекти
-  setting_enabled_scm: Овозможи SCM
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: Enable WS for incoming emails
-  setting_mail_handler_api_key: API клуч
-  setting_sequential_project_identifiers: Генерирај поÑледователни идентификатори на проекти
-  setting_gravatar_enabled: КориÑти Gravatar кориÑнички икони
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Max number of diff lines displayed
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Дозволи OpenID најава и региÑтрација
-  setting_password_min_length: Мин. должина на лозинка
-  setting_new_project_user_role_id: Улога доделена на неадминиÑтраторÑки кориÑник кој креира проект
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-
-  permission_add_project: Креирај проекти
-  permission_add_subprojects: Креирај подпроекти
-  permission_edit_project: Уреди проект
-  permission_select_project_modules: Изберете модули за проект
-  permission_manage_members: Manage members
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Manage versions
-  permission_manage_categories: Manage issue categories
-  permission_view_issues: Прегледај задачи
-  permission_add_issues: Додавај задачи
-  permission_edit_issues: Уредувај задачи
-  permission_manage_issue_relations: Manage issue relations
-  permission_add_issue_notes: Додавај белешки
-  permission_edit_issue_notes: Уредувај белешки
-  permission_edit_own_issue_notes: Уредувај ÑопÑтвени белешки
-  permission_move_issues: ПремеÑтувај задачи
-  permission_delete_issues: Бриши задачи
-  permission_manage_public_queries: Manage public queries
-  permission_save_queries: Save queries
-  permission_view_gantt: View gantt chart
-  permission_view_calendar: View calendar
-  permission_view_issue_watchers: View watchers list
-  permission_add_issue_watchers: Add watchers
-  permission_delete_issue_watchers: Delete watchers
-  permission_log_time: Бележи потрошено време
-  permission_view_time_entries: Прегледај потрошено време
-  permission_edit_time_entries: Уредувај белешки за потрошено време
-  permission_edit_own_time_entries: Уредувај ÑопÑтвени белешки за потрошено време
-  permission_manage_news: Manage news
-  permission_comment_news: Коментирај на веÑти
-  permission_manage_documents: Manage documents
-  permission_view_documents: Прегледувај документи
-  permission_manage_files: Manage files
-  permission_view_files: Прегледувај датотеки
-  permission_manage_wiki: Manage wiki
-  permission_rename_wiki_pages: Преименувај вики Ñтраници
-  permission_delete_wiki_pages: Бриши вики Ñтраници
-  permission_view_wiki_pages: Прегледувај вики
-  permission_view_wiki_edits: Прегледувај вики иÑторија
-  permission_edit_wiki_pages: Уредувај вики Ñтраници
-  permission_delete_wiki_pages_attachments: Бриши прилози
-  permission_protect_wiki_pages: Заштитувај вики Ñтраници
-  permission_manage_repository: Manage repository
-  permission_browse_repository: Browse repository
-  permission_view_changesets: View changesets
-  permission_commit_access: Commit access
-  permission_manage_boards: Manage boards
-  permission_view_messages: View messages
-  permission_add_messages: Post messages
-  permission_edit_messages: Уредувај пораки
-  permission_edit_own_messages: Уредувај ÑопÑтвени пораки
-  permission_delete_messages: Бриши пораки
-  permission_delete_own_messages: Бриши ÑопÑтвени пораки
-  permission_export_wiki_pages: Export wiki pages
-  permission_manage_subtasks: Manage subtasks
-
-  project_module_issue_tracking: Следење на задачи
-  project_module_time_tracking: Следење на време
-  project_module_news: ВеÑти
-  project_module_documents: Документи
-  project_module_files: Датотеки
-  project_module_wiki: Вики
-  project_module_repository: Repository
-  project_module_boards: Форуми
-  project_module_calendar: Календар
-  project_module_gantt: Gantt
-
-  label_user: КориÑник
-  label_user_plural: КориÑници
-  label_user_new: Ðов кориÑник
-  label_user_anonymous: Ðнонимен
-  label_project: Проект
-  label_project_new: Ðов проект
-  label_project_plural: Проекти
-  label_x_projects:
-    zero:  нема проекти
-    one:   1 проект
-    other: "{{count}} проекти"
-  label_project_all: Сите проекти
-  label_project_latest: ПоÑледните проекти
-  label_issue: Задача
-  label_issue_new: Ðова задача
-  label_issue_plural: Задачи
-  label_issue_view_all: Прегледај ги Ñите задачи
-  label_issues_by: "Задачи по {{value}}"
-  label_issue_added: Задачата е додадена
-  label_issue_updated: Задачата е ажурирана
-  label_document: Документ
-  label_document_new: Ðов документ
-  label_document_plural: Документи
-  label_document_added: Документот е додаден
-  label_role: Улога
-  label_role_plural: Улоги
-  label_role_new: Ðова улога
-  label_role_and_permissions: Улоги и овлаÑтувања
-  label_member: Член
-  label_member_new: Ðов член
-  label_member_plural: Членови
-  label_tracker: Tracker
-  label_tracker_plural: Trackers
-  label_tracker_new: New tracker
-  label_workflow: Workflow
-  label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° задача
-  label_issue_status_plural: СтатуÑи на задачи
-  label_issue_status_new: Ðов ÑтатуÑ
-  label_issue_category: Категорија на задача
-  label_issue_category_plural: Категории на задачи
-  label_issue_category_new: Ðова категорија
-  label_custom_field: Прилагодено поле
-  label_custom_field_plural: Прилагодени полиња
-  label_custom_field_new: Ðово прилагодено поле
-  label_enumerations: Enumerations
-  label_enumeration_new: Ðова вредноÑÑ‚
-  label_information: Информација
-  label_information_plural: Информации
-  label_please_login: Ðајави Ñе
-  label_register: РегиÑтрирај Ñе
-  label_login_with_open_id_option: или најави Ñе Ñо OpenID
-  label_password_lost: Изгубена лозинка
-  label_home: Почетна
-  label_my_page: Мојата Ñтрана
-  label_my_account: Мојот профил
-  label_my_projects: Мои проекти
-  label_my_page_block: Блок елемент
-  label_administration: ÐдминиÑтрација
-  label_login: Ðајави Ñе
-  label_logout: Одјави Ñе
-  label_help: Помош
-  label_reported_issues: Пријавени задачи
-  label_assigned_to_me_issues: Задачи доделени на мене
-  label_last_login: ПоÑледна најава
-  label_registered_on: РегиÑтриран на
-  label_activity: ÐктивноÑÑ‚
-  label_overall_activity: Севкупна активноÑÑ‚
-  label_user_activity: "ÐктивноÑÑ‚ на {{value}}"
-  label_new: Ðова
-  label_logged_as: Ðајавени Ñте како
-  label_environment: Опкружување
-  label_authentication: Ðвтентикација
-  label_auth_source: Режим на автентикација
-  label_auth_source_new: Ðов режим на автентикација
-  label_auth_source_plural: Режими на автентикација
-  label_subproject_plural: Подпроекти
-  label_subproject_new: Ðов подпроект
-  label_and_its_subprojects: "{{value}} и неговите подпроекти"
-  label_min_max_length: Мин. - МакÑ. должина
-  label_list: ЛиÑта
-  label_date: Дата
-  label_integer: Integer
-  label_float: Float
-  label_boolean: Boolean
-  label_string: ТекÑÑ‚
-  label_text: Долг текÑÑ‚
-  label_attribute: Ðтрибут
-  label_attribute_plural: Ðтрибути
-  label_download: "{{count}} превземање"
-  label_download_plural: "{{count}} превземања"
-  label_no_data: Ðема податоци за прикажување
-  label_change_status: Промени ÑтатуÑ
-  label_history: ИÑторија
-  label_attachment: Датотека
-  label_attachment_new: Ðова датотека
-  label_attachment_delete: Избриши датотека
-  label_attachment_plural: Датотеки
-  label_file_added: Датотеката е додадена
-  label_report: Извештај
-  label_report_plural: Извештаи
-  label_news: ÐовоÑÑ‚
-  label_news_new: Додади новоÑÑ‚
-  label_news_plural: ÐовоÑти
-  label_news_latest: ПоÑледни новоÑти
-  label_news_view_all: Прегледај ги Ñите новоÑти
-  label_news_added: ÐовоÑтта е додадена
-  label_settings: Settings
-  label_overview: Преглед
-  label_version: Верзија
-  label_version_new: Ðова верзија
-  label_version_plural: Верзии
-  label_close_versions: Затвори ги завршените врзии
-  label_confirmation: Потврда
-  label_export_to: 'ДоÑтапно и во:'
-  label_read: Прочитај...
-  label_public_projects: Јавни проекти
-  label_open_issues: отворена
-  label_open_issues_plural: отворени
-  label_closed_issues: затворена
-  label_closed_issues_plural: затворени
-  label_x_open_issues_abbr_on_total:
-    zero:  0 отворени / {{total}}
-    one:   1 отворена / {{total}}
-    other: "{{count}} отворени / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 отворени
-    one:   1 отворена
-    other: "{{count}} отворени"
-  label_x_closed_issues_abbr:
-    zero:  0 затворени
-    one:   1 затворена
-    other: "{{count}} затворени"
-  label_total: Вкупно
-  label_permissions: ОвлаÑтувања
-  label_current_status: Моментален ÑтатуÑ
-  label_new_statuses_allowed: Дозволени нови ÑтатуÑи
-  label_all: Ñите
-  label_none: ниеден
-  label_nobody: никој
-  label_next: Следно
-  label_previous: Претходно
-  label_used_by: КориÑтено од
-  label_details: Детали
-  label_add_note: Додади белешка
-  label_per_page: По Ñтрана
-  label_calendar: Календар
-  label_months_from: меÑеци од
-  label_gantt: Gantt
-  label_internal: Internal
-  label_last_changes: "поÑледни {{count}} промени"
-  label_change_view_all: Прегледај ги Ñите промени
-  label_personalize_page: Прилагоди ја Ñтранава
-  label_comment: Коментар
-  label_comment_plural: Коментари
-  label_x_comments:
-    zero: нема коментари
-    one: 1 коментар
-    other: "{{count}} коментари"
-  label_comment_add: Додади коментар
-  label_comment_added: Коментарот е додаден
-  label_comment_delete: Избриши коментари
-  label_query: Custom query
-  label_query_plural: Custom queries
-  label_query_new: New query
-  label_filter_add: Додади филтер
-  label_filter_plural: Филтри
-  label_equals: е
-  label_not_equals: не е
-  label_in_less_than: за помалку од
-  label_in_more_than: за повеќе од
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: во
-  label_today: денеÑ
-  label_all_time: цело време
-  label_yesterday: вчера
-  label_this_week: оваа недела
-  label_last_week: минатата недела
-  label_last_n_days: "поÑледните {{count}} дена"
-  label_this_month: овој меÑец
-  label_last_month: минатиот меÑец
-  label_this_year: оваа година
-  label_date_range: Date range
-  label_less_than_ago: пред помалку од денови
-  label_more_than_ago: пред повеќе од денови
-  label_ago: пред денови
-  label_contains: Ñодржи
-  label_not_contains: не Ñодржи
-  label_day_plural: денови
-  label_repository: Складиште
-  label_repository_plural: Складишта
-  label_browse: ПрелиÑтувај
-  label_modification: "{{count}} промени"
-  label_modification_plural: "{{count}} промени"
-  label_branch: Гранка
-  label_tag: Tag
-  label_revision: Ревизија
-  label_revision_plural: Ревизии
-  label_revision_id: "Ревизија {{value}}"
-  label_associated_revisions: Associated revisions
-  label_added: added
-  label_modified: modified
-  label_copied: copied
-  label_renamed: renamed
-  label_deleted: deleted
-  label_latest_revision: ПоÑледна ревизија
-  label_latest_revision_plural: ПоÑледни ревизии
-  label_view_revisions: Прегледај ги ревизиите
-  label_view_all_revisions: Прегледај ги Ñите ревизии
-  label_max_size: МакÑ. големина
-  label_sort_highest: ПремеÑти најгоре
-  label_sort_higher: ПремеÑти нагоре
-  label_sort_lower: ПремеÑти надоле
-  label_sort_lowest: ПремеÑти најдоле
-  label_roadmap: Roadmap
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "КаÑни {{value}}"
-  label_roadmap_no_issues: Ðема задачи за оваа верзија
-  label_search: Барај
-  label_result_plural: Резултати
-  label_all_words: Сите зборови
-  label_wiki: Вики
-  label_wiki_edit: Вики уредување
-  label_wiki_edit_plural: Вики уредувања
-  label_wiki_page: Вики Ñтраница
-  label_wiki_page_plural: Вики Ñтраници
-  label_index_by_title: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ наÑлов
-  label_index_by_date: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ дата
-  label_current_version: Current version
-  label_preview: Preview
-  label_feed_plural: Feeds
-  label_changes_details: Детали за Ñите промени
-  label_issue_tracking: Следење на задачи
-  label_spent_time: Потрошено време
-  label_overall_spent_time: Вкупно потрошено време
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑа"
-  label_time_tracking: Следење на време
-  label_change_plural: Промени
-  label_statistics: СтатиÑтики
-  label_commits_per_month: Commits per month
-  label_commits_per_author: Commits per author
-  label_view_diff: View differences
-  label_diff_inline: inline
-  label_diff_side_by_side: side by side
-  label_options: Опции
-  label_copy_workflow_from: Copy workflow from
-  label_permissions_report: Permissions report
-  label_watched_issues: Watched issues
-  label_related_issues: Поврзани задачи
-  label_applied_status: Applied status
-  label_loading: Loading...
-  label_relation_new: Ðова релација
-  label_relation_delete: Избриши релација
-  label_relates_to: related to
-  label_duplicates: дупликати
-  label_duplicated_by: duplicated by
-  label_blocks: blocks
-  label_blocked_by: блокирано од
-  label_precedes: претходи
-  label_follows: Ñледи
-  label_end_to_start: крај до почеток
-  label_end_to_end: крај до крај
-  label_start_to_start: почеток до почеток
-  label_start_to_end: почеток до крај
-  label_stay_logged_in: ОÑтанете најавени
-  label_disabled: disabled
-  label_show_completed_versions: Show completed versions
-  label_me: јаÑ
-  label_board: Форум
-  label_board_new: Ðов форум
-  label_board_plural: Форуми
-  label_board_locked: Заклучен
-  label_board_sticky: Sticky
-  label_topic_plural: Теми
-  label_message_plural: Пораки
-  label_message_last: ПоÑледна порака
-  label_message_new: Ðова порака
-  label_message_posted: Поракате е додадена
-  label_reply_plural: Одговори
-  label_send_information: ИÑпрати ги информациите за профилот на кориÑникот
-  label_year: Година
-  label_month: МеÑец
-  label_week: Ðедела
-  label_date_from: Од
-  label_date_to: До
-  label_language_based: Според јазикот на кориÑникот
-  label_sort_by: "Подреди Ñпоред {{value}}"
-  label_send_test_email: ИÑпрати теÑÑ‚ е-порака
-  label_feeds_access_key: RSS клуч за приÑтап
-  label_missing_feeds_access_key: ÐедоÑтика RSS клуч за приÑтап
-  label_feeds_access_key_created_on: "RSS клучот за приÑтап креиран пред {{value}}"
-  label_module_plural: Модули
-  label_added_time_by: "Додадено од {{author}} пред {{age}}"
-  label_updated_time_by: "Ðжурирано од {{author}} пред {{age}}"
-  label_updated_time: "Ðжурирано пред {{value}}"
-  label_jump_to_a_project: Префрли Ñе на проект...
-  label_file_plural: Датотеки
-  label_changeset_plural: Changesets
-  label_default_columns: ОÑновни колони
-  label_no_change_option: (Без промена)
-  label_bulk_edit_selected_issues: Групно уредување на задачи
-  label_theme: Тема
-  label_default: Default
-  label_search_titles_only: Пребарувај Ñамо наÑлови
-  label_user_mail_option_all: "За било кој наÑтан во Ñите мои проекти"
-  label_user_mail_option_selected: "За било кој наÑтан Ñамо во избраните проекти..."
-  label_user_mail_no_self_notified: "Ðе ме извеÑтувај за промените што Ñ˜Ð°Ñ Ð³Ð¸ правам"
-  label_registration_activation_by_email: активација на профил преку е-пошта
-  label_registration_manual_activation: мануелна активација на профил
-  label_registration_automatic_activation: автоматÑка активација на профил
-  label_display_per_page: "По Ñтрана: {{value}}"
-  label_age: Age
-  label_change_properties: Change properties
-  label_general: Општо
-  label_more: Повеќе
-  label_scm: SCM
-  label_plugins: Додатоци
-  label_ldap_authentication: LDAP автентикација
-  label_downloads_abbr: Превземања
-  label_optional_description: ÐžÐ¿Ð¸Ñ (незадолжително)
-  label_add_another_file: Додади уште една датотека
-  label_preferences: Preferences
-  label_chronological_order: Во хронолошки ред
-  label_reverse_chronological_order: In reverse chronological order
-  label_planning: Планирање
-  label_incoming_emails: Дојдовни е-пораки
-  label_generate_key: Генерирај клуч
-  label_issue_watchers: Watchers
-  label_example: Пример
-  label_display: Прикажи
-  label_sort: Подреди
-  label_ascending: РаÑтечки
-  label_descending: Опаѓачки
-  label_date_from_to: Од {{start}} до {{end}}
-  label_wiki_content_added: Вики Ñтраница додадена
-  label_wiki_content_updated: Вики Ñтраница ажурирана
-  label_group: Група
-  label_group_plural: Групи
-  label_group_new: Ðова група
-  label_time_entry_plural: Потрошено време
-  label_version_sharing_none: Ðе Ñподелено
-  label_version_sharing_descendants: Со Ñите подпроекти
-  label_version_sharing_hierarchy: Со хиерархијата на проектот
-  label_version_sharing_tree: Со дрвото на проектот
-  label_version_sharing_system: Со Ñите проекти
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Извор
-  label_copy_target: ДеÑтинација
-  label_copy_same_as_target: ИÑто како деÑтинацијата
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API клуч за приÑтап
-  label_missing_api_access_key: ÐедоÑтига API клуч за приÑтап
-  label_api_access_key_created_on: "API клучот за приÑтап е креиран пред {{value}}"
-  label_profile: Профил
-  label_subtask_plural: Подзадачи
-  label_project_copy_notifications: Праќај извеÑтувања по е-пошта при копирање на проект
-
-  button_login: Ðајави Ñе
-  button_submit: ИÑпрати
-  button_save: Зачувај
-  button_check_all: Штиклирај ги Ñите
-  button_uncheck_all: Одштиклирај ги Ñите
-  button_delete: Избриши
-  button_create: Креирај
-  button_create_and_continue: Креирај и продолжи
-  button_test: ТеÑÑ‚
-  button_edit: Уреди
-  button_add: Додади
-  button_change: Промени
-  button_apply: Примени
-  button_clear: Избриши
-  button_lock: Заклучи
-  button_unlock: Отклучи
-  button_download: Превземи
-  button_list: List
-  button_view: Прегледај
-  button_move: ПремеÑти
-  button_move_and_follow: ПремеÑти и Ñледи
-  button_back: Back
-  button_cancel: Откажи
-  button_activate: Ðктивирај
-  button_sort: Подреди
-  button_log_time: Бележи време
-  button_rollback: Rollback to this version
-  button_watch: Следи
-  button_unwatch: Ðе Ñледи
-  button_reply: Одговори
-  button_archive: Ðрхивирај
-  button_unarchive: Одархивирај
-  button_reset: Reset
-  button_rename: Преименувај
-  button_change_password: Промени лозинка
-  button_copy: Копирај
-  button_copy_and_follow: Копирај и Ñледи
-  button_annotate: Annotate
-  button_update: Ðжурирај
-  button_configure: Конфигурирај
-  button_quote: Цитирај
-  button_duplicate: Копирај
-  button_show: Show
-
-  status_active: активни
-  status_registered: региÑтрирани
-  status_locked: заклучени
-
-  version_status_open: отворени
-  version_status_locked: заклучени
-  version_status_closed: затворени
-
-  field_active: Active
-
-  text_select_mail_notifications: Изберете за кои наÑтани да Ñе праќаат извеÑтувања по е-пошта да Ñе праќаат.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 значи без ограничување
-  text_project_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете проектот и Ñите поврзани податоци?
-  text_subprojects_destroy_warning: "Ðеговите подпроекти: {{value}} иÑто така ќе бидат избришани."
-  text_workflow_edit: Select a role and a tracker to edit the workflow
-  text_are_you_sure: Дали Ñте Ñигурни?
-  text_journal_changed: "{{label}} променето од {{old}} во {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} избришан ({{old}})"
-  text_journal_added: "{{label}} {{value}} додаден"
-  text_tip_issue_begin_day: задачи што почнуваат овој ден
-  text_tip_issue_end_day: задачи што завршуваат овој ден
-  text_tip_issue_begin_end_day: задачи што почнуваат и завршуваат овој ден
-  text_project_identifier_info: 'Само мали букви (a-z), бројки и dashes Ñе дозволени<br />По зачувувањето, идентификаторот неможе да Ñе Ñмени.'
-  text_caracters_maximum: "{{count}} знаци макÑимум."
-  text_caracters_minimum: "Мора да е најмалку {{count}} знаци долго."
-  text_length_between: "Должина помеѓу {{min}} и {{max}} знаци."
-  text_tracker_no_workflow: No workflow defined for this tracker
-  text_unallowed_characters: Ðедозволени знаци
-  text_comma_separated: Дозволени Ñе повеќе вредноÑти (разделени Ñо запирка).
-  text_line_separated: Дозволени Ñе повеќе вредноÑти (една линија за Ñекоја вредноÑÑ‚).
-  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Задачата {{id}} е пријавена од {{author}}."
-  text_issue_updated: "Задачата {{id}} е ажурирана од {{author}}."
-  text_wiki_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете ова вики и целата негова Ñодржина?
-  text_issue_category_destroy_question: "Ðекои задачи ({{count}}) Ñе доделени на оваа категорија. Што Ñакате да правите?"
-  text_issue_category_destroy_assignments: Remove category assignments
-  text_issue_category_reassign_to: Додели ги задачите на оваа категорија
-  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)."
-  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."
-  text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  text_issues_destroy_confirmation: 'Дали Ñте Ñигурни дека Ñакате да ги избришете избраните задачи?'
-  text_select_project_modules: 'Изберете модули за овој проект:'
-  text_default_administrator_account_changed: Default administrator account changed
-  text_file_repository_writable: Во папката за прилози може да Ñе запишува
-  text_plugin_assets_writable: Во папката за додатоци може да Ñе запишува
-  text_rmagick_available: RMagick available (незадолжително)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
-  text_destroy_time_entries: Delete reported hours
-  text_assign_time_entries_to_project: Додели ги пријавените чаÑови на проектот
-  text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} напиша:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_enumeration_category_reassign_to: 'Reassign them to this value:'
-  text_email_delivery_not_configured: "ДоÑтавата по е-пошта не е конфигурирана, и извеÑтувањата Ñе оневозможени.\nКонфигурирајте го Вашиот  SMTP Ñервер во config/email.yml и реÑтартирајте ја апликацијата."
-  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
-  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  text_zoom_in: Zoom in
-  text_zoom_out: Zoom out
-
-  default_role_manager: Менаџер
-  default_role_developer: Developer
-  default_role_reporter: Reporter
-  default_tracker_bug: Грешка
-  default_tracker_feature: ФункционалноÑÑ‚
-  default_tracker_support: Поддршка
-  default_issue_status_new: Ðова
-  default_issue_status_in_progress: Во прогреÑ
-  default_issue_status_resolved: Разрешена
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: Затворена
-  default_issue_status_rejected: Одбиена
-  default_doc_category_user: КориÑничка документација
-  default_doc_category_tech: Техничка документација
-  default_priority_low: Ðизок
-  default_priority_normal: Ðормален
-  default_priority_high: ВиÑок
-  default_priority_urgent: Итно
-  default_priority_immediate: Веднаш
-  default_activity_design: Дизајн
-  default_activity_development: Развој
-
-  enumeration_issue_priorities: Приоритети на задача
-  enumeration_doc_categories: Категории на документ
-  enumeration_activities: ÐктивноÑти (Ñледење на време)
-  enumeration_system_activity: СиÑтемÑка активноÑÑ‚
-
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+mk:
+  # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d/%m/%Y"
+      short: "%d %b"
+      long: "%d %B, %Y"
+
+    day_names: [недела, понеделник, вторник, Ñреда, четврток, петок, Ñабота]
+    abbr_day_names: [нед, пон, вто, Ñре, чет, пет, Ñаб]
+
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, јануари, февруари, март, април, мај, јуни, јули, авгуÑÑ‚, Ñептември, октомври, ноември, декември]
+    abbr_month_names: [~, јан, фев, мар, апр, мај, јун, јул, авг, Ñеп, окт, ное, дек]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%d/%m/%Y %H:%M"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: "предпладне"
+    pm: "попладне"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "пола минута"
+      less_than_x_seconds:
+        one:   "помалку од 1 Ñекунда"
+        other: "помалку од %{count} Ñекунди"
+      x_seconds:
+        one:   "1 Ñекунда"
+        other: "%{count} Ñекунди"
+      less_than_x_minutes:
+        one:   "помалку од 1 минута"
+        other: "помалку од %{count} минути"
+      x_minutes:
+        one:   "1 минута"
+        other: "%{count} минути"
+      about_x_hours:
+        one:   "околу 1 чаÑ"
+        other: "околу %{count} чаÑа"
+      x_days:
+        one:   "1 ден"
+        other: "%{count} дена"
+      about_x_months:
+        one:   "околу 1 меÑец"
+        other: "околу %{count} меÑеци"
+      x_months:
+        one:   "1 меÑец"
+        other: "%{count} меÑеци"
+      about_x_years:
+        one:   "околу 1 година"
+        other: "околу %{count} години"
+      over_x_years:
+        one:   "преку 1 година"
+        other: "преку %{count} години"
+      almost_x_years:
+        one:   "Ñкоро 1 година"
+        other: "Ñкоро %{count} години"
+
+  number:
+    # Default format for numbers
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "и"
+      skip_last_comma: false
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "не е вклучено во лиÑтата"
+        exclusion: "е резервирано"
+        invalid: "е невалидно"
+        confirmation: "не Ñе Ñовпаѓа Ñо потврдата"
+        accepted: "мора да е прифатено"
+        empty: "неможе да е празно"
+        blank: "неможе да е празно"
+        too_long: "е предолго (макÑ. %{count} знаци)"
+        too_short: "е прекратко (мин. %{count} знаци)"
+        wrong_length: "е погрешна должина (треба да е  %{count} знаци)"
+        taken: "е веќе зафатено"
+        not_a_number: "не е број"
+        not_a_date: "не е валидна дата"
+        greater_than: "мора да е поголемо од %{count}"
+        greater_than_or_equal_to: "мора да е поголемо или еднакво на %{count}"
+        equal_to: "мора да е еднакво на %{count}"
+        less_than: "мора да е помало од %{count}"
+        less_than_or_equal_to: "мора да е помало или еднакво на %{count}"
+        odd: "мора да е непарно"
+        even: "мора да е парно"
+        greater_than_start_date: "мора да е поголема од почетната дата"
+        not_same_project: "не припаѓа на иÑтиот проект"
+        circular_dependency: "Оваа врÑка ќе креира кружна завиÑноÑÑ‚"
+        cant_link_an_issue_with_a_descendant: "Задача неможе да Ñе поврзе Ñо една од нејзините подзадачи"
+
+  actionview_instancetag_blank_option: Изберете
+
+  general_text_No: 'Ðе'
+  general_text_Yes: 'Да'
+  general_text_no: 'не'
+  general_text_yes: 'да'
+  general_lang_name: 'Macedonian (МакедонÑки)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+
+  notice_account_updated: Профилот е уÑпешно ажуриран.
+  notice_account_invalid_creditentials: Ðеточен кориÑник или лозинка
+  notice_account_password_updated: Лозинката е уÑпешно ажурирана.
+  notice_account_wrong_password: Погрешна лозинка
+  notice_account_register_done: Профилот е уÑпешно креиран. За активација, клкнете на врÑката што ви е пратена по е-пошта.
+  notice_account_unknown_email: Ðепознат кориÑник.
+  notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+  notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+  notice_account_activated: Your account has been activated. You can now log in.
+  notice_successful_create: УÑпешно креирање.
+  notice_successful_update: УÑпешно ажурирање.
+  notice_successful_delete: УÑпешно бришење.
+  notice_successful_connection: УÑпешна конекција.
+  notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+  notice_locking_conflict: Data has been updated by another user.
+  notice_not_authorized: You are not authorized to access this page.
+  notice_email_sent: "Е-порака е пратена на %{value}"
+  notice_email_error: "Се Ñлучи грешка при праќање на е-пораката (%{value})"
+  notice_feeds_access_key_reseted: Вашиот RSS клуч за приÑтап е reset.
+  notice_api_access_key_reseted: Вашиот API клуч за приÑтап е reset.
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+  notice_account_pending: "Your account was created and is now pending administrator approval."
+  notice_default_data_loaded: Default configuration successfully loaded.
+  notice_unable_delete_version: Unable to delete version.
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
+  error_scm_not_found: "The entry or revision was not found in the repository."
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
+  error_scm_annotate: "The entry does not exist or can not be annotated."
+  error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_delete_custom_field: Unable to delete custom field
+  error_can_not_delete_tracker: "This tracker contains issues and can't be deleted."
+  error_can_not_remove_role: "This role is in use and can not be deleted."
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  error_unable_delete_issue_status: 'Unable to delete issue status'
+  error_unable_to_connect: "Unable to connect (%{value})"
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
+
+  mail_subject_lost_password: "Вашата %{value} лозинка"
+  mail_body_lost_password: 'To change your password, click on the following link:'
+  mail_subject_register: "Your %{value} account activation"
+  mail_body_register: 'To activate your account, click on the following link:'
+  mail_body_account_information_external: "You can use your %{value} account to log in."
+  mail_body_account_information: Your account information
+  mail_subject_account_activation_request: "%{value} account activation request"
+  mail_body_account_activation_request: "Ðов кориÑник (%{value}) е региÑтриран. The account is pending your approval:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+
+  gui_validation_error: 1 грешка
+  gui_validation_error_plural: "%{count} грешки"
+
+  field_name: Име
+  field_description: ОпиÑ
+  field_summary: Краток опиÑ
+  field_is_required: Задолжително
+  field_firstname: Име
+  field_lastname: Презиме
+  field_mail: Е-пошта
+  field_filename: Датотека
+  field_filesize: Големина
+  field_downloads: Превземања
+  field_author: Ðвтор
+  field_created_on: Креиран
+  field_updated_on: Ðжурирано
+  field_field_format: Формат
+  field_is_for_all: За Ñите проекти
+  field_possible_values: Можни вредноÑти
+  field_regexp: Regular expression
+  field_min_length: Минимална должина
+  field_max_length: МакÑимална должина
+  field_value: ВредноÑÑ‚
+  field_category: Категорија
+  field_title: ÐаÑлов
+  field_project: Проект
+  field_issue: Задача
+  field_status: СтатуÑ
+  field_notes: Белешки
+  field_is_closed: Задачата е затворена
+  field_is_default: Default value
+  field_tracker: Tracker
+  field_subject: ÐаÑлов
+  field_due_date: Краен рок
+  field_assigned_to: Доделена на
+  field_priority: Приоритет
+  field_fixed_version: Target version
+  field_user: КориÑник
+  field_principal: Principal
+  field_role: Улога
+  field_homepage: Веб Ñтрана
+  field_is_public: Јавен
+  field_parent: Подпроект на
+  field_is_in_roadmap: Issues displayed in roadmap
+  field_login: КориÑник
+  field_mail_notification: ИзвеÑтувања по e-пошта
+  field_admin: ÐдминиÑтратор
+  field_last_login_on: ПоÑледна најава
+  field_language: Јазик
+  field_effective_date: Дата
+  field_password: Лозинка
+  field_new_password: Ðова лозинка
+  field_password_confirmation: Потврда
+  field_version: Верзија
+  field_type: Тип
+  field_host: ХоÑÑ‚
+  field_port: Порт
+  field_account: Account
+  field_base_dn: Base DN
+  field_attr_login: Login attribute
+  field_attr_firstname: Firstname attribute
+  field_attr_lastname: Lastname attribute
+  field_attr_mail: Email attribute
+  field_onthefly: Моментално (On-the-fly) креирање на кориÑници
+  field_start_date: Почеток
+  field_done_ratio: % Завршено
+  field_auth_source: Режим на автентикација
+  field_hide_mail: Криј ја мојата адреÑа на е-пошта
+  field_comments: Коментар
+  field_url: URL
+  field_start_page: Почетна Ñтрана
+  field_subproject: Подпроект
+  field_hours: ЧаÑови
+  field_activity: ÐктивноÑÑ‚
+  field_spent_on: Дата
+  field_identifier: Идентификатор
+  field_is_filter: КориÑти како филтер
+  field_issue_to: Поврзана задача
+  field_delay: Доцнење
+  field_assignable: Ðа оваа улога може да Ñе доделуваат задачи
+  field_redirect_existing_links: ПренаÑочи ги поÑтоечките врÑки
+  field_estimated_hours: Проценето време
+  field_column_names: Колони
+  field_time_entries: Бележи време
+  field_time_zone: ВременÑка зона
+  field_searchable: Може да Ñе пребарува
+  field_default_value: Default value
+  field_comments_sorting: Прикажувај коментари
+  field_parent_title: Parent page
+  field_editable: Може да Ñе уредува
+  field_watcher: Watcher
+  field_identity_url: OpenID URL
+  field_content: Содржина
+  field_group_by: Групирај ги резултатите Ñпоред
+  field_sharing: Споделување
+  field_parent_issue: Parent task
+
+  setting_app_title: ÐаÑлов на апликацијата
+  setting_app_subtitle: ПоднаÑлов на апликацијата
+  setting_welcome_text: ТекÑÑ‚ за добредојде
+  setting_default_language: Default јазик
+  setting_login_required: Задолжителна автентикација
+  setting_self_registration: Само-региÑтрација
+  setting_attachment_max_size: МакÑ. големина на прилог
+  setting_issues_export_limit: Issues export limit
+  setting_mail_from: Emission email address
+  setting_bcc_recipients: Blind carbon copy recipients (bcc)
+  setting_plain_text_mail: ТекÑтуални е-пораки (без HTML)
+  setting_host_name: Име на хоÑÑ‚ и патека
+  setting_text_formatting: Форматирање на текÑÑ‚
+  setting_wiki_compression: КомпреÑија на иÑторијата на вики
+  setting_feeds_limit: Feed content limit
+  setting_default_projects_public: Ðовите проекти Ñе иницијално јавни
+  setting_autofetch_changesets: Autofetch commits
+  setting_sys_api_enabled: Enable WS for repository management
+  setting_commit_ref_keywords: Referencing keywords
+  setting_commit_fix_keywords: Fixing keywords
+  setting_autologin: ÐвтоматÑка најава
+  setting_date_format: Формат на дата
+  setting_time_format: Формат на време
+  setting_cross_project_issue_relations: Дозволи релации на задачи меѓу проекти
+  setting_issue_list_default_columns: Default columns displayed on the issue list
+  setting_repositories_encodings: Repositories encodings
+  setting_commit_logs_encoding: Commit messages encoding
+  setting_emails_footer: Emails footer
+  setting_protocol: Протокол
+  setting_per_page_options: Objects per page options
+  setting_user_format: Приказ на кориÑниците
+  setting_activity_days_default: Денови прикажана во активноÑта на проектот
+  setting_display_subprojects_issues: Прикажи ги задачите на подпроектите во главните проекти
+  setting_enabled_scm: Овозможи SCM
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: Enable WS for incoming emails
+  setting_mail_handler_api_key: API клуч
+  setting_sequential_project_identifiers: Генерирај поÑледователни идентификатори на проекти
+  setting_gravatar_enabled: КориÑти Gravatar кориÑнички икони
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Max number of diff lines displayed
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Дозволи OpenID најава и региÑтрација
+  setting_password_min_length: Мин. должина на лозинка
+  setting_new_project_user_role_id: Улога доделена на неадминиÑтраторÑки кориÑник кој креира проект
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+
+  permission_add_project: Креирај проекти
+  permission_add_subprojects: Креирај подпроекти
+  permission_edit_project: Уреди проект
+  permission_select_project_modules: Изберете модули за проект
+  permission_manage_members: Manage members
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Manage versions
+  permission_manage_categories: Manage issue categories
+  permission_view_issues: Прегледај задачи
+  permission_add_issues: Додавај задачи
+  permission_edit_issues: Уредувај задачи
+  permission_manage_issue_relations: Manage issue relations
+  permission_add_issue_notes: Додавај белешки
+  permission_edit_issue_notes: Уредувај белешки
+  permission_edit_own_issue_notes: Уредувај ÑопÑтвени белешки
+  permission_move_issues: ПремеÑтувај задачи
+  permission_delete_issues: Бриши задачи
+  permission_manage_public_queries: Manage public queries
+  permission_save_queries: Save queries
+  permission_view_gantt: View gantt chart
+  permission_view_calendar: View calendar
+  permission_view_issue_watchers: View watchers list
+  permission_add_issue_watchers: Add watchers
+  permission_delete_issue_watchers: Delete watchers
+  permission_log_time: Бележи потрошено време
+  permission_view_time_entries: Прегледај потрошено време
+  permission_edit_time_entries: Уредувај белешки за потрошено време
+  permission_edit_own_time_entries: Уредувај ÑопÑтвени белешки за потрошено време
+  permission_manage_news: Manage news
+  permission_comment_news: Коментирај на веÑти
+  permission_manage_documents: Manage documents
+  permission_view_documents: Прегледувај документи
+  permission_manage_files: Manage files
+  permission_view_files: Прегледувај датотеки
+  permission_manage_wiki: Manage wiki
+  permission_rename_wiki_pages: Преименувај вики Ñтраници
+  permission_delete_wiki_pages: Бриши вики Ñтраници
+  permission_view_wiki_pages: Прегледувај вики
+  permission_view_wiki_edits: Прегледувај вики иÑторија
+  permission_edit_wiki_pages: Уредувај вики Ñтраници
+  permission_delete_wiki_pages_attachments: Бриши прилози
+  permission_protect_wiki_pages: Заштитувај вики Ñтраници
+  permission_manage_repository: Manage repository
+  permission_browse_repository: Browse repository
+  permission_view_changesets: View changesets
+  permission_commit_access: Commit access
+  permission_manage_boards: Manage boards
+  permission_view_messages: View messages
+  permission_add_messages: Post messages
+  permission_edit_messages: Уредувај пораки
+  permission_edit_own_messages: Уредувај ÑопÑтвени пораки
+  permission_delete_messages: Бриши пораки
+  permission_delete_own_messages: Бриши ÑопÑтвени пораки
+  permission_export_wiki_pages: Export wiki pages
+  permission_manage_subtasks: Manage subtasks
+
+  project_module_issue_tracking: Следење на задачи
+  project_module_time_tracking: Следење на време
+  project_module_news: ВеÑти
+  project_module_documents: Документи
+  project_module_files: Датотеки
+  project_module_wiki: Вики
+  project_module_repository: Repository
+  project_module_boards: Форуми
+  project_module_calendar: Календар
+  project_module_gantt: Gantt
+
+  label_user: КориÑник
+  label_user_plural: КориÑници
+  label_user_new: Ðов кориÑник
+  label_user_anonymous: Ðнонимен
+  label_project: Проект
+  label_project_new: Ðов проект
+  label_project_plural: Проекти
+  label_x_projects:
+    zero:  нема проекти
+    one:   1 проект
+    other: "%{count} проекти"
+  label_project_all: Сите проекти
+  label_project_latest: ПоÑледните проекти
+  label_issue: Задача
+  label_issue_new: Ðова задача
+  label_issue_plural: Задачи
+  label_issue_view_all: Прегледај ги Ñите задачи
+  label_issues_by: "Задачи по %{value}"
+  label_issue_added: Задачата е додадена
+  label_issue_updated: Задачата е ажурирана
+  label_document: Документ
+  label_document_new: Ðов документ
+  label_document_plural: Документи
+  label_document_added: Документот е додаден
+  label_role: Улога
+  label_role_plural: Улоги
+  label_role_new: Ðова улога
+  label_role_and_permissions: Улоги и овлаÑтувања
+  label_member: Член
+  label_member_new: Ðов член
+  label_member_plural: Членови
+  label_tracker: Tracker
+  label_tracker_plural: Trackers
+  label_tracker_new: New tracker
+  label_workflow: Workflow
+  label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° задача
+  label_issue_status_plural: СтатуÑи на задачи
+  label_issue_status_new: Ðов ÑтатуÑ
+  label_issue_category: Категорија на задача
+  label_issue_category_plural: Категории на задачи
+  label_issue_category_new: Ðова категорија
+  label_custom_field: Прилагодено поле
+  label_custom_field_plural: Прилагодени полиња
+  label_custom_field_new: Ðово прилагодено поле
+  label_enumerations: Enumerations
+  label_enumeration_new: Ðова вредноÑÑ‚
+  label_information: Информација
+  label_information_plural: Информации
+  label_please_login: Ðајави Ñе
+  label_register: РегиÑтрирај Ñе
+  label_login_with_open_id_option: или најави Ñе Ñо OpenID
+  label_password_lost: Изгубена лозинка
+  label_home: Почетна
+  label_my_page: Мојата Ñтрана
+  label_my_account: Мојот профил
+  label_my_projects: Мои проекти
+  label_my_page_block: Блок елемент
+  label_administration: ÐдминиÑтрација
+  label_login: Ðајави Ñе
+  label_logout: Одјави Ñе
+  label_help: Помош
+  label_reported_issues: Пријавени задачи
+  label_assigned_to_me_issues: Задачи доделени на мене
+  label_last_login: ПоÑледна најава
+  label_registered_on: РегиÑтриран на
+  label_activity: ÐктивноÑÑ‚
+  label_overall_activity: Севкупна активноÑÑ‚
+  label_user_activity: "ÐктивноÑÑ‚ на %{value}"
+  label_new: Ðова
+  label_logged_as: Ðајавени Ñте како
+  label_environment: Опкружување
+  label_authentication: Ðвтентикација
+  label_auth_source: Режим на автентикација
+  label_auth_source_new: Ðов режим на автентикација
+  label_auth_source_plural: Режими на автентикација
+  label_subproject_plural: Подпроекти
+  label_subproject_new: Ðов подпроект
+  label_and_its_subprojects: "%{value} и неговите подпроекти"
+  label_min_max_length: Мин. - МакÑ. должина
+  label_list: ЛиÑта
+  label_date: Дата
+  label_integer: Integer
+  label_float: Float
+  label_boolean: Boolean
+  label_string: ТекÑÑ‚
+  label_text: Долг текÑÑ‚
+  label_attribute: Ðтрибут
+  label_attribute_plural: Ðтрибути
+  label_download: "%{count} превземање"
+  label_download_plural: "%{count} превземања"
+  label_no_data: Ðема податоци за прикажување
+  label_change_status: Промени ÑтатуÑ
+  label_history: ИÑторија
+  label_attachment: Датотека
+  label_attachment_new: Ðова датотека
+  label_attachment_delete: Избриши датотека
+  label_attachment_plural: Датотеки
+  label_file_added: Датотеката е додадена
+  label_report: Извештај
+  label_report_plural: Извештаи
+  label_news: ÐовоÑÑ‚
+  label_news_new: Додади новоÑÑ‚
+  label_news_plural: ÐовоÑти
+  label_news_latest: ПоÑледни новоÑти
+  label_news_view_all: Прегледај ги Ñите новоÑти
+  label_news_added: ÐовоÑтта е додадена
+  label_settings: Settings
+  label_overview: Преглед
+  label_version: Верзија
+  label_version_new: Ðова верзија
+  label_version_plural: Верзии
+  label_close_versions: Затвори ги завршените врзии
+  label_confirmation: Потврда
+  label_export_to: 'ДоÑтапно и во:'
+  label_read: Прочитај...
+  label_public_projects: Јавни проекти
+  label_open_issues: отворена
+  label_open_issues_plural: отворени
+  label_closed_issues: затворена
+  label_closed_issues_plural: затворени
+  label_x_open_issues_abbr_on_total:
+    zero:  0 отворени / %{total}
+    one:   1 отворена / %{total}
+    other: "%{count} отворени / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 отворени
+    one:   1 отворена
+    other: "%{count} отворени"
+  label_x_closed_issues_abbr:
+    zero:  0 затворени
+    one:   1 затворена
+    other: "%{count} затворени"
+  label_total: Вкупно
+  label_permissions: ОвлаÑтувања
+  label_current_status: Моментален ÑтатуÑ
+  label_new_statuses_allowed: Дозволени нови ÑтатуÑи
+  label_all: Ñите
+  label_none: ниеден
+  label_nobody: никој
+  label_next: Следно
+  label_previous: Претходно
+  label_used_by: КориÑтено од
+  label_details: Детали
+  label_add_note: Додади белешка
+  label_per_page: По Ñтрана
+  label_calendar: Календар
+  label_months_from: меÑеци од
+  label_gantt: Gantt
+  label_internal: Internal
+  label_last_changes: "поÑледни %{count} промени"
+  label_change_view_all: Прегледај ги Ñите промени
+  label_personalize_page: Прилагоди ја Ñтранава
+  label_comment: Коментар
+  label_comment_plural: Коментари
+  label_x_comments:
+    zero: нема коментари
+    one: 1 коментар
+    other: "%{count} коментари"
+  label_comment_add: Додади коментар
+  label_comment_added: Коментарот е додаден
+  label_comment_delete: Избриши коментари
+  label_query: Custom query
+  label_query_plural: Custom queries
+  label_query_new: New query
+  label_filter_add: Додади филтер
+  label_filter_plural: Филтри
+  label_equals: е
+  label_not_equals: не е
+  label_in_less_than: за помалку од
+  label_in_more_than: за повеќе од
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: во
+  label_today: денеÑ
+  label_all_time: цело време
+  label_yesterday: вчера
+  label_this_week: оваа недела
+  label_last_week: минатата недела
+  label_last_n_days: "поÑледните %{count} дена"
+  label_this_month: овој меÑец
+  label_last_month: минатиот меÑец
+  label_this_year: оваа година
+  label_date_range: Date range
+  label_less_than_ago: пред помалку од денови
+  label_more_than_ago: пред повеќе од денови
+  label_ago: пред денови
+  label_contains: Ñодржи
+  label_not_contains: не Ñодржи
+  label_day_plural: денови
+  label_repository: Складиште
+  label_repository_plural: Складишта
+  label_browse: ПрелиÑтувај
+  label_modification: "%{count} промени"
+  label_modification_plural: "%{count} промени"
+  label_branch: Гранка
+  label_tag: Tag
+  label_revision: Ревизија
+  label_revision_plural: Ревизии
+  label_revision_id: "Ревизија %{value}"
+  label_associated_revisions: Associated revisions
+  label_added: added
+  label_modified: modified
+  label_copied: copied
+  label_renamed: renamed
+  label_deleted: deleted
+  label_latest_revision: ПоÑледна ревизија
+  label_latest_revision_plural: ПоÑледни ревизии
+  label_view_revisions: Прегледај ги ревизиите
+  label_view_all_revisions: Прегледај ги Ñите ревизии
+  label_max_size: МакÑ. големина
+  label_sort_highest: ПремеÑти најгоре
+  label_sort_higher: ПремеÑти нагоре
+  label_sort_lower: ПремеÑти надоле
+  label_sort_lowest: ПремеÑти најдоле
+  label_roadmap: Roadmap
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "КаÑни %{value}"
+  label_roadmap_no_issues: Ðема задачи за оваа верзија
+  label_search: Барај
+  label_result_plural: Резултати
+  label_all_words: Сите зборови
+  label_wiki: Вики
+  label_wiki_edit: Вики уредување
+  label_wiki_edit_plural: Вики уредувања
+  label_wiki_page: Вики Ñтраница
+  label_wiki_page_plural: Вики Ñтраници
+  label_index_by_title: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ наÑлов
+  label_index_by_date: Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ð¾ дата
+  label_current_version: Current version
+  label_preview: Preview
+  label_feed_plural: Feeds
+  label_changes_details: Детали за Ñите промени
+  label_issue_tracking: Следење на задачи
+  label_spent_time: Потрошено време
+  label_overall_spent_time: Вкупно потрошено време
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑа"
+  label_time_tracking: Следење на време
+  label_change_plural: Промени
+  label_statistics: СтатиÑтики
+  label_commits_per_month: Commits per month
+  label_commits_per_author: Commits per author
+  label_view_diff: View differences
+  label_diff_inline: inline
+  label_diff_side_by_side: side by side
+  label_options: Опции
+  label_copy_workflow_from: Copy workflow from
+  label_permissions_report: Permissions report
+  label_watched_issues: Watched issues
+  label_related_issues: Поврзани задачи
+  label_applied_status: Applied status
+  label_loading: Loading...
+  label_relation_new: Ðова релација
+  label_relation_delete: Избриши релација
+  label_relates_to: related to
+  label_duplicates: дупликати
+  label_duplicated_by: duplicated by
+  label_blocks: blocks
+  label_blocked_by: блокирано од
+  label_precedes: претходи
+  label_follows: Ñледи
+  label_end_to_start: крај до почеток
+  label_end_to_end: крај до крај
+  label_start_to_start: почеток до почеток
+  label_start_to_end: почеток до крај
+  label_stay_logged_in: ОÑтанете најавени
+  label_disabled: disabled
+  label_show_completed_versions: Show completed versions
+  label_me: јаÑ
+  label_board: Форум
+  label_board_new: Ðов форум
+  label_board_plural: Форуми
+  label_board_locked: Заклучен
+  label_board_sticky: Sticky
+  label_topic_plural: Теми
+  label_message_plural: Пораки
+  label_message_last: ПоÑледна порака
+  label_message_new: Ðова порака
+  label_message_posted: Поракате е додадена
+  label_reply_plural: Одговори
+  label_send_information: ИÑпрати ги информациите за профилот на кориÑникот
+  label_year: Година
+  label_month: МеÑец
+  label_week: Ðедела
+  label_date_from: Од
+  label_date_to: До
+  label_language_based: Според јазикот на кориÑникот
+  label_sort_by: "Подреди Ñпоред %{value}"
+  label_send_test_email: ИÑпрати теÑÑ‚ е-порака
+  label_feeds_access_key: RSS клуч за приÑтап
+  label_missing_feeds_access_key: ÐедоÑтика RSS клуч за приÑтап
+  label_feeds_access_key_created_on: "RSS клучот за приÑтап креиран пред %{value}"
+  label_module_plural: Модули
+  label_added_time_by: "Додадено од %{author} пред %{age}"
+  label_updated_time_by: "Ðжурирано од %{author} пред %{age}"
+  label_updated_time: "Ðжурирано пред %{value}"
+  label_jump_to_a_project: Префрли Ñе на проект...
+  label_file_plural: Датотеки
+  label_changeset_plural: Changesets
+  label_default_columns: ОÑновни колони
+  label_no_change_option: (Без промена)
+  label_bulk_edit_selected_issues: Групно уредување на задачи
+  label_theme: Тема
+  label_default: Default
+  label_search_titles_only: Пребарувај Ñамо наÑлови
+  label_user_mail_option_all: "За било кој наÑтан во Ñите мои проекти"
+  label_user_mail_option_selected: "За било кој наÑтан Ñамо во избраните проекти..."
+  label_user_mail_no_self_notified: "Ðе ме извеÑтувај за промените што Ñ˜Ð°Ñ Ð³Ð¸ правам"
+  label_registration_activation_by_email: активација на профил преку е-пошта
+  label_registration_manual_activation: мануелна активација на профил
+  label_registration_automatic_activation: автоматÑка активација на профил
+  label_display_per_page: "По Ñтрана: %{value}"
+  label_age: Age
+  label_change_properties: Change properties
+  label_general: Општо
+  label_more: Повеќе
+  label_scm: SCM
+  label_plugins: Додатоци
+  label_ldap_authentication: LDAP автентикација
+  label_downloads_abbr: Превземања
+  label_optional_description: ÐžÐ¿Ð¸Ñ (незадолжително)
+  label_add_another_file: Додади уште една датотека
+  label_preferences: Preferences
+  label_chronological_order: Во хронолошки ред
+  label_reverse_chronological_order: In reverse chronological order
+  label_planning: Планирање
+  label_incoming_emails: Дојдовни е-пораки
+  label_generate_key: Генерирај клуч
+  label_issue_watchers: Watchers
+  label_example: Пример
+  label_display: Прикажи
+  label_sort: Подреди
+  label_ascending: РаÑтечки
+  label_descending: Опаѓачки
+  label_date_from_to: Од %{start} до %{end}
+  label_wiki_content_added: Вики Ñтраница додадена
+  label_wiki_content_updated: Вики Ñтраница ажурирана
+  label_group: Група
+  label_group_plural: Групи
+  label_group_new: Ðова група
+  label_time_entry_plural: Потрошено време
+  label_version_sharing_none: Ðе Ñподелено
+  label_version_sharing_descendants: Со Ñите подпроекти
+  label_version_sharing_hierarchy: Со хиерархијата на проектот
+  label_version_sharing_tree: Со дрвото на проектот
+  label_version_sharing_system: Со Ñите проекти
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Извор
+  label_copy_target: ДеÑтинација
+  label_copy_same_as_target: ИÑто како деÑтинацијата
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API клуч за приÑтап
+  label_missing_api_access_key: ÐедоÑтига API клуч за приÑтап
+  label_api_access_key_created_on: "API клучот за приÑтап е креиран пред %{value}"
+  label_profile: Профил
+  label_subtask_plural: Подзадачи
+  label_project_copy_notifications: Праќај извеÑтувања по е-пошта при копирање на проект
+
+  button_login: Ðајави Ñе
+  button_submit: ИÑпрати
+  button_save: Зачувај
+  button_check_all: Штиклирај ги Ñите
+  button_uncheck_all: Одштиклирај ги Ñите
+  button_delete: Избриши
+  button_create: Креирај
+  button_create_and_continue: Креирај и продолжи
+  button_test: ТеÑÑ‚
+  button_edit: Уреди
+  button_add: Додади
+  button_change: Промени
+  button_apply: Примени
+  button_clear: Избриши
+  button_lock: Заклучи
+  button_unlock: Отклучи
+  button_download: Превземи
+  button_list: List
+  button_view: Прегледај
+  button_move: ПремеÑти
+  button_move_and_follow: ПремеÑти и Ñледи
+  button_back: Back
+  button_cancel: Откажи
+  button_activate: Ðктивирај
+  button_sort: Подреди
+  button_log_time: Бележи време
+  button_rollback: Rollback to this version
+  button_watch: Следи
+  button_unwatch: Ðе Ñледи
+  button_reply: Одговори
+  button_archive: Ðрхивирај
+  button_unarchive: Одархивирај
+  button_reset: Reset
+  button_rename: Преименувај
+  button_change_password: Промени лозинка
+  button_copy: Копирај
+  button_copy_and_follow: Копирај и Ñледи
+  button_annotate: Annotate
+  button_update: Ðжурирај
+  button_configure: Конфигурирај
+  button_quote: Цитирај
+  button_duplicate: Копирај
+  button_show: Show
+
+  status_active: активни
+  status_registered: региÑтрирани
+  status_locked: заклучени
+
+  version_status_open: отворени
+  version_status_locked: заклучени
+  version_status_closed: затворени
+
+  field_active: Active
+
+  text_select_mail_notifications: Изберете за кои наÑтани да Ñе праќаат извеÑтувања по е-пошта да Ñе праќаат.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 значи без ограничување
+  text_project_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете проектот и Ñите поврзани податоци?
+  text_subprojects_destroy_warning: "Ðеговите подпроекти: %{value} иÑто така ќе бидат избришани."
+  text_workflow_edit: Select a role and a tracker to edit the workflow
+  text_are_you_sure: Дали Ñте Ñигурни?
+  text_journal_changed: "%{label} променето од %{old} во %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} избришан (%{old})"
+  text_journal_added: "%{label} %{value} додаден"
+  text_tip_issue_begin_day: задачи што почнуваат овој ден
+  text_tip_issue_end_day: задачи што завршуваат овој ден
+  text_tip_issue_begin_end_day: задачи што почнуваат и завршуваат овој ден
+  text_project_identifier_info: 'Само мали букви (a-z), бројки и dashes Ñе дозволени<br />По зачувувањето, идентификаторот неможе да Ñе Ñмени.'
+  text_caracters_maximum: "%{count} знаци макÑимум."
+  text_caracters_minimum: "Мора да е најмалку %{count} знаци долго."
+  text_length_between: "Должина помеѓу %{min} и %{max} знаци."
+  text_tracker_no_workflow: No workflow defined for this tracker
+  text_unallowed_characters: Ðедозволени знаци
+  text_comma_separated: Дозволени Ñе повеќе вредноÑти (разделени Ñо запирка).
+  text_line_separated: Дозволени Ñе повеќе вредноÑти (една линија за Ñекоја вредноÑÑ‚).
+  text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+  text_issue_added: "Задачата %{id} е пријавена од %{author}."
+  text_issue_updated: "Задачата %{id} е ажурирана од %{author}."
+  text_wiki_destroy_confirmation: Дали Ñте Ñигурни дека Ñакате да го избришете ова вики и целата негова Ñодржина?
+  text_issue_category_destroy_question: "Ðекои задачи (%{count}) Ñе доделени на оваа категорија. Што Ñакате да правите?"
+  text_issue_category_destroy_assignments: Remove category assignments
+  text_issue_category_reassign_to: Додели ги задачите на оваа категорија
+  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)."
+  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."
+  text_load_default_configuration: Load the default configuration
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  text_issues_destroy_confirmation: 'Дали Ñте Ñигурни дека Ñакате да ги избришете избраните задачи?'
+  text_select_project_modules: 'Изберете модули за овој проект:'
+  text_default_administrator_account_changed: Default administrator account changed
+  text_file_repository_writable: Во папката за прилози може да Ñе запишува
+  text_plugin_assets_writable: Во папката за додатоци може да Ñе запишува
+  text_rmagick_available: RMagick available (незадолжително)
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries: Delete reported hours
+  text_assign_time_entries_to_project: Додели ги пријавените чаÑови на проектот
+  text_reassign_time_entries: 'Reassign reported hours to this issue:'
+  text_user_wrote: "%{value} напиша:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_enumeration_category_reassign_to: 'Reassign them to this value:'
+  text_email_delivery_not_configured: "ДоÑтавата по е-пошта не е конфигурирана, и извеÑтувањата Ñе оневозможени.\nКонфигурирајте го Вашиот  SMTP Ñервер во config/email.yml и реÑтартирајте ја апликацијата."
+  text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
+  text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  text_zoom_in: Zoom in
+  text_zoom_out: Zoom out
+
+  default_role_manager: Менаџер
+  default_role_developer: Developer
+  default_role_reporter: Reporter
+  default_tracker_bug: Грешка
+  default_tracker_feature: ФункционалноÑÑ‚
+  default_tracker_support: Поддршка
+  default_issue_status_new: Ðова
+  default_issue_status_in_progress: Во прогреÑ
+  default_issue_status_resolved: Разрешена
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: Затворена
+  default_issue_status_rejected: Одбиена
+  default_doc_category_user: КориÑничка документација
+  default_doc_category_tech: Техничка документација
+  default_priority_low: Ðизок
+  default_priority_normal: Ðормален
+  default_priority_high: ВиÑок
+  default_priority_urgent: Итно
+  default_priority_immediate: Веднаш
+  default_activity_design: Дизајн
+  default_activity_development: Развој
+
+  enumeration_issue_priorities: Приоритети на задача
+  enumeration_doc_categories: Категории на документ
+  enumeration_activities: ÐктивноÑти (Ñледење на време)
+  enumeration_system_activity: СиÑтемÑка активноÑÑ‚
+
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/mn.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/mn.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,930 +1,939 @@
-mn:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%Y/%m/%d"
-      short: "%b %d"
-      long: "%Y, %B %d"
-      
-    day_names: [Даваа, МÑгмар, Лхагва, ПүрÑв, БааÑан, БÑмба, ÐÑм]
-    abbr_day_names: [Дав, МÑг, Лха, Пүр, БÑн, БÑм, ÐÑм]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, 1-Ñ€ Ñар, 2-Ñ€ Ñар, 3-Ñ€ Ñар, 4-Ñ€ Ñар, 5-Ñ€ Ñар, 6-Ñ€ Ñар, 7-Ñ€ Ñар, 8-Ñ€ Ñар, 9-Ñ€ Ñар, 10-Ñ€ Ñар, 11-Ñ€ Ñар, 12-Ñ€ Ñар]
-    abbr_month_names: [~, 1Ñар, 2Ñар, 3Ñар, 4Ñар, 5Ñар, 6Ñар, 7Ñар, 8Ñар, 9Ñар, 10Ñар, 11Ñар, 12Ñар]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%Y/%m/%d %I:%M %p"
-      time: "%I:%M %p"
-      short: "%d %b %H:%M"
-      long: "%Y, %B %d %H:%M"
-    am: "am"
-    pm: "pm"
-      
-  datetime:
-    distance_in_words:
-      half_a_minute: "Ñ…Ð°Ð³Ð°Ñ Ð¼Ð¸Ð½ÑƒÑ‚"
-      less_than_x_seconds:
-        one:   "Ñекунд орчим"
-        other: "{{count}} ÑекундÑÑÑ Ð±Ð°Ð³Ð° хугацаа"
-      x_seconds:
-        one:   "1 Ñекунд"
-        other: "{{count}} Ñекунд"
-      less_than_x_minutes:
-        one:   "Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
-        other: "{{count}} Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
-      x_minutes:
-        one:   "1 минут"
-        other: "{{count}} минут"
-      about_x_hours:
-        one:   "1 цаг орчим"
-        other: "ойролцоогоор {{count}} цаг"
-      x_days:
-        one:   "1 өдөр"
-        other: "{{count}} өдөр"
-      about_x_months:
-        one:   "1 Ñар орчим"
-        other: "ойролцоогоор {{count}} Ñар"
-      x_months:
-        one:   "1 Ñар"
-        other: "{{count}} Ñар"
-      about_x_years:
-        one:   "ойролцоогоор 1 жил"
-        other: "ойролцоогоор {{count}} жил"
-      over_x_years:
-        one:   "1 жилÑÑÑ Ð¸Ñ…"
-        other: "{{count}} жилÑÑÑ Ð¸Ñ…"
-      almost_x_years:
-        one:   "бараг 1 жил"
-        other: "бараг {{count}} жил"
-
-  number:
-    format:
-      separator: "."
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Байт"
-            other: "Байт"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-        
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "баÑ"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "жагÑаалтад заагдаагүй байна"
-        exclusion: "нөөцлөгдÑөн"
-        invalid: "буруу"
-        confirmation: "баталгаажÑан өгөгдөлтÑй таарахгүй байна"
-        accepted: "хүлÑÑж авах Ñ‘Ñтой"
-        empty: "хооÑон байж болохгүй"
-        blank: "бланк байж болохгүй"
-        too_long: "дÑндүү урт байна (хамгийн ихдÑÑ {{count}} Ñ‚ÑмдÑгт)"
-        too_short: "дÑндүү богино байна (хамгийн багадаа {{count}} Ñ‚ÑмдÑгт)"
-        wrong_length: "буруу урттай байна (заавал {{count}} Ñ‚ÑмдÑгт)"
-        taken: "аль Ñ…ÑÐ´Ð¸Ð¹Ð½Ñ Ð°Ð²Ñан байна"
-        not_a_number: "тоо биш байна"
-        not_a_date: "зөв огноо биш байна"
-        greater_than: "{{count}} их байх Ñ‘Ñтой"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
-        odd: "заавал Ñондгой"
-        even: "заавал Ñ‚Ñгш"
-        greater_than_start_date: "must be greater than start date"
-        not_same_project: "нÑг ижил төÑөлд хамаарахгүй байна"
-        circular_dependency: "Ð­Ð½Ñ Ñ…Ð°Ñ€ÑŒÑ†Ð°Ð° нь гинжин(рекурÑив) харьцаа Ò¯Ò¯ÑгÑÑ… юм байна"
-        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
-  actionview_instancetag_blank_option: Сонгоно уу
-  
-  general_text_No: 'Үгүй'
-  general_text_Yes: 'Тийм'
-  general_text_no: 'үгүй'
-  general_text_yes: 'тийм'
-  general_lang_name: 'Mongolian (Монгол)'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '7'
-  
-  notice_account_updated: ДанÑыг амжилттай өөрчиллөө.
-  notice_account_invalid_creditentials: Ð¥ÑÑ€ÑглÑгчийн нÑÑ€ ÑÑвÑл нууц үг буруу байна
-  notice_account_password_updated: Ðууц үгийг амжилттай өөрчиллөө.
-  notice_account_wrong_password: Буруу нууц үг
-  notice_account_register_done: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч амжилттай Ò¯Ò¯ÑгÑлÑÑ. ИдÑвхжүүлÑхийн тулд, бидний тань луу илгÑÑÑÑн мÑйл дотор байгаа Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дараарай.
-  notice_account_unknown_email: Үл мÑдÑгдÑÑ… Ñ…ÑÑ€ÑглÑгч.
-  notice_can_t_change_password: Ð­Ð½Ñ Ñрх гадаад нÑвтрÑлтÑд ашигладаг ÑƒÑ‡Ñ€Ð°Ð°Ñ Ð½ÑƒÑƒÑ† үгийг өөрчлөх боломжгүй.
-  notice_account_lost_email_sent: Бид таньд мÑйлÑÑÑ€ нууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ… зааврыг илгÑÑÑÑн байгаа.
-  notice_account_activated: Таны Ð´Ð°Ð½Ñ Ð¸Ð´ÑвхжлÑÑ. Одоо нÑвтÑрч орж болно.
-  notice_successful_create: Ðмжилттай Ò¯Ò¯ÑгÑлÑÑ.
-  notice_successful_update: Ðмжилттай өөрчиллөө.
-  notice_successful_delete: Ðмжилттай уÑтгалаа.
-  notice_successful_connection: Ðмжилттай холбогдлоо.
-  notice_file_not_found: Таны үзÑÑ… гÑÑÑн Ñ…ÑƒÑƒÐ´Ð°Ñ Ð±Ð°Ð¹Ñ…Ð³Ò¯Ð¹ юмуу уÑтгагдÑан байна.
-  notice_locking_conflict: Өгөгдлийг Ó©Ó©Ñ€ хүн өөрчилÑөн байна.
-  notice_not_authorized: Танд ÑÐ½Ñ Ñ…ÑƒÑƒÐ´Ñыг үзÑÑ… Ñрх байхгүй байна.
-  notice_email_sent: "{{value}} - руу мÑйл илгÑÑлÑÑ"
-  notice_email_error: "МÑйл илгÑÑÑ…Ñд алдаа гарлаа ({{value}})"
-  notice_feeds_access_key_reseted: Таны RSS хандалтын түлхүүрийг дахин ÑхлүүллÑÑ.
-  notice_api_access_key_reseted: Your API access key was reset.
-  notice_failed_to_save_issues: "{{total}} аÑуудал ÑонгогдÑÐ¾Ð½Ð¾Ð¾Ñ {{count}} аÑуудлыг нь хадгалахад алдаа гарлаа: {{ids}}."
-  notice_no_issue_selected: "Ямар ч аÑуудал Ñонгогдоогүй байна! ЗаÑварлах аÑуудлуудаа Ñонгоно уу."
-  notice_account_pending: "Таны данÑыг Ò¯Ò¯ÑгÑж дууÑлаа, админиÑтратор баталгаажуулах хүртÑл хүлÑÑÐ½Ñ Ò¯Ò¯."
-  notice_default_data_loaded: Стандарт тохиргоог амжилттай ачааллаа.
-  notice_unable_delete_version: Хувилбарыг уÑтгах боломжгүй.
-  notice_issue_done_ratios_updated: Issue done ratios updated.
-  
-  error_can_t_load_default_data: "Стандарт тохиргоог ачаалж чадÑангүй: {{value}}"
-  error_scm_not_found: "Repository дотор тухайн бичлÑг ÑÑвÑл хувилбарыг олÑонгүй."
-  error_scm_command_failed: "Repository-д хандахад алдаа гарлаа:  {{value}}"
-  error_scm_annotate: "БичлÑг байхгүй байна, ÑÑвÑл бичлÑгт тайлбар хавÑаргаж болохгүй."
-  error_issue_not_found_in_project: 'СонгоÑон аÑуудал ÑÐ½Ñ Ñ‚Ó©Ñөлд хамаардаггүй юм уу ÑÑвÑл ÑиÑтемд байхгүй байна.'
-  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
-  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
-  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
-  error_can_not_archive_project: This project can not be archived
-  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
-  error_workflow_copy_source: 'Please select a source tracker or role'
-  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-  
-  warning_attachments_not_saved: "{{count}} file(s) файлыг хадгалж чадÑангүй."
-  
-  mail_subject_lost_password: "Таны {{value}} нууц үг"
-  mail_body_lost_password: 'Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…Ð¸Ð¹Ð½ тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
-  mail_subject_register: "Таны {{value}} данÑыг идÑвхжүүлÑÑ…"
-  mail_body_register: 'ДанÑаа идÑвхжүүлÑхийн тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
-  mail_body_account_information_external: "Та өөрийнхөө {{value}} данÑыг ашиглаж холбогдож болно."
-  mail_body_account_information: Таны данÑны тухай мÑдÑÑлÑл
-  mail_subject_account_activation_request: "{{value}} данÑыг идÑвхжүүлÑÑ… Ñ…Ò¯ÑÑлт"
-  mail_body_account_activation_request: "Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч ({{value}}) бүртгүүлÑÑн байна. Таны баталгаажуулахыг хүлÑÑж байна:"
-  mail_subject_reminder: "Дараагийн өдрүүдÑд {{count}} аÑуудлыг шийдÑÑ… Ñ…ÑÑ€ÑгтÑй ({{days}})"
-  mail_body_reminder: "Танд оноогдÑон {{count}} аÑуудлуудыг дараагийн {{days}} өдрүүдÑд шийдÑÑ… Ñ…ÑÑ€ÑгтÑй:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: "The '{{id}}' wiki page has been added by {{author}}."
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki page has been updated by {{author}}."
-  
-  gui_validation_error: 1 алдаа
-  gui_validation_error_plural: "{{count}} алдаа"
-  
-  field_name: ÐÑÑ€
-  field_description: Тайлбар
-  field_summary: ДүгнÑлт
-  field_is_required: Зайлшгүй
-  field_firstname: Таны нÑÑ€
-  field_lastname: Овог
-  field_mail: ИмÑйл
-  field_filename: Файл
-  field_filesize: Ð¥ÑмжÑÑ
-  field_downloads: Татаж авах зүйлÑ
-  field_author: Зохиогч
-  field_created_on: Ò®Ò¯ÑÑÑн
-  field_updated_on: ӨөрчилÑөн
-  field_field_format: Формат
-  field_is_for_all: Бүх төÑлийн хувьд
-  field_possible_values: Боломжтой утгууд
-  field_regexp: Энгийн илÑрхийлÑл
-  field_min_length: Минимум урт
-  field_max_length: МакÑимум урт
-  field_value: Утга
-  field_category: Төрөл
-  field_title: Гарчиг
-  field_project: ТөÑөл
-  field_issue: ÐÑуудал
-  field_status: Төлөв
-  field_notes: ТÑмдÑглÑлүүд
-  field_is_closed: ÐÑуудал хаагдÑан
-  field_is_default: Стандарт утга
-  field_tracker: ЧиглÑл
-  field_subject: Гарчиг
-  field_due_date: ДууÑах огноо
-  field_assigned_to: ОноогдÑон
-  field_priority: ЗÑÑ€ÑглÑл
-  field_fixed_version: Хувилбар
-  field_user: Ð¥ÑÑ€ÑглÑгч
-  field_role: Хандалтын Ñрх
-  field_homepage: Ðүүр хуудаÑ
-  field_is_public: Олон нийтийн
-  field_parent: ЭцÑг төÑөл нь
-  field_is_in_roadmap: ÐÑуудлуудыг Ñвцын зураг дÑÑÑ€ харуулах
-  field_login: ÐÑвтрÑÑ… нÑÑ€
-  field_mail_notification: ИмÑйл мÑдÑгдлүүд
-  field_admin: ÐдминиÑтратор
-  field_last_login_on: Сүүлийн холбоо
-  field_language: Ð¥Ñл
-  field_effective_date: Огноо
-  field_password: Ðууц үг
-  field_new_password: Ð¨Ð½Ð½Ñ Ð½ÑƒÑƒÑ† үг
-  field_password_confirmation: Баталгаажуулах
-  field_version: Хувилбар
-  field_type: Төрөл
-  field_host: ХоÑÑ‚
-  field_port: Порт
-  field_account: ДанÑ
-  field_base_dn: ҮндÑÑн ДÐ
-  field_attr_login: ÐÑвтрÑÑ… аттрибут
-  field_attr_firstname: Таны нÑÑ€ аттрибут
-  field_attr_lastname: Овог аттрибут
-  field_attr_mail: ИмÑйл аттрибут
-  field_onthefly: Ð¥Ò¯ÑÑÑн үедÑÑ Ñ…ÑÑ€ÑглÑгч Ò¯Ò¯ÑгÑÑ…
-  field_done_ratio: %% ГүйцÑтгÑÑÑн
-  field_auth_source: ÐÑвтрÑÑ… арга
-  field_hide_mail: Миний имÑйл хаÑгийг нуу
-  field_comments: Тайлбар
-  field_url: URL ХаÑг
-  field_start_page: ТÑргүүн хуудаÑ
-  field_subproject: ДÑд төÑөл
-  field_hours: Цаг
-  field_activity: Үйл ажиллагаа
-  field_spent_on: Огноо
-  field_identifier: ТөÑлийн глобал нÑÑ€
-  field_is_filter: Шүүлтүүр болгон Ñ…ÑÑ€ÑглÑгддÑг
-  field_issue_to: Хамаатай аÑуудал
-  field_delay: Хоцролт
-  field_assignable: Ð­Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ ÑрхÑд аÑуудлуудыг оноож өгч болно
-  field_redirect_existing_links: Байгаа холбооÑуудыг дахин чиглүүлÑÑ…
-  field_estimated_hours: БарагцаалÑан цаг
-  field_column_names: Баганууд
-  field_time_zone: Цагын бүÑ
-  field_searchable: Хайж болох
-  field_default_value: Стандарт утга
-  field_comments_sorting: Тайлбаруудыг харуул
-  field_parent_title: ЭцÑг хуудаÑ
-  field_editable: ЗаÑварлагдана
-  field_watcher: Харна
-  field_identity_url: OpenID URL
-  field_content: Ðгуулга
-  field_group_by: Үр дүнгÑÑÑ€ бүлÑглÑÑ…
-  field_sharing: Sharing
-  
-  setting_app_title: Программын гарчиг
-  setting_app_subtitle: Программын дÑд гарчиг
-  setting_welcome_text: МÑндчилгÑÑ
-  setting_default_language: Стандарт Ñ…Ñл
-  setting_login_required: ÐÑвтрÑÑ… шаардлагатай
-  setting_self_registration: Өөрийгөө бүртгүүлÑÑ…
-  setting_attachment_max_size: ХавÑралт файлын дÑÑд Ñ…ÑмжÑÑ
-  setting_issues_export_limit: ÐÑуудал ÑкÑпортлох Ñ…Ñзгаар
-  setting_mail_from: Ямар имÑйл хаÑг Ò¯Ò¯ÑгÑÑ…
-  setting_bcc_recipients: BCC талбарын хаÑгууд (bcc)
-  setting_plain_text_mail: дан текÑÑ‚ мÑйл (HTML биш)
-  setting_host_name: ХоÑтын нÑÑ€ болон зам
-  setting_text_formatting: ТекÑÑ‚ Ñ…ÑлбÑржүүлÑлт
-  setting_wiki_compression: Вики хуудÑуудын түүх дÑÑÑ€ шахалт хийх
-  setting_feeds_limit: Фийд агуулгын Ñ…Ñзгаар
-  setting_default_projects_public: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñлүүд автоматаар олон нийтийнх байна
-  setting_autofetch_changesets: Комитуудыг автоматаар татаж авах
-  setting_sys_api_enabled: Репозитори менежментÑд зориулан WS-ийг идÑвхжүүлÑÑ…
-  setting_commit_ref_keywords: Хамааруулах түлхүүр үгÑ
-  setting_commit_fix_keywords: Зоолттой түлхүүр үгÑ
-  setting_autologin: Компьютер дÑÑÑ€ Ñанах
-  setting_date_format: Огнооны формат
-  setting_time_format: Цагийн формат
-  setting_cross_project_issue_relations: ТөÑөл хооронд аÑуудал хамааруулахыг зөвшөөрөх
-  setting_issue_list_default_columns: ÐÑуудлуудыг харуулах Ñтандарт баганууд
-  setting_repositories_encodings: Репозиторийн Ñнкодинг
-  setting_commit_logs_encoding: Коммит хийх үед харуулах текÑтүүдийн Ñнкодинг
-  setting_emails_footer: ИмÑйлүүдийн хөл Ñ…ÑÑÑг
-  setting_protocol: Протокол
-  setting_per_page_options: ÐÑг хуудÑанд байх обьектуудын тохиргоо
-  setting_user_format: Ð¥ÑÑ€ÑглÑгчдийг харуулах формат
-  setting_activity_days_default: ТөÑлийн үйл ажиллагаа Ñ…ÑÑÑгт үзүүлÑÑ… өдрийн тоо
-  setting_display_subprojects_issues: ДÑд төÑлүүдийн аÑуудлуудыг автоматаар гол төÑөл дÑÑÑ€ харуулах
-  setting_enabled_scm: SCM - ийг идÑвхжүүлÑÑ…
-  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
-  setting_mail_handler_api_enabled: ИрÑÑн мÑйлүүдийн хувьд WS-ийг идÑвхжүүлÑÑ…
-  setting_mail_handler_api_key: API түлхүүр
-  setting_sequential_project_identifiers: ДÑÑ Ð´Ð°Ñ€Ð°Ð°Ð»Ñан төÑлийн глобал нÑÑ€ Ò¯Ò¯ÑгÑж байх
-  setting_gravatar_enabled: Gravatar дүрÑүүдийг Ñ…ÑÑ€ÑглÑгчдÑд Ñ…ÑÑ€ÑглÑж байх
-  setting_gravatar_default: Default Gravatar image
-  setting_diff_max_lines_displayed: Ялгаатай мөрүүдийн тоо (дÑÑд тал нь)
-  setting_file_max_size_displayed: Max size of text files displayed inline
-  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
-  setting_openid: Allow OpenID login and registration
-  setting_password_min_length: Minimum password length
-  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
-  setting_default_projects_modules: Default enabled modules for new projects
-  setting_issue_done_ratio: Calculate the issue done ratio with
-  setting_issue_done_ratio_issue_field: Use the issue field
-  setting_issue_done_ratio_issue_status: Use the issue status
-  setting_start_of_week: Start calendars on
-  setting_rest_api_enabled: Enable REST web service
-  setting_cache_formatted_text: Cache formatted text
-  
-  permission_add_project: Create project
-  permission_add_subprojects: Create subprojects
-  permission_edit_project: ТөÑлийг заÑварлах
-  permission_select_project_modules: ТөÑлийн модулуудийг Ñонгоно уу
-  permission_manage_members: СиÑтемийн Ñ…ÑÑ€ÑглÑгчид
-  permission_manage_project_activities: Manage project activities
-  permission_manage_versions: Хувилбарууд
-  permission_manage_categories: ÐÑуудлын ангиллууд
-  permission_view_issues: ÐÑуудлуудыг харах
-  permission_add_issues: ÐÑуудлууд нÑмÑÑ…
-  permission_edit_issues: ÐÑуудлуудыг заÑварлах
-  permission_manage_issue_relations: ÐÑуудлын хамаарлыг зохицуулах
-  permission_add_issue_notes: ТÑмдÑглÑл нÑмÑÑ…
-  permission_edit_issue_notes: ТÑмдÑглÑлүүд заÑварлах
-  permission_edit_own_issue_notes: Өөрийн үлдÑÑÑÑн Ñ‚ÑмдÑглÑлүүдийг заÑварлах
-  permission_move_issues: ÐÑуудлуудыг зөөх
-  permission_delete_issues: ÐÑуудлуудыг уÑтгах
-  permission_manage_public_queries: Олон нийтийн аÑуултууд
-  permission_save_queries: ÐÑуултуудыг хадгалах
-  permission_view_gantt: Гант диаграмыг үзÑÑ…
-  permission_view_calendar: Календарь үзÑÑ…
-  permission_view_issue_watchers: Ðжиглагчдын жагÑаалтыг харах
-  permission_add_issue_watchers: Ðжиглагчид нÑмÑÑ…
-  permission_delete_issue_watchers: Ðжиглагчдыг уÑтгах
-  permission_log_time: ЗарцуулÑан хугацааг лог хийх
-  permission_view_time_entries: ЗарцуулÑан хугацааг харах
-  permission_edit_time_entries: Хугацааны логуудыг заÑварлах
-  permission_edit_own_time_entries: Өөрийн хугацааны логуудыг заÑварлах
-  permission_manage_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
-  permission_comment_news: МÑдÑÑнд тайлбар үлдÑÑÑ…
-  permission_manage_documents: Бичиг баримтууд
-  permission_view_documents: Бичиг баримтуудыг харах
-  permission_manage_files: Файлууд
-  permission_view_files: Файлуудыг харах
-  permission_manage_wiki: Вики удирдах
-  permission_rename_wiki_pages: Вики хуудÑуудыг дахиж нÑрлÑÑ…
-  permission_delete_wiki_pages: Вики хуудÑуудыг уÑтгах
-  permission_view_wiki_pages: Вики үзÑÑ…
-  permission_view_wiki_edits: Вики түүх үзÑÑ…
-  permission_edit_wiki_pages: Вики хуудÑуудыг заÑварлах
-  permission_delete_wiki_pages_attachments: ХавÑралтуудыг уÑтгах
-  permission_protect_wiki_pages: Вики хуудÑуудыг хамгаалах
-  permission_manage_repository: Репозитори
-  permission_browse_repository: Репозиторийг үзÑÑ…
-  permission_view_changesets: Өөрчлөлтүүдийг харах
-  permission_commit_access: Коммит хандалт
-  permission_manage_boards: Самбарууд
-  permission_view_messages: ЗурваÑуудыг харах
-  permission_add_messages: Ð—ÑƒÑ€Ð²Ð°Ñ Ð¸Ð»Ð³ÑÑÑ…
-  permission_edit_messages: ЗурваÑуудыг заÑварлах
-  permission_edit_own_messages: Өөрийн зурваÑуудыг заÑварлах
-  permission_delete_messages: ЗурваÑуудыг уÑтгах
-  permission_delete_own_messages: Өөрийн зурваÑуудыг уÑтгах
-  permission_export_wiki_pages: Вики хуудÑуудыг ÑкÑпорт хийх
-  
-  project_module_issue_tracking: ÐÑуудал Ñ…Ñнах
-  project_module_time_tracking: Хугацаа Ñ…Ñнах
-  project_module_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
-  project_module_documents: Бичиг баримтууд
-  project_module_files: Файлууд
-  project_module_wiki: Вики
-  project_module_repository: Репозитори
-  project_module_boards: Самбарууд
-  
-  label_user: Ð¥ÑÑ€ÑглÑгч
-  label_user_plural: Ð¥ÑÑ€ÑглÑгчид
-  label_user_new: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч
-  label_user_anonymous: Хамаагүй Ñ…ÑÑ€ÑглÑгч
-  label_project: ТөÑөл
-  label_project_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñөл
-  label_project_plural: ТөÑлүүд
-  label_x_projects:
-    zero:  төÑөл байхгүй
-    one:   1 төÑөл
-    other: "{{count}} төÑлүүд"
-  label_project_all: Бүх ТөÑлүүд
-  label_project_latest: Сүүлийн үеийн төÑлүүд
-  label_issue: ÐÑуудал
-  label_issue_new: Ð¨Ð¸Ð½Ñ Ð°Ñуудал
-  label_issue_plural: ÐÑуудлууд
-  label_issue_view_all: Бүх аÑуудлуудыг харах
-  label_issues_by: "{{value}} - н аÑуудлууд"
-  label_issue_added: ÐÑуудал нÑмÑгдлÑÑ
-  label_issue_updated: ÐÑуудал өөрчлөгдлөө
-  label_document: Бичиг баримт
-  label_document_new: Ð¨Ð¸Ð½Ñ Ð±Ð¸Ñ‡Ð¸Ð³ баримт
-  label_document_plural: Бичиг баримтууд
-  label_document_added: Бичиг баримт нÑмÑгдлÑÑ
-  label_role: Хандалтын Ñрх
-  label_role_plural: Хандалтын Ñрхүүд
-  label_role_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ Ñрх
-  label_role_and_permissions: Хандалтын Ñрхүүд болон зөвшөөрлүүд
-  label_member: Гишүүн
-  label_member_new: Ð¨Ð¸Ð½Ñ Ð³Ð¸ÑˆÒ¯Ò¯Ð½
-  label_member_plural: Гишүүд
-  label_tracker: ЧиглÑл
-  label_tracker_plural: ЧиглÑлүүд
-  label_tracker_new: Ð¨Ð¸Ð½Ñ Ñ‡Ð¸Ð³Ð»Ñл
-  label_workflow: Ðжлын дараалал
-  label_issue_status: ÐÑуудлын төлөв
-  label_issue_status_plural: ÐÑуудлын төлвүүд
-  label_issue_status_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ð»Ó©Ð²
-  label_issue_category: ÐÑуудлын ангилал
-  label_issue_category_plural: ÐÑуудлын ангиллууд
-  label_issue_category_new: Ð¨Ð¸Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»
-  label_custom_field: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбар
-  label_custom_field_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбарууд
-  label_custom_field_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон талбар Ò¯Ò¯ÑгÑÑ…
-  label_enumerations: Ðнгиллууд
-  label_enumeration_new: Ð¨Ð¸Ð½Ñ ÑƒÑ‚Ð³Ð°
-  label_information: МÑдÑÑлÑл
-  label_information_plural: МÑдÑÑллүүд
-  label_please_login: ÐÑвтÑрч орно уу
-  label_register: БүртгүүлÑÑ…
-  label_login_with_open_id_option: or login with OpenID
-  label_password_lost: Ðууц үгÑÑ Ð°Ð»Ð´Ñан
-  label_home: Ðүүр
-  label_my_page: Миний хуудаÑ
-  label_my_account: Миний данÑ
-  label_my_projects: Миний төÑлүүд
-  label_administration: Ðдмин Ñ…ÑÑÑг
-  label_login: ÐÑвтрÑÑ…
-  label_logout: Гарах
-  label_help: ТуÑламж
-  label_reported_issues: МÑдÑгдÑÑн аÑуудлууд
-  label_assigned_to_me_issues: Ðадад оноогдÑон аÑуудлууд
-  label_last_login: Сүүлийн холболт
-  label_registered_on: БүртгүүлÑÑн огноо
-  label_activity: Үйл ажиллагаа
-  label_overall_activity: Ерөнхий үйл ажиллагаа
-  label_user_activity: "{{value}}-ийн үйл ажиллагаа"
-  label_new: ШинÑ
-  label_logged_as: ХолбогдÑон нÑÑ€
-  label_environment: Орчин
-  label_authentication: ÐÑвтрÑÑ…
-  label_auth_source: ÐÑвтрÑÑ… арга
-  label_auth_source_new: Ð¨Ð¸Ð½Ñ Ð½ÑвтрÑÑ… арга
-  label_auth_source_plural: ÐÑвтрÑÑ… аргууд
-  label_subproject_plural: ДÑд төÑлүүд
-  label_subproject_new: Ð¨Ð¸Ð½Ñ Ð´Ñд төÑөл
-  label_and_its_subprojects: "{{value}} болон холбогдох дÑд төÑлүүд"
-  label_min_max_length: ДÑÑд - Доод урт
-  label_list: ЖагÑаалт
-  label_date: Огноо
-  label_integer: БүхÑл тоо
-  label_float: Бутархай тоо
-  label_boolean: ҮнÑн худал утга
-  label_string: ТекÑÑ‚
-  label_text: Урт текÑÑ‚
-  label_attribute: Ðттрибут
-  label_attribute_plural: Ðттрибутууд
-  label_download: "{{count}} Татаж авÑан зүйл"
-  label_download_plural: "{{count}} Татаж авÑан зүйлÑ"
-  label_no_data: ҮзүүлÑÑ… өгөгдөл байхгүй байна
-  label_change_status: Төлвийг өөрчлөх
-  label_history: Түүх
-  label_attachment: Файл
-  label_attachment_new: Ð¨Ð¸Ð½Ñ Ñ„Ð°Ð¹Ð»
-  label_attachment_delete: Файл уÑтгах
-  label_attachment_plural: Файлууд
-  label_file_added: Файл нÑмÑгдлÑÑ
-  label_report: Тайлан
-  label_report_plural: Тайлангууд 
-  label_news: МÑдÑÑ
-  label_news_new: Ð¨Ð¸Ð½Ñ Ð¼ÑдÑÑ
-  label_news_plural: МÑдÑÑ
-  label_news_latest: Сүүлийн үеийн мÑдÑÑнүүд
-  label_news_view_all: Бүх мÑдÑÑг харах
-  label_news_added: МÑдÑÑ Ð½ÑмÑгдлÑÑ
-  label_change_log: Өөрчлөлтийн лог
-  label_settings: Тохиргоо
-  label_overview: ЭхлÑл
-  label_version: Хувилбар
-  label_version_new: Ð¨Ð¸Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€
-  label_version_plural: Хувилбарууд
-  label_close_versions: ГүйцÑÑ‚ хувилбаруудыг хаалаа
-  label_confirmation: Баталгаажуулах
-  label_export_to: 'Өөр авч болох формат:'
-  label_read: Унших...
-  label_public_projects: Олон нийтийн төÑлүүд
-  label_open_issues: нÑÑлттÑй
-  label_open_issues_plural: нÑÑлттÑй
-  label_closed_issues: хаалттай
-  label_closed_issues_plural: хаалттай
-  label_x_open_issues_abbr_on_total:
-    zero:  0 нÑÑлттÑй / {{total}}
-    one:   1 нÑÑлттÑй / {{total}}
-    other: "{{count}} нÑÑлттÑй / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 нÑÑлттÑй
-    one:   1 нÑÑлттÑй
-    other: "{{count}} нÑÑлттÑй"
-  label_x_closed_issues_abbr:
-    zero:  0 хаалттай
-    one:   1 хаалттай
-    other: "{{count}} хаалттай"
-  label_total: Ðийт
-  label_permissions: Зөвшөөрлүүд
-  label_current_status: Одоогийн төлөв
-  label_new_statuses_allowed: ШинÑÑÑ€ олгож болох төлвүүд
-  label_all: бүгд
-  label_none: хооÑон
-  label_nobody: Ñ…Ñн ч биш
-  label_next: Дараагийн
-  label_previous: Өмнөх
-  label_used_by: Ð¥ÑÑ€ÑглÑгддÑг
-  label_details: ДÑлгÑÑ€Ñнгүй
-  label_add_note: ТÑмдÑглÑл нÑмÑÑ…
-  label_per_page: ÐÑг хуудÑанд
-  label_calendar: Календарь
-  label_months_from: Саруудыг хаанааÑ
-  label_gantt: Гант диаграм
-  label_internal: Дотоод
-  label_last_changes: "Ñүүлийн {{count}} өөрчлөлтүүд"
-  label_change_view_all: Бүх өөрчлөлтүүдийг харах
-  label_personalize_page: Ð­Ð½Ñ Ñ…ÑƒÑƒÐ´Ñыг өөрт зориулан өөрчлөх
-  label_comment: Тайлбар
-  label_comment_plural: Тайлбарууд
-  label_x_comments:
-    zero: ÑÑтгÑгдÑл байхгүй
-    one: 1 ÑÑтгÑгдÑлтÑй
-    other: "{{count}} ÑÑтгÑгдÑлтÑй"
-  label_comment_add: Тайлбар нÑмÑÑ…
-  label_comment_added: Тайлбар нÑмÑгдлÑÑ
-  label_comment_delete: Тайлбарууд уÑтгах
-  label_query: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт
-  label_query_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуултууд
-  label_query_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт Ò¯Ò¯ÑгÑÑ…
-  label_filter_add: Шүүлтүүр нÑмÑÑ…
-  label_filter_plural: Шүүлтүүрүүд
-  label_equals: бол
-  label_not_equals: биш
-  label_in_less_than: Ð°Ð°Ñ Ð±Ð°Ð³Ð°
-  label_in_more_than: Ð°Ð°Ñ Ð¸Ñ…
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: дотор
-  label_today: өнөөдөр
-  label_all_time: бүх хугацаа
-  label_yesterday: өчигдөр
-  label_this_week: ÑÐ½Ñ Ð´Ð¾Ð»Ð¾Ð¾ хоног
-  label_last_week: өнгөрÑөн долоо хоног
-  label_last_n_days: "Ñүүлийн {{count}} өдрүүд"
-  label_this_month: ÑÐ½Ñ Ñар
-  label_last_month: Ñүүлийн Ñар
-  label_this_year: ÑÐ½Ñ Ð¶Ð¸Ð»
-  label_date_range: Ð¥Ñзгаар огноо
-  label_less_than_ago: бага өдрийн дотор
-  label_more_than_ago: их өдрийн дотор
-  label_ago: өдрийн өмнө
-  label_contains: агуулж байгаа
-  label_not_contains: агуулаагүй
-  label_day_plural: өдрүүд
-  label_repository: Репозитори
-  label_repository_plural: Репозиторууд
-  label_browse: ҮзÑÑ…
-  label_modification: "{{count}} өөрчлөлт"
-  label_modification_plural: "{{count}} өөрчлөлтүүд"
-  label_branch: Салбар
-  label_tag: Шошго 
-  label_revision: Хувилбар
-  label_revision_plural: Хувилбарууд
-  label_revision_id: "{{value}} Хувилбар"
-  label_associated_revisions: Хамааралтай хувилбарууд
-  label_added: нÑмÑгдÑÑн
-  label_modified: өөрчлөгдÑөн
-  label_copied: хуулÑан
-  label_renamed: нÑрийг нь өөрчилÑөн
-  label_deleted: уÑтгаÑан
-  label_latest_revision: Сүүлийн үеийн хувилбар
-  label_latest_revision_plural: Сүүлийн үеийн хувилбарууд
-  label_view_revisions: Хувилбаруудыг харах
-  label_view_all_revisions: Бүх хувилбаруудыг харах
-  label_max_size: Maximum size
-  label_sort_highest: Хамгийн дÑÑÑ€
-  label_sort_higher: ДÑÑш нь
-  label_sort_lower: Доош нь
-  label_sort_lowest: Хамгийн доор
-  label_roadmap: Хөтөч
-  label_roadmap_due_in: "{{value}} дотор дууÑгах"
-  label_roadmap_overdue: "{{value}} оройтÑон"
-  label_roadmap_no_issues: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€Ñ‚ аÑуудал байхгүй байна
-  label_search: Хайх
-  label_result_plural: Үр дүн
-  label_all_words: Бүх үгÑ
-  label_wiki: Вики
-  label_wiki_edit: Вики заÑвар
-  label_wiki_edit_plural: Вики заÑварууд
-  label_wiki_page: Вики хуудаÑ
-  label_wiki_page_plural: Вики хуудаÑ
-  label_index_by_title: Гарчгаар ÑÑ€ÑмбÑлÑÑ…
-  label_index_by_date: Огноогоор ÑÑ€ÑмбÑлÑÑ…
-  label_current_version: Одоогийн хувилбар
-  label_preview: Ямар харагдахыг шалгах
-  label_feed_plural: Feeds
-  label_changes_details: Бүх өөрчлөлтүүдийн дÑлгÑÑ€Ñнгүй
-  label_issue_tracking: ÐÑуудал Ñ…Ñнах
-  label_spent_time: ЗарцуулÑан хугацаа
-  label_f_hour: "{{value}} цаг"
-  label_f_hour_plural: "{{value}} цаг"
-  label_time_tracking: Хугацааг Ñ…Ñнах
-  label_change_plural: Өөрчлөлтүүд
-  label_statistics: СтатиÑтик
-  label_commits_per_month: Сард хийÑÑн коммитын тоо
-  label_commits_per_author: Зохиогч бүрийн хувьд коммитын тоо
-  label_view_diff: Ялгаануудыг харах
-  label_diff_inline: дотор нь
-  label_diff_side_by_side: зÑÑ€Ñгцүүлж
-  label_options: Тохиргоо
-  label_copy_workflow_from: Ðжлын дарааллыг хуулах
-  label_permissions_report: Зөвшөөрлүүдийн таблиц
-  label_watched_issues: Ðжиглагдаж байгаа аÑуудлууд
-  label_related_issues: Хамааралтай аÑуудлууд
-  label_applied_status: ОлгоÑон төлөв
-  label_loading: Ðчаалж байна...
-  label_relation_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»
-  label_relation_delete: Хамаарлыг уÑтгах
-  label_relates_to: Ñнгийн хамааралтай
-  label_duplicates: Ñ…Ð¾Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»Ñ‚Ð°Ð¹
-  label_duplicated_by: давхардуулÑан ÑзÑн
-  label_blocks: шаардах хамааралтай
-  label_blocked_by: блоколÑон ÑзÑн
-  label_precedes: урьдчилах хамааралтай
-  label_follows: дагаж
-  label_end_to_start: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ урагшаа
-  label_end_to_end: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ хойшоо
-  label_start_to_start: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ урагаа
-  label_start_to_end: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ хойшоо
-  label_stay_logged_in: Ð­Ð½Ñ ÐºÐ¾Ð¼ÑŒÑŽÑ‚ÐµÑ€ дÑÑÑ€ Ñанах
-  label_disabled: идÑвхгүй болÑон
-  label_show_completed_versions: ГүйцÑд хувилбаруудыг харуулах
-  label_me: би
-  label_board: Форум
-  label_board_new: Ð¨Ð¸Ð½Ñ Ñ„Ð¾Ñ€ÑƒÐ¼
-  label_board_plural: Форумууд
-  label_board_locked: ТүгжÑÑÑ‚Ñй
-  label_board_sticky: Sticky
-  label_topic_plural: СÑдвүүд
-  label_message_plural: ЗурваÑууд
-  label_message_last: Сүүлийн зурваÑ
-  label_message_new: Ð¨Ð¸Ð½Ñ Ð·ÑƒÑ€Ð²Ð°Ñ
-  label_message_posted: Ð—ÑƒÑ€Ð²Ð°Ñ Ð½ÑмÑгдлÑÑ
-  label_reply_plural: Хариултууд
-  label_send_information: ДанÑны мÑдÑÑллийг Ñ…ÑÑ€ÑглÑгчид илгÑÑÑ…
-  label_year: Жил
-  label_month: Сар
-  label_week: Долоо хоног
-  label_date_from: Ð¥ÑзÑÑнÑÑÑ
-  label_date_to: Ð¥Ñдий хүртÑл
-  label_language_based: Ð¥ÑÑ€ÑглÑгчийн Ñ…ÑÐ»Ð½Ð°Ñ ÑˆÐ°Ð»Ñ‚Ð³Ð°Ð°Ð»Ð°Ð½
-  label_sort_by: "{{value}} талбараар нь ÑÑ€ÑмбÑлÑÑ…"
-  label_send_test_email: Турших мÑйл илгÑÑÑ…
-  label_feeds_access_key: RSS хандах түлхүүр
-  label_missing_feeds_access_key: RSS хандах түлхүүр алга
-  label_feeds_access_key_created_on: "RSS хандалтын түлхүүр {{value}}-ийн өмнө Ò¯Ò¯ÑÑÑн"
-  label_module_plural: Модулууд
-  label_added_time_by: "{{author}} {{age}}-ийн өмнө нÑмÑÑн"
-  label_updated_time_by: "{{author}} {{age}}-ийн өмнө өөрчилÑөн"
-  label_updated_time: "{{value}} -ийн өмнө өөрчлөгдÑөн"
-  label_jump_to_a_project: ТөÑөл Ñ€Ò¯Ò¯ очих...
-  label_file_plural: Файлууд
-  label_changeset_plural: Өөрчлөлтүүд
-  label_default_columns: Стандарт баганууд
-  label_no_change_option: (Өөрчлөлт байхгүй)
-  label_bulk_edit_selected_issues: СонгогдÑон аÑуудлуудыг бөөнөөр заÑварлах
-  label_theme: СиÑтемийн Дизайн
-  label_default: Стандарт
-  label_search_titles_only: Зөвхөн гарчиг хайх
-  label_user_mail_option_all: "Миний бүх төÑөл дÑÑрх бүх үзÑгдлүүдийн хувьд"
-  label_user_mail_option_selected: "СонгогдÑон төÑлүүдийн хувьд бүх үзÑгдÑл дÑÑÑ€..."
-  label_user_mail_no_self_notified: "Миний өөрийн хийÑÑн өөрчлөлтүүдийн тухай надад мÑдÑгдÑÑ… Ñ…ÑÑ€Ñггүй"
-  label_registration_activation_by_email: данÑыг имÑйлÑÑÑ€ идÑвхжүүлÑÑ…
-  label_registration_manual_activation: данÑыг гараар идÑвхжүүлÑÑ…
-  label_registration_automatic_activation: данÑыг автоматаар идÑвхжүүлÑÑ…
-  label_display_per_page: 'ÐÑг хуудÑанд: {{value}}'
-  label_age: ÐаÑ
-  label_change_properties: Тохиргоог өөрчлөх
-  label_general: Ерөнхий
-  label_more: Цааш нь
-  label_scm: SCM
-  label_plugins: Модулууд
-  label_ldap_authentication: LDAP нÑвтрÑÑ… горим
-  label_downloads_abbr: D/L
-  label_optional_description: Дурын тайлбар
-  label_add_another_file: Дахин файл нÑмÑÑ…
-  label_preferences: Тохиргоо
-  label_chronological_order: Цагаан толгойн Ò¯Ñгийн дарааллаар
-  label_reverse_chronological_order: Урвуу цагаан толгойн Ò¯Ñгийн дарааллаар
-  label_planning: Төлөвлөлт
-  label_incoming_emails: ИрÑÑн мÑйлүүд
-  label_generate_key: Түлхүүр Ò¯Ò¯ÑгÑÑ…
-  label_issue_watchers: Ðжиглагчид
-  label_example: ЖишÑÑ
-  label_display: Display
-  label_sort: Sort
-  label_ascending: Ascending
-  label_descending: Descending
-  label_date_from_to: From {{start}} to {{end}}
-  label_wiki_content_added: Wiki page added
-  label_wiki_content_updated: Wiki page updated
-  label_group: Group
-  label_group_plural: Groups
-  label_group_new: New group
-  label_time_entry_plural: Spent time
-  label_version_sharing_none: Not shared
-  label_version_sharing_descendants: With subprojects
-  label_version_sharing_hierarchy: With project hierarchy
-  label_version_sharing_tree: With project tree
-  label_version_sharing_system: With all projects
-  label_update_issue_done_ratios: Update issue done ratios
-  label_copy_source: Source
-  label_copy_target: Target
-  label_copy_same_as_target: Same as target
-  label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_api_access_key: API access key
-  label_missing_api_access_key: Missing an API access key
-  label_api_access_key_created_on: "API access key created {{value}} ago"
-  
-  button_login: ÐÑвтрÑÑ…
-  button_submit: ИлгÑÑÑ…
-  button_save: Хадгалах
-  button_check_all: Бүгдийг Ñонго
-  button_uncheck_all: Бүгдийг үл Ñонго
-  button_delete: УÑтгах
-  button_create: Ò®Ò¯ÑгÑÑ…
-  button_create_and_continue: Ò®Ò¯ÑгÑÑд цааш үргÑлжлүүлÑÑ…
-  button_test: Турших
-  button_edit: ЗаÑварлах
-  button_add: ÐÑмÑÑ…
-  button_change: Өөрчлөх
-  button_apply: Өөрчлөлтийг хадгалах
-  button_clear: ЦÑвÑрлÑÑ…
-  button_lock: Түгжих
-  button_unlock: ТүгжÑÑг тайлах
-  button_download: Татах
-  button_list: ЖагÑаалт
-  button_view: Харах
-  button_move: Зөөх
-  button_move_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
-  button_back: Буцах
-  button_cancel: Болих
-  button_activate: ИдÑвхжүүлÑÑ…
-  button_sort: ЭрÑмбÑлÑÑ…
-  button_log_time: Лог хийÑÑн хугацаа
-  button_rollback: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€ руу буцах
-  button_watch: Ðжиглах
-  button_unwatch: Ðжиглахаа болих
-  button_reply: Хариулах
-  button_archive: Ðрхивлах
-  button_unarchive: Ðрхивыг задлах
-  button_reset: Ðнхны утгууд
-  button_rename: ÐÑрийг нь Ñолих
-  button_change_password: Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…
-  button_copy: Хуулах
-  button_copy_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
-  button_annotate: Тайлбар хавÑаргах
-  button_update: ШинÑчлÑÑ…
-  button_configure: Тохируулах
-  button_quote: ИшлÑл
-  button_duplicate: Хуулбар
-  button_show: ҮзÑÑ…
-  
-  status_active: идÑвхтÑй
-  status_registered: бүртгүүлÑÑн
-  status_locked: түгжÑÑÑ‚Ñй
-  
-  version_status_open: нÑÑлттÑй
-  version_status_locked: түгжÑÑÑ‚Ñй
-  version_status_closed: хаалттай
-
-  field_active: идÑвхтÑй
-  
-  text_select_mail_notifications: Ямар үед имÑйлÑÑÑ€ мÑдÑгдÑл илгÑÑхийг Ñонгоно уу.
-  text_regexp_info: eg. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 гÑвÑл Ñмар ч Ñ…Ñзгааргүй гÑÑÑн үг
-  text_project_destroy_confirmation: Та ÑÐ½Ñ Ñ‚Ó©Ñөл болоод буÑад мÑдÑÑллийг нь үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
-  text_subprojects_destroy_warning: "Уг төÑлийн дÑд төÑлүүд : {{value}} нь Ð±Ð°Ñ ÑƒÑтгагдах болно."
-  text_workflow_edit: Ðжлын дарааллыг өөрчлөхийн тулд хандалтын Ñрх болон аÑуудлын чиглÑлийг Ñонгоно уу
-  text_are_you_sure: Та итгÑлтÑй байна уу ?
-  text_journal_changed: "{{label}} {{old}} байÑан нь {{new}} болов"
-  text_journal_set_to: "{{label}} {{value}} болгож өөрчиллөө"
-  text_journal_deleted: "{{label}} уÑÑ‚Ñан ({{old}})"
-  text_journal_added: "{{label}} {{value}} нÑмÑгдÑÑн"
-  text_tip_issue_begin_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑ… ажил
-  text_tip_issue_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ дууÑах ажил
-  text_tip_issue_begin_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑд мөн дууÑч байгаа ажил
-  text_project_identifier_info: 'Зөвхөн жижиг Ò¯Ñгүүд болон (a-z), тоо and дундуур Ð·ÑƒÑ€Ð°Ð°Ñ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð¶ болно.<br />ÐÑгÑнт хадгалÑан хойно, төÑлийн глобал нÑрийг өөрлчөх боломжгүй.'
-  text_caracters_maximum: "дÑÑд тал нь {{count}} Ò¯ÑÑг."
-  text_caracters_minimum: "Хамгийн багадаа Ñдаж {{count}} Ñ‚ÑмдÑгт байх."
-  text_length_between: "Урт нь багадаа {{min}}, ихдÑÑ {{max}} Ñ‚ÑмдÑгт."
-  text_tracker_no_workflow: ЭнÑÑ…Ò¯Ò¯ аÑуудлын чиглÑлд Ñмар ч ажлын дараалал тодорхойлогдоогүй байна
-  text_unallowed_characters: Ð¥ÑÑ€ÑглÑж болохгүй Ñ‚ÑмдÑгтүүд
-  text_comma_separated: ТаÑлалаар зааглан олон утга оруулж болно.
-  text_line_separated: Multiple values allowed (one line for each value).
-  text_issues_ref_in_commit_messages: Коммитийн зурваÑуудад хамааруулÑан болон байнгын аÑуудлууд
-  text_issue_added: "ÐÑуудал {{id}} - ийг Ñ…ÑÑ€ÑглÑгч {{author}} мÑдÑгдÑÑн байна."
-  text_issue_updated: "ÐÑуудал {{id}} - ийг Ñ…ÑÑ€ÑглÑгч {{author}} өөрчилÑөн байна."
-  text_wiki_destroy_confirmation: Та ÑÐ½Ñ Ð²Ð¸ÐºÐ¸ болон холбогдох бүх мÑдÑÑллийг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
-  text_issue_category_destroy_question: "Ð­Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ зарим аÑуудлууд ({{count}})  орÑон байна. Та Ñах Ð²Ñ ?"
-  text_issue_category_destroy_assignments: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð»Ð°Ð°Ñ Ð°Ð²Ð°Ñ…
-  text_issue_category_reassign_to: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ дахин оноох
-  text_user_mail_option: "Сонгогдоогүй төÑлүүдийн хувьд, та зөвхөн өөрийнхөө ажиглаж байгаа Ð·Ò¯Ð¹Ð»Ñ ÑŽÐ¼ÑƒÑƒ танд хамаатай зүйлÑийн талаар мÑдÑгдÑл авах болно (Таны оруулÑан аÑуудал, ÑÑвÑл танд онооÑон гÑÑ… мÑÑ‚)."
-  text_no_configuration_data: "Хандалтын Ñрхүүд, чиглÑлүүд, аÑуудлын төлвүүд болон ажлын дарааллын тухай мÑдÑÑллийг хараахан оруулаагүй байна.\nТа Ñтандарт өгөгдлүүдийг даруйхан оруулахыг зөвлөж байна, оруулÑан хойно та заÑварлаж болно."
-  text_load_default_configuration: Стандарт өгөгдлийг ачаалах
-  text_status_changed_by_changeset: "{{value}} өөрчлөлтөд хийгдÑÑн."
-  text_issues_destroy_confirmation: 'Та ÑонгогдÑон аÑуудлуудыг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?'
-  text_select_project_modules:  'Ð­Ð½Ñ Ñ‚Ó©Ñлийн хувьд идÑвхжүүлÑÑ… модулуудаа Ñонгоно уу:'
-  text_default_administrator_account_changed: Стандарт админиÑтраторын бүртгÑл өөрчлөгдлөө
-  text_file_repository_writable: ХавÑралт файл хадгалах Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
-  text_plugin_assets_writable: Плагин модулийн аÑÑет Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
-  text_rmagick_available: RMagick ÑуулгагдÑан (заавал биш)
-  text_destroy_time_entries_question: "Таны уÑтгах гÑж байгаа аÑуудлууд дÑÑÑ€ нийт {{hours}} цаг зарцуулÑан юм байна, та Ñах Ð²Ñ ?"
-  text_destroy_time_entries: МÑдÑгдÑÑн цагуудыг уÑтгах
-  text_assign_time_entries_to_project: МÑдÑгдÑÑн аÑуудлуудыг төÑөлд оноох
-  text_reassign_time_entries: 'МÑдÑгдÑÑн аÑуудлуудыг ÑÐ½Ñ Ð°Ñуудалд дахин оноо:'
-  text_user_wrote: "{{value}} бичихдÑÑ:"
-  text_enumeration_destroy_question: "Ð­Ð½Ñ ÑƒÑ‚Ð³Ð°Ð´ {{count}} обьект оноогдÑон байна."
-  text_enumeration_category_reassign_to: 'ТÑдгÑÑрийг ÑÐ½Ñ ÑƒÑ‚Ð³Ð°Ð´ дахин оноо:'
-  text_email_delivery_not_configured: "ИмÑйлийн тохиргоог хараахан тохируулаагүй байна, тиймÑÑÑ Ð¸Ð¼Ñйл мÑдÑгдÑл Ñвуулах боломжгүй байна.\nSMTP ÑервÑÑ€ÑÑ config/email.yml файл дотор тохируулаад төÑлийн менежерÑÑ Ð´Ð°Ñ…Ð¸Ð°Ð´ ÑхлүүлÑÑÑ€Ñй."
-  text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх Ñ…ÑÑ€ÑглÑгчийн нÑрүүдÑд харгалзÑан ТөÑлийн Менежер ÑиÑтемд бүртгÑлтÑй Ñ…ÑÑ€ÑглÑгчдийг Сонгох юмуу шинÑÑ‡Ð¸Ð»Ð½Ñ Ò¯Ò¯.\nТөÑлийн менежер болон репозиторид байгаа ижилхÑн нÑÑ€ юмуу имÑйлтÑй Ñ…ÑÑ€ÑглÑгчид харилцан харгалзна."
-  text_diff_truncated: '... Файлын Ñлгаврын Ñ…ÑмжÑÑ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…Ñд дÑндүү урт байгаа ÑƒÑ‡Ñ€Ð°Ð°Ñ Ñ‚Ó©Ð³ÑÐ³Ó©Ð»Ó©Ó©Ñ Ð½ÑŒ хаÑч үзүүлÑв.'
-  text_custom_field_possible_values_info: 'One line for each value'
-  text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
-  text_wiki_page_nullify_children: "Keep child pages as root pages"
-  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
-  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
-  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
-  
-  default_role_manager: Менежер
-  default_role_developer: ХөгжүүлÑгч
-  default_role_reporter: МÑдÑгдÑгч
-  default_tracker_bug: Ðлдаа
-  default_tracker_feature: Онцлог
-  default_tracker_support: ТуÑламж
-  default_issue_status_new: ШинÑ
-  default_issue_status_in_progress: Ðхицтай
-  default_issue_status_assigned: ОноогдÑон
-  default_issue_status_resolved: ШийдвÑрлÑгдÑÑн
-  default_issue_status_feedback: Feedback
-  default_issue_status_closed: ХаагдÑан
-  default_issue_status_rejected: ХүлÑÑж аваагүй
-  default_doc_category_user: Ð¥ÑÑ€ÑглÑгчийн бичиг баримт
-  default_doc_category_tech: Техникийн бичиг баримт
-  default_priority_low: Бага
-  default_priority_normal: Ð¥Ñвийн
-  default_priority_high: Өндөр
-  default_priority_urgent: ÐÑн Ñаралтай
-  default_priority_immediate: ÐÑн даруй
-  default_activity_design: Дизайн
-  default_activity_development: ХөгжүүлÑлт
-  
-  enumeration_issue_priorities: ÐÑуудлын зÑÑ€ÑглÑлүүд
-  enumeration_doc_categories: Бичиг баримтын ангиллууд
-  enumeration_activities: Үйл ажиллагаанууд (хугацааг Ñ…Ñнах)
-  enumeration_system_activity: СиÑтемийн үйл ажиллагаа
-
-  permission_manage_subtasks: Manage subtasks
-  label_profile: Profile
-  field_parent_issue: Parent task
-  error_unable_delete_issue_status: Unable to delete issue status
-  label_subtask_plural: Subtasks
-  label_project_copy_notifications: Send email notifications during the project copy
-  error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
-  error_can_not_remove_role: This role is in use and can not be deleted.
-  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
-  field_principal: Principal
-  label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
-  text_zoom_out: Zoom out
-  text_zoom_in: Zoom in
-  notice_unable_delete_time_entry: Unable to delete time log entry.
-  label_overall_spent_time: Overall spent time
-  field_time_entries: Log time
-  project_module_gantt: Gantt
-  project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+mn:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y/%m/%d"
+      short: "%b %d"
+      long: "%Y, %B %d"
+      
+    day_names: [Даваа, МÑгмар, Лхагва, ПүрÑв, БааÑан, БÑмба, ÐÑм]
+    abbr_day_names: [Дав, МÑг, Лха, Пүр, БÑн, БÑм, ÐÑм]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, 1-Ñ€ Ñар, 2-Ñ€ Ñар, 3-Ñ€ Ñар, 4-Ñ€ Ñар, 5-Ñ€ Ñар, 6-Ñ€ Ñар, 7-Ñ€ Ñар, 8-Ñ€ Ñар, 9-Ñ€ Ñар, 10-Ñ€ Ñар, 11-Ñ€ Ñар, 12-Ñ€ Ñар]
+    abbr_month_names: [~, 1Ñар, 2Ñар, 3Ñар, 4Ñар, 5Ñар, 6Ñар, 7Ñар, 8Ñар, 9Ñар, 10Ñар, 11Ñар, 12Ñар]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %I:%M %p"
+      time: "%I:%M %p"
+      short: "%d %b %H:%M"
+      long: "%Y, %B %d %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "Ñ…Ð°Ð³Ð°Ñ Ð¼Ð¸Ð½ÑƒÑ‚"
+      less_than_x_seconds:
+        one:   "Ñекунд орчим"
+        other: "%{count} ÑекундÑÑÑ Ð±Ð°Ð³Ð° хугацаа"
+      x_seconds:
+        one:   "1 Ñекунд"
+        other: "%{count} Ñекунд"
+      less_than_x_minutes:
+        one:   "Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
+        other: "%{count} Ð¼Ð¸Ð½ÑƒÑ‚Ð°Ð°Ñ Ð±Ð°Ð³Ð° хугацаа"
+      x_minutes:
+        one:   "1 минут"
+        other: "%{count} минут"
+      about_x_hours:
+        one:   "1 цаг орчим"
+        other: "ойролцоогоор %{count} цаг"
+      x_days:
+        one:   "1 өдөр"
+        other: "%{count} өдөр"
+      about_x_months:
+        one:   "1 Ñар орчим"
+        other: "ойролцоогоор %{count} Ñар"
+      x_months:
+        one:   "1 Ñар"
+        other: "%{count} Ñар"
+      about_x_years:
+        one:   "ойролцоогоор 1 жил"
+        other: "ойролцоогоор %{count} жил"
+      over_x_years:
+        one:   "1 жилÑÑÑ Ð¸Ñ…"
+        other: "%{count} жилÑÑÑ Ð¸Ñ…"
+      almost_x_years:
+        one:   "бараг 1 жил"
+        other: "бараг %{count} жил"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Байт"
+            other: "Байт"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+        
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "баÑ"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "жагÑаалтад заагдаагүй байна"
+        exclusion: "нөөцлөгдÑөн"
+        invalid: "буруу"
+        confirmation: "баталгаажÑан өгөгдөлтÑй таарахгүй байна"
+        accepted: "хүлÑÑж авах Ñ‘Ñтой"
+        empty: "хооÑон байж болохгүй"
+        blank: "бланк байж болохгүй"
+        too_long: "дÑндүү урт байна (хамгийн ихдÑÑ %{count} Ñ‚ÑмдÑгт)"
+        too_short: "дÑндүү богино байна (хамгийн багадаа %{count} Ñ‚ÑмдÑгт)"
+        wrong_length: "буруу урттай байна (заавал %{count} Ñ‚ÑмдÑгт)"
+        taken: "аль Ñ…ÑÐ´Ð¸Ð¹Ð½Ñ Ð°Ð²Ñан байна"
+        not_a_number: "тоо биш байна"
+        not_a_date: "зөв огноо биш байна"
+        greater_than: "%{count} их байх Ñ‘Ñтой"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
+        odd: "заавал Ñондгой"
+        even: "заавал Ñ‚Ñгш"
+        greater_than_start_date: "must be greater than start date"
+        not_same_project: "нÑг ижил төÑөлд хамаарахгүй байна"
+        circular_dependency: "Ð­Ð½Ñ Ñ…Ð°Ñ€ÑŒÑ†Ð°Ð° нь гинжин(рекурÑив) харьцаа Ò¯Ò¯ÑгÑÑ… юм байна"
+        cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+  actionview_instancetag_blank_option: Сонгоно уу
+  
+  general_text_No: 'Үгүй'
+  general_text_Yes: 'Тийм'
+  general_text_no: 'үгүй'
+  general_text_yes: 'тийм'
+  general_lang_name: 'Mongolian (Монгол)'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '7'
+  
+  notice_account_updated: ДанÑыг амжилттай өөрчиллөө.
+  notice_account_invalid_creditentials: Ð¥ÑÑ€ÑглÑгчийн нÑÑ€ ÑÑвÑл нууц үг буруу байна
+  notice_account_password_updated: Ðууц үгийг амжилттай өөрчиллөө.
+  notice_account_wrong_password: Буруу нууц үг
+  notice_account_register_done: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч амжилттай Ò¯Ò¯ÑгÑлÑÑ. ИдÑвхжүүлÑхийн тулд, бидний тань луу илгÑÑÑÑн мÑйл дотор байгаа Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дараарай.
+  notice_account_unknown_email: Үл мÑдÑгдÑÑ… Ñ…ÑÑ€ÑглÑгч.
+  notice_can_t_change_password: Ð­Ð½Ñ Ñрх гадаад нÑвтрÑлтÑд ашигладаг ÑƒÑ‡Ñ€Ð°Ð°Ñ Ð½ÑƒÑƒÑ† үгийг өөрчлөх боломжгүй.
+  notice_account_lost_email_sent: Бид таньд мÑйлÑÑÑ€ нууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ… зааврыг илгÑÑÑÑн байгаа.
+  notice_account_activated: Таны Ð´Ð°Ð½Ñ Ð¸Ð´ÑвхжлÑÑ. Одоо нÑвтÑрч орж болно.
+  notice_successful_create: Ðмжилттай Ò¯Ò¯ÑгÑлÑÑ.
+  notice_successful_update: Ðмжилттай өөрчиллөө.
+  notice_successful_delete: Ðмжилттай уÑтгалаа.
+  notice_successful_connection: Ðмжилттай холбогдлоо.
+  notice_file_not_found: Таны үзÑÑ… гÑÑÑн Ñ…ÑƒÑƒÐ´Ð°Ñ Ð±Ð°Ð¹Ñ…Ð³Ò¯Ð¹ юмуу уÑтгагдÑан байна.
+  notice_locking_conflict: Өгөгдлийг Ó©Ó©Ñ€ хүн өөрчилÑөн байна.
+  notice_not_authorized: Танд ÑÐ½Ñ Ñ…ÑƒÑƒÐ´Ñыг үзÑÑ… Ñрх байхгүй байна.
+  notice_email_sent: "%{value} - руу мÑйл илгÑÑлÑÑ"
+  notice_email_error: "МÑйл илгÑÑÑ…Ñд алдаа гарлаа (%{value})"
+  notice_feeds_access_key_reseted: Таны RSS хандалтын түлхүүрийг дахин ÑхлүүллÑÑ.
+  notice_api_access_key_reseted: Your API access key was reset.
+  notice_failed_to_save_issues: "%{total} аÑуудал ÑонгогдÑÐ¾Ð½Ð¾Ð¾Ñ %{count} аÑуудлыг нь хадгалахад алдаа гарлаа: %{ids}."
+  notice_no_issue_selected: "Ямар ч аÑуудал Ñонгогдоогүй байна! ЗаÑварлах аÑуудлуудаа Ñонгоно уу."
+  notice_account_pending: "Таны данÑыг Ò¯Ò¯ÑгÑж дууÑлаа, админиÑтратор баталгаажуулах хүртÑл хүлÑÑÐ½Ñ Ò¯Ò¯."
+  notice_default_data_loaded: Стандарт тохиргоог амжилттай ачааллаа.
+  notice_unable_delete_version: Хувилбарыг уÑтгах боломжгүй.
+  notice_issue_done_ratios_updated: Issue done ratios updated.
+  
+  error_can_t_load_default_data: "Стандарт тохиргоог ачаалж чадÑангүй: %{value}"
+  error_scm_not_found: "Repository дотор тухайн бичлÑг ÑÑвÑл хувилбарыг олÑонгүй."
+  error_scm_command_failed: "Repository-д хандахад алдаа гарлаа:  %{value}"
+  error_scm_annotate: "БичлÑг байхгүй байна, ÑÑвÑл бичлÑгт тайлбар хавÑаргаж болохгүй."
+  error_issue_not_found_in_project: 'СонгоÑон аÑуудал ÑÐ½Ñ Ñ‚Ó©Ñөлд хамаардаггүй юм уу ÑÑвÑл ÑиÑтемд байхгүй байна.'
+  error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+  error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+  error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+  error_can_not_archive_project: This project can not be archived
+  error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+  error_workflow_copy_source: 'Please select a source tracker or role'
+  error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+  
+  warning_attachments_not_saved: "%{count} file(s) файлыг хадгалж чадÑангүй."
+  
+  mail_subject_lost_password: "Таны %{value} нууц үг"
+  mail_body_lost_password: 'Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…Ð¸Ð¹Ð½ тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
+  mail_subject_register: "Таны %{value} данÑыг идÑвхжүүлÑÑ…"
+  mail_body_register: 'ДанÑаа идÑвхжүүлÑхийн тулд доорх Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð´ÑÑÑ€ дарна уу:'
+  mail_body_account_information_external: "Та өөрийнхөө %{value} данÑыг ашиглаж холбогдож болно."
+  mail_body_account_information: Таны данÑны тухай мÑдÑÑлÑл
+  mail_subject_account_activation_request: "%{value} данÑыг идÑвхжүүлÑÑ… Ñ…Ò¯ÑÑлт"
+  mail_body_account_activation_request: "Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч (%{value}) бүртгүүлÑÑн байна. Таны баталгаажуулахыг хүлÑÑж байна:"
+  mail_subject_reminder: "Дараагийн өдрүүдÑд %{count} аÑуудлыг шийдÑÑ… Ñ…ÑÑ€ÑгтÑй (%{days})"
+  mail_body_reminder: "Танд оноогдÑон %{count} аÑуудлуудыг дараагийн %{days} өдрүүдÑд шийдÑÑ… Ñ…ÑÑ€ÑгтÑй:"
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+  mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+  
+  gui_validation_error: 1 алдаа
+  gui_validation_error_plural: "%{count} алдаа"
+  
+  field_name: ÐÑÑ€
+  field_description: Тайлбар
+  field_summary: ДүгнÑлт
+  field_is_required: Зайлшгүй
+  field_firstname: Таны нÑÑ€
+  field_lastname: Овог
+  field_mail: ИмÑйл
+  field_filename: Файл
+  field_filesize: Ð¥ÑмжÑÑ
+  field_downloads: Татаж авах зүйлÑ
+  field_author: Зохиогч
+  field_created_on: Ò®Ò¯ÑÑÑн
+  field_updated_on: ӨөрчилÑөн
+  field_field_format: Формат
+  field_is_for_all: Бүх төÑлийн хувьд
+  field_possible_values: Боломжтой утгууд
+  field_regexp: Энгийн илÑрхийлÑл
+  field_min_length: Минимум урт
+  field_max_length: МакÑимум урт
+  field_value: Утга
+  field_category: Төрөл
+  field_title: Гарчиг
+  field_project: ТөÑөл
+  field_issue: ÐÑуудал
+  field_status: Төлөв
+  field_notes: ТÑмдÑглÑлүүд
+  field_is_closed: ÐÑуудал хаагдÑан
+  field_is_default: Стандарт утга
+  field_tracker: ЧиглÑл
+  field_subject: Гарчиг
+  field_due_date: ДууÑах огноо
+  field_assigned_to: ОноогдÑон
+  field_priority: ЗÑÑ€ÑглÑл
+  field_fixed_version: Хувилбар
+  field_user: Ð¥ÑÑ€ÑглÑгч
+  field_role: Хандалтын Ñрх
+  field_homepage: Ðүүр хуудаÑ
+  field_is_public: Олон нийтийн
+  field_parent: ЭцÑг төÑөл нь
+  field_is_in_roadmap: ÐÑуудлуудыг Ñвцын зураг дÑÑÑ€ харуулах
+  field_login: ÐÑвтрÑÑ… нÑÑ€
+  field_mail_notification: ИмÑйл мÑдÑгдлүүд
+  field_admin: ÐдминиÑтратор
+  field_last_login_on: Сүүлийн холбоо
+  field_language: Ð¥Ñл
+  field_effective_date: Огноо
+  field_password: Ðууц үг
+  field_new_password: Ð¨Ð½Ð½Ñ Ð½ÑƒÑƒÑ† үг
+  field_password_confirmation: Баталгаажуулах
+  field_version: Хувилбар
+  field_type: Төрөл
+  field_host: ХоÑÑ‚
+  field_port: Порт
+  field_account: ДанÑ
+  field_base_dn: ҮндÑÑн ДÐ
+  field_attr_login: ÐÑвтрÑÑ… аттрибут
+  field_attr_firstname: Таны нÑÑ€ аттрибут
+  field_attr_lastname: Овог аттрибут
+  field_attr_mail: ИмÑйл аттрибут
+  field_onthefly: Ð¥Ò¯ÑÑÑн үедÑÑ Ñ…ÑÑ€ÑглÑгч Ò¯Ò¯ÑгÑÑ…
+  field_start_date: ЭхлÑл
+  field_done_ratio: %% ГүйцÑтгÑÑÑн
+  field_auth_source: ÐÑвтрÑÑ… арга
+  field_hide_mail: Миний имÑйл хаÑгийг нуу
+  field_comments: Тайлбар
+  field_url: URL ХаÑг
+  field_start_page: ТÑргүүн хуудаÑ
+  field_subproject: ДÑд төÑөл
+  field_hours: Цаг
+  field_activity: Үйл ажиллагаа
+  field_spent_on: Огноо
+  field_identifier: ТөÑлийн глобал нÑÑ€
+  field_is_filter: Шүүлтүүр болгон Ñ…ÑÑ€ÑглÑгддÑг
+  field_issue_to: Хамаатай аÑуудал
+  field_delay: Хоцролт
+  field_assignable: Ð­Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ ÑрхÑд аÑуудлуудыг оноож өгч болно
+  field_redirect_existing_links: Байгаа холбооÑуудыг дахин чиглүүлÑÑ…
+  field_estimated_hours: БарагцаалÑан цаг
+  field_column_names: Баганууд
+  field_time_zone: Цагын бүÑ
+  field_searchable: Хайж болох
+  field_default_value: Стандарт утга
+  field_comments_sorting: Тайлбаруудыг харуул
+  field_parent_title: ЭцÑг хуудаÑ
+  field_editable: ЗаÑварлагдана
+  field_watcher: Харна
+  field_identity_url: OpenID URL
+  field_content: Ðгуулга
+  field_group_by: Үр дүнгÑÑÑ€ бүлÑглÑÑ…
+  field_sharing: Sharing
+  
+  setting_app_title: Программын гарчиг
+  setting_app_subtitle: Программын дÑд гарчиг
+  setting_welcome_text: МÑндчилгÑÑ
+  setting_default_language: Стандарт Ñ…Ñл
+  setting_login_required: ÐÑвтрÑÑ… шаардлагатай
+  setting_self_registration: Өөрийгөө бүртгүүлÑÑ…
+  setting_attachment_max_size: ХавÑралт файлын дÑÑд Ñ…ÑмжÑÑ
+  setting_issues_export_limit: ÐÑуудал ÑкÑпортлох Ñ…Ñзгаар
+  setting_mail_from: Ямар имÑйл хаÑг Ò¯Ò¯ÑгÑÑ…
+  setting_bcc_recipients: BCC талбарын хаÑгууд (bcc)
+  setting_plain_text_mail: дан текÑÑ‚ мÑйл (HTML биш)
+  setting_host_name: ХоÑтын нÑÑ€ болон зам
+  setting_text_formatting: ТекÑÑ‚ Ñ…ÑлбÑржүүлÑлт
+  setting_wiki_compression: Вики хуудÑуудын түүх дÑÑÑ€ шахалт хийх
+  setting_feeds_limit: Фийд агуулгын Ñ…Ñзгаар
+  setting_default_projects_public: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñлүүд автоматаар олон нийтийнх байна
+  setting_autofetch_changesets: Комитуудыг автоматаар татаж авах
+  setting_sys_api_enabled: Репозитори менежментÑд зориулан WS-ийг идÑвхжүүлÑÑ…
+  setting_commit_ref_keywords: Хамааруулах түлхүүр үгÑ
+  setting_commit_fix_keywords: Зоолттой түлхүүр үгÑ
+  setting_autologin: Компьютер дÑÑÑ€ Ñанах
+  setting_date_format: Огнооны формат
+  setting_time_format: Цагийн формат
+  setting_cross_project_issue_relations: ТөÑөл хооронд аÑуудал хамааруулахыг зөвшөөрөх
+  setting_issue_list_default_columns: ÐÑуудлуудыг харуулах Ñтандарт баганууд
+  setting_repositories_encodings: Репозиторийн Ñнкодинг
+  setting_commit_logs_encoding: Коммит хийх үед харуулах текÑтүүдийн Ñнкодинг
+  setting_emails_footer: ИмÑйлүүдийн хөл Ñ…ÑÑÑг
+  setting_protocol: Протокол
+  setting_per_page_options: ÐÑг хуудÑанд байх обьектуудын тохиргоо
+  setting_user_format: Ð¥ÑÑ€ÑглÑгчдийг харуулах формат
+  setting_activity_days_default: ТөÑлийн үйл ажиллагаа Ñ…ÑÑÑгт үзүүлÑÑ… өдрийн тоо
+  setting_display_subprojects_issues: ДÑд төÑлүүдийн аÑуудлуудыг автоматаар гол төÑөл дÑÑÑ€ харуулах
+  setting_enabled_scm: SCM - ийг идÑвхжүүлÑÑ…
+  setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+  setting_mail_handler_api_enabled: ИрÑÑн мÑйлүүдийн хувьд WS-ийг идÑвхжүүлÑÑ…
+  setting_mail_handler_api_key: API түлхүүр
+  setting_sequential_project_identifiers: ДÑÑ Ð´Ð°Ñ€Ð°Ð°Ð»Ñан төÑлийн глобал нÑÑ€ Ò¯Ò¯ÑгÑж байх
+  setting_gravatar_enabled: Gravatar дүрÑүүдийг Ñ…ÑÑ€ÑглÑгчдÑд Ñ…ÑÑ€ÑглÑж байх
+  setting_gravatar_default: Default Gravatar image
+  setting_diff_max_lines_displayed: Ялгаатай мөрүүдийн тоо (дÑÑд тал нь)
+  setting_file_max_size_displayed: Max size of text files displayed inline
+  setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+  setting_openid: Allow OpenID login and registration
+  setting_password_min_length: Minimum password length
+  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+  setting_default_projects_modules: Default enabled modules for new projects
+  setting_issue_done_ratio: Calculate the issue done ratio with
+  setting_issue_done_ratio_issue_field: Use the issue field
+  setting_issue_done_ratio_issue_status: Use the issue status
+  setting_start_of_week: Start calendars on
+  setting_rest_api_enabled: Enable REST web service
+  setting_cache_formatted_text: Cache formatted text
+  
+  permission_add_project: Create project
+  permission_add_subprojects: Create subprojects
+  permission_edit_project: ТөÑлийг заÑварлах
+  permission_select_project_modules: ТөÑлийн модулуудийг Ñонгоно уу
+  permission_manage_members: СиÑтемийн Ñ…ÑÑ€ÑглÑгчид
+  permission_manage_project_activities: Manage project activities
+  permission_manage_versions: Хувилбарууд
+  permission_manage_categories: ÐÑуудлын ангиллууд
+  permission_view_issues: ÐÑуудлуудыг харах
+  permission_add_issues: ÐÑуудлууд нÑмÑÑ…
+  permission_edit_issues: ÐÑуудлуудыг заÑварлах
+  permission_manage_issue_relations: ÐÑуудлын хамаарлыг зохицуулах
+  permission_add_issue_notes: ТÑмдÑглÑл нÑмÑÑ…
+  permission_edit_issue_notes: ТÑмдÑглÑлүүд заÑварлах
+  permission_edit_own_issue_notes: Өөрийн үлдÑÑÑÑн Ñ‚ÑмдÑглÑлүүдийг заÑварлах
+  permission_move_issues: ÐÑуудлуудыг зөөх
+  permission_delete_issues: ÐÑуудлуудыг уÑтгах
+  permission_manage_public_queries: Олон нийтийн аÑуултууд
+  permission_save_queries: ÐÑуултуудыг хадгалах
+  permission_view_gantt: Гант диаграмыг үзÑÑ…
+  permission_view_calendar: Календарь үзÑÑ…
+  permission_view_issue_watchers: Ðжиглагчдын жагÑаалтыг харах
+  permission_add_issue_watchers: Ðжиглагчид нÑмÑÑ…
+  permission_delete_issue_watchers: Ðжиглагчдыг уÑтгах
+  permission_log_time: ЗарцуулÑан хугацааг лог хийх
+  permission_view_time_entries: ЗарцуулÑан хугацааг харах
+  permission_edit_time_entries: Хугацааны логуудыг заÑварлах
+  permission_edit_own_time_entries: Өөрийн хугацааны логуудыг заÑварлах
+  permission_manage_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
+  permission_comment_news: МÑдÑÑнд тайлбар үлдÑÑÑ…
+  permission_manage_documents: Бичиг баримтууд
+  permission_view_documents: Бичиг баримтуудыг харах
+  permission_manage_files: Файлууд
+  permission_view_files: Файлуудыг харах
+  permission_manage_wiki: Вики удирдах
+  permission_rename_wiki_pages: Вики хуудÑуудыг дахиж нÑрлÑÑ…
+  permission_delete_wiki_pages: Вики хуудÑуудыг уÑтгах
+  permission_view_wiki_pages: Вики үзÑÑ…
+  permission_view_wiki_edits: Вики түүх үзÑÑ…
+  permission_edit_wiki_pages: Вики хуудÑуудыг заÑварлах
+  permission_delete_wiki_pages_attachments: ХавÑралтуудыг уÑтгах
+  permission_protect_wiki_pages: Вики хуудÑуудыг хамгаалах
+  permission_manage_repository: Репозитори
+  permission_browse_repository: Репозиторийг үзÑÑ…
+  permission_view_changesets: Өөрчлөлтүүдийг харах
+  permission_commit_access: Коммит хандалт
+  permission_manage_boards: Самбарууд
+  permission_view_messages: ЗурваÑуудыг харах
+  permission_add_messages: Ð—ÑƒÑ€Ð²Ð°Ñ Ð¸Ð»Ð³ÑÑÑ…
+  permission_edit_messages: ЗурваÑуудыг заÑварлах
+  permission_edit_own_messages: Өөрийн зурваÑуудыг заÑварлах
+  permission_delete_messages: ЗурваÑуудыг уÑтгах
+  permission_delete_own_messages: Өөрийн зурваÑуудыг уÑтгах
+  permission_export_wiki_pages: Вики хуудÑуудыг ÑкÑпорт хийх
+  
+  project_module_issue_tracking: ÐÑуудал Ñ…Ñнах
+  project_module_time_tracking: Хугацаа Ñ…Ñнах
+  project_module_news: МÑдÑÑ Ð¼ÑдÑÑллүүд
+  project_module_documents: Бичиг баримтууд
+  project_module_files: Файлууд
+  project_module_wiki: Вики
+  project_module_repository: Репозитори
+  project_module_boards: Самбарууд
+  
+  label_user: Ð¥ÑÑ€ÑглÑгч
+  label_user_plural: Ð¥ÑÑ€ÑглÑгчид
+  label_user_new: Ð¨Ð¸Ð½Ñ Ñ…ÑÑ€ÑглÑгч
+  label_user_anonymous: Хамаагүй Ñ…ÑÑ€ÑглÑгч
+  label_project: ТөÑөл
+  label_project_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ñөл
+  label_project_plural: ТөÑлүүд
+  label_x_projects:
+    zero:  төÑөл байхгүй
+    one:   1 төÑөл
+    other: "%{count} төÑлүүд"
+  label_project_all: Бүх ТөÑлүүд
+  label_project_latest: Сүүлийн үеийн төÑлүүд
+  label_issue: ÐÑуудал
+  label_issue_new: Ð¨Ð¸Ð½Ñ Ð°Ñуудал
+  label_issue_plural: ÐÑуудлууд
+  label_issue_view_all: Бүх аÑуудлуудыг харах
+  label_issues_by: "%{value} - н аÑуудлууд"
+  label_issue_added: ÐÑуудал нÑмÑгдлÑÑ
+  label_issue_updated: ÐÑуудал өөрчлөгдлөө
+  label_document: Бичиг баримт
+  label_document_new: Ð¨Ð¸Ð½Ñ Ð±Ð¸Ñ‡Ð¸Ð³ баримт
+  label_document_plural: Бичиг баримтууд
+  label_document_added: Бичиг баримт нÑмÑгдлÑÑ
+  label_role: Хандалтын Ñрх
+  label_role_plural: Хандалтын Ñрхүүд
+  label_role_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð½Ð´Ð°Ð»Ñ‚Ñ‹Ð½ Ñрх
+  label_role_and_permissions: Хандалтын Ñрхүүд болон зөвшөөрлүүд
+  label_member: Гишүүн
+  label_member_new: Ð¨Ð¸Ð½Ñ Ð³Ð¸ÑˆÒ¯Ò¯Ð½
+  label_member_plural: Гишүүд
+  label_tracker: ЧиглÑл
+  label_tracker_plural: ЧиглÑлүүд
+  label_tracker_new: Ð¨Ð¸Ð½Ñ Ñ‡Ð¸Ð³Ð»Ñл
+  label_workflow: Ðжлын дараалал
+  label_issue_status: ÐÑуудлын төлөв
+  label_issue_status_plural: ÐÑуудлын төлвүүд
+  label_issue_status_new: Ð¨Ð¸Ð½Ñ Ñ‚Ó©Ð»Ó©Ð²
+  label_issue_category: ÐÑуудлын ангилал
+  label_issue_category_plural: ÐÑуудлын ангиллууд
+  label_issue_category_new: Ð¨Ð¸Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»
+  label_custom_field: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбар
+  label_custom_field_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон талбарууд
+  label_custom_field_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон талбар Ò¯Ò¯ÑгÑÑ…
+  label_enumerations: Ðнгиллууд
+  label_enumeration_new: Ð¨Ð¸Ð½Ñ ÑƒÑ‚Ð³Ð°
+  label_information: МÑдÑÑлÑл
+  label_information_plural: МÑдÑÑллүүд
+  label_please_login: ÐÑвтÑрч орно уу
+  label_register: БүртгүүлÑÑ…
+  label_login_with_open_id_option: or login with OpenID
+  label_password_lost: Ðууц үгÑÑ Ð°Ð»Ð´Ñан
+  label_home: Ðүүр
+  label_my_page: Миний хуудаÑ
+  label_my_account: Миний данÑ
+  label_my_projects: Миний төÑлүүд
+  label_administration: Ðдмин Ñ…ÑÑÑг
+  label_login: ÐÑвтрÑÑ…
+  label_logout: Гарах
+  label_help: ТуÑламж
+  label_reported_issues: МÑдÑгдÑÑн аÑуудлууд
+  label_assigned_to_me_issues: Ðадад оноогдÑон аÑуудлууд
+  label_last_login: Сүүлийн холболт
+  label_registered_on: БүртгүүлÑÑн огноо
+  label_activity: Үйл ажиллагаа
+  label_overall_activity: Ерөнхий үйл ажиллагаа
+  label_user_activity: "%{value}-ийн үйл ажиллагаа"
+  label_new: ШинÑ
+  label_logged_as: ХолбогдÑон нÑÑ€
+  label_environment: Орчин
+  label_authentication: ÐÑвтрÑÑ…
+  label_auth_source: ÐÑвтрÑÑ… арга
+  label_auth_source_new: Ð¨Ð¸Ð½Ñ Ð½ÑвтрÑÑ… арга
+  label_auth_source_plural: ÐÑвтрÑÑ… аргууд
+  label_subproject_plural: ДÑд төÑлүүд
+  label_subproject_new: Ð¨Ð¸Ð½Ñ Ð´Ñд төÑөл
+  label_and_its_subprojects: "%{value} болон холбогдох дÑд төÑлүүд"
+  label_min_max_length: ДÑÑд - Доод урт
+  label_list: ЖагÑаалт
+  label_date: Огноо
+  label_integer: БүхÑл тоо
+  label_float: Бутархай тоо
+  label_boolean: ҮнÑн худал утга
+  label_string: ТекÑÑ‚
+  label_text: Урт текÑÑ‚
+  label_attribute: Ðттрибут
+  label_attribute_plural: Ðттрибутууд
+  label_download: "%{count} Татаж авÑан зүйл"
+  label_download_plural: "%{count} Татаж авÑан зүйлÑ"
+  label_no_data: ҮзүүлÑÑ… өгөгдөл байхгүй байна
+  label_change_status: Төлвийг өөрчлөх
+  label_history: Түүх
+  label_attachment: Файл
+  label_attachment_new: Ð¨Ð¸Ð½Ñ Ñ„Ð°Ð¹Ð»
+  label_attachment_delete: Файл уÑтгах
+  label_attachment_plural: Файлууд
+  label_file_added: Файл нÑмÑгдлÑÑ
+  label_report: Тайлан
+  label_report_plural: Тайлангууд 
+  label_news: МÑдÑÑ
+  label_news_new: Ð¨Ð¸Ð½Ñ Ð¼ÑдÑÑ
+  label_news_plural: МÑдÑÑ
+  label_news_latest: Сүүлийн үеийн мÑдÑÑнүүд
+  label_news_view_all: Бүх мÑдÑÑг харах
+  label_news_added: МÑдÑÑ Ð½ÑмÑгдлÑÑ
+  label_change_log: Өөрчлөлтийн лог
+  label_settings: Тохиргоо
+  label_overview: ЭхлÑл
+  label_version: Хувилбар
+  label_version_new: Ð¨Ð¸Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€
+  label_version_plural: Хувилбарууд
+  label_close_versions: ГүйцÑÑ‚ хувилбаруудыг хаалаа
+  label_confirmation: Баталгаажуулах
+  label_export_to: 'Өөр авч болох формат:'
+  label_read: Унших...
+  label_public_projects: Олон нийтийн төÑлүүд
+  label_open_issues: нÑÑлттÑй
+  label_open_issues_plural: нÑÑлттÑй
+  label_closed_issues: хаалттай
+  label_closed_issues_plural: хаалттай
+  label_x_open_issues_abbr_on_total:
+    zero:  0 нÑÑлттÑй / %{total}
+    one:   1 нÑÑлттÑй / %{total}
+    other: "%{count} нÑÑлттÑй / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 нÑÑлттÑй
+    one:   1 нÑÑлттÑй
+    other: "%{count} нÑÑлттÑй"
+  label_x_closed_issues_abbr:
+    zero:  0 хаалттай
+    one:   1 хаалттай
+    other: "%{count} хаалттай"
+  label_total: Ðийт
+  label_permissions: Зөвшөөрлүүд
+  label_current_status: Одоогийн төлөв
+  label_new_statuses_allowed: ШинÑÑÑ€ олгож болох төлвүүд
+  label_all: бүгд
+  label_none: хооÑон
+  label_nobody: Ñ…Ñн ч биш
+  label_next: Дараагийн
+  label_previous: Өмнөх
+  label_used_by: Ð¥ÑÑ€ÑглÑгддÑг
+  label_details: ДÑлгÑÑ€Ñнгүй
+  label_add_note: ТÑмдÑглÑл нÑмÑÑ…
+  label_per_page: ÐÑг хуудÑанд
+  label_calendar: Календарь
+  label_months_from: Саруудыг хаанааÑ
+  label_gantt: Гант диаграм
+  label_internal: Дотоод
+  label_last_changes: "Ñүүлийн %{count} өөрчлөлтүүд"
+  label_change_view_all: Бүх өөрчлөлтүүдийг харах
+  label_personalize_page: Ð­Ð½Ñ Ñ…ÑƒÑƒÐ´Ñыг өөрт зориулан өөрчлөх
+  label_comment: Тайлбар
+  label_comment_plural: Тайлбарууд
+  label_x_comments:
+    zero: ÑÑтгÑгдÑл байхгүй
+    one: 1 ÑÑтгÑгдÑлтÑй
+    other: "%{count} ÑÑтгÑгдÑлтÑй"
+  label_comment_add: Тайлбар нÑмÑÑ…
+  label_comment_added: Тайлбар нÑмÑгдлÑÑ
+  label_comment_delete: Тайлбарууд уÑтгах
+  label_query: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт
+  label_query_plural: Ð¥ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуултууд
+  label_query_new: ШинÑÑÑ€ Ñ…ÑÑ€ÑглÑгчийн тодорхойлÑон аÑуулт Ò¯Ò¯ÑгÑÑ…
+  label_filter_add: Шүүлтүүр нÑмÑÑ…
+  label_filter_plural: Шүүлтүүрүүд
+  label_equals: бол
+  label_not_equals: биш
+  label_in_less_than: Ð°Ð°Ñ Ð±Ð°Ð³Ð°
+  label_in_more_than: Ð°Ð°Ñ Ð¸Ñ…
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: дотор
+  label_today: өнөөдөр
+  label_all_time: бүх хугацаа
+  label_yesterday: өчигдөр
+  label_this_week: ÑÐ½Ñ Ð´Ð¾Ð»Ð¾Ð¾ хоног
+  label_last_week: өнгөрÑөн долоо хоног
+  label_last_n_days: "Ñүүлийн %{count} өдрүүд"
+  label_this_month: ÑÐ½Ñ Ñар
+  label_last_month: Ñүүлийн Ñар
+  label_this_year: ÑÐ½Ñ Ð¶Ð¸Ð»
+  label_date_range: Ð¥Ñзгаар огноо
+  label_less_than_ago: бага өдрийн дотор
+  label_more_than_ago: их өдрийн дотор
+  label_ago: өдрийн өмнө
+  label_contains: агуулж байгаа
+  label_not_contains: агуулаагүй
+  label_day_plural: өдрүүд
+  label_repository: Репозитори
+  label_repository_plural: Репозиторууд
+  label_browse: ҮзÑÑ…
+  label_modification: "%{count} өөрчлөлт"
+  label_modification_plural: "%{count} өөрчлөлтүүд"
+  label_branch: Салбар
+  label_tag: Шошго 
+  label_revision: Хувилбар
+  label_revision_plural: Хувилбарууд
+  label_revision_id: "%{value} Хувилбар"
+  label_associated_revisions: Хамааралтай хувилбарууд
+  label_added: нÑмÑгдÑÑн
+  label_modified: өөрчлөгдÑөн
+  label_copied: хуулÑан
+  label_renamed: нÑрийг нь өөрчилÑөн
+  label_deleted: уÑтгаÑан
+  label_latest_revision: Сүүлийн үеийн хувилбар
+  label_latest_revision_plural: Сүүлийн үеийн хувилбарууд
+  label_view_revisions: Хувилбаруудыг харах
+  label_view_all_revisions: Бүх хувилбаруудыг харах
+  label_max_size: Maximum size
+  label_sort_highest: Хамгийн дÑÑÑ€
+  label_sort_higher: ДÑÑш нь
+  label_sort_lower: Доош нь
+  label_sort_lowest: Хамгийн доор
+  label_roadmap: Хөтөч
+  label_roadmap_due_in: "%{value} дотор дууÑгах"
+  label_roadmap_overdue: "%{value} оройтÑон"
+  label_roadmap_no_issues: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€Ñ‚ аÑуудал байхгүй байна
+  label_search: Хайх
+  label_result_plural: Үр дүн
+  label_all_words: Бүх үгÑ
+  label_wiki: Вики
+  label_wiki_edit: Вики заÑвар
+  label_wiki_edit_plural: Вики заÑварууд
+  label_wiki_page: Вики хуудаÑ
+  label_wiki_page_plural: Вики хуудаÑ
+  label_index_by_title: Гарчгаар ÑÑ€ÑмбÑлÑÑ…
+  label_index_by_date: Огноогоор ÑÑ€ÑмбÑлÑÑ…
+  label_current_version: Одоогийн хувилбар
+  label_preview: Ямар харагдахыг шалгах
+  label_feed_plural: Feeds
+  label_changes_details: Бүх өөрчлөлтүүдийн дÑлгÑÑ€Ñнгүй
+  label_issue_tracking: ÐÑуудал Ñ…Ñнах
+  label_spent_time: ЗарцуулÑан хугацаа
+  label_f_hour: "%{value} цаг"
+  label_f_hour_plural: "%{value} цаг"
+  label_time_tracking: Хугацааг Ñ…Ñнах
+  label_change_plural: Өөрчлөлтүүд
+  label_statistics: СтатиÑтик
+  label_commits_per_month: Сард хийÑÑн коммитын тоо
+  label_commits_per_author: Зохиогч бүрийн хувьд коммитын тоо
+  label_view_diff: Ялгаануудыг харах
+  label_diff_inline: дотор нь
+  label_diff_side_by_side: зÑÑ€Ñгцүүлж
+  label_options: Тохиргоо
+  label_copy_workflow_from: Ðжлын дарааллыг хуулах
+  label_permissions_report: Зөвшөөрлүүдийн таблиц
+  label_watched_issues: Ðжиглагдаж байгаа аÑуудлууд
+  label_related_issues: Хамааралтай аÑуудлууд
+  label_applied_status: ОлгоÑон төлөв
+  label_loading: Ðчаалж байна...
+  label_relation_new: Ð¨Ð¸Ð½Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»
+  label_relation_delete: Хамаарлыг уÑтгах
+  label_relates_to: Ñнгийн хамааралтай
+  label_duplicates: Ñ…Ð¾Ñ Ñ…Ð°Ð¼Ð°Ð°Ñ€Ð°Ð»Ñ‚Ð°Ð¹
+  label_duplicated_by: давхардуулÑан ÑзÑн
+  label_blocks: шаардах хамааралтай
+  label_blocked_by: блоколÑон ÑзÑн
+  label_precedes: урьдчилах хамааралтай
+  label_follows: дагаж
+  label_end_to_start: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ урагшаа
+  label_end_to_end: Ñ…Ð¾Ð¹Ð½Ð¾Ð¾Ñ Ð½ÑŒ хойшоо
+  label_start_to_start: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ урагаа
+  label_start_to_end: ÑƒÑ€Ð´Ð°Ð°Ñ Ð½ÑŒ хойшоо
+  label_stay_logged_in: Ð­Ð½Ñ ÐºÐ¾Ð¼ÑŒÑŽÑ‚ÐµÑ€ дÑÑÑ€ Ñанах
+  label_disabled: идÑвхгүй болÑон
+  label_show_completed_versions: ГүйцÑд хувилбаруудыг харуулах
+  label_me: би
+  label_board: Форум
+  label_board_new: Ð¨Ð¸Ð½Ñ Ñ„Ð¾Ñ€ÑƒÐ¼
+  label_board_plural: Форумууд
+  label_board_locked: ТүгжÑÑÑ‚Ñй
+  label_board_sticky: Sticky
+  label_topic_plural: СÑдвүүд
+  label_message_plural: ЗурваÑууд
+  label_message_last: Сүүлийн зурваÑ
+  label_message_new: Ð¨Ð¸Ð½Ñ Ð·ÑƒÑ€Ð²Ð°Ñ
+  label_message_posted: Ð—ÑƒÑ€Ð²Ð°Ñ Ð½ÑмÑгдлÑÑ
+  label_reply_plural: Хариултууд
+  label_send_information: ДанÑны мÑдÑÑллийг Ñ…ÑÑ€ÑглÑгчид илгÑÑÑ…
+  label_year: Жил
+  label_month: Сар
+  label_week: Долоо хоног
+  label_date_from: Ð¥ÑзÑÑнÑÑÑ
+  label_date_to: Ð¥Ñдий хүртÑл
+  label_language_based: Ð¥ÑÑ€ÑглÑгчийн Ñ…ÑÐ»Ð½Ð°Ñ ÑˆÐ°Ð»Ñ‚Ð³Ð°Ð°Ð»Ð°Ð½
+  label_sort_by: "%{value} талбараар нь ÑÑ€ÑмбÑлÑÑ…"
+  label_send_test_email: Турших мÑйл илгÑÑÑ…
+  label_feeds_access_key: RSS хандах түлхүүр
+  label_missing_feeds_access_key: RSS хандах түлхүүр алга
+  label_feeds_access_key_created_on: "RSS хандалтын түлхүүр %{value}-ийн өмнө Ò¯Ò¯ÑÑÑн"
+  label_module_plural: Модулууд
+  label_added_time_by: "%{author} %{age}-ийн өмнө нÑмÑÑн"
+  label_updated_time_by: "%{author} %{age}-ийн өмнө өөрчилÑөн"
+  label_updated_time: "%{value} -ийн өмнө өөрчлөгдÑөн"
+  label_jump_to_a_project: ТөÑөл Ñ€Ò¯Ò¯ очих...
+  label_file_plural: Файлууд
+  label_changeset_plural: Өөрчлөлтүүд
+  label_default_columns: Стандарт баганууд
+  label_no_change_option: (Өөрчлөлт байхгүй)
+  label_bulk_edit_selected_issues: СонгогдÑон аÑуудлуудыг бөөнөөр заÑварлах
+  label_theme: СиÑтемийн Дизайн
+  label_default: Стандарт
+  label_search_titles_only: Зөвхөн гарчиг хайх
+  label_user_mail_option_all: "Миний бүх төÑөл дÑÑрх бүх үзÑгдлүүдийн хувьд"
+  label_user_mail_option_selected: "СонгогдÑон төÑлүүдийн хувьд бүх үзÑгдÑл дÑÑÑ€..."
+  label_user_mail_no_self_notified: "Миний өөрийн хийÑÑн өөрчлөлтүүдийн тухай надад мÑдÑгдÑÑ… Ñ…ÑÑ€Ñггүй"
+  label_registration_activation_by_email: данÑыг имÑйлÑÑÑ€ идÑвхжүүлÑÑ…
+  label_registration_manual_activation: данÑыг гараар идÑвхжүүлÑÑ…
+  label_registration_automatic_activation: данÑыг автоматаар идÑвхжүүлÑÑ…
+  label_display_per_page: 'ÐÑг хуудÑанд: %{value}'
+  label_age: ÐаÑ
+  label_change_properties: Тохиргоог өөрчлөх
+  label_general: Ерөнхий
+  label_more: Цааш нь
+  label_scm: SCM
+  label_plugins: Модулууд
+  label_ldap_authentication: LDAP нÑвтрÑÑ… горим
+  label_downloads_abbr: D/L
+  label_optional_description: Дурын тайлбар
+  label_add_another_file: Дахин файл нÑмÑÑ…
+  label_preferences: Тохиргоо
+  label_chronological_order: Цагаан толгойн Ò¯Ñгийн дарааллаар
+  label_reverse_chronological_order: Урвуу цагаан толгойн Ò¯Ñгийн дарааллаар
+  label_planning: Төлөвлөлт
+  label_incoming_emails: ИрÑÑн мÑйлүүд
+  label_generate_key: Түлхүүр Ò¯Ò¯ÑгÑÑ…
+  label_issue_watchers: Ðжиглагчид
+  label_example: ЖишÑÑ
+  label_display: Display
+  label_sort: Sort
+  label_ascending: Ascending
+  label_descending: Descending
+  label_date_from_to: From %{start} to %{end}
+  label_wiki_content_added: Wiki page added
+  label_wiki_content_updated: Wiki page updated
+  label_group: Group
+  label_group_plural: Groups
+  label_group_new: New group
+  label_time_entry_plural: Spent time
+  label_version_sharing_none: Not shared
+  label_version_sharing_descendants: With subprojects
+  label_version_sharing_hierarchy: With project hierarchy
+  label_version_sharing_tree: With project tree
+  label_version_sharing_system: With all projects
+  label_update_issue_done_ratios: Update issue done ratios
+  label_copy_source: Source
+  label_copy_target: Target
+  label_copy_same_as_target: Same as target
+  label_display_used_statuses_only: Only display statuses that are used by this tracker
+  label_api_access_key: API access key
+  label_missing_api_access_key: Missing an API access key
+  label_api_access_key_created_on: "API access key created %{value} ago"
+  
+  button_login: ÐÑвтрÑÑ…
+  button_submit: ИлгÑÑÑ…
+  button_save: Хадгалах
+  button_check_all: Бүгдийг Ñонго
+  button_uncheck_all: Бүгдийг үл Ñонго
+  button_delete: УÑтгах
+  button_create: Ò®Ò¯ÑгÑÑ…
+  button_create_and_continue: Ò®Ò¯ÑгÑÑд цааш үргÑлжлүүлÑÑ…
+  button_test: Турших
+  button_edit: ЗаÑварлах
+  button_add: ÐÑмÑÑ…
+  button_change: Өөрчлөх
+  button_apply: Өөрчлөлтийг хадгалах
+  button_clear: ЦÑвÑрлÑÑ…
+  button_lock: Түгжих
+  button_unlock: ТүгжÑÑг тайлах
+  button_download: Татах
+  button_list: ЖагÑаалт
+  button_view: Харах
+  button_move: Зөөх
+  button_move_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
+  button_back: Буцах
+  button_cancel: Болих
+  button_activate: ИдÑвхжүүлÑÑ…
+  button_sort: ЭрÑмбÑлÑÑ…
+  button_log_time: Лог хийÑÑн хугацаа
+  button_rollback: Ð­Ð½Ñ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€ руу буцах
+  button_watch: Ðжиглах
+  button_unwatch: Ðжиглахаа болих
+  button_reply: Хариулах
+  button_archive: Ðрхивлах
+  button_unarchive: Ðрхивыг задлах
+  button_reset: Ðнхны утгууд
+  button_rename: ÐÑрийг нь Ñолих
+  button_change_password: Ðууц үгÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…
+  button_copy: Хуулах
+  button_copy_and_follow: Зөө Ð±Ð°Ñ Ð´Ð°Ð³Ð°
+  button_annotate: Тайлбар хавÑаргах
+  button_update: ШинÑчлÑÑ…
+  button_configure: Тохируулах
+  button_quote: ИшлÑл
+  button_duplicate: Хуулбар
+  button_show: ҮзÑÑ…
+  
+  status_active: идÑвхтÑй
+  status_registered: бүртгүүлÑÑн
+  status_locked: түгжÑÑÑ‚Ñй
+  
+  version_status_open: нÑÑлттÑй
+  version_status_locked: түгжÑÑÑ‚Ñй
+  version_status_closed: хаалттай
+
+  field_active: идÑвхтÑй
+  
+  text_select_mail_notifications: Ямар үед имÑйлÑÑÑ€ мÑдÑгдÑл илгÑÑхийг Ñонгоно уу.
+  text_regexp_info: eg. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 гÑвÑл Ñмар ч Ñ…Ñзгааргүй гÑÑÑн үг
+  text_project_destroy_confirmation: Та ÑÐ½Ñ Ñ‚Ó©Ñөл болоод буÑад мÑдÑÑллийг нь үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
+  text_subprojects_destroy_warning: "Уг төÑлийн дÑд төÑлүүд : %{value} нь Ð±Ð°Ñ ÑƒÑтгагдах болно."
+  text_workflow_edit: Ðжлын дарааллыг өөрчлөхийн тулд хандалтын Ñрх болон аÑуудлын чиглÑлийг Ñонгоно уу
+  text_are_you_sure: Та итгÑлтÑй байна уу ?
+  text_journal_changed: "%{label} %{old} байÑан нь %{new} болов"
+  text_journal_set_to: "%{label} %{value} болгож өөрчиллөө"
+  text_journal_deleted: "%{label} уÑÑ‚Ñан (%{old})"
+  text_journal_added: "%{label} %{value} нÑмÑгдÑÑн"
+  text_tip_issue_begin_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑ… ажил
+  text_tip_issue_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ дууÑах ажил
+  text_tip_issue_begin_end_day: ÑÐ½Ñ Ó©Ð´Ó©Ñ€ ÑхлÑÑд мөн дууÑч байгаа ажил
+  text_project_identifier_info: 'Зөвхөн жижиг Ò¯Ñгүүд болон (a-z), тоо and дундуур Ð·ÑƒÑ€Ð°Ð°Ñ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð¶ болно.<br />ÐÑгÑнт хадгалÑан хойно, төÑлийн глобал нÑрийг өөрлчөх боломжгүй.'
+  text_caracters_maximum: "дÑÑд тал нь %{count} Ò¯ÑÑг."
+  text_caracters_minimum: "Хамгийн багадаа Ñдаж %{count} Ñ‚ÑмдÑгт байх."
+  text_length_between: "Урт нь багадаа %{min}, ихдÑÑ %{max} Ñ‚ÑмдÑгт."
+  text_tracker_no_workflow: ЭнÑÑ…Ò¯Ò¯ аÑуудлын чиглÑлд Ñмар ч ажлын дараалал тодорхойлогдоогүй байна
+  text_unallowed_characters: Ð¥ÑÑ€ÑглÑж болохгүй Ñ‚ÑмдÑгтүүд
+  text_comma_separated: ТаÑлалаар зааглан олон утга оруулж болно.
+  text_line_separated: Multiple values allowed (one line for each value).
+  text_issues_ref_in_commit_messages: Коммитийн зурваÑуудад хамааруулÑан болон байнгын аÑуудлууд
+  text_issue_added: "ÐÑуудал %{id} - ийг Ñ…ÑÑ€ÑглÑгч %{author} мÑдÑгдÑÑн байна."
+  text_issue_updated: "ÐÑуудал %{id} - ийг Ñ…ÑÑ€ÑглÑгч %{author} өөрчилÑөн байна."
+  text_wiki_destroy_confirmation: Та ÑÐ½Ñ Ð²Ð¸ÐºÐ¸ болон холбогдох бүх мÑдÑÑллийг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?
+  text_issue_category_destroy_question: "Ð­Ð½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ зарим аÑуудлууд (%{count})  орÑон байна. Та Ñах Ð²Ñ ?"
+  text_issue_category_destroy_assignments: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð»Ð°Ð°Ñ Ð°Ð²Ð°Ñ…
+  text_issue_category_reassign_to: ÐÑуудлуудыг ÑÐ½Ñ Ð°Ð½Ð³Ð¸Ð»Ð°Ð»Ð´ дахин оноох
+  text_user_mail_option: "Сонгогдоогүй төÑлүүдийн хувьд, та зөвхөн өөрийнхөө ажиглаж байгаа Ð·Ò¯Ð¹Ð»Ñ ÑŽÐ¼ÑƒÑƒ танд хамаатай зүйлÑийн талаар мÑдÑгдÑл авах болно (Таны оруулÑан аÑуудал, ÑÑвÑл танд онооÑон гÑÑ… мÑÑ‚)."
+  text_no_configuration_data: "Хандалтын Ñрхүүд, чиглÑлүүд, аÑуудлын төлвүүд болон ажлын дарааллын тухай мÑдÑÑллийг хараахан оруулаагүй байна.\nТа Ñтандарт өгөгдлүүдийг даруйхан оруулахыг зөвлөж байна, оруулÑан хойно та заÑварлаж болно."
+  text_load_default_configuration: Стандарт өгөгдлийг ачаалах
+  text_status_changed_by_changeset: "%{value} өөрчлөлтөд хийгдÑÑн."
+  text_issues_destroy_confirmation: 'Та ÑонгогдÑон аÑуудлуудыг үнÑÑ…ÑÑÑ€ уÑтгамаар байна уу ?'
+  text_select_project_modules:  'Ð­Ð½Ñ Ñ‚Ó©Ñлийн хувьд идÑвхжүүлÑÑ… модулуудаа Ñонгоно уу:'
+  text_default_administrator_account_changed: Стандарт админиÑтраторын бүртгÑл өөрчлөгдлөө
+  text_file_repository_writable: ХавÑралт файл хадгалах Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
+  text_plugin_assets_writable: Плагин модулийн аÑÑет Ñ…Ð°Ð²Ñ‚Ð°Ñ Ñ€ÑƒÑƒ бичих ÑрхтÑй
+  text_rmagick_available: RMagick ÑуулгагдÑан (заавал биш)
+  text_destroy_time_entries_question: "Таны уÑтгах гÑж байгаа аÑуудлууд дÑÑÑ€ нийт %{hours} цаг зарцуулÑан юм байна, та Ñах Ð²Ñ ?"
+  text_destroy_time_entries: МÑдÑгдÑÑн цагуудыг уÑтгах
+  text_assign_time_entries_to_project: МÑдÑгдÑÑн аÑуудлуудыг төÑөлд оноох
+  text_reassign_time_entries: 'МÑдÑгдÑÑн аÑуудлуудыг ÑÐ½Ñ Ð°Ñуудалд дахин оноо:'
+  text_user_wrote: "%{value} бичихдÑÑ:"
+  text_enumeration_destroy_question: "Ð­Ð½Ñ ÑƒÑ‚Ð³Ð°Ð´ %{count} обьект оноогдÑон байна."
+  text_enumeration_category_reassign_to: 'ТÑдгÑÑрийг ÑÐ½Ñ ÑƒÑ‚Ð³Ð°Ð´ дахин оноо:'
+  text_email_delivery_not_configured: "ИмÑйлийн тохиргоог хараахан тохируулаагүй байна, тиймÑÑÑ Ð¸Ð¼Ñйл мÑдÑгдÑл Ñвуулах боломжгүй байна.\nSMTP ÑервÑÑ€ÑÑ config/email.yml файл дотор тохируулаад төÑлийн менежерÑÑ Ð´Ð°Ñ…Ð¸Ð°Ð´ ÑхлүүлÑÑÑ€Ñй."
+  text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх Ñ…ÑÑ€ÑглÑгчийн нÑрүүдÑд харгалзÑан ТөÑлийн Менежер ÑиÑтемд бүртгÑлтÑй Ñ…ÑÑ€ÑглÑгчдийг Сонгох юмуу шинÑÑ‡Ð¸Ð»Ð½Ñ Ò¯Ò¯.\nТөÑлийн менежер болон репозиторид байгаа ижилхÑн нÑÑ€ юмуу имÑйлтÑй Ñ…ÑÑ€ÑглÑгчид харилцан харгалзна."
+  text_diff_truncated: '... Файлын Ñлгаврын Ñ…ÑмжÑÑ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…Ñд дÑндүү урт байгаа ÑƒÑ‡Ñ€Ð°Ð°Ñ Ñ‚Ó©Ð³ÑÐ³Ó©Ð»Ó©Ó©Ñ Ð½ÑŒ хаÑч үзүүлÑв.'
+  text_custom_field_possible_values_info: 'One line for each value'
+  text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+  text_wiki_page_nullify_children: "Keep child pages as root pages"
+  text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+  text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+  text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+  
+  default_role_manager: Менежер
+  default_role_developer: ХөгжүүлÑгч
+  default_role_reporter: МÑдÑгдÑгч
+  default_tracker_bug: Ðлдаа
+  default_tracker_feature: Онцлог
+  default_tracker_support: ТуÑламж
+  default_issue_status_new: ШинÑ
+  default_issue_status_in_progress: Ðхицтай
+  default_issue_status_assigned: ОноогдÑон
+  default_issue_status_resolved: ШийдвÑрлÑгдÑÑн
+  default_issue_status_feedback: Feedback
+  default_issue_status_closed: ХаагдÑан
+  default_issue_status_rejected: ХүлÑÑж аваагүй
+  default_doc_category_user: Ð¥ÑÑ€ÑглÑгчийн бичиг баримт
+  default_doc_category_tech: Техникийн бичиг баримт
+  default_priority_low: Бага
+  default_priority_normal: Ð¥Ñвийн
+  default_priority_high: Өндөр
+  default_priority_urgent: ÐÑн Ñаралтай
+  default_priority_immediate: ÐÑн даруй
+  default_activity_design: Дизайн
+  default_activity_development: ХөгжүүлÑлт
+  
+  enumeration_issue_priorities: ÐÑуудлын зÑÑ€ÑглÑлүүд
+  enumeration_doc_categories: Бичиг баримтын ангиллууд
+  enumeration_activities: Үйл ажиллагаанууд (хугацааг Ñ…Ñнах)
+  enumeration_system_activity: СиÑтемийн үйл ажиллагаа
+
+  permission_manage_subtasks: Manage subtasks
+  label_profile: Profile
+  field_parent_issue: Parent task
+  error_unable_delete_issue_status: Unable to delete issue status
+  label_subtask_plural: Subtasks
+  label_project_copy_notifications: Send email notifications during the project copy
+  error_can_not_delete_custom_field: Unable to delete custom field
+  error_unable_to_connect: Unable to connect (%{value})
+  error_can_not_remove_role: This role is in use and can not be deleted.
+  error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+  field_principal: Principal
+  label_my_page_block: My page block
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+  text_zoom_out: Zoom out
+  text_zoom_in: Zoom in
+  notice_unable_delete_time_entry: Unable to delete time log entry.
+  label_overall_spent_time: Overall spent time
+  field_time_entries: Log time
+  project_module_gantt: Gantt
+  project_module_calendar: Calendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/nl.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/nl.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "halve minuut"
       less_than_x_seconds:
         one:   "minder dan een seconde"
-        other: "mindera dan {{count}} seconden"
+        other: "mindera dan %{count} seconden"
       x_seconds:
         one:   "1 seconde"
-        other: "{{count}} seconden"
+        other: "%{count} seconden"
       less_than_x_minutes:
         one:   "minder dan een minuut"
-        other: "minder dan {{count}} minuten"
+        other: "minder dan %{count} minuten"
       x_minutes:
         one:   "1 minuut"
-        other: "{{count}} minuten"
+        other: "%{count} minuten"
       about_x_hours:
         one:   "ongeveer 1 uur"
-        other: "ongeveer {{count}} uren"
+        other: "ongeveer %{count} uren"
       x_days:
         one:   "1 dag"
-        other: "{{count}} dagen"
+        other: "%{count} dagen"
       about_x_months:
         one:   "ongeveer 1 maand"
-        other: "ongeveer {{count}} maanden"
+        other: "ongeveer %{count} maanden"
       x_months:
         one:   "1 maand"
-        other: "{{count}} maanden"
+        other: "%{count} maanden"
       about_x_years:
         one:   "ongeveer 1 jaar"
-        other: "ongeveer {{count}} jaren"
+        other: "ongeveer %{count} jaren"
       over_x_years:
         one:   "over 1 jaar"
-        other: "over {{count}} jaren"
+        other: "over %{count} jaren"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "staat niet in de lijst"
         exclusion: "is gereserveerd"
@@ -106,11 +110,11 @@
         taken: "is al in gebruik"
         not_a_number: "is geen getal"
         not_a_date: "is geen valide datum"
-        greater_than: "moet groter zijn dan {{count}}"
-        greater_than_or_equal_to: "moet groter zijn of gelijk zijn aan {{count}}"
-        equal_to: "moet gelijk zijn aan {{count}}"
-        less_than: "moet minder zijn dan {{count}}"
-        less_than_or_equal_to: "moet minder dan of gelijk zijn aan {{count}}"
+        greater_than: "moet groter zijn dan %{count}"
+        greater_than_or_equal_to: "moet groter zijn of gelijk zijn aan %{count}"
+        equal_to: "moet gelijk zijn aan %{count}"
+        less_than: "moet minder zijn dan %{count}"
+        less_than_or_equal_to: "moet minder dan of gelijk zijn aan %{count}"
         odd: "moet oneven zijn"
         even: "moet even zijn"
         greater_than_start_date: "moet na de startdatum liggen"
@@ -182,10 +186,10 @@
   enumeration_activities: Activiteiten (tijdtracking)
   enumeration_doc_categories: Documentcategorieën
   enumeration_issue_priorities: Issueprioriteiten
-  error_can_t_load_default_data: "De standaard configuratie kon niet worden geladen: {{value}}"
+  error_can_t_load_default_data: "De standaard configuratie kon niet worden geladen: %{value}"
   error_issue_not_found_in_project: 'Deze issue is niet gevonden of behoort niet toe tot dit project.'
   error_scm_annotate: "Er kan geen commentaar toegevoegd worden."
-  error_scm_command_failed: "Er trad een fout op tijdens de poging om verbinding te maken met de repository: {{value}}"
+  error_scm_command_failed: "Er trad een fout op tijdens de poging om verbinding te maken met de repository: %{value}"
   error_scm_not_found: "Deze ingang of revisie bestaat niet in de repository."
   field_account: Account
   field_activity: Activiteit
@@ -256,6 +260,7 @@
   field_role: Rol
   field_searchable: Doorzoekbaar
   field_spent_on: Datum
+  field_start_date: Startdatum
   field_start_page: Startpagina
   field_status: Status
   field_subject: Onderwerp
@@ -270,9 +275,9 @@
   field_user: Gebruiker
   field_value: Waarde
   field_version: Versie
-  general_csv_decimal_separator: '.'
+  general_csv_decimal_separator: ','
   general_csv_encoding: ISO-8859-1
-  general_csv_separator: ','
+  general_csv_separator: ';'
   general_first_day_of_week: '7'
   general_lang_name: 'Nederlands'
   general_pdf_encoding: ISO-8859-1
@@ -281,19 +286,19 @@
   general_text_no: 'nee'
   general_text_yes: 'ja'
   gui_validation_error: 1 fout
-  gui_validation_error_plural: "{{count}} fouten"
+  gui_validation_error_plural: "%{count} fouten"
   label_activity: Activiteit
   label_add_another_file: Ander bestand toevoegen
   label_add_note: Voeg een notitie toe
   label_added: toegevoegd
-  label_added_time_by: "Toegevoegd door {{author}} {{age}} geleden"
+  label_added_time_by: "Toegevoegd door %{author} %{age} geleden"
   label_administration: Administratie
   label_age: Leeftijd
   label_ago: dagen geleden
   label_all: alle
   label_all_time: alles
   label_all_words: Alle woorden
-  label_and_its_subprojects: "{{value}} en zijn subprojecten."
+  label_and_its_subprojects: "%{value} en zijn subprojecten."
   label_applied_status: Toegekende status
   label_assigned_to_me_issues: Aan mij toegewezen issues
   label_associated_revisions: Geassociëerde revisies
@@ -326,17 +331,17 @@
   label_closed_issues: gesloten
   label_closed_issues_plural: gesloten
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Commentaar
   label_comment_add: Voeg commentaar toe
   label_comment_added: Commentaar toegevoegd
@@ -345,7 +350,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Commits per auteur
   label_commits_per_month: Commits per maand
   label_confirmation: Bevestiging
@@ -369,13 +374,13 @@
   label_diff_inline: inline
   label_diff_side_by_side: naast elkaar
   label_disabled: uitgeschakeld
-  label_display_per_page: "Per pagina: {{value}}"
+  label_display_per_page: "Per pagina: %{value}"
   label_document: Document
   label_document_added: Document toegevoegd
   label_document_new: Nieuw document
   label_document_plural: Documenten
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_downloads_abbr: D/L
   label_duplicated_by: gedupliceerd door
   label_duplicates: dupliceert
@@ -387,10 +392,10 @@
   label_equals: is gelijk
   label_example: Voorbeeld
   label_export_to: Exporteer naar
-  label_f_hour: "{{value}} uur"
-  label_f_hour_plural: "{{value}} uren"
+  label_f_hour: "%{value} uur"
+  label_f_hour_plural: "%{value} uren"
   label_feed_plural: Feeds
-  label_feeds_access_key_created_on: "RSS toegangssleutel {{value}} geleden gemaakt."
+  label_feeds_access_key_created_on: "RSS toegangssleutel %{value} geleden gemaakt."
   label_file_added: Bericht toegevoegd
   label_file_plural: Bestanden
   label_filter_add: Voeg filter toe
@@ -427,13 +432,13 @@
   label_issue_updated: Issue bijgewerkt
   label_issue_view_all: Bekijk alle issues
   label_issue_watchers: Monitoren
-  label_issues_by: "Issues door {{value}}"
+  label_issues_by: "Issues door %{value}"
   label_jump_to_a_project: Ga naar een project...
   label_language_based: Taal gebaseerd
-  label_last_changes: "laatste {{count}} wijzigingen"
+  label_last_changes: "laatste %{count} wijzigingen"
   label_last_login: Laatste bezoek
   label_last_month: laatste maand
-  label_last_n_days: "{{count}} dagen geleden"
+  label_last_n_days: "%{count} dagen geleden"
   label_last_week: vorige week
   label_latest_revision: Meest recente revisie
   label_latest_revision_plural: Meest recente revisies
@@ -454,8 +459,8 @@
   label_message_plural: Berichten
   label_message_posted: Bericht toegevoegd
   label_min_max_length: Min-max lengte
-  label_modification: "{{count}} wijziging"
-  label_modification_plural: "{{count}} wijzigingen"
+  label_modification: "%{count} wijziging"
+  label_modification_plural: "%{count} wijzigingen"
   label_modified: gewijzigd
   label_module_plural: Modules
   label_month: Maand
@@ -506,7 +511,7 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_public_projects: Publieke projecten
   label_query: Eigen zoekvraag
   label_query_new: Nieuwe zoekvraag
@@ -533,9 +538,9 @@
   label_revision: Revisie
   label_revision_plural: Revisies
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Voldaan in {{value}}"
+  label_roadmap_due_in: "Voldaan in %{value}"
   label_roadmap_no_issues: Geen issues voor deze versie
-  label_roadmap_overdue: "{{value}} over tijd"
+  label_roadmap_overdue: "%{value} over tijd"
   label_role: Rol
   label_role_and_permissions: Rollen en permissies
   label_role_new: Nieuwe rol
@@ -547,7 +552,7 @@
   label_send_test_email: Stuur een test e-mail
   label_settings: Instellingen
   label_show_completed_versions: Toon afgeronde versies
-  label_sort_by: "Sorteer op {{value}}"
+  label_sort_by: "Sorteer op %{value}"
   label_sort_higher: Verplaats naar boven
   label_sort_highest: Verplaats naar begin
   label_sort_lower: Verplaats naar beneden
@@ -571,11 +576,11 @@
   label_tracker: Tracker
   label_tracker_new: Nieuwe tracker
   label_tracker_plural: Trackers
-  label_updated_time: "{{value}} geleden bijgewerkt"
-  label_updated_time_by: "{{age}} geleden bijgewerkt door {{author}}"
+  label_updated_time: "%{value} geleden bijgewerkt"
+  label_updated_time_by: "%{age} geleden bijgewerkt door %{author}"
   label_used_by: Gebruikt door
   label_user: Gebruiker
-  label_user_activity: "{{value}}'s activiteit"
+  label_user_activity: "%{value}'s activiteit"
   label_user_mail_no_self_notified: "Ik wil niet op de hoogte gehouden worden van wijzigingen die ik zelf maak."
   label_user_mail_option_all: "Bij elk gebeurtenis in al mijn projecten..."
   label_user_mail_option_selected: "Enkel bij elke gebeurtenis op het geselecteerde project..."
@@ -596,16 +601,16 @@
   label_workflow: Workflow
   label_year: Jaar
   label_yesterday: gisteren
-  mail_body_account_activation_request: "Een nieuwe gebruiker ({{value}}) is geregistreerd. Zijn account wacht op uw akkoord:"
+  mail_body_account_activation_request: "Een nieuwe gebruiker (%{value}) is geregistreerd. Zijn account wacht op uw akkoord:"
   mail_body_account_information: Uw account gegevens
-  mail_body_account_information_external: "U kunt uw account ({{value}}) gebruiken om in te loggen."
+  mail_body_account_information_external: "U kunt uw account (%{value}) gebruiken om in te loggen."
   mail_body_lost_password: 'Gebruik de volgende link om uw wachtwoord te wijzigen:'
   mail_body_register: 'Gebruik de volgende link om uw account te activeren:'
-  mail_body_reminder: "{{count}} issue(s) die aan u toegewezen zijn en voldaan moeten zijn in de komende {{days}} dagen:"
-  mail_subject_account_activation_request: "{{value}} accountactivatieverzoek"
-  mail_subject_lost_password: "uw {{value}} wachtwoord"
-  mail_subject_register: "uw {{value}} accountactivatie"
-  mail_subject_reminder: "{{count}} issue(s) die voldaan moeten zijn in de komende {{days}} dagen."
+  mail_body_reminder: "%{count} issue(s) die aan u toegewezen zijn en voldaan moeten zijn in de komende %{days} dagen:"
+  mail_subject_account_activation_request: "%{value} accountactivatieverzoek"
+  mail_subject_lost_password: "uw %{value} wachtwoord"
+  mail_subject_register: "uw %{value} accountactivatie"
+  mail_subject_reminder: "%{count} issue(s) die voldaan moeten zijn in de komende %{days} dagen."
   notice_account_activated: uw account is geactiveerd. u kunt nu inloggen.
   notice_account_invalid_creditentials: Incorrecte gebruikersnaam of wachtwoord
   notice_account_lost_email_sent: Er is een e-mail naar u verstuurd met instructies over het kiezen van een nieuw wachtwoord.
@@ -617,9 +622,9 @@
   notice_account_wrong_password: Incorrect wachtwoord
   notice_can_t_change_password: Dit account gebruikt een externe bron voor authenticatie. Het is niet mogelijk om het wachtwoord te veranderen.
   notice_default_data_loaded: Standaard configuratie succesvol geladen.
-  notice_email_error: "Er is een fout opgetreden tijdens het versturen van ({{value}})"
-  notice_email_sent: "Een e-mail werd verstuurd naar {{value}}"
-  notice_failed_to_save_issues: "Fout bij bewaren van {{count}} issue(s) ({{total}} geselecteerd): {{ids}}."
+  notice_email_error: "Er is een fout opgetreden tijdens het versturen van (%{value})"
+  notice_email_sent: "Een e-mail werd verstuurd naar %{value}"
+  notice_failed_to_save_issues: "Fout bij bewaren van %{count} issue(s) (%{total} geselecteerd): %{ids}."
   notice_feeds_access_key_reseted: Je RSS toegangssleutel werd gereset.
   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.
@@ -730,25 +735,25 @@
   status_registered: geregistreerd
   text_are_you_sure: Weet u het zeker?
   text_assign_time_entries_to_project: Gerapporteerde uren toevoegen aan dit project
-  text_caracters_maximum: "{{count}} van maximum aantal tekens."
-  text_caracters_minimum: "Moet minstens {{count}} karakters lang zijn."
+  text_caracters_maximum: "%{count} van maximum aantal tekens."
+  text_caracters_minimum: "Moet minstens %{count} karakters lang zijn."
   text_comma_separated: Meerdere waarden toegestaan (kommagescheiden).
   text_default_administrator_account_changed: Standaard beheerderaccount gewijzigd
   text_destroy_time_entries: Verwijder gerapporteerde uren
-  text_destroy_time_entries_question: "{{hours}} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
+  text_destroy_time_entries_question: "%{hours} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
   text_diff_truncated: '... Deze diff werd afgekort omdat het de maximale weer te geven karakters overschreed.'
   text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/email.yml en herstart de applicatie om dit te activeren."
   text_enumeration_category_reassign_to: 'Wijs de volgende waarde toe:'
-  text_enumeration_destroy_question: "{{count}} objecten zijn toegewezen aan deze waarde."
+  text_enumeration_destroy_question: "%{count} objecten zijn toegewezen aan deze waarde."
   text_file_repository_writable: Bestandsrepository beschrijfbaar
-  text_issue_added: "Issue {{id}} is gerapporteerd (door {{author}})."
+  text_issue_added: "Issue %{id} is gerapporteerd (door %{author})."
   text_issue_category_destroy_assignments: Verwijder toewijzingen aan deze categorie
-  text_issue_category_destroy_question: "Er zijn issues ({{count}}) aan deze categorie toegewezen. Wat wilt u hiermee doen ?"
+  text_issue_category_destroy_question: "Er zijn issues (%{count}) aan deze categorie toegewezen. Wat wilt u hiermee doen ?"
   text_issue_category_reassign_to: Issues opnieuw toewijzen aan deze categorie
-  text_issue_updated: "Issue {{id}} is gewijzigd (door {{author}})."
+  text_issue_updated: "Issue %{id} is gewijzigd (door %{author})."
   text_issues_destroy_confirmation: 'Weet u zeker dat u deze issue(s) wil verwijderen?'
   text_issues_ref_in_commit_messages: Opzoeken en aanpassen van issues in commitberichten
-  text_length_between: "Lengte tussen {{min}} en {{max}} tekens."
+  text_length_between: "Lengte tussen %{min} en %{max} tekens."
   text_load_default_configuration: Laad de standaardconfiguratie
   text_min_max_length_info: 0 betekent geen restrictie
   text_no_configuration_data: "Rollen, trackers, issue statussen en workflows zijn nog niet geconfigureerd.\nHet is ten zeerste aangeraden om de standaard configuratie in te laden. U kunt deze aanpassen nadat deze is ingeladen."
@@ -761,18 +766,18 @@
   text_rmagick_available: RMagick beschikbaar (optioneel)
   text_select_mail_notifications: Selecteer acties waarvoor mededelingen via mail moeten worden verstuurd.
   text_select_project_modules: 'Selecteer de modules die u wilt gebruiken voor dit project:'
-  text_status_changed_by_changeset: "Toegepast in changeset {{value}}."
-  text_subprojects_destroy_warning: "De subprojecten: {{value}} zullen ook verwijderd worden."
+  text_status_changed_by_changeset: "Toegepast in changeset %{value}."
+  text_subprojects_destroy_warning: "De subprojecten: %{value} zullen ook verwijderd worden."
   text_tip_issue_begin_day: issue die op deze dag begint
   text_tip_issue_begin_end_day: issue die op deze dag begint en eindigt
   text_tip_issue_end_day: issue die op deze dag eindigt
   text_tracker_no_workflow: Geen workflow gedefinieerd voor deze tracker
   text_unallowed_characters: Niet toegestane tekens
   text_user_mail_option: "Bij niet-geselecteerde projecten zult u enkel notificaties ontvangen voor issues die u monitort of waar u bij betrokken bent (als auteur of toegewezen persoon)."
-  text_user_wrote: "{{value}} schreef:"
+  text_user_wrote: "%{value} schreef:"
   text_wiki_destroy_confirmation: Weet u zeker dat u deze wiki en zijn inhoud wenst te verwijderen?
   text_workflow_edit: Selecteer een rol en een tracker om de workflow te wijzigen
-  warning_attachments_not_saved: "{{count}} bestand(en) konden niet opgeslagen worden."
+  warning_attachments_not_saved: "%{count} bestand(en) konden niet opgeslagen worden."
   button_create_and_continue: Maak en ga verder
   text_custom_field_possible_values_info: 'Per lijn een waarde'
   label_display: Toon
@@ -787,21 +792,21 @@
   label_descending: Aflopend
   label_sort: Sorteer
   label_ascending: Oplopend
-  label_date_from_to: Van {{start}} tot {{end}}
+  label_date_from_to: Van %{start} tot %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Deze pagina heeft {{descendants}} subpagina's en onderliggende pagina's?. Wil wil je ermee doen?
+  text_wiki_page_destroy_question: Deze pagina heeft %{descendants} subpagina's en onderliggende pagina's?. Wil wil je ermee doen?
   text_wiki_page_reassign_children: Alle subpagina's toewijzen aan deze hoofdpagina
   text_wiki_page_nullify_children: Behoud subpagina's als hoofdpagina's
   text_wiki_page_destroy_children: Verwijder alle subpagina's en onderliggende pagina's
   setting_password_min_length: Minimum wachtwoord lengte
   field_group_by: Groepeer resultaten per
-  mail_subject_wiki_content_updated: "'{{id}}' wiki pagina is bijgewerkt"
+  mail_subject_wiki_content_updated: "'%{id}' wiki pagina is bijgewerkt"
   label_wiki_content_added: Wiki pagina toegevoegd
-  mail_subject_wiki_content_added: "'{{id}}' wiki pagina is toegevoegd"
-  mail_body_wiki_content_added: The '{{id}}' wiki pagina is toegevoegd door {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki pagina is toegevoegd"
+  mail_body_wiki_content_added: The '%{id}' wiki pagina is toegevoegd door %{author}.
   label_wiki_content_updated: Wiki pagina bijgewerkt
-  mail_body_wiki_content_updated: The '{{id}}' wiki pagina is bijgewerkt door {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki pagina is bijgewerkt door %{author}.
   permission_add_project: Maak project
   setting_new_project_user_role_id: Rol van gebruiker die een project maakt
   label_view_all_revisions: Bekijk alle revisies
@@ -809,14 +814,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Geen tracker is geassocieerd met dit project. Check de project instellingen.
   error_no_default_issue_status: Geen standaard issue status ingesteld. Check de configuratie (Ga naar "Administratie -> Issue statussen").
-  text_journal_changed: "{{label}} gewijzigd van {{old}} naar {{new}}"
-  text_journal_set_to: "{{label}} gewijzigd naar {{value}}"
-  text_journal_deleted: "{{label}} verwijderd ({{old}})"
+  text_journal_changed: "%{label} gewijzigd van %{old} naar %{new}"
+  text_journal_set_to: "%{label} gewijzigd naar %{value}"
+  text_journal_deleted: "%{label} verwijderd (%{old})"
   label_group_plural: Groepen
   label_group: Groep
   label_group_new: Nieuwe groep
   label_time_entry_plural: Bestede tijd
-  text_journal_added: "{{label}} {{value}} toegevoegd"
+  text_journal_added: "%{label} %{value} toegevoegd"
   field_active: Actief
   enumeration_system_activity: Systeem Activiteit
   permission_delete_issue_watchers: Verwijder volgers
@@ -851,9 +856,9 @@
   setting_start_of_week: Week begint op
   permission_view_issues: Bekijk Issues
   label_display_used_statuses_only: Laat alleen statussen zien die gebruikt worden door deze tracker
-  label_revision_id: Revisie {{value}}
+  label_revision_id: Revisie %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key gemaakt {{value}} geleden
+  label_api_access_key_created_on: API access key gemaakt %{value} geleden
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Uw API access key was gereset.
   setting_rest_api_enabled: Activeer REST web service
@@ -880,12 +885,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Stuur email notificaties voor de project kopie
   error_can_not_delete_custom_field: Verwijderen niet mogelijk van custom field
-  error_unable_to_connect: Geen connectie ({{value}})
+  error_unable_to_connect: Geen connectie (%{value})
   error_can_not_remove_role: Deze rol is in gebruik en kan niet worden verwijderd.
   error_can_not_delete_tracker: Deze tracker bevat nog issues en kan niet worden verwijderd.
   field_principal: Principal
   label_my_page_block: Mijn pagina block
-  notice_failed_to_save_members: "Niet gelukt om lid/leden op te slaan: {{errors}}."
+  notice_failed_to_save_members: "Niet gelukt om lid/leden op te slaan: %{errors}."
   text_zoom_out: Zoom uit
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Verwijderen niet mogelijk van tijd log invoer.
@@ -893,7 +898,7 @@
   field_time_entries: Log tijd
   project_module_gantt: Gantt
   project_module_calendar: Kalender
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -904,8 +909,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/no.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/no.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -27,37 +27,37 @@
       half_a_minute: "et halvt minutt"
       less_than_x_seconds:
         one: "mindre enn 1 sekund"
-        other: "mindre enn {{count}} sekunder"
+        other: "mindre enn %{count} sekunder"
       x_seconds:
         one: "1 sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one: "mindre enn 1 minutt"
-        other: "mindre enn {{count}} minutter"
+        other: "mindre enn %{count} minutter"
       x_minutes:
         one: "1 minutt"
-        other: "{{count}} minutter"
+        other: "%{count} minutter"
       about_x_hours:
         one: "rundt 1 time"
-        other: "rundt {{count}} timer"
+        other: "rundt %{count} timer"
       x_days:
         one: "1 dag"
-        other: "{{count}} dager"
+        other: "%{count} dager"
       about_x_months:
         one: "rundt 1 måned"
-        other: "rundt {{count}} måneder"
+        other: "rundt %{count} måneder"
       x_months:
         one: "1 måned"
-        other: "{{count}} måneder"
+        other: "%{count} måneder"
       about_x_years:
         one: "rundt 1 år"
-        other: "rundt {{count}} år"
+        other: "rundt %{count} år"
       over_x_years:
         one: "over 1 år"
-        other: "over {{count}} år"
+        other: "over %{count} år"
       almost_x_years:
         one:   "nesten 1 år"
-        other: "nesten {{count}} år"
+        other: "nesten %{count} år"
   number:
     format:
       precision: 2
@@ -86,7 +86,7 @@
   activerecord:
     errors:
       template:
-        header: "kunne ikke lagre {{model}} på grunn av {{count}} feil."
+        header: "kunne ikke lagre %{model} på grunn av %{count} feil."
         body: "det oppstod problemer i følgende felt:"
       messages:
         inclusion: "er ikke inkludert i listen"
@@ -96,16 +96,16 @@
         accepted: "må være akseptert"
         empty: "kan ikke være tom"
         blank: "kan ikke være blank"
-        too_long: "er for lang (maksimum {{count}} tegn)"
-        too_short: "er for kort (minimum {{count}} tegn)"
-        wrong_length: "er av feil lengde (maksimum {{count}} tegn)"
+        too_long: "er for lang (maksimum %{count} tegn)"
+        too_short: "er for kort (minimum %{count} tegn)"
+        wrong_length: "er av feil lengde (maksimum %{count} tegn)"
         taken: "er allerede i bruk"
         not_a_number: "er ikke et tall"
-        greater_than: "må være større enn {{count}}"
-        greater_than_or_equal_to: "må være større enn eller lik {{count}}"
-        equal_to: "må være lik {{count}}"
-        less_than: "må være mindre enn {{count}}"
-        less_than_or_equal_to: "må være mindre enn eller lik {{count}}"
+        greater_than: "må være større enn %{count}"
+        greater_than_or_equal_to: "må være større enn eller lik %{count}"
+        equal_to: "må være lik %{count}"
+        less_than: "må være mindre enn %{count}"
+        less_than_or_equal_to: "må være mindre enn eller lik %{count}"
         odd: "må være oddetall"
         even: "må være partall"
         greater_than_start_date: "må være større enn startdato"
@@ -143,33 +143,33 @@
   notice_file_not_found: Siden du forsøkte å vise eksisterer ikke, eller er slettet.
   notice_locking_conflict: Data har blitt oppdatert av en annen bruker.
   notice_not_authorized: Du har ikke adgang til denne siden.
-  notice_email_sent: "En e-post er sendt til {{value}}"
-  notice_email_error: "En feil oppstod under sending av e-post ({{value}})"
+  notice_email_sent: "En e-post er sendt til %{value}"
+  notice_email_error: "En feil oppstod under sending av e-post (%{value})"
   notice_feeds_access_key_reseted: Din RSS-tilgangsnøkkel er nullstilt.
-  notice_failed_to_save_issues: "Lykkes ikke å lagre {{count}} sak(er) på {{total}} valgt: {{ids}}."
+  notice_failed_to_save_issues: "Lykkes ikke å lagre %{count} sak(er) på %{total} valgt: %{ids}."
   notice_no_issue_selected: "Ingen sak valgt! Vennligst merk sakene du vil endre."
   notice_account_pending: "Din konto ble opprettet og avventer nå administrativ godkjenning."
   notice_default_data_loaded: Standardkonfigurasjonen lastet inn.
   
-  error_can_t_load_default_data: "Standardkonfigurasjonen kunne ikke lastes inn: {{value}}"
+  error_can_t_load_default_data: "Standardkonfigurasjonen kunne ikke lastes inn: %{value}"
   error_scm_not_found: "Elementet og/eller revisjonen eksisterer ikke i depoet."
-  error_scm_command_failed: "En feil oppstod under tilkobling til depoet: {{value}}"
+  error_scm_command_failed: "En feil oppstod under tilkobling til depoet: %{value}"
   error_scm_annotate: "Elementet eksisterer ikke, eller kan ikke noteres."
   error_issue_not_found_in_project: 'Saken eksisterer ikke, eller hører ikke til dette prosjektet'
   
-  mail_subject_lost_password: "Ditt {{value}} passord"
+  mail_subject_lost_password: "Ditt %{value} passord"
   mail_body_lost_password: 'Klikk følgende lenke for å endre ditt passord:'
-  mail_subject_register: "{{value}} kontoaktivering"
+  mail_subject_register: "%{value} kontoaktivering"
   mail_body_register: 'Klikk følgende lenke for å aktivere din konto:'
-  mail_body_account_information_external: "Du kan bruke din {{value}}-konto for å logge inn."
+  mail_body_account_information_external: "Du kan bruke din %{value}-konto for å logge inn."
   mail_body_account_information: Informasjon om din konto
-  mail_subject_account_activation_request: "{{value}} kontoaktivering"
-  mail_body_account_activation_request: "En ny bruker ({{value}}) er registrert, og avventer din godkjenning:"
-  mail_subject_reminder: "{{count}} sak(er) har frist de kommende {{days}} dagene"
-  mail_body_reminder: "{{count}} sak(er) som er tildelt deg har frist de kommende {{days}} dager:"
+  mail_subject_account_activation_request: "%{value} kontoaktivering"
+  mail_body_account_activation_request: "En ny bruker (%{value}) er registrert, og avventer din godkjenning:"
+  mail_subject_reminder: "%{count} sak(er) har frist de kommende %{days} dagene"
+  mail_body_reminder: "%{count} sak(er) som er tildelt deg har frist de kommende %{days} dager:"
   
   gui_validation_error: 1 feil
-  gui_validation_error_plural: "{{count}} feil"
+  gui_validation_error_plural: "%{count} feil"
   
   field_name: Navn
   field_description: Beskrivelse
@@ -231,6 +231,7 @@
   field_attr_lastname: Etternavnsattributt
   field_attr_mail: E-post-attributt
   field_onthefly: On-the-fly brukeropprettelse
+  field_start_date: Start
   field_done_ratio: % Ferdig
   field_auth_source: Autentifikasjonsmodus
   field_hide_mail: Skjul min e-post-adresse
@@ -305,14 +306,14 @@
   label_x_projects:
     zero:  ingen prosjekter
     one:   1 prosjekt
-    other: "{{count}} prosjekter"
+    other: "%{count} prosjekter"
   label_project_all: Alle prosjekter
   label_project_latest: Siste prosjekter
   label_issue: Sak
   label_issue_new: Ny sak
   label_issue_plural: Saker
   label_issue_view_all: Vis alle saker
-  label_issues_by: "Saker etter {{value}}"
+  label_issues_by: "Saker etter %{value}"
   label_issue_added: Sak lagt til
   label_issue_updated: Sak oppdatert
   label_document: Dokument
@@ -368,7 +369,7 @@
   label_auth_source_new: Ny autentifikasjonmodus
   label_auth_source_plural: Autentifikasjonsmoduser
   label_subproject_plural: Underprosjekter
-  label_and_its_subprojects: "{{value}} og dets underprosjekter"
+  label_and_its_subprojects: "%{value} og dets underprosjekter"
   label_min_max_length: Min.-maks. lengde
   label_list: Liste
   label_date: Dato
@@ -379,8 +380,8 @@
   label_text: Lang tekst
   label_attribute: Attributt
   label_attribute_plural: Attributter
-  label_download: "{{count}} Nedlasting"
-  label_download_plural: "{{count}} Nedlastinger"
+  label_download: "%{count} Nedlasting"
+  label_download_plural: "%{count} Nedlastinger"
   label_no_data: Ingen data å vise
   label_change_status: Endre status
   label_history: Historikk
@@ -411,17 +412,17 @@
   label_closed_issues: lukket
   label_closed_issues_plural: lukkede
   label_x_open_issues_abbr_on_total:
-    zero:  0 åpne / {{total}}
-    one:   1 åpen / {{total}}
-    other: "{{count}} åpne / {{total}}"
+    zero:  0 åpne / %{total}
+    one:   1 åpen / %{total}
+    other: "%{count} åpne / %{total}"
   label_x_open_issues_abbr:
     zero:  0 åpne
     one:   1 åpen
-    other: "{{count}} åpne"
+    other: "%{count} åpne"
   label_x_closed_issues_abbr:
     zero:  0 lukka
     one:   1 lukka
-    other: "{{count}} lukka"
+    other: "%{count} lukka"
   label_total: Totalt
   label_permissions: Godkjenninger
   label_current_status: Nåværende status
@@ -439,7 +440,7 @@
   label_months_from: måneder fra
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "siste {{count}} endringer"
+  label_last_changes: "siste %{count} endringer"
   label_change_view_all: Vis alle endringer
   label_personalize_page: Tilpass denne siden
   label_comment: Kommentar
@@ -447,7 +448,7 @@
   label_x_comments:
     zero: no kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Legg til kommentar
   label_comment_added: Kommentar lagt til
   label_comment_delete: Slett kommentar
@@ -466,7 +467,7 @@
   label_yesterday: i går
   label_this_week: denne uken
   label_last_week: sist uke
-  label_last_n_days: "siste {{count}} dager"
+  label_last_n_days: "siste %{count} dager"
   label_this_month: denne måneden
   label_last_month: siste måned
   label_this_year: dette året
@@ -480,8 +481,8 @@
   label_repository: Depot
   label_repository_plural: Depoter
   label_browse: Utforsk
-  label_modification: "{{count}} endring"
-  label_modification_plural: "{{count}} endringer"
+  label_modification: "%{count} endring"
+  label_modification_plural: "%{count} endringer"
   label_revision: Revisjon
   label_revision_plural: Revisjoner
   label_associated_revisions: Assosierte revisjoner
@@ -497,8 +498,8 @@
   label_sort_lower: Flytt ned
   label_sort_lowest: Flytt til bunnen
   label_roadmap: Veikart
-  label_roadmap_due_in: "Frist om {{value}}"
-  label_roadmap_overdue: "{{value}} over fristen"
+  label_roadmap_due_in: "Frist om %{value}"
+  label_roadmap_overdue: "%{value} over fristen"
   label_roadmap_no_issues: Ingen saker for denne versjonen
   label_search: Søk
   label_result_plural: Resultater
@@ -516,8 +517,8 @@
   label_changes_details: Detaljer om alle endringer
   label_issue_tracking: Sakssporing
   label_spent_time: Brukt tid
-  label_f_hour: "{{value}} time"
-  label_f_hour_plural: "{{value}} timer"
+  label_f_hour: "%{value} time"
+  label_f_hour_plural: "%{value} timer"
   label_time_tracking: Tidssporing
   label_change_plural: Endringer
   label_statistics: Statistikk
@@ -566,12 +567,12 @@
   label_date_from: Fra
   label_date_to: Til
   label_language_based: Basert på brukerens språk
-  label_sort_by: "Sorter etter {{value}}"
+  label_sort_by: "Sorter etter %{value}"
   label_send_test_email: Send en e-post-test
-  label_feeds_access_key_created_on: "RSS tilgangsnøkkel opprettet for {{value}} siden"
+  label_feeds_access_key_created_on: "RSS tilgangsnøkkel opprettet for %{value} siden"
   label_module_plural: Moduler
-  label_added_time_by: "Lagt til av {{author}} for {{age}} siden"
-  label_updated_time: "Oppdatert for {{value}} siden"
+  label_added_time_by: "Lagt til av %{author} for %{age} siden"
+  label_updated_time: "Oppdatert for %{value} siden"
   label_jump_to_a_project: GÃ¥ til et prosjekt...
   label_file_plural: Filer
   label_changeset_plural: Endringssett
@@ -587,7 +588,7 @@
   label_registration_activation_by_email: kontoaktivering pr. e-post
   label_registration_manual_activation: manuell kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Pr. side: {{value}}"
+  label_display_per_page: "Pr. side: %{value}"
   label_age: Alder
   label_change_properties: Endre egenskaper
   label_general: Generell
@@ -649,40 +650,40 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 betyr ingen begrensning
   text_project_destroy_confirmation: Er du sikker på at du vil slette dette prosjekter og alle relatert data ?
-  text_subprojects_destroy_warning: "Underprojekt(ene): {{value}} vil også bli slettet."
+  text_subprojects_destroy_warning: "Underprojekt(ene): %{value} vil også bli slettet."
   text_workflow_edit: Velg en rolle og en sakstype for å endre arbeidsflyten
   text_are_you_sure: Er du sikker ?
   text_tip_issue_begin_day: oppgaven starter denne dagen
   text_tip_issue_end_day: oppgaven avsluttes denne dagen
   text_tip_issue_begin_end_day: oppgaven starter og avsluttes denne dagen
   text_project_identifier_info: 'Små bokstaver (a-z), nummer og bindestrek tillatt.<br />Identifikatoren kan ikke endres etter den er lagret.'
-  text_caracters_maximum: "{{count}} tegn maksimum."
-  text_caracters_minimum: "Må være minst {{count}} tegn langt."
-  text_length_between: "Lengde mellom {{min}} og {{max}} tegn."
+  text_caracters_maximum: "%{count} tegn maksimum."
+  text_caracters_minimum: "Må være minst %{count} tegn langt."
+  text_length_between: "Lengde mellom %{min} og %{max} tegn."
   text_tracker_no_workflow: Ingen arbeidsflyt definert for denne sakstypen
   text_unallowed_characters: Ugyldige tegn
   text_comma_separated: Flere verdier tillat (kommaseparert).
   text_issues_ref_in_commit_messages: Referering og retting av saker i innsendingsmelding
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Er du sikker på at du vil slette denne wikien og alt innholdet ?
-  text_issue_category_destroy_question: "Noen saker ({{count}}) er lagt til i denne kategorien. Hva vil du gjøre ?"
+  text_issue_category_destroy_question: "Noen saker (%{count}) er lagt til i denne kategorien. Hva vil du gjøre ?"
   text_issue_category_destroy_assignments: Fjern bruk av kategorier
   text_issue_category_reassign_to: Overfør sakene til denne kategorien
   text_user_mail_option: "For ikke-valgte prosjekter vil du bare motta varsling om ting du overvåker eller er involveret i (eks. saker du er forfatter av eller er tildelt)."
   text_no_configuration_data: "Roller, arbeidsflyt, sakstyper og -statuser er ikke konfigurert enda.\nDet anbefales sterkt å laste inn standardkonfigurasjonen. Du vil kunne endre denne etter den er innlastet."
   text_load_default_configuration: Last inn standardkonfigurasjonen
-  text_status_changed_by_changeset: "Brukt i endringssett {{value}}."
+  text_status_changed_by_changeset: "Brukt i endringssett %{value}."
   text_issues_destroy_confirmation: 'Er du sikker på at du vil slette valgte sak(er) ?'
   text_select_project_modules: 'Velg moduler du vil aktivere for dette prosjektet:'
   text_default_administrator_account_changed: Standard administrator-konto er endret
   text_file_repository_writable: Fil-arkivet er skrivbart
   text_rmagick_available: RMagick er tilgjengelig (valgfritt)
-  text_destroy_time_entries_question: "{{hours}} timer er ført på sakene du er i ferd med å slette. Hva vil du gjøre ?"
+  text_destroy_time_entries_question: "%{hours} timer er ført på sakene du er i ferd med å slette. Hva vil du gjøre ?"
   text_destroy_time_entries: Slett førte timer
   text_assign_time_entries_to_project: Overfør førte timer til prosjektet
   text_reassign_time_entries: 'Overfør førte timer til denne saken:'
-  text_user_wrote: "{{value}} skrev:"
+  text_user_wrote: "%{value} skrev:"
   
   default_role_manager: Leder
   default_role_developer: Utvikler
@@ -710,7 +711,7 @@
   enumeration_doc_categories: Dokument-kategorier
   enumeration_activities: Aktiviteter (tidssporing)
   text_enumeration_category_reassign_to: 'Endre dem til denne verdien:'
-  text_enumeration_destroy_question: "{{count}} objekter er endret til denne verdien."
+  text_enumeration_destroy_question: "%{count} objekter er endret til denne verdien."
   label_incoming_emails: Innkommende e-post
   label_generate_key: Generer en nøkkel
   setting_mail_handler_api_enabled: Skru på WS for innkommende e-post
@@ -776,12 +777,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -796,21 +797,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -818,14 +819,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -860,9 +861,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -889,12 +890,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -902,7 +903,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -913,8 +914,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/pl.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/pl.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -61,50 +61,50 @@
       half_a_minute: "pół minuty"
       less_than_x_seconds:
         one:   "mniej niż sekundę"
-        few:   "mniej niż {{count}} sekundy"
-        other: "mniej niż {{count}} sekund"
+        few:   "mniej niż %{count} sekundy"
+        other: "mniej niż %{count} sekund"
       x_seconds:
         one:   "sekundÄ™"
-        few:   "{{count}} sekundy"
-        other: "{{count}} sekund"
+        few:   "%{count} sekundy"
+        other: "%{count} sekund"
       less_than_x_minutes:
         one:   "mniej niż minutę"
-        few:   "mniej niż {{count}} minuty"
-        other: "mniej niż {{count}} minut"
+        few:   "mniej niż %{count} minuty"
+        other: "mniej niż %{count} minut"
       x_minutes:
         one:   "minutÄ™"
-        few:   "{{count}} minuty"
-        other: "{{count}} minut"
+        few:   "%{count} minuty"
+        other: "%{count} minut"
       about_x_hours:
         one:   "około godziny"
-        other: "około {{count}} godzin"
+        other: "około %{count} godzin"
       x_days:
         one:   "1 dzień"
-        other: "{{count}} dni"
+        other: "%{count} dni"
       about_x_months:
         one:   "około miesiąca"
-        other: "około {{count}} miesięcy"
+        other: "około %{count} miesięcy"
       x_months:
         one:   "1 miesiÄ…c"
-        few:   "{{count}} miesiÄ…ce"
-        other: "{{count}} miesięcy"
+        few:   "%{count} miesiÄ…ce"
+        other: "%{count} miesięcy"
       about_x_years:
         one:   "około roku"
-        other: "około {{count}} lat"
+        other: "około %{count} lat"
       over_x_years:
         one:   "ponad rok"
-        few:   "ponad {{count}} lata"
-        other: "ponad {{count}} lat"
+        few:   "ponad %{count} lata"
+        other: "ponad %{count} lat"
       almost_x_years:
         one:   "prawie rok"
-        other: "prawie {{count}} lata"
+        other: "prawie %{count} lata"
 
   activerecord:
     errors:
       template:
         header:
-          one:    "{{model}} nie został zachowany z powodu jednego błędu"
-          other:  "{{model}} nie został zachowany z powodu {{count}} błędów"
+          one:    "%{model} nie został zachowany z powodu jednego błędu"
+          other:  "%{model} nie został zachowany z powodu %{count} błędów"
         body: "Błędy dotyczą następujących pól:"
       messages:
         inclusion: "nie znajduje się na liście dopuszczalnych wartości"
@@ -114,16 +114,16 @@
         accepted: "musi być zaakceptowane"
         empty: "nie może być puste"
         blank: "nie może być puste"
-        too_long: "jest za długie (maksymalnie {{count}} znaków)"
-        too_short: "jest za krótkie (minimalnie {{count}} znaków)"
-        wrong_length: "jest nieprawidłowej długości (powinna wynosić {{count}} znaków)"
+        too_long: "jest za długie (maksymalnie %{count} znaków)"
+        too_short: "jest za krótkie (minimalnie %{count} znaków)"
+        wrong_length: "jest nieprawidłowej długości (powinna wynosić %{count} znaków)"
         taken: "jest już zajęte"
         not_a_number: "nie jest liczbÄ…"
-        greater_than: "musi być większe niż {{count}}"
-        greater_than_or_equal_to: "musi być większe lub równe {{count}}"
-        equal_to: "musi być równe {{count}}"
-        less_than: "musi być mniejsze niż {{count}}"
-        less_than_or_equal_to: "musi być mniejsze lub równe {{count}}"
+        greater_than: "musi być większe niż %{count}"
+        greater_than_or_equal_to: "musi być większe lub równe %{count}"
+        equal_to: "musi być równe %{count}"
+        less_than: "musi być mniejsze niż %{count}"
+        less_than_or_equal_to: "musi być mniejsze lub równe %{count}"
         odd: "musi być nieparzyste"
         even: "musi być parzyste"
         greater_than_start_date: "musi być większe niż początkowa data"
@@ -203,10 +203,10 @@
   enumeration_activities: Działania (śledzenie czasu)
   enumeration_doc_categories: Kategorie dokumentów
   enumeration_issue_priorities: Priorytety zagadnień
-  error_can_t_load_default_data: "Domyślna konfiguracja nie może być załadowana: {{value}}"
+  error_can_t_load_default_data: "Domyślna konfiguracja nie może być załadowana: %{value}"
   error_issue_not_found_in_project: 'Zaganienie nie zostało znalezione lub nie należy do tego projektu'
   error_scm_annotate: "Wpis nie istnieje lub nie można do niego dodawać adnotacji."
-  error_scm_command_failed: "Wystąpił błąd przy próbie dostępu do repozytorium: {{value}}"
+  error_scm_command_failed: "Wystąpił błąd przy próbie dostępu do repozytorium: %{value}"
   error_scm_not_found: "Obiekt lub wersja nie zostały znalezione w repozytorium."
   field_account: Konto
   field_activity: Aktywność
@@ -277,6 +277,7 @@
   field_role: Rola
   field_searchable: Przeszukiwalne
   field_spent_on: Data
+  field_start_date: Start
   field_start_page: Strona startowa
   field_status: Status
   field_subject: Temat
@@ -304,21 +305,21 @@
   general_text_no: 'nie'
   general_text_yes: 'tak'
   gui_validation_error: 1 błąd
-  gui_validation_error_plural234: "{{count}} błędy"
-  gui_validation_error_plural5: "{{count}} błędów"
-  gui_validation_error_plural: "{{count}} błędów"
+  gui_validation_error_plural234: "%{count} błędy"
+  gui_validation_error_plural5: "%{count} błędów"
+  gui_validation_error_plural: "%{count} błędów"
   label_activity: Aktywność
   label_add_another_file: Dodaj kolejny plik
   label_add_note: Dodaj notatkÄ™
   label_added: dodane
-  label_added_time_by: "Dodane przez {{author}} {{age}} temu"
+  label_added_time_by: "Dodane przez %{author} %{age} temu"
   label_administration: Administracja
   label_age: Wiek
   label_ago: dni temu
   label_all: wszystko
   label_all_time: cały czas
   label_all_words: Wszystkie słowa
-  label_and_its_subprojects: "{{value}} i podprojekty"
+  label_and_its_subprojects: "%{value} i podprojekty"
   label_applied_status: Stosowany status
   label_assigned_to_me_issues: Zagadnienia przypisane do mnie
   label_associated_revisions: Skojarzone rewizje
@@ -333,7 +334,7 @@
   label_auth_source_plural: Tryby identyfikacji
   label_authentication: Identyfikacja
   label_blocked_by: zablokowane przez
-  label_blocks: blokady
+  label_blocks: blokuje
   label_board: Forum
   label_board_new: Nowe forum
   label_board_plural: Fora
@@ -353,17 +354,17 @@
   label_closed_issues_plural5: zamknięte
   label_closed_issues_plural: zamknięte
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_comment: Komentarz
   label_comment_add: Dodaj komentarz
   label_comment_added: Komentarz dodany
@@ -374,7 +375,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_commits_per_author: Zatwierdzenia według autorów
   label_commits_per_month: Zatwierdzenia według miesięcy
   label_confirmation: Potwierdzenie
@@ -398,18 +399,18 @@
   label_diff_inline: w linii
   label_diff_side_by_side: obok siebie
   label_disabled: zablokowany
-  label_display_per_page: "Na stronÄ™: {{value}}"
+  label_display_per_page: "Na stronÄ™: %{value}"
   label_document: Dokument
   label_document_added: Dodano dokument
   label_document_new: Nowy dokument
   label_document_plural: Dokumenty
-  label_download: "{{count}} Pobranie"
-  label_download_plural234: "{{count}} Pobrania"
-  label_download_plural5: "{{count}} Pobrań"
-  label_download_plural: "{{count}} Pobrania"
+  label_download: "%{count} Pobranie"
+  label_download_plural234: "%{count} Pobrania"
+  label_download_plural5: "%{count} Pobrań"
+  label_download_plural: "%{count} Pobrania"
   label_downloads_abbr: Pobieranie
   label_duplicated_by: zduplikowane przez
-  label_duplicates: duplikaty
+  label_duplicates: duplikuje
   label_end_to_end: koniec do końca
   label_end_to_start: koniec do poczÄ…tku
   label_enumeration_new: Nowa wartość
@@ -418,10 +419,10 @@
   label_equals: równa się
   label_example: Przykład
   label_export_to: Eksportuj do
-  label_f_hour: "{{value}} godzina"
-  label_f_hour_plural: "{{value}} godzin"
+  label_f_hour: "%{value} godzina"
+  label_f_hour_plural: "%{value} godzin"
   label_feed_plural: Ilość RSS
-  label_feeds_access_key_created_on: "Klucz dostępu RSS stworzony {{value}} dni temu"
+  label_feeds_access_key_created_on: "Klucz dostępu RSS stworzony %{value} dni temu"
   label_file_added: Dodano plik
   label_file_plural: Pliki
   label_filter_add: Dodaj filtr
@@ -458,13 +459,13 @@
   label_issue_updated: Uaktualniono zagadnienie
   label_issue_view_all: Zobacz wszystkie zagadnienia
   label_issue_watchers: Obserwatorzy
-  label_issues_by: "Zagadnienia wprowadzone przez {{value}}"
+  label_issues_by: "Zagadnienia wprowadzone przez %{value}"
   label_jump_to_a_project: Skocz do projektu...
   label_language_based: Na podstawie języka
-  label_last_changes: "ostatnie {{count}} zmian"
+  label_last_changes: "ostatnie %{count} zmian"
   label_last_login: Ostatnie połączenie
   label_last_month: ostatni miesiÄ…c
-  label_last_n_days: "ostatnie {{count}} dni"
+  label_last_n_days: "ostatnie %{count} dni"
   label_last_week: ostatni tydzień
   label_latest_revision: Najnowsza rewizja
   label_latest_revision_plural: Najnowsze rewizje
@@ -485,10 +486,10 @@
   label_message_plural: Wiadomości
   label_message_posted: Dodano wiadomość
   label_min_max_length: Min - Maks długość
-  label_modification: "{{count}} modyfikacja"
-  label_modification_plural234: "{{count}} modyfikacje"
-  label_modification_plural5: "{{count}} modyfikacji"
-  label_modification_plural: "{{count}} modyfikacje"
+  label_modification: "%{count} modyfikacja"
+  label_modification_plural234: "%{count} modyfikacje"
+  label_modification_plural5: "%{count} modyfikacji"
+  label_modification_plural: "%{count} modyfikacje"
   label_modified: zmodyfikowane
   label_module_plural: Moduły
   label_month: MiesiÄ…c
@@ -543,7 +544,7 @@
   label_x_projects:
     zero:  brak projektów
     one:   jeden projekt
-    other: "{{count}} projektów"
+    other: "%{count} projektów"
   label_public_projects: Projekty publiczne
   label_query: Kwerenda
   label_query_new: Nowa kwerenda
@@ -572,7 +573,7 @@
   label_roadmap: Mapa
   label_roadmap_due_in: W czasie
   label_roadmap_no_issues: Brak zagadnień do tej wersji
-  label_roadmap_overdue: "{{value}} spóźnienia"
+  label_roadmap_overdue: "%{value} spóźnienia"
   label_role: Rola
   label_role_and_permissions: Role i Uprawnienia
   label_role_new: Nowa rola
@@ -584,7 +585,7 @@
   label_send_test_email: Wyślij próbny email
   label_settings: Ustawienia
   label_show_completed_versions: Pokaż kompletne wersje
-  label_sort_by: "Sortuj po {{value}}"
+  label_sort_by: "Sortuj po %{value}"
   label_sort_higher: Do góry
   label_sort_highest: Przesuń na górę
   label_sort_lower: Do dołu
@@ -608,7 +609,7 @@
   label_tracker: Typ zagadnienia
   label_tracker_new: Nowy typ zagadnienia
   label_tracker_plural: Typy zagadnień
-  label_updated_time: "Zaktualizowane {{value}} temu"
+  label_updated_time: "Zaktualizowane %{value} temu"
   label_used_by: Używane przez
   label_user: Użytkownik
   label_user_mail_no_self_notified: "Nie chcę powiadomień o zmianach, które sam wprowadzam."
@@ -631,16 +632,16 @@
   label_workflow: Przepływ
   label_year: Rok
   label_yesterday: wczoraj
-  mail_body_account_activation_request: "Zarejestrowano nowego użytkownika: ({{value}}). Konto oczekuje na twoje zatwierdzenie:"
+  mail_body_account_activation_request: "Zarejestrowano nowego użytkownika: (%{value}). Konto oczekuje na twoje zatwierdzenie:"
   mail_body_account_information: Twoje konto
-  mail_body_account_information_external: "Możesz użyć twojego {{value}} konta do zalogowania."
+  mail_body_account_information_external: "Możesz użyć twojego %{value} konta do zalogowania."
   mail_body_lost_password: 'W celu zmiany swojego hasła użyj poniższego odnośnika:'
   mail_body_register: 'W celu aktywacji Twojego konta, użyj poniższego odnośnika:'
-  mail_body_reminder: "Wykaz przypisanych do Ciebie zagadnień, których termin wypada w ciągu następnych {{count}} dni"
-  mail_subject_account_activation_request: "Zapytanie aktywacyjne konta {{value}}"
-  mail_subject_lost_password: "Twoje hasło do {{value}}"
-  mail_subject_register: "Aktywacja konta w {{value}}"
-  mail_subject_reminder: "Uwaga na terminy, masz zagadnienia do obsłużenia w ciągu następnych {{count}} dni! ({{days}})"
+  mail_body_reminder: "Wykaz przypisanych do Ciebie zagadnień, których termin wypada w ciągu następnych %{count} dni"
+  mail_subject_account_activation_request: "Zapytanie aktywacyjne konta %{value}"
+  mail_subject_lost_password: "Twoje hasło do %{value}"
+  mail_subject_register: "Aktywacja konta w %{value}"
+  mail_subject_reminder: "Uwaga na terminy, masz zagadnienia do obsłużenia w ciągu następnych %{count} dni! (%{days})"
   notice_account_activated: Twoje konto zostało aktywowane. Możesz się zalogować.
   notice_account_invalid_creditentials: Zły użytkownik lub hasło
   notice_account_lost_email_sent: Email z instrukcjami zmiany hasła został wysłany do Ciebie.
@@ -652,9 +653,9 @@
   notice_account_wrong_password: Złe hasło
   notice_can_t_change_password: To konto ma zewnętrzne źródło identyfikacji. Nie możesz zmienić hasła.
   notice_default_data_loaded: Domyślna konfiguracja została pomyślnie załadowana.
-  notice_email_error: "Wystąpił błąd w trakcie wysyłania maila ({{value}})"
-  notice_email_sent: "Email został wysłany do {{value}}"
-  notice_failed_to_save_issues: "Błąd podczas zapisu zagadnień {{count}} z {{total}} zaznaczonych: {{ids}}."
+  notice_email_error: "Wystąpił błąd w trakcie wysyłania maila (%{value})"
+  notice_email_sent: "Email został wysłany do %{value}"
+  notice_failed_to_save_issues: "Błąd podczas zapisu zagadnień %{count} z %{total} zaznaczonych: %{ids}."
   notice_feeds_access_key_reseted: Twój klucz dostępu RSS został zrestetowany.
   notice_file_not_found: Strona do której próbujesz się dostać nie istnieje lub została usunięta.
   notice_locking_conflict: Dane poprawione przez innego użytkownika.
@@ -764,24 +765,24 @@
   status_registered: zarejestrowany
   text_are_you_sure: JesteÅ› pewien ?
   text_assign_time_entries_to_project: Przypisz wpisy dziennika do projektu
-  text_caracters_maximum: "{{count}} znaków maksymalnie."
-  text_caracters_minimum: "Musi być nie krótsze niż {{count}} znaków."
+  text_caracters_maximum: "%{count} znaków maksymalnie."
+  text_caracters_minimum: "Musi być nie krótsze niż %{count} znaków."
   text_comma_separated: Wielokrotne wartości dozwolone (rozdzielone przecinkami).
   text_default_administrator_account_changed: Zmieniono domyślne hasło administratora
   text_destroy_time_entries: Usuń wpisy dziennika
-  text_destroy_time_entries_question: Przepracowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
+  text_destroy_time_entries_question: Przepracowano %{hours} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
   text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml  a następnie zrestartuj aplikację i uaktywnij to."
   text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:'
-  text_enumeration_destroy_question: "{{count}} obiektów jest przypisana do tej wartości."
+  text_enumeration_destroy_question: "%{count} obiektów jest przypisana do tej wartości."
   text_file_repository_writable: Zapisywalne repozytorium plików
-  text_issue_added: "Zagadnienie {{id}} zostało wprowadzone (by {{author}})."
+  text_issue_added: "Zagadnienie %{id} zostało wprowadzone (by %{author})."
   text_issue_category_destroy_assignments: Usuń przydziały kategorii
-  text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz zrobić?"
+  text_issue_category_destroy_question: "Zagadnienia (%{count}) są przypisane do tej kategorii. Co chcesz zrobić?"
   text_issue_category_reassign_to: Przydziel zagadnienie do tej kategorii
-  text_issue_updated: "Zagadnienie {{id}} zostało zaktualizowane (by {{author}})."
+  text_issue_updated: "Zagadnienie %{id} zostało zaktualizowane (by %{author})."
   text_issues_destroy_confirmation: 'Czy jestes pewien, że chcesz usunąć wskazane zagadnienia?'
   text_issues_ref_in_commit_messages: Odwołania do zagadnień w komentarzach zatwierdzeń
-  text_length_between: "Długość pomiędzy {{min}} i {{max}} znaków."
+  text_length_between: "Długość pomiędzy %{min} i %{max} znaków."
   text_load_default_configuration: Załaduj domyślną konfigurację
   text_min_max_length_info: 0 oznacza brak restrykcji
   text_no_configuration_data: "Role użytkowników, typy zagadnień, statusy zagadnień oraz przepływ pracy nie zostały jeszcze skonfigurowane.\nJest wysoce rekomendowane by załadować domyślną konfigurację. Po załadowaniu będzie możliwość edycji tych danych."
@@ -793,24 +794,24 @@
   text_rmagick_available: RMagick dostępne (opcjonalnie)
   text_select_mail_notifications: Zaznacz czynności przy których użytkownik powinien być powiadomiony mailem.
   text_select_project_modules: 'Wybierz moduły do aktywacji w tym projekcie:'
-  text_status_changed_by_changeset: "Zastosowane w zmianach {{value}}."
-  text_subprojects_destroy_warning: "Podprojekt(y): {{value}} zostaną także usunięte."
+  text_status_changed_by_changeset: "Zastosowane w zmianach %{value}."
+  text_subprojects_destroy_warning: "Podprojekt(y): %{value} zostaną także usunięte."
   text_tip_issue_begin_day: zadanie zaczynajÄ…ce siÄ™ dzisiaj
   text_tip_issue_begin_end_day: zadanie zaczynające i kończące się dzisiaj
   text_tip_issue_end_day: zadanie kończące się dzisiaj
   text_tracker_no_workflow: Brak przepływu zdefiniowanego dla tego typu zagadnienia
   text_unallowed_characters: Niedozwolone znaki
   text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnień, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)."
-  text_user_wrote: "{{value}} napisał:"
+  text_user_wrote: "%{value} napisał:"
   text_wiki_destroy_confirmation: Jesteś pewien, że chcesz usunąć to wiki i całą jego zawartość ?
   text_workflow_edit: Zaznacz rolę i typ zagadnienia do edycji przepływu
   
-  label_user_activity: "Aktywność: {{value}}"
-  label_updated_time_by: "Uaktualnione przez {{author}} {{age}} temu"
+  label_user_activity: "Aktywność: %{value}"
+  label_updated_time_by: "Uaktualnione przez %{author} %{age} temu"
   text_diff_truncated: '... Ten plik różnic został przycięty ponieważ jest zbyt długi.'
   setting_diff_max_lines_displayed: Maksymalna liczba linii różnicy do pokazania
   text_plugin_assets_writable: Zapisywalny katalog zasobów wtyczek
-  warning_attachments_not_saved: "{{count}} załącznik(ów) nie zostało zapisanych."
+  warning_attachments_not_saved: "%{count} załącznik(ów) nie zostało zapisanych."
   field_editable: Edytowalne
   label_display: WyglÄ…d
   button_create_and_continue: Stwórz i dodaj kolejne
@@ -825,21 +826,21 @@
   label_descending: MalejÄ…co
   label_sort: Sortuj
   label_ascending: RosnÄ…co
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Ta strona posiada podstrony ({{descendants}}). Co chcesz zrobić?
+  text_wiki_page_destroy_question: Ta strona posiada podstrony (%{descendants}). Co chcesz zrobić?
   text_wiki_page_reassign_children: Podepnij je do strony nadrzędnej względem usuwanej
   text_wiki_page_nullify_children: Przesuń je na szczyt hierarchii
   text_wiki_page_destroy_children: Usuń wszystkie podstrony
   setting_password_min_length: Minimalna długość hasła
   field_group_by: Grupuj wyniki wg
-  mail_subject_wiki_content_updated: "Strona wiki '{{id}}' została uaktualniona"
+  mail_subject_wiki_content_updated: "Strona wiki '%{id}' została uaktualniona"
   label_wiki_content_added: Dodano stronÄ™ wiki
-  mail_subject_wiki_content_added: "Strona wiki '{{id}}' została dodana"
-  mail_body_wiki_content_added: Strona wiki '{{id}}' została dodana przez {{author}}.
+  mail_subject_wiki_content_added: "Strona wiki '%{id}' została dodana"
+  mail_body_wiki_content_added: Strona wiki '%{id}' została dodana przez %{author}.
   label_wiki_content_updated: Uaktualniono stronÄ™ wiki
-  mail_body_wiki_content_updated: Strona wiki '{{id}}' została uaktualniona przez {{author}}.
+  mail_body_wiki_content_updated: Strona wiki '%{id}' została uaktualniona przez %{author}.
   permission_add_project: Tworzenie projektu
   setting_new_project_user_role_id: Rola nadawana twórcom projektów, którzy nie posiadają uprawnień administatora
   label_view_all_revisions: Pokaż wszystkie rewizje
@@ -847,14 +848,14 @@
   label_branch: Gałąź
   error_no_tracker_in_project: Projekt nie posiada powiązanych typów zagadnień. Sprawdź ustawienia projektu.
   error_no_default_issue_status: Nie zdefiniowano domyślnego statusu zagadnień. Sprawdź konfigurację (Przejdź do "Administracja -> Statusy zagadnień).
-  text_journal_changed: "Zmieniono {{label}} z {{old}} na {{new}}"
-  text_journal_set_to: "Ustawiono {{label}} na {{value}}"
-  text_journal_deleted: "Usunięto {{label}} ({{old}})"
+  text_journal_changed: "Zmieniono %{label} z %{old} na %{new}"
+  text_journal_set_to: "Ustawiono %{label} na %{value}"
+  text_journal_deleted: "Usunięto %{label} (%{old})"
   label_group_plural: Grupy
   label_group: Grupa
   label_group_new: Nowa grupa
   label_time_entry_plural: Przepracowany czas
-  text_journal_added: "Dodano {{label}} {{value}}"
+  text_journal_added: "Dodano %{label} %{value}"
   field_active: Aktywne
   enumeration_system_activity: Aktywność Systemowa
   button_copy_and_follow: Kopiuj i przejdź do kopii zagadnienia
@@ -868,7 +869,7 @@
   error_workflow_copy_target: Proszę wybrać docelowe typ(y) zagadnień i rolę(e)
   field_sharing: Współdzielenie
   label_api_access_key: Klucz dostępu do API
-  label_api_access_key_created_on: Klucz dostępu do API został utworzony {{value}} temu
+  label_api_access_key_created_on: Klucz dostępu do API został utworzony %{value} temu
   label_close_versions: Zamknij ukończone wersje
   label_copy_same_as_target: Jak cel
   label_copy_source: Źródło
@@ -877,7 +878,7 @@
   label_feeds_access_key: Klucz dostępu do RSS
   label_missing_api_access_key: Brakuje klucza dostępu do API
   label_missing_feeds_access_key: Brakuje klucza dostępu do RSS
-  label_revision_id: Rewizja {{value}}
+  label_revision_id: Rewizja %{value}
   label_subproject_new: Nowy podprojekt
   label_update_issue_done_ratios: Uaktualnij % wykonania
   label_user_anonymous: Anonimowy
@@ -919,12 +920,12 @@
   label_subtask_plural: Podzagadnienia
   label_project_copy_notifications: Wyślij powiadomienia mailowe przy kopiowaniu projektu
   error_can_not_delete_custom_field: Nie można usunąć tego pola
-  error_unable_to_connect: Nie można połączyć ({{value}})
+  error_unable_to_connect: Nie można połączyć (%{value})
   error_can_not_remove_role: Ta rola przypisana jest niektórym użytkownikom i nie może zostać usunięta.
   error_can_not_delete_tracker: Ten typ przypisany jest do części zagadnień i nie może zostać usunięty.
   field_principal: Przełożony
   label_my_page_block: Elementy
-  notice_failed_to_save_members: "Nie można zapisać uczestników: {{errors}}."
+  notice_failed_to_save_members: "Nie można zapisać uczestników: %{errors}."
   text_zoom_out: Zmniejsz czcionkÄ™
   text_zoom_in: Powiększ czcionkę
   notice_unable_delete_time_entry: Nie można usunąć wpisu z dziennika.
@@ -932,7 +933,7 @@
   field_time_entries: Dziennik
   project_module_gantt: Diagram Gantta
   project_module_calendar: Kalendarz
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -943,8 +944,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/pt-BR.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/pt-BR.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -33,46 +33,46 @@
       half_a_minute: 'meio minuto'
       less_than_x_seconds:
         one: 'menos de 1 segundo'
-        other: 'menos de {{count}} segundos'
+        other: 'menos de %{count} segundos'
 
       x_seconds:
         one: '1 segundo'
-        other: '{{count}} segundos'
+        other: '%{count} segundos'
 
       less_than_x_minutes:
         one: 'menos de um minuto'
-        other: 'menos de {{count}} minutos'
+        other: 'menos de %{count} minutos'
 
       x_minutes:
         one: '1 minuto'
-        other: '{{count}} minutos'
+        other: '%{count} minutos'
 
       about_x_hours:
         one: 'aproximadamente 1 hora'
-        other: 'aproximadamente {{count}} horas'
+        other: 'aproximadamente %{count} horas'
 
       x_days:
         one: '1 dia'
-        other: '{{count}} dias'
+        other: '%{count} dias'
 
       about_x_months:
         one: 'aproximadamente 1 mês'
-        other: 'aproximadamente {{count}} meses'
+        other: 'aproximadamente %{count} meses'
 
       x_months:
         one: '1 mês'
-        other: '{{count}} meses'
+        other: '%{count} meses'
 
       about_x_years:
         one: 'aproximadamente 1 ano'
-        other: 'aproximadamente {{count}} anos'
+        other: 'aproximadamente %{count} anos'
 
       over_x_years:
         one: 'mais de 1 ano'
-        other: 'mais de {{count}} anos'
+        other: 'mais de %{count} anos'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   # numeros
   number:
@@ -118,7 +118,7 @@
       template:
         header:
           one: "model não pode ser salvo: 1 erro"
-          other: "model não pode ser salvo: {{count}} erros."
+          other: "model não pode ser salvo: %{count} erros."
         body: "Por favor, verifique os seguintes campos:"
       messages:
         inclusion: "não está incluso na lista"
@@ -128,16 +128,16 @@
         accepted: "precisa ser aceito"
         empty: "não pode ficar vazio"
         blank: "não pode ficar vazio"
-        too_long: "é muito longo (máximo: {{count}} caracteres)"
-        too_short: "é muito curto (mínimon: {{count}} caracteres)"
-        wrong_length: "deve ter {{count}} caracteres"
+        too_long: "é muito longo (máximo: %{count} caracteres)"
+        too_short: "é muito curto (mínimon: %{count} caracteres)"
+        wrong_length: "deve ter %{count} caracteres"
         taken: "não está disponível"
         not_a_number: "não é um número"
-        greater_than: "precisa ser maior do que {{count}}"
-        greater_than_or_equal_to: "precisa ser maior ou igual a {{count}}"
-        equal_to: "precisa ser igual a {{count}}"
-        less_than: "precisa ser menor do que {{count}}"
-        less_than_or_equal_to: "precisa ser menor ou igual a {{count}}"
+        greater_than: "precisa ser maior do que %{count}"
+        greater_than_or_equal_to: "precisa ser maior ou igual a %{count}"
+        equal_to: "precisa ser igual a %{count}"
+        less_than: "precisa ser menor do que %{count}"
+        less_than_or_equal_to: "precisa ser menor ou igual a %{count}"
         odd: "precisa ser ímpar"
         even: "precisa ser par"
         greater_than_start_date: "deve ser maior que a data inicial"
@@ -174,35 +174,35 @@
   notice_file_not_found: A página que você está tentando acessar não existe ou foi excluída.
   notice_locking_conflict: Os dados foram atualizados por outro usuário.
   notice_not_authorized: Você não está autorizado a acessar esta página.
-  notice_email_sent: "Um e-mail foi enviado para {{value}}"
-  notice_email_error: "Ocorreu um erro ao enviar o e-mail ({{value}})"
+  notice_email_sent: "Um e-mail foi enviado para %{value}"
+  notice_email_error: "Ocorreu um erro ao enviar o e-mail (%{value})"
   notice_feeds_access_key_reseted: Sua chave RSS foi reconfigurada.
-  notice_failed_to_save_issues: "Problema ao salvar {{count}} tarefa(s) de {{total}} selecionadas: {{ids}}."
+  notice_failed_to_save_issues: "Problema ao salvar %{count} tarefa(s) de %{total} selecionadas: %{ids}."
   notice_no_issue_selected: "Nenhuma tarefa selecionada! Por favor, marque as tarefas que você deseja editar."
   notice_account_pending: "Sua conta foi criada e está aguardando aprovação do administrador."
   notice_default_data_loaded: Configuração padrão carregada com sucesso.
 
-  error_can_t_load_default_data: "A configuração padrão não pode ser carregada: {{value}}"
+  error_can_t_load_default_data: "A configuração padrão não pode ser carregada: %{value}"
   error_scm_not_found: "A entrada e/ou a revisão não existe no repositório."
-  error_scm_command_failed: "Ocorreu um erro ao tentar acessar o repositório: {{value}}"
+  error_scm_command_failed: "Ocorreu um erro ao tentar acessar o repositório: %{value}"
   error_scm_annotate: "Esta entrada não existe ou não pode ser anotada."
   error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projeto'
   error_no_tracker_in_project: 'Não há um tipo de tarefa associado a este projeto. Favor verificar as configurações do projeto.'
   error_no_default_issue_status: 'A situação padrão para tarefa não está definida. Favor verificar sua configuração (Vá em "Administração -> Situação da tarefa").'
 
-  mail_subject_lost_password: "Sua senha do {{value}}."
+  mail_subject_lost_password: "Sua senha do %{value}."
   mail_body_lost_password: 'Para mudar sua senha, clique no link abaixo:'
-  mail_subject_register: "Ativação de conta do {{value}}."
+  mail_subject_register: "Ativação de conta do %{value}."
   mail_body_register: 'Para ativar sua conta, clique no link abaixo:'
-  mail_body_account_information_external: "Você pode usar sua conta do {{value}} para entrar."
+  mail_body_account_information_external: "Você pode usar sua conta do %{value} para entrar."
   mail_body_account_information: Informações sobre sua conta
-  mail_subject_account_activation_request: "{{value}} - Requisição de ativação de conta"
-  mail_body_account_activation_request: "Um novo usuário ({{value}}) se registrou. A conta está aguardando sua aprovação:"
-  mail_subject_reminder: "{{count}} tarefa(s) com data prevista para os próximos {{days}} dias"
-  mail_body_reminder: "{{count}} tarefa(s) para você com data prevista para os próximos {{days}} dias:"
+  mail_subject_account_activation_request: "%{value} - Requisição de ativação de conta"
+  mail_body_account_activation_request: "Um novo usuário (%{value}) se registrou. A conta está aguardando sua aprovação:"
+  mail_subject_reminder: "%{count} tarefa(s) com data prevista para os próximos %{days} dias"
+  mail_body_reminder: "%{count} tarefa(s) para você com data prevista para os próximos %{days} dias:"
 
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
 
   field_name: Nome
   field_description: Descrição
@@ -264,6 +264,7 @@
   field_attr_lastname: Atributo para sobrenome
   field_attr_mail: Atributo para e-mail
   field_onthefly: Criar usuários dinamicamente ("on-the-fly")
+  field_start_date: Início
   field_done_ratio: % Terminado
   field_auth_source: Modo de autenticação
   field_hide_mail: Ocultar meu e-mail
@@ -343,14 +344,14 @@
   label_x_projects:
     zero:  nenhum projeto
     one:   1 projeto
-    other: "{{count}} projetos"
+    other: "%{count} projetos"
   label_project_all: Todos os projetos
   label_project_latest: Últimos projetos
   label_issue: Tarefa
   label_issue_new: Nova tarefa
   label_issue_plural: Tarefas
   label_issue_view_all: Ver todas as tarefas
-  label_issues_by: "Tarefas por {{value}}"
+  label_issues_by: "Tarefas por %{value}"
   label_issue_added: Tarefa adicionada
   label_issue_updated: Tarefa atualizada
   label_document: Documento
@@ -406,7 +407,7 @@
   label_auth_source_new: Novo modo de autenticação
   label_auth_source_plural: Modos de autenticação
   label_subproject_plural: Sub-projetos
-  label_and_its_subprojects: "{{value}} e seus sub-projetos"
+  label_and_its_subprojects: "%{value} e seus sub-projetos"
   label_min_max_length: Tamanho mín-máx
   label_list: Lista
   label_date: Data
@@ -417,8 +418,8 @@
   label_text: Texto longo
   label_attribute: Atributo
   label_attribute_plural: Atributos
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Nenhuma informação disponível
   label_change_status: Alterar situação
   label_history: Histórico
@@ -449,17 +450,17 @@
   label_closed_issues: Fechada
   label_closed_issues_plural: Fechadas
   label_x_open_issues_abbr_on_total:
-    zero:  0 aberta / {{total}}
-    one:   1 aberta / {{total}}
-    other: "{{count}} abertas / {{total}}"
+    zero:  0 aberta / %{total}
+    one:   1 aberta / %{total}
+    other: "%{count} abertas / %{total}"
   label_x_open_issues_abbr:
     zero:  0 aberta
     one:   1 aberta
-    other: "{{count}} abertas"
+    other: "%{count} abertas"
   label_x_closed_issues_abbr:
     zero:  0 fechada
     one:   1 fechada
-    other: "{{count}} fechadas"
+    other: "%{count} fechadas"
   label_total: Total
   label_permissions: Permissões
   label_current_status: Situação atual
@@ -477,7 +478,7 @@
   label_months_from: meses a partir de
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "últimas {{count}} alterações"
+  label_last_changes: "últimas %{count} alterações"
   label_change_view_all: Mostrar todas as alterações
   label_personalize_page: Personalizar esta página
   label_comment: Comentário
@@ -485,7 +486,7 @@
   label_x_comments:
     zero: nenhum comentário
     one: 1 comentário
-    other: "{{count}} comentários"
+    other: "%{count} comentários"
   label_comment_add: Adicionar comentário
   label_comment_added: Comentário adicionado
   label_comment_delete: Excluir comentário
@@ -504,7 +505,7 @@
   label_yesterday: ontem
   label_this_week: esta semana
   label_last_week: última semana
-  label_last_n_days: "últimos {{count}} dias"
+  label_last_n_days: "últimos %{count} dias"
   label_this_month: este mês
   label_last_month: último mês
   label_this_year: este ano
@@ -518,8 +519,8 @@
   label_repository: Repositório
   label_repository_plural: Repositórios
   label_browse: Procurar
-  label_modification: "{{count}} alteração"
-  label_modification_plural: "{{count}} alterações"
+  label_modification: "%{count} alteração"
+  label_modification_plural: "%{count} alterações"
   label_revision: Revisão
   label_revision_plural: Revisões
   label_associated_revisions: Revisões associadas
@@ -535,8 +536,8 @@
   label_sort_lower: Mover para baixo
   label_sort_lowest: Mover para o fim
   label_roadmap: Planejamento
-  label_roadmap_due_in: "Previsto para {{value}}"
-  label_roadmap_overdue: "{{value}} atrasado"
+  label_roadmap_due_in: "Previsto para %{value}"
+  label_roadmap_overdue: "%{value} atrasado"
   label_roadmap_no_issues: Sem tarefas para esta versão
   label_search: Busca
   label_result_plural: Resultados
@@ -554,8 +555,8 @@
   label_changes_details: Detalhes de todas as alterações
   label_issue_tracking: Tarefas
   label_spent_time: Tempo gasto
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_time_tracking: Controle de horas
   label_change_plural: Alterações
   label_statistics: Estatísticas
@@ -604,12 +605,12 @@
   label_date_from: De
   label_date_to: Para
   label_language_based: Com base no idioma do usuário
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_send_test_email: Enviar um e-mail de teste
-  label_feeds_access_key_created_on: "chave de acesso RSS criada {{value}} atrás"
+  label_feeds_access_key_created_on: "chave de acesso RSS criada %{value} atrás"
   label_module_plural: Módulos
-  label_added_time_by: "Adicionado por {{author}} {{age}} atrás"
-  label_updated_time: "Atualizado {{value}} atrás"
+  label_added_time_by: "Adicionado por %{author} %{age} atrás"
+  label_updated_time: "Atualizado %{value} atrás"
   label_jump_to_a_project: Ir para o projeto...
   label_file_plural: Arquivos
   label_changeset_plural: Changesets
@@ -625,7 +626,7 @@
   label_registration_activation_by_email: ativação de conta por e-mail
   label_registration_manual_activation: ativação manual de conta
   label_registration_automatic_activation: ativação automática de conta
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_age: Idade
   label_change_properties: Alterar propriedades
   label_general: Geral
@@ -691,41 +692,41 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 = sem restrição
   text_project_destroy_confirmation: Você tem certeza que deseja excluir este projeto e todos os dados relacionados?
-  text_subprojects_destroy_warning: "Seu(s) subprojeto(s): {{value}} também serão excluídos."
+  text_subprojects_destroy_warning: "Seu(s) subprojeto(s): %{value} também serão excluídos."
   text_workflow_edit: Selecione um papel e um tipo de tarefa para editar o fluxo de trabalho
   text_are_you_sure: Você tem certeza?
   text_tip_issue_begin_day: tarefa inicia neste dia
   text_tip_issue_end_day: tarefa termina neste dia
   text_tip_issue_begin_end_day: tarefa inicia e termina neste dia
   text_project_identifier_info: 'Letras minúsculas (a-z), números e hífens permitidos.<br />Uma vez salvo, o identificador não poderá ser alterado.'
-  text_caracters_maximum: "máximo {{count}} caracteres"
-  text_caracters_minimum: "deve ter ao menos {{count}} caracteres."
-  text_length_between: "deve ter entre {{min}} e {{max}} caracteres."
+  text_caracters_maximum: "máximo %{count} caracteres"
+  text_caracters_minimum: "deve ter ao menos %{count} caracteres."
+  text_length_between: "deve ter entre %{min} e %{max} caracteres."
   text_tracker_no_workflow: Sem fluxo de trabalho definido para este tipo.
   text_unallowed_characters: Caracteres não permitidos
   text_comma_separated: Múltiplos valores são permitidos (separados por vírgula).
   text_issues_ref_in_commit_messages: Referenciando tarefas nas mensagens de commit
-  text_issue_added: "Tarefa {{id}} incluída (por {{author}})."
-  text_issue_updated: "Tarefa {{id}} alterada (por {{author}})."
+  text_issue_added: "Tarefa %{id} incluída (por %{author})."
+  text_issue_updated: "Tarefa %{id} alterada (por %{author})."
   text_wiki_destroy_confirmation: Você tem certeza que deseja excluir este wiki e TODO o seu conteúdo?
-  text_issue_category_destroy_question: "Algumas tarefas ({{count}}) estão atribuídas a esta categoria. O que você deseja fazer?"
+  text_issue_category_destroy_question: "Algumas tarefas (%{count}) estão atribuídas a esta categoria. O que você deseja fazer?"
   text_issue_category_destroy_assignments: Remover atribuições da categoria
   text_issue_category_reassign_to: Redefinir tarefas para esta categoria
   text_user_mail_option: "Para projetos (não selecionados), você somente receberá notificações sobre o que você está observando ou está envolvido (ex. tarefas das quais você é o autor ou que estão atribuídas a você)"
   text_no_configuration_data: "Os Papéis, tipos de tarefas, situação de tarefas e fluxos de trabalho não foram configurados ainda.\nÉ altamente recomendado carregar as configurações padrão. Você poderá modificar estas configurações assim que carregadas."
   text_load_default_configuration: Carregar a configuração padrão
-  text_status_changed_by_changeset: "Aplicado no changeset {{value}}."
+  text_status_changed_by_changeset: "Aplicado no changeset %{value}."
   text_issues_destroy_confirmation: 'Você tem certeza que deseja excluir a(s) tarefa(s) selecionada(s)?'
   text_select_project_modules: 'Selecione módulos para habilitar para este projeto:'
   text_default_administrator_account_changed: Conta padrão do administrador alterada
   text_file_repository_writable: Repositório com permissão de escrita
   text_rmagick_available: RMagick disponível (opcional)
-  text_destroy_time_entries_question: "{{hours}} horas de trabalho foram registradas nas tarefas que você está excluindo. O que você deseja fazer?"
+  text_destroy_time_entries_question: "%{hours} horas de trabalho foram registradas nas tarefas que você está excluindo. O que você deseja fazer?"
   text_destroy_time_entries: Excluir horas de trabalho
   text_assign_time_entries_to_project: Atribuir estas horas de trabalho para outro projeto
   text_reassign_time_entries: 'Atribuir horas reportadas para esta tarefa:'
-  text_user_wrote: "{{value}} escreveu:"
-  text_enumeration_destroy_question: "{{count}} objetos estão atribuídos a este valor."
+  text_user_wrote: "%{value} escreveu:"
+  text_enumeration_destroy_question: "%{count} objetos estão atribuídos a este valor."
   text_enumeration_category_reassign_to: 'Reatribuí-los ao valor:'
   text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/email.yml e reinicie a aplicação para ativá-las."
 
@@ -809,12 +810,12 @@
   text_repository_usernames_mapping: "Seleciona ou atualiza os usuários do Redmine mapeando para cada usuário encontrado no log do repositório.\nUsuários com o mesmo login ou e-mail no Redmine e no repositório serão mapeados automaticamente."
   permission_edit_own_messages: Editar próprias mensagens
   permission_delete_own_messages: Excluir próprias mensagens
-  label_user_activity: "Atividade de {{value}}"
-  label_updated_time_by: "Atualizado por {{author}} há {{age}}"
+  label_user_activity: "Atividade de %{value}"
+  label_updated_time_by: "Atualizado por %{author} há %{age}"
   text_diff_truncated: '... Este diff foi truncado porque excede o tamanho máximo que pode ser exibido.'
   setting_diff_max_lines_displayed: Número máximo de linhas exibidas no diff
   text_plugin_assets_writable: Diretório de plugins gravável
-  warning_attachments_not_saved: "{{count}} arquivo(s) não puderam ser salvo(s)."
+  warning_attachments_not_saved: "%{count} arquivo(s) não puderam ser salvo(s)."
   button_create_and_continue: Criar e continuar
   text_custom_field_possible_values_info: 'Uma linha para cada valor'
   label_display: Exibição
@@ -829,34 +830,34 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: De {{start}} até {{end}}
+  label_date_from_to: De %{start} até %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tem {{descendants}} página(s) filha(s) e descendente(s). O que você quer fazer?
+  text_wiki_page_destroy_question: Esta página tem %{descendants} página(s) filha(s) e descendente(s). O que você quer fazer?
   text_wiki_page_reassign_children: Reatribuir páginas filhas para esta página pai
   text_wiki_page_nullify_children: Manter as páginas filhas como páginas raízes
   text_wiki_page_destroy_children: Excluir páginas filhas e todas suas descendentes
   setting_password_min_length: Comprimento mínimo para senhas
   field_group_by: Agrupar por
-  mail_subject_wiki_content_updated: "A página wiki '{{id}}' foi atualizada"
+  mail_subject_wiki_content_updated: "A página wiki '%{id}' foi atualizada"
   label_wiki_content_added: Página wiki adicionada
-  mail_subject_wiki_content_added: "A página wiki '{{id}}' foi adicionada"
-  mail_body_wiki_content_added: A página wiki '{{id}}' foi adicionada por {{author}}.
+  mail_subject_wiki_content_added: "A página wiki '%{id}' foi adicionada"
+  mail_body_wiki_content_added: A página wiki '%{id}' foi adicionada por %{author}.
   label_wiki_content_updated: Página wiki atualizada
-  mail_body_wiki_content_updated: A página wiki '{{id}}' foi atualizada por {{author}}.
+  mail_body_wiki_content_updated: A página wiki '%{id}' foi atualizada por %{author}.
   permission_add_project: Criar projeto
   setting_new_project_user_role_id: Papel atribuído a um usuário não-administrador que cria um projeto
   label_view_all_revisions: Ver todas as revisões
   label_tag: Etiqueta
   label_branch: Ramo
-  text_journal_changed: "{{label}} alterado de {{old}} para {{new}}"
-  text_journal_set_to: "{{label}} ajustado para {{value}}"
-  text_journal_deleted: "{{label}} excluído ({{old}})"
+  text_journal_changed: "%{label} alterado de %{old} para %{new}"
+  text_journal_set_to: "%{label} ajustado para %{value}"
+  text_journal_deleted: "%{label} excluído (%{old})"
   label_group_plural: Grupos
   label_group: Grupo
   label_group_new: Novo grupo
   label_time_entry_plural: Tempos gastos
-  text_journal_added: "{{label}} {{value}} adicionado"
+  text_journal_added: "%{label} %{value} adicionado"
   field_active: Ativo
   enumeration_system_activity: Atividade do sistema
   permission_delete_issue_watchers: Excluir observadores
@@ -892,10 +893,10 @@
   field_watcher: Observador
   permission_view_issues: Ver tarefas
   label_display_used_statuses_only: Somente exibir situações que são usadas por este tipo de tarefa
-  label_revision_id: Revisão {{value}}
+  label_revision_id: Revisão %{value}
   label_api_access_key: Chave de acesso a API
   button_show: Exibir
-  label_api_access_key_created_on: Chave de acesso a API criado a {{value}} atrás
+  label_api_access_key_created_on: Chave de acesso a API criado a %{value} atrás
   label_feeds_access_key: Chave de acesso ao RSS
   notice_api_access_key_reseted: Sua chave de acesso a API foi redefinida.
   setting_rest_api_enabled: Habilitar REST web service
@@ -922,12 +923,12 @@
   label_subtask_plural: Subtarefas
   label_project_copy_notifications: Enviar notificações por e-mail ao copiar projeto
   error_can_not_delete_custom_field: Não foi possível excluir o campo personalizado
-  error_unable_to_connect: Não foi possível conectar ({{value}})
+  error_unable_to_connect: Não foi possível conectar (%{value})
   error_can_not_remove_role: Este papel está em uso e não pode ser excluído.
   error_can_not_delete_tracker: Este tipo de tarefa está atribuído a alguma(s) tarefa(s) e não pode ser excluído.
   field_principal: Principal
   label_my_page_block: Meu bloco de página
-  notice_failed_to_save_members: "Falha ao gravar membro(s): {{errors}}."
+  notice_failed_to_save_members: "Falha ao gravar membro(s): %{errors}."
   text_zoom_out: Afastar zoom
   text_zoom_in: Aproximar zoom
   notice_unable_delete_time_entry: Não foi possível excluir a entrada no registro de horas trabalhadas.
@@ -935,7 +936,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendário
-  button_edit_associated_wikipage: "Editar página wiki relacionada: {{page_title}}"
+  button_edit_associated_wikipage: "Editar página wiki relacionada: %{page_title}"
   text_are_you_sure_with_children: Excluir a tarefa e suas subtarefas?
   field_text: Campo de texto
   label_user_mail_option_only_owner: Somente para as coisas que eu criei
@@ -946,8 +947,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/pt.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/pt.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -33,37 +33,37 @@
       half_a_minute: "meio minuto"
       less_than_x_seconds:
         one: "menos de 1 segundo"
-        other: "menos de {{count}} segundos"
+        other: "menos de %{count} segundos"
       x_seconds:
         one: "1 segundo"
-        other: "{{count}} segundos"
+        other: "%{count} segundos"
       less_than_x_minutes: 
         one: "menos de um minuto"
-        other: "menos de {{count}} minutos"
+        other: "menos de %{count} minutos"
       x_minutes:
         one: "1 minuto"
-        other: "{{count}} minutos"
+        other: "%{count} minutos"
       about_x_hours:
         one: "aproximadamente 1 hora"
-        other: "aproximadamente {{count}} horas"
+        other: "aproximadamente %{count} horas"
       x_days:
         one: "1 dia"
-        other: "{{count}} dias"
+        other: "%{count} dias"
       about_x_months:
         one: "aproximadamente 1 mês"
-        other: "aproximadamente {{count}} meses"
+        other: "aproximadamente %{count} meses"
       x_months:
         one: "1 mês"
-        other: "{{count}} meses"
+        other: "%{count} meses"
       about_x_years:
         one: "aproximadamente 1 ano"
-        other: "aproximadamente {{count}} anos"
+        other: "aproximadamente %{count} anos"
       over_x_years:
         one: "mais de 1 ano"
-        other: "mais de {{count}} anos"
+        other: "mais de %{count} anos"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
         
   number:
     format:
@@ -102,8 +102,8 @@
     errors:
       template:
         header:
-          one: "Não foi possível guardar {{model}}: 1 erro"
-          other: "Não foi possível guardar {{model}}: {{count}} erros"
+          one: "Não foi possível guardar %{model}: 1 erro"
+          other: "Não foi possível guardar %{model}: %{count} erros"
         body: "Por favor, verifique os seguintes campos:"
       messages:
         inclusion: "não está incluído na lista"
@@ -113,16 +113,16 @@
         accepted:  "precisa de ser aceite"
         empty: "não pode estar em branco"
         blank: "não pode estar em branco"
-        too_long: "tem demasiados caracteres (máximo: {{count}} caracteres)"
-        too_short: "tem poucos caracteres (mínimo: {{count}} caracteres)"
-        wrong_length: "não é do tamanho correcto (necessita de ter {{count}} caracteres)"
+        too_long: "tem demasiados caracteres (máximo: %{count} caracteres)"
+        too_short: "tem poucos caracteres (mínimo: %{count} caracteres)"
+        wrong_length: "não é do tamanho correcto (necessita de ter %{count} caracteres)"
         taken: "não está disponível"
         not_a_number: "não é um número"
-        greater_than: "tem de ser maior do que {{count}}"
-        greater_than_or_equal_to: "tem de ser maior ou igual a {{count}}"
-        equal_to: "tem de ser igual a {{count}}"
-        less_than: "tem de ser menor do que {{count}}"
-        less_than_or_equal_to: "tem de ser menor ou igual a {{count}}"
+        greater_than: "tem de ser maior do que %{count}"
+        greater_than_or_equal_to: "tem de ser maior ou igual a %{count}"
+        equal_to: "tem de ser igual a %{count}"
+        less_than: "tem de ser menor do que %{count}"
+        less_than_or_equal_to: "tem de ser menor ou igual a %{count}"
         odd: "tem de ser ímpar"
         even: "tem de ser par"
         greater_than_start_date: "deve ser maior que a data inicial"
@@ -160,34 +160,34 @@
   notice_file_not_found: A página que está a tentar aceder não existe ou foi removida.
   notice_locking_conflict: Os dados foram actualizados por outro utilizador.
   notice_not_authorized: Não está autorizado a visualizar esta página.
-  notice_email_sent: "Foi enviado um e-mail para {{value}}"
-  notice_email_error: "Ocorreu um erro ao enviar o e-mail ({{value}})"
+  notice_email_sent: "Foi enviado um e-mail para %{value}"
+  notice_email_error: "Ocorreu um erro ao enviar o e-mail (%{value})"
   notice_feeds_access_key_reseted: A sua chave de RSS foi inicializada.
-  notice_failed_to_save_issues: "Não foi possível guardar {{count}} tarefa(s) das {{total}} seleccionadas: {{ids}}."
+  notice_failed_to_save_issues: "Não foi possível guardar %{count} tarefa(s) das %{total} seleccionadas: %{ids}."
   notice_no_issue_selected: "Nenhuma tarefa seleccionada! Por favor, seleccione as tarefas que quer editar."
   notice_account_pending: "A sua conta foi criada e está agora à espera de aprovação do administrador."
   notice_default_data_loaded: Configuração padrão carregada com sucesso.
   notice_unable_delete_version: Não foi possível apagar a versão.
   
-  error_can_t_load_default_data: "Não foi possível carregar a configuração padrão: {{value}}"
+  error_can_t_load_default_data: "Não foi possível carregar a configuração padrão: %{value}"
   error_scm_not_found: "A entrada ou revisão não foi encontrada no repositório."
-  error_scm_command_failed: "Ocorreu um erro ao tentar aceder ao repositório: {{value}}"
+  error_scm_command_failed: "Ocorreu um erro ao tentar aceder ao repositório: %{value}"
   error_scm_annotate: "A entrada não existe ou não pode ser anotada."
   error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projecto.'
   
-  mail_subject_lost_password: "Palavra-chave de {{value}}"
+  mail_subject_lost_password: "Palavra-chave de %{value}"
   mail_body_lost_password: 'Para mudar a sua palavra-chave, clique na ligação abaixo:'
-  mail_subject_register: "Activação de conta de {{value}}"
+  mail_subject_register: "Activação de conta de %{value}"
   mail_body_register: 'Para activar a sua conta, clique na ligação abaixo:'
-  mail_body_account_information_external: "Pode utilizar a conta {{value}} para autenticar-se."
+  mail_body_account_information_external: "Pode utilizar a conta %{value} para autenticar-se."
   mail_body_account_information: Informação da sua conta
-  mail_subject_account_activation_request: "Pedido de activação da conta {{value}}"
-  mail_body_account_activation_request: "Um novo utilizador ({{value}}) registou-se. A sua conta está à espera de aprovação:"
-  mail_subject_reminder: "{{count}} tarefa(s) para entregar nos próximos {{days}} dias"
-  mail_body_reminder: "{{count}} tarefa(s) que estão atribuídas a si estão agendadas para estarem completas nos próximos {{days}} dias:"
+  mail_subject_account_activation_request: "Pedido de activação da conta %{value}"
+  mail_body_account_activation_request: "Um novo utilizador (%{value}) registou-se. A sua conta está à espera de aprovação:"
+  mail_subject_reminder: "%{count} tarefa(s) para entregar nos próximos %{days} dias"
+  mail_body_reminder: "%{count} tarefa(s) que estão atribuídas a si estão agendadas para estarem completas nos próximos %{days} dias:"
   
   gui_validation_error: 1 erro
-  gui_validation_error_plural: "{{count}} erros"
+  gui_validation_error_plural: "%{count} erros"
   
   field_name: Nome
   field_description: Descrição
@@ -249,6 +249,7 @@
   field_attr_lastname: Atributo último nome
   field_attr_mail: Atributo e-mail
   field_onthefly: Criação de utilizadores na hora
+  field_start_date: Início
   field_done_ratio: % Completo
   field_auth_source: Modo de autenticação
   field_hide_mail: Esconder endereço de e-mail
@@ -328,14 +329,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Todos os projectos
   label_project_latest: Últimos projectos
   label_issue: Tarefa
   label_issue_new: Nova tarefa
   label_issue_plural: Tarefas
   label_issue_view_all: Ver todas as tarefas
-  label_issues_by: "Tarefas por {{value}}"
+  label_issues_by: "Tarefas por %{value}"
   label_issue_added: Tarefa adicionada
   label_issue_updated: Tarefa actualizada
   label_document: Documento
@@ -391,7 +392,7 @@
   label_auth_source_new: Novo modo de autenticação
   label_auth_source_plural: Modos de autenticação
   label_subproject_plural: Sub-projectos
-  label_and_its_subprojects: "{{value}} e sub-projectos"
+  label_and_its_subprojects: "%{value} e sub-projectos"
   label_min_max_length: Tamanho mínimo-máximo
   label_list: Lista
   label_date: Data
@@ -402,8 +403,8 @@
   label_text: Texto longo
   label_attribute: Atributo
   label_attribute_plural: Atributos
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloads"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloads"
   label_no_data: Sem dados para mostrar
   label_change_status: Mudar estado
   label_history: Histórico
@@ -434,17 +435,17 @@
   label_closed_issues: fechado
   label_closed_issues_plural: fechados
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Total
   label_permissions: Permissões
   label_current_status: Estado actual
@@ -462,7 +463,7 @@
   label_months_from: meses de
   label_gantt: Gantt
   label_internal: Interno
-  label_last_changes: "últimas {{count}} alterações"
+  label_last_changes: "últimas %{count} alterações"
   label_change_view_all: Ver todas as alterações
   label_personalize_page: Personalizar esta página
   label_comment: Comentário
@@ -470,7 +471,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Adicionar comentário
   label_comment_added: Comentário adicionado
   label_comment_delete: Apagar comentários
@@ -489,7 +490,7 @@
   label_yesterday: ontem
   label_this_week: esta semana
   label_last_week: semana passada
-  label_last_n_days: "últimos {{count}} dias"
+  label_last_n_days: "últimos %{count} dias"
   label_this_month: este mês
   label_last_month: mês passado
   label_this_year: este ano
@@ -503,8 +504,8 @@
   label_repository: Repositório
   label_repository_plural: Repositórios
   label_browse: Navegar
-  label_modification: "{{count}} alteração"
-  label_modification_plural: "{{count}} alterações"
+  label_modification: "%{count} alteração"
+  label_modification_plural: "%{count} alterações"
   label_revision: Revisão
   label_revision_plural: Revisões
   label_associated_revisions: Revisões associadas
@@ -522,8 +523,8 @@
   label_sort_lower: Mover para baixo
   label_sort_lowest: Mover para o fim
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Termina em {{value}}"
-  label_roadmap_overdue: "Atrasado {{value}}"
+  label_roadmap_due_in: "Termina em %{value}"
+  label_roadmap_overdue: "Atrasado %{value}"
   label_roadmap_no_issues: Sem tarefas para esta versão
   label_search: Procurar
   label_result_plural: Resultados
@@ -541,8 +542,8 @@
   label_changes_details: Detalhes de todas as mudanças
   label_issue_tracking: Tarefas
   label_spent_time: Tempo gasto
-  label_f_hour: "{{value}} hora"
-  label_f_hour_plural: "{{value}} horas"
+  label_f_hour: "%{value} hora"
+  label_f_hour_plural: "%{value} horas"
   label_time_tracking: Registo de tempo
   label_change_plural: Mudanças
   label_statistics: Estatísticas
@@ -591,12 +592,12 @@
   label_date_from: De
   label_date_to: Para
   label_language_based: Baseado na língua do utilizador
-  label_sort_by: "Ordenar por {{value}}"
+  label_sort_by: "Ordenar por %{value}"
   label_send_test_email: enviar um e-mail de teste
-  label_feeds_access_key_created_on: "Chave RSS criada há {{value}} atrás"
+  label_feeds_access_key_created_on: "Chave RSS criada há %{value} atrás"
   label_module_plural: Módulos
-  label_added_time_by: "Adicionado por {{author}} há {{age}} atrás"
-  label_updated_time: "Alterado há {{value}} atrás"
+  label_added_time_by: "Adicionado por %{author} há %{age} atrás"
+  label_updated_time: "Alterado há %{value} atrás"
   label_jump_to_a_project: Ir para o projecto...
   label_file_plural: Ficheiros
   label_changeset_plural: Changesets
@@ -612,7 +613,7 @@
   label_registration_activation_by_email: Activação da conta por e-mail
   label_registration_manual_activation: Activação manual da conta
   label_registration_automatic_activation: Activação automática da conta
-  label_display_per_page: "Por página: {{value}}"
+  label_display_per_page: "Por página: %{value}"
   label_age: Idade
   label_change_properties: Mudar propriedades
   label_general: Geral
@@ -678,41 +679,41 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 siginifica sem restrição
   text_project_destroy_confirmation: Tem a certeza que deseja apagar o projecto e todos os dados relacionados?
-  text_subprojects_destroy_warning: "O(s) seu(s) sub-projecto(s): {{value}} também será/serão apagado(s)."
+  text_subprojects_destroy_warning: "O(s) seu(s) sub-projecto(s): %{value} também será/serão apagado(s)."
   text_workflow_edit: Seleccione uma função e um tipo de tarefa para editar o fluxo de trabalho
   text_are_you_sure: Tem a certeza?
   text_tip_issue_begin_day: tarefa a começar neste dia
   text_tip_issue_end_day: tarefa a acabar neste dia
   text_tip_issue_begin_end_day: tarefa a começar e acabar neste dia
   text_project_identifier_info: 'Apenas são permitidos letras minúsculas (a-z), números e hífens.<br />Uma vez guardado, o identificador não poderá ser alterado.'
-  text_caracters_maximum: "máximo {{count}} caracteres."
-  text_caracters_minimum: "Deve ter pelo menos {{count}} caracteres."
-  text_length_between: "Deve ter entre {{min}} e {{max}} caracteres."
+  text_caracters_maximum: "máximo %{count} caracteres."
+  text_caracters_minimum: "Deve ter pelo menos %{count} caracteres."
+  text_length_between: "Deve ter entre %{min} e %{max} caracteres."
   text_tracker_no_workflow: Sem fluxo de trabalho definido para este tipo de tarefa.
   text_unallowed_characters: Caracteres não permitidos
   text_comma_separated: Permitidos múltiplos valores (separados por vírgula).
   text_issues_ref_in_commit_messages: Referenciando e fechando tarefas em mensagens de commit
-  text_issue_added: "Tarefa {{id}} foi criada por {{author}}."
-  text_issue_updated: "Tarefa {{id}} foi actualizada por {{author}}."
+  text_issue_added: "Tarefa %{id} foi criada por %{author}."
+  text_issue_updated: "Tarefa %{id} foi actualizada por %{author}."
   text_wiki_destroy_confirmation: Tem a certeza que deseja apagar este wiki e todo o seu conteúdo?
-  text_issue_category_destroy_question: "Algumas tarefas ({{count}}) estão atribuídas a esta categoria. O que quer fazer?"
+  text_issue_category_destroy_question: "Algumas tarefas (%{count}) estão atribuídas a esta categoria. O que quer fazer?"
   text_issue_category_destroy_assignments: Remover as atribuições à categoria
   text_issue_category_reassign_to: Re-atribuir as tarefas para esta categoria
   text_user_mail_option: "Para projectos não seleccionados, apenas receberá notificações acerca de coisas que está a observar ou está envolvido (ex. tarefas das quais foi o criador ou lhes foram atribuídas)."
   text_no_configuration_data: "Perfis, tipos de tarefas, estados das tarefas e workflows ainda não foram configurados.\nÉ extremamente recomendado carregar as configurações padrão. Será capaz de as modificar depois de estarem carregadas."
   text_load_default_configuration: Carregar as configurações padrão
-  text_status_changed_by_changeset: "Aplicado no changeset {{value}}."
+  text_status_changed_by_changeset: "Aplicado no changeset %{value}."
   text_issues_destroy_confirmation: 'Tem a certeza que deseja apagar a(s) tarefa(s) seleccionada(s)?'
   text_select_project_modules: 'Seleccione os módulos a activar para este projecto:'
   text_default_administrator_account_changed: Conta default de administrador alterada.
   text_file_repository_writable: Repositório de ficheiros com permissões de escrita
   text_rmagick_available: RMagick disponível (opcional)
-  text_destroy_time_entries_question: "{{hours}} horas de trabalho foram atribuídas a estas tarefas que vai apagar. O que deseja fazer?"
+  text_destroy_time_entries_question: "%{hours} horas de trabalho foram atribuídas a estas tarefas que vai apagar. O que deseja fazer?"
   text_destroy_time_entries: Apagar as horas
   text_assign_time_entries_to_project: Atribuir as horas ao projecto
   text_reassign_time_entries: 'Re-atribuir as horas para esta tarefa:'
-  text_user_wrote: "{{value}} escreveu:"
-  text_enumeration_destroy_question: "{{count}} objectos estão atribuídos a este valor."
+  text_user_wrote: "%{value} escreveu:"
+  text_enumeration_destroy_question: "%{count} objectos estão atribuídos a este valor."
   text_enumeration_category_reassign_to: 'Re-atribuí-los para este valor:'
   text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/email.yml e reinicie a aplicação para activar estas funcionalidades."
   
@@ -793,12 +794,12 @@
   text_repository_usernames_mapping: "Seleccionar ou actualizar o utilizador de Redmine mapeado a cada nome de utilizador encontrado no repositório.\nUtilizadores com o mesmo nome de utilizador ou email no Redmine e no repositório são mapeados automaticamente."
   permission_edit_own_messages: Editar as próprias mensagens
   permission_delete_own_messages: Apagar as próprias mensagens
-  label_user_activity: "Actividade de {{value}}"
-  label_updated_time_by: "Actualizado por {{author}} há {{age}}"
+  label_user_activity: "Actividade de %{value}"
+  label_updated_time_by: "Actualizado por %{author} há %{age}"
   text_diff_truncated: '... Este diff foi truncado porque excede o tamanho máximo que pode ser mostrado.'
   setting_diff_max_lines_displayed: Número máximo de linhas de diff mostradas
   text_plugin_assets_writable: Escrita na pasta de activos dos módulos de extensão possível
-  warning_attachments_not_saved: "Não foi possível gravar {{count}} ficheiro(s) ."
+  warning_attachments_not_saved: "Não foi possível gravar %{count} ficheiro(s) ."
   button_create_and_continue: Criar e continuar
   text_custom_field_possible_values_info: 'Uma linha para cada valor'
   label_display: Mostrar
@@ -813,21 +814,21 @@
   label_descending: Descendente
   label_sort: Ordenar
   label_ascending: Ascendente
-  label_date_from_to: De {{start}} a {{end}}
+  label_date_from_to: De %{start} a %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Esta página tem {{descendants}} página(s) subordinada(s) e descendente(s). O que deseja fazer?
+  text_wiki_page_destroy_question: Esta página tem %{descendants} página(s) subordinada(s) e descendente(s). O que deseja fazer?
   text_wiki_page_reassign_children: Reatribuir páginas subordinadas a esta página principal
   text_wiki_page_nullify_children: Manter páginas subordinadas como páginas raíz
   text_wiki_page_destroy_children: Apagar as páginas subordinadas e todos os seus descendentes
   setting_password_min_length: Tamanho mínimo de palavra-chave
   field_group_by: Agrupar resultados por
-  mail_subject_wiki_content_updated: "A página Wiki '{{id}}' foi actualizada"
+  mail_subject_wiki_content_updated: "A página Wiki '%{id}' foi actualizada"
   label_wiki_content_added: Página Wiki adicionada
-  mail_subject_wiki_content_added: "A página Wiki '{{id}}' foi adicionada"
-  mail_body_wiki_content_added: A página Wiki '{{id}}' foi adicionada por {{author}}.
+  mail_subject_wiki_content_added: "A página Wiki '%{id}' foi adicionada"
+  mail_body_wiki_content_added: A página Wiki '%{id}' foi adicionada por %{author}.
   label_wiki_content_updated: Página Wiki actualizada
-  mail_body_wiki_content_updated: A página Wiki '{{id}}' foi actualizada por {{author}}.
+  mail_body_wiki_content_updated: A página Wiki '%{id}' foi actualizada por %{author}.
   permission_add_project: Criar projecto
   setting_new_project_user_role_id: Função atribuída a um utilizador não-administrador que cria um projecto
   label_view_all_revisions: Ver todas as revisões
@@ -839,10 +840,10 @@
   label_group: Grupo
   label_group_new: Novo grupo
   label_time_entry_plural: Tempo registado
-  text_journal_changed: "{{label}} alterado de {{old}} para {{new}}"
-  text_journal_set_to: "{{label}} configurado como {{value}}"
-  text_journal_deleted: "{{label}} apagou ({{old}})"
-  text_journal_added: "{{label}} {{value}} adicionado"
+  text_journal_changed: "%{label} alterado de %{old} para %{new}"
+  text_journal_set_to: "%{label} configurado como %{value}"
+  text_journal_deleted: "%{label} apagou (%{old})"
+  text_journal_added: "%{label} %{value} adicionado"
   field_active: Activo
   enumeration_system_activity: Actividade de sistema
   permission_delete_issue_watchers: Apagar observadores
@@ -877,9 +878,9 @@
   setting_start_of_week: Iniciar calendários a
   permission_view_issues: Ver tarefas
   label_display_used_statuses_only: Só exibir estados empregues por este tipo de tarefa
-  label_revision_id: Revisão {{value}}
+  label_revision_id: Revisão %{value}
   label_api_access_key: Chave de acesso API
-  label_api_access_key_created_on: Chave de acesso API criada há {{value}}
+  label_api_access_key_created_on: Chave de acesso API criada há %{value}
   label_feeds_access_key: Chave de acesso RSS
   notice_api_access_key_reseted: A sua chave de acesso API foi reinicializada.
   setting_rest_api_enabled: Activar serviço Web REST
@@ -906,12 +907,12 @@
   label_subtask_plural: Sub-tarefa
   label_project_copy_notifications: Enviar notificações por e-mail durante a cópia do projecto
   error_can_not_delete_custom_field: Não foi possível apagar o campo personalizado
-  error_unable_to_connect: Não foi possível ligar ({{value}})
+  error_unable_to_connect: Não foi possível ligar (%{value})
   error_can_not_remove_role: Esta função está actualmente em uso e não pode ser apagada.
   error_can_not_delete_tracker: Existem ainda tarefas nesta categoria. Não é possível apagar este tipo de tarefa.
   field_principal: Principal
   label_my_page_block: Bloco da minha página
-  notice_failed_to_save_members: "Erro ao guardar o(s) membro(s): {{errors}}."
+  notice_failed_to_save_members: "Erro ao guardar o(s) membro(s): %{errors}."
   text_zoom_out: Ampliar
   text_zoom_in: Reduzir
   notice_unable_delete_time_entry: Não foi possível apagar a entrada de tempo registado.
@@ -919,7 +920,7 @@
   field_time_entries: Tempo registado
   project_module_gantt: Gantt
   project_module_calendar: Calendário
-  button_edit_associated_wikipage: "Editar página Wiki associada: {{page_title}}"
+  button_edit_associated_wikipage: "Editar página Wiki associada: %{page_title}"
   text_are_you_sure_with_children: Apagar tarefa e todas as sub-tarefas?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -930,8 +931,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/ro.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/ro.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -30,37 +30,37 @@
       half_a_minute: "jumătate de minut"
       less_than_x_seconds:
         one:   "mai puțin de o secundă"
-        other: "mai puțin de {{count}} secunde"
+        other: "mai puțin de %{count} secunde"
       x_seconds:
         one:   "o secundă"
-        other: "{{count}} secunde"
+        other: "%{count} secunde"
       less_than_x_minutes:
         one:   "mai puțin de un minut"
-        other: "mai puțin de {{count}} minute"
+        other: "mai puțin de %{count} minute"
       x_minutes:
         one:   "un minut"
-        other: "{{count}} minute"
+        other: "%{count} minute"
       about_x_hours:
         one:   "aproximativ o oră"
-        other: "aproximativ {{count}} ore"
+        other: "aproximativ %{count} ore"
       x_days:
         one:   "o zi"
-        other: "{{count}} zile"
+        other: "%{count} zile"
       about_x_months:
         one:   "aproximativ o lună"
-        other: "aproximativ {{count}} luni"
+        other: "aproximativ %{count} luni"
       x_months:
         one:   "o luna"
-        other: "{{count}} luni"
+        other: "%{count} luni"
       about_x_years:
         one:   "aproximativ un an"
-        other: "aproximativ {{count}} ani"
+        other: "aproximativ %{count} ani"
       over_x_years:
         one:   "peste un an"
-        other: "peste {{count}} ani"
+        other: "peste %{count} ani"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     human: 
@@ -86,6 +86,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nu este inclus în listă"
         exclusion: "este rezervat"
@@ -100,11 +104,11 @@
         taken: "a fost luat deja"
         not_a_number: "nu este un număr"
         not_a_date: "nu este o dată validă"
-        greater_than: "trebuie să fie mai mare de {{count}}"
-        greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu {{count}}"
+        greater_than: "trebuie să fie mai mare de %{count}"
+        greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu %{count}"
         equal_to: "trebuie să fie egal cu {count}}"
-        less_than: "trebuie să fie mai mic decat {{count}}"
-        less_than_or_equal_to: "trebuie să fie mai mic sau egal cu {{count}}"
+        less_than: "trebuie să fie mai mic decat %{count}"
+        less_than_or_equal_to: "trebuie să fie mai mic sau egal cu %{count}"
         odd: "trebuie să fie impar"
         even: "trebuie să fie par"
         greater_than_start_date: "trebuie să fie după data de început"
@@ -141,36 +145,36 @@
   notice_file_not_found: Pagina pe care doriți să o accesați nu există sau a fost ștearsă.
   notice_locking_conflict: Datele au fost actualizate de alt utilizator.
   notice_not_authorized: Nu sunteți autorizat sa accesați această pagină.
-  notice_email_sent: "S-a trimis un email către {{value}}"
-  notice_email_error: "A intervenit o eroare la trimiterea de email ({{value}})"
+  notice_email_sent: "S-a trimis un email către %{value}"
+  notice_email_error: "A intervenit o eroare la trimiterea de email (%{value})"
   notice_feeds_access_key_reseted: Cheia de acces RSS a fost resetată.
-  notice_failed_to_save_issues: "Nu s-au putut salva {{count}} tichete din cele {{total}} selectate: {{ids}}."
+  notice_failed_to_save_issues: "Nu s-au putut salva %{count} tichete din cele %{total} selectate: %{ids}."
   notice_no_issue_selected: "Niciun tichet selectat! Vă rugăm să selectați tichetele pe care doriți să le editați."
   notice_account_pending: "Contul dumneavoastră a fost creat și așteaptă aprobarea administratorului."
   notice_default_data_loaded: S-a încărcat configurația implicită.
   notice_unable_delete_version: Nu se poate șterge versiunea.
   
-  error_can_t_load_default_data: "Nu s-a putut încărca configurația implicită: {{value}}"
+  error_can_t_load_default_data: "Nu s-a putut încărca configurația implicită: %{value}"
   error_scm_not_found: "Nu s-a găsit articolul sau revizia în depozit."
-  error_scm_command_failed: "A intervenit o eroare la accesarea depozitului: {{value}}"
+  error_scm_command_failed: "A intervenit o eroare la accesarea depozitului: %{value}"
   error_scm_annotate: "Nu există sau nu poate fi adnotată."
   error_issue_not_found_in_project: 'Tichetul nu a fost găsit sau nu aparține acestui proiect'
   
-  warning_attachments_not_saved: "Nu s-au putut salva {{count}} fișiere."
+  warning_attachments_not_saved: "Nu s-au putut salva %{count} fișiere."
   
-  mail_subject_lost_password: "Parola dumneavoastră: {{value}}"
+  mail_subject_lost_password: "Parola dumneavoastră: %{value}"
   mail_body_lost_password: 'Pentru a schimba parola, accesați:'
-  mail_subject_register: "Activarea contului {{value}}"
+  mail_subject_register: "Activarea contului %{value}"
   mail_body_register: 'Pentru activarea contului, accesați:'
   mail_body_account_information_external: "Puteți folosi contul „{value}}†pentru a vă autentifica."
   mail_body_account_information: Informații despre contul dumneavoastră
-  mail_subject_account_activation_request: "Cerere de activare a contului {{value}}"
-  mail_body_account_activation_request: "S-a înregistrat un utilizator nou ({{value}}). Contul așteaptă aprobarea dumneavoastră:"
-  mail_subject_reminder: "{{count}} tichete trebuie rezolvate în următoarele {{days}} zile"
-  mail_body_reminder: "{{count}} tichete atribuite dumneavoastră trebuie rezolvate în următoarele {{days}} zile:"
+  mail_subject_account_activation_request: "Cerere de activare a contului %{value}"
+  mail_body_account_activation_request: "S-a înregistrat un utilizator nou (%{value}). Contul așteaptă aprobarea dumneavoastră:"
+  mail_subject_reminder: "%{count} tichete trebuie rezolvate în următoarele %{days} zile"
+  mail_body_reminder: "%{count} tichete atribuite dumneavoastră trebuie rezolvate în următoarele %{days} zile:"
   
   gui_validation_error: o eroare
-  gui_validation_error_plural: "{{count}} erori"
+  gui_validation_error_plural: "%{count} erori"
   
   field_name: Nume
   field_description: Descriere
@@ -232,6 +236,7 @@
   field_attr_lastname: Atribut nume
   field_attr_mail: Atribut email
   field_onthefly: Creare utilizator pe loc
+  field_start_date: Data începerii
   field_done_ratio: Realizat (%)
   field_auth_source: Mod autentificare
   field_hide_mail: Nu se afișează adresa de email
@@ -370,14 +375,14 @@
   label_x_projects:
     zero:  niciun proiect
     one:   un proiect
-    other: "{{count}} proiecte"
+    other: "%{count} proiecte"
   label_project_all: Toate proiectele
   label_project_latest: Proiecte noi
   label_issue: Tichet
   label_issue_new: Tichet nou
   label_issue_plural: Tichete
   label_issue_view_all: Afișează toate tichetele
-  label_issues_by: "Sortează după {{value}}"
+  label_issues_by: "Sortează după %{value}"
   label_issue_added: Adaugat
   label_issue_updated: Actualizat
   label_document: Document
@@ -426,7 +431,7 @@
   label_registered_on: ÃŽnregistrat la
   label_activity: Activitate
   label_overall_activity: Activitate - vedere de ansamblu
-  label_user_activity: "Activitate {{value}}"
+  label_user_activity: "Activitate %{value}"
   label_new: Nou
   label_logged_as: Autentificat ca
   label_environment: Mediu
@@ -435,7 +440,7 @@
   label_auth_source_new: Nou
   label_auth_source_plural: Moduri de autentificare
   label_subproject_plural: Sub-proiecte
-  label_and_its_subprojects: "{{value}} și sub-proiecte"
+  label_and_its_subprojects: "%{value} și sub-proiecte"
   label_min_max_length: lungime min - max
   label_list: Listă
   label_date: Dată
@@ -446,8 +451,8 @@
   label_text: Text lung
   label_attribute: Atribut
   label_attribute_plural: Atribute
-  label_download: "{{count}} descărcare"
-  label_download_plural: "{{count}} descărcări"
+  label_download: "%{count} descărcare"
+  label_download_plural: "%{count} descărcări"
   label_no_data: Nu există date de afișat
   label_change_status: Schimbă starea
   label_history: Istoric
@@ -478,17 +483,17 @@
   label_closed_issues: închis
   label_closed_issues_plural: închise
   label_x_open_issues_abbr_on_total:
-    zero:  0 deschise / {{total}}
-    one:   1 deschis / {{total}}
-    other: "{{count}} deschise / {{total}}"
+    zero:  0 deschise / %{total}
+    one:   1 deschis / %{total}
+    other: "%{count} deschise / %{total}"
   label_x_open_issues_abbr:
     zero:  0 deschise
     one:   1 deschis
-    other: "{{count}} deschise"
+    other: "%{count} deschise"
   label_x_closed_issues_abbr:
     zero:  0 închise
     one:   1 închis
-    other: "{{count}} închise"
+    other: "%{count} închise"
   label_total: Total
   label_permissions: Permisiuni
   label_current_status: Stare curentă
@@ -506,7 +511,7 @@
   label_months_from: luni de la
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "ultimele {{count}} schimbări"
+  label_last_changes: "ultimele %{count} schimbări"
   label_change_view_all: Afișează toate schimbările
   label_personalize_page: Personalizează aceasta pagina
   label_comment: Comentariu
@@ -514,7 +519,7 @@
   label_x_comments:
     zero: fara comentarii
     one: 1 comentariu
-    other: "{{count}} comentarii"
+    other: "%{count} comentarii"
   label_comment_add: Adaugă un comentariu
   label_comment_added: Adăugat
   label_comment_delete: Șterge comentariul
@@ -533,7 +538,7 @@
   label_yesterday: ieri
   label_this_week: săptămâna aceasta
   label_last_week: săptămâna trecută
-  label_last_n_days: "ultimele {{count}} zile"
+  label_last_n_days: "ultimele %{count} zile"
   label_this_month: luna aceasta
   label_last_month: luna trecută
   label_this_year: anul acesta
@@ -547,8 +552,8 @@
   label_repository: Depozit
   label_repository_plural: Depozite
   label_browse: Afișează
-  label_modification: "{{count}} schimbare"
-  label_modification_plural: "{{count}} schimbări"
+  label_modification: "%{count} schimbare"
+  label_modification_plural: "%{count} schimbări"
   label_revision: Revizie
   label_revision_plural: Revizii
   label_associated_revisions: Revizii asociate
@@ -566,8 +571,8 @@
   label_sort_lower: ÃŽn jos
   label_sort_lowest: Ultima
   label_roadmap: Planificare
-  label_roadmap_due_in: "De terminat în {{value}}"
-  label_roadmap_overdue: "Întârziat cu {{value}}"
+  label_roadmap_due_in: "De terminat în %{value}"
+  label_roadmap_overdue: "Întârziat cu %{value}"
   label_roadmap_no_issues: Nu există tichete pentru această versiune
   label_search: Caută
   label_result_plural: Rezultate
@@ -585,8 +590,8 @@
   label_changes_details: Detaliile tuturor schimbărilor
   label_issue_tracking: Urmărire tichete
   label_spent_time: Timp alocat
-  label_f_hour: "{{value}} oră"
-  label_f_hour_plural: "{{value}} ore"
+  label_f_hour: "%{value} oră"
+  label_f_hour_plural: "%{value} ore"
   label_time_tracking: Urmărire timp de lucru
   label_change_plural: Schimbări
   label_statistics: Statistici
@@ -635,13 +640,13 @@
   label_date_from: De la
   label_date_to: La
   label_language_based: Un funcție de limba de afișare a utilizatorului
-  label_sort_by: "Sortează după {{value}}"
+  label_sort_by: "Sortează după %{value}"
   label_send_test_email: Trimite email de test
-  label_feeds_access_key_created_on: "Cheie de acces creată acum {{value}}"
+  label_feeds_access_key_created_on: "Cheie de acces creată acum %{value}"
   label_module_plural: Module
-  label_added_time_by: "Adăugat de {{author}} acum {{age}}"
-  label_updated_time_by: "Actualizat de {{author}} acum {{age}}"
-  label_updated_time: "Actualizat acum {{value}}"
+  label_added_time_by: "Adăugat de %{author} acum %{age}"
+  label_updated_time_by: "Actualizat de %{author} acum %{age}"
+  label_updated_time: "Actualizat acum %{value}"
   label_jump_to_a_project: Alege proiectul...
   label_file_plural: Fișiere
   label_changeset_plural: Schimbări
@@ -657,7 +662,7 @@
   label_registration_activation_by_email: activare cont prin email
   label_registration_manual_activation: activare manuală a contului
   label_registration_automatic_activation: activare automată a contului
-  label_display_per_page: "pe pagină: {{value}}"
+  label_display_per_page: "pe pagină: %{value}"
   label_age: vechime
   label_change_properties: Schimbă proprietățile
   label_general: General
@@ -681,7 +686,7 @@
   label_sort: Sortează
   label_ascending: Crescător
   label_descending: Descrescător
-  label_date_from_to: De la {{start}} la {{end}}
+  label_date_from_to: De la %{start} la %{end}
 
   
   button_login: Autentificare
@@ -732,42 +737,42 @@
   text_regexp_info: ex. ^[A-Z0-9]+$
   text_min_max_length_info: 0 înseamnă fără restricții
   text_project_destroy_confirmation: Sigur doriți să ștergeți proiectul și toate datele asociate?
-  text_subprojects_destroy_warning: "Se vor șterge și sub-proiectele: {{value}}."
+  text_subprojects_destroy_warning: "Se vor șterge și sub-proiectele: %{value}."
   text_workflow_edit: Selectați un rol și un tip de tichet pentru a edita modul de lucru
   text_are_you_sure: Sunteți sigur(ă)?
   text_tip_issue_begin_day: sarcină care începe în această zi
   text_tip_issue_end_day: sarcină care se termină în această zi
   text_tip_issue_begin_end_day: sarcină care începe și se termină în această zi
   text_project_identifier_info: 'Sunt permise doar litere mici (a-z), numere și cratime.<br />Odată salvat, identificatorul nu mai poate fi modificat.'
-  text_caracters_maximum: "maxim {{count}} caractere."
-  text_caracters_minimum: "Trebuie să fie minim {{count}} caractere."
-  text_length_between: "Lungime între {{min}} și {{max}} caractere."
+  text_caracters_maximum: "maxim %{count} caractere."
+  text_caracters_minimum: "Trebuie să fie minim %{count} caractere."
+  text_length_between: "Lungime între %{min} și %{max} caractere."
   text_tracker_no_workflow: Nu sunt moduri de lucru pentru acest tip de tichet
   text_unallowed_characters: Caractere nepermise
   text_comma_separated: Sunt permise mai multe valori (separate cu virgulă).
   text_issues_ref_in_commit_messages: Referire la tichete și rezolvare în textul mesajului
-  text_issue_added: "Tichetul {{id}} a fost adăugat de {{author}}."
-  text_issue_updated: "Tichetul {{id}} a fost actualizat de {{author}}."
+  text_issue_added: "Tichetul %{id} a fost adăugat de %{author}."
+  text_issue_updated: "Tichetul %{id} a fost actualizat de %{author}."
   text_wiki_destroy_confirmation: Sigur doriți ștergerea Wiki și a conținutului asociat?
-  text_issue_category_destroy_question: "Această categorie conține ({{count}}) tichete. Ce doriți să faceți?"
+  text_issue_category_destroy_question: "Această categorie conține (%{count}) tichete. Ce doriți să faceți?"
   text_issue_category_destroy_assignments: Șterge apartenența la categorie.
   text_issue_category_reassign_to: Atribuie tichetele la această categorie
   text_user_mail_option: "Pentru proiectele care nu sunt selectate, veți primi notificări doar pentru ceea ce urmăriți sau în ce sunteți implicat (ex: tichete create de dumneavoastră sau care vă sunt atribuite)."
   text_no_configuration_data: "Nu s-au configurat încă rolurile, stările tichetelor și modurile de lucru.\nEste recomandat să încărcați configurația implicită. O veți putea modifica ulterior."
   text_load_default_configuration: Încarcă configurația implicită
-  text_status_changed_by_changeset: "Aplicat în setul {{value}}."
+  text_status_changed_by_changeset: "Aplicat în setul %{value}."
   text_issues_destroy_confirmation: 'Sigur doriți să ștergeți tichetele selectate?'
   text_select_project_modules: 'Selectați modulele active pentru acest proiect:'
   text_default_administrator_account_changed: S-a schimbat contul administratorului implicit
   text_file_repository_writable: Se poate scrie în directorul de atașamente
   text_plugin_assets_writable: Se poate scrie în directorul de plugin-uri
   text_rmagick_available: Este disponibil RMagick (opțional)
-  text_destroy_time_entries_question: "{{hours}} ore sunt înregistrate la tichetele pe care doriți să le ștergeți. Ce doriți sa faceți?"
+  text_destroy_time_entries_question: "%{hours} ore sunt înregistrate la tichetele pe care doriți să le ștergeți. Ce doriți sa faceți?"
   text_destroy_time_entries: Șterge orele înregistrate
   text_assign_time_entries_to_project: Atribuie orele la proiect
   text_reassign_time_entries: 'Atribuie orele înregistrate la tichetul:'
-  text_user_wrote: "{{value}} a scris:"
-  text_enumeration_destroy_question: "Această valoare are {{count}} obiecte."
+  text_user_wrote: "%{value} a scris:"
+  text_enumeration_destroy_question: "Această valoare are %{count} obiecte."
   text_enumeration_category_reassign_to: 'Atribuie la această valoare:'
   text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/email.yml și reporniți aplicația pentru a le activa."
   text_repository_usernames_mapping: "Selectați sau modificați contul Redmine echivalent contului din istoricul depozitului.\nUtilizatorii cu un cont (sau e-mail) identic în Redmine și depozit sunt echivalate automat." 
@@ -801,18 +806,18 @@
   enumeration_activities: Activități (timp de lucru)
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Această pagină are {{descendants}} pagini anterioare și descendenți. Ce doriți să faceți?
+  text_wiki_page_destroy_question: Această pagină are %{descendants} pagini anterioare și descendenți. Ce doriți să faceți?
   text_wiki_page_reassign_children: Atribuie paginile la această pagină
   text_wiki_page_nullify_children: Menține paginile ca și pagini inițiale (root)
   text_wiki_page_destroy_children: Șterge paginile și descendenții
   setting_password_min_length: Lungime minimă parolă
   field_group_by: Grupează după
-  mail_subject_wiki_content_updated: "Pagina wiki '{{id}}' a fost actualizată"
+  mail_subject_wiki_content_updated: "Pagina wiki '%{id}' a fost actualizată"
   label_wiki_content_added: Adăugat
-  mail_subject_wiki_content_added: "Pagina wiki '{{id}}' a fost adăugată"
-  mail_body_wiki_content_added: Pagina wiki '{{id}}' a fost adăugată de {{author}}.
+  mail_subject_wiki_content_added: "Pagina wiki '%{id}' a fost adăugată"
+  mail_body_wiki_content_added: Pagina wiki '%{id}' a fost adăugată de %{author}.
   label_wiki_content_updated: Actualizat
-  mail_body_wiki_content_updated: Pagina wiki '{{id}}' a fost actualizată de {{author}}.
+  mail_body_wiki_content_updated: Pagina wiki '%{id}' a fost actualizată de %{author}.
   permission_add_project: Crează proiect
   setting_new_project_user_role_id: Rol atribuit utilizatorului non-admin care crează un proiect.
   label_view_all_revisions: Arată toate reviziile
@@ -820,14 +825,14 @@
   label_branch: Branch
   error_no_tracker_in_project: Nu există un tracker asociat cu proiectul. Verificați vă rog setările proiectului.
   error_no_default_issue_status: Nu există un status implicit al tichetelor. Verificați vă rog configurația (Mergeți la "Administrare -> Stări tichete").
-  text_journal_changed: "{{label}} schimbat din {{old}} în {{new}}"
-  text_journal_set_to: "{{label}} setat ca {{value}}"
-  text_journal_deleted: "{{label}} șters ({{old}})"
+  text_journal_changed: "%{label} schimbat din %{old} în %{new}"
+  text_journal_set_to: "%{label} setat ca %{value}"
+  text_journal_deleted: "%{label} șters (%{old})"
   label_group_plural: Grupuri
   label_group: Grup
   label_group_new: Grup nou
   label_time_entry_plural: Timp alocat
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -862,9 +867,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -891,12 +896,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -904,7 +909,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -915,8 +920,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/ru.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/ru.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -89,60 +89,60 @@
     distance_in_words:
       half_a_minute: "меньше минуты"
       less_than_x_seconds:
-        one:   "меньше {{count}} Ñекунды"
-        few:   "меньше {{count}} Ñекунд"
-        many:  "меньше {{count}} Ñекунд"
-        other: "меньше {{count}} Ñекунды"
+        one:   "меньше %{count} Ñекунды"
+        few:   "меньше %{count} Ñекунд"
+        many:  "меньше %{count} Ñекунд"
+        other: "меньше %{count} Ñекунды"
       x_seconds:
-        one:   "{{count}} Ñекунда"
-        few:   "{{count}} Ñекунды"
-        many:  "{{count}} Ñекунд"
-        other: "{{count}} Ñекунды"
+        one:   "%{count} Ñекунда"
+        few:   "%{count} Ñекунды"
+        many:  "%{count} Ñекунд"
+        other: "%{count} Ñекунды"
       less_than_x_minutes:
-        one:   "меньше {{count}} минуты"
-        few:   "меньше {{count}} минут"
-        many:  "меньше {{count}} минут"
-        other: "меньше {{count}} минуты"
+        one:   "меньше %{count} минуты"
+        few:   "меньше %{count} минут"
+        many:  "меньше %{count} минут"
+        other: "меньше %{count} минуты"
       x_minutes:
-        one:   "{{count}} минуту"
-        few:   "{{count}} минуты"
-        many:  "{{count}} минут"
-        other: "{{count}} минуты"
+        one:   "%{count} минуту"
+        few:   "%{count} минуты"
+        many:  "%{count} минут"
+        other: "%{count} минуты"
       about_x_hours:
-        one:   "около {{count}} чаÑа"
-        few:   "около {{count}} чаÑов"
-        many:  "около {{count}} чаÑов"
-        other: "около {{count}} чаÑа"
+        one:   "около %{count} чаÑа"
+        few:   "около %{count} чаÑов"
+        many:  "около %{count} чаÑов"
+        other: "около %{count} чаÑа"
       x_days:
-        one:   "{{count}} день"
-        few:   "{{count}} днÑ"
-        many:  "{{count}} дней"
-        other: "{{count}} днÑ"
+        one:   "%{count} день"
+        few:   "%{count} днÑ"
+        many:  "%{count} дней"
+        other: "%{count} днÑ"
       about_x_months:
-        one:   "около {{count}} меÑÑца"
-        few:   "около {{count}} меÑÑцев"
-        many:  "около {{count}} меÑÑцев"
-        other: "около {{count}} меÑÑца"
+        one:   "около %{count} меÑÑца"
+        few:   "около %{count} меÑÑцев"
+        many:  "около %{count} меÑÑцев"
+        other: "около %{count} меÑÑца"
       x_months:
-        one:   "{{count}} меÑÑц"
-        few:   "{{count}} меÑÑца"
-        many:  "{{count}} меÑÑцев"
-        other: "{{count}} меÑÑца"
+        one:   "%{count} меÑÑц"
+        few:   "%{count} меÑÑца"
+        many:  "%{count} меÑÑцев"
+        other: "%{count} меÑÑца"
       about_x_years:
-        one:   "около {{count}} года"
-        few:   "около {{count}} лет"
-        many:  "около {{count}} лет"
-        other: "около {{count}} лет"
+        one:   "около %{count} года"
+        few:   "около %{count} лет"
+        many:  "около %{count} лет"
+        other: "около %{count} лет"
       over_x_years:
-        one:   "больше {{count}} года"
-        few:   "больше {{count}} лет"
-        many:  "больше {{count}} лет"
-        other: "больше {{count}} лет"
+        one:   "больше %{count} года"
+        few:   "больше %{count} лет"
+        many:  "больше %{count} лет"
+        other: "больше %{count} лет"
       almost_x_years:
         one:   "почти 1 год"
-        few:   "почти {{count}} года"
-        many:  "почти {{count}} лет"
-        other: "почти {{count}} года"
+        few:   "почти %{count} года"
+        many:  "почти %{count} лет"
+        other: "почти %{count} года"
     prompts:
       year: "Год"
       month: "МеÑÑц"
@@ -155,10 +155,10 @@
     errors:
       template:
         header:
-          one:   "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибки"
-          few:   "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибок"
-          many:  "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибок"
-          other: "{{model}}: Ñохранение не удалоÑÑŒ из-за {{count}} ошибки"
+          one:   "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибки"
+          few:   "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибок"
+          many:  "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибок"
+          other: "%{model}: Ñохранение не удалоÑÑŒ из-за %{count} ошибки"
 
         body: "Проблемы возникли Ñо Ñледующими полÑми:"
 
@@ -171,27 +171,27 @@
         empty: "не может быть пуÑтым"
         blank: "не может быть пуÑтым"
         too_long:
-          one:   "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвол)"
-          few:   "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвола)"
-          many:  "Ñлишком большой длины (не может быть больше чем {{count}} Ñимволов)"
-          other: "Ñлишком большой длины (не может быть больше чем {{count}} Ñимвола)"
+          one:   "Ñлишком большой длины (не может быть больше чем %{count} Ñимвол)"
+          few:   "Ñлишком большой длины (не может быть больше чем %{count} Ñимвола)"
+          many:  "Ñлишком большой длины (не может быть больше чем %{count} Ñимволов)"
+          other: "Ñлишком большой длины (не может быть больше чем %{count} Ñимвола)"
         too_short:
-          one:   "недоÑтаточной длины (не может быть меньше {{count}} Ñимвола)"
-          few:   "недоÑтаточной длины (не может быть меньше {{count}} Ñимволов)"
-          many:  "недоÑтаточной длины (не может быть меньше {{count}} Ñимволов)"
-          other: "недоÑтаточной длины (не может быть меньше {{count}} Ñимвола)"
+          one:   "недоÑтаточной длины (не может быть меньше %{count} Ñимвола)"
+          few:   "недоÑтаточной длины (не может быть меньше %{count} Ñимволов)"
+          many:  "недоÑтаточной длины (не может быть меньше %{count} Ñимволов)"
+          other: "недоÑтаточной длины (не может быть меньше %{count} Ñимвола)"
         wrong_length:
-          one:   "неверной длины (может быть длиной ровно {{count}} Ñимвол)"
-          few:   "неверной длины (может быть длиной ровно {{count}} Ñимвола)"
-          many:  "неверной длины (может быть длиной ровно {{count}} Ñимволов)"
-          other: "неверной длины (может быть длиной ровно {{count}} Ñимвола)"
+          one:   "неверной длины (может быть длиной ровно %{count} Ñимвол)"
+          few:   "неверной длины (может быть длиной ровно %{count} Ñимвола)"
+          many:  "неверной длины (может быть длиной ровно %{count} Ñимволов)"
+          other: "неверной длины (может быть длиной ровно %{count} Ñимвола)"
         taken: "уже ÑущеÑтвует"
         not_a_number: "не ÑвлÑетÑÑ Ñ‡Ð¸Ñлом"
-        greater_than: "может иметь значение большее {{count}}"
-        greater_than_or_equal_to: "может иметь значение большее или равное {{count}}"
-        equal_to: "может иметь лишь значение, равное {{count}}"
-        less_than: "может иметь значение меньшее чем {{count}}"
-        less_than_or_equal_to: "может иметь значение меньшее или равное {{count}}"
+        greater_than: "может иметь значение большее %{count}"
+        greater_than_or_equal_to: "может иметь значение большее или равное %{count}"
+        equal_to: "может иметь лишь значение, равное %{count}"
+        less_than: "может иметь значение меньшее чем %{count}"
+        less_than_or_equal_to: "может иметь значение меньшее или равное %{count}"
         odd: "может иметь лишь нечетное значение"
         even: "может иметь лишь четное значение"
         greater_than_start_date: "должна быть позднее даты начала"
@@ -230,7 +230,7 @@
   button_delete: Удалить
   button_download: Загрузить
   button_edit: Редактировать
-  button_edit_associated_wikipage: "Редактировать ÑвÑзанную wiki-Ñтраницу: {{page_title}}"
+  button_edit_associated_wikipage: "Редактировать ÑвÑзанную wiki-Ñтраницу: %{page_title}"
   button_list: СпиÑок
   button_lock: Заблокировать
   button_login: Вход
@@ -282,12 +282,12 @@
   error_can_not_remove_role: Эта роль иÑпользуетÑÑ Ð¸ не может быть удалена.
   error_can_not_delete_custom_field: Ðевозможно удалить наÑтраиваемое поле
   error_can_not_delete_tracker: Этот трекер Ñодержит задачи и не может быть удален.
-  error_can_t_load_default_data: "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию не была загружена: {{value}}"
+  error_can_t_load_default_data: "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию не была загружена: %{value}"
   error_issue_not_found_in_project: Задача не была найдена или не прикреплена к Ñтому проекту
   error_scm_annotate: "Данные отÑутÑтвуют или не могут быть подпиÑаны."
-  error_scm_command_failed: "Ошибка доÑтупа к хранилищу: {{value}}"
+  error_scm_command_failed: "Ошибка доÑтупа к хранилищу: %{value}"
   error_scm_not_found: Хранилище не Ñодержит запиÑи и/или иÑправлениÑ.
-  error_unable_to_connect: Ðевозможно подключитьÑÑ ({{value}})
+  error_unable_to_connect: Ðевозможно подключитьÑÑ (%{value})
   error_unable_delete_issue_status: Ðевозможно удалить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð´Ð°Ñ‡Ð¸
 
   field_account: Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ
@@ -313,7 +313,6 @@
   field_description: ОпиÑание
   field_done_ratio: ГотовноÑть в %
   field_downloads: Загрузки
-  field_start_date: Дата начала
   field_due_date: Дата выполнениÑ
   field_editable: Редактируемый
   field_effective_date: Дата
@@ -364,6 +363,7 @@
   field_role: Роль
   field_searchable: ДоÑтупно Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка
   field_spent_on: Дата
+  field_start_date: Ðачата
   field_start_page: Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¾Ð²Ð°Ñ Ñтраница
   field_status: СтатуÑ
   field_subject: Тема
@@ -382,9 +382,9 @@
   field_version: ВерÑиÑ
   field_watcher: Ðаблюдатель
 
-  general_csv_decimal_separator: '.'
+  general_csv_decimal_separator: ','
   general_csv_encoding: UTF-8
-  general_csv_separator: ','
+  general_csv_separator: ';'
   general_first_day_of_week: '1'
   general_lang_name: 'Russian (РуÑÑкий)'
   general_pdf_encoding: UTF-8
@@ -394,13 +394,13 @@
   general_text_Yes: 'Да'
 
   gui_validation_error: 1 ошибка
-  gui_validation_error_plural: "{{count}} ошибок"
-  gui_validation_error_plural2: "{{count}} ошибки"
-  gui_validation_error_plural5: "{{count}} ошибок"
+  gui_validation_error_plural: "%{count} ошибок"
+  gui_validation_error_plural2: "%{count} ошибки"
+  gui_validation_error_plural5: "%{count} ошибок"
 
   label_activity: ÐктивноÑть
   label_add_another_file: Добавить ещё один файл
-  label_added_time_by: "Добавил(а) {{author}} {{age}} назад"
+  label_added_time_by: "Добавил(а) %{author} %{age} назад"
   label_added: добавлено
   label_add_note: Добавить замечание
   label_administration: ÐдминиÑтрирование
@@ -409,7 +409,7 @@
   label_all_time: вÑÑ‘ времÑ
   label_all_words: Ð’Ñе Ñлова
   label_all: вÑе
-  label_and_its_subprojects: "{{value}} и вÑе подпроекты"
+  label_and_its_subprojects: "%{value} и вÑе подпроекты"
   label_applied_status: Применимый ÑтатуÑ
   label_ascending: По возраÑтанию
   label_assigned_to_me_issues: Мои задачи
@@ -465,7 +465,7 @@
   label_custom_field_new: Ðовое наÑтраиваемое поле
   label_custom_field_plural: ÐаÑтраиваемые полÑ
   label_date_from: С
-  label_date_from_to: С {{start}} по {{end}}
+  label_date_from_to: С %{start} по %{end}
   label_date_range: временной интервал
   label_date_to: по
   label_date: Дата
@@ -479,15 +479,15 @@
   label_diff_side_by_side: Ñ€Ñдом
   label_disabled: отключено
   label_display: Отображение
-  label_display_per_page: "Ðа Ñтраницу: {{value}}"
+  label_display_per_page: "Ðа Ñтраницу: %{value}"
   label_document: Документ
   label_document_added: Добавлен документ
   label_document_new: Ðовый документ
   label_document_plural: Документы
-  label_download: "{{count}} загрузка"
-  label_download_plural: "{{count}} Ñкачиваний"
-  label_download_plural2: "{{count}} загрузки"
-  label_download_plural5: "{{count}} загрузок"
+  label_download: "%{count} загрузка"
+  label_download_plural: "%{count} Ñкачиваний"
+  label_download_plural2: "%{count} загрузки"
+  label_download_plural5: "%{count} загрузок"
   label_downloads_abbr: Скачиваний
   label_duplicated_by: дублируетÑÑ
   label_duplicates: дублирует
@@ -500,9 +500,9 @@
   label_example: Пример
   label_export_to: ЭкÑпортировать в
   label_feed_plural: RSS
-  label_feeds_access_key_created_on: "Ключ доÑтупа RSS Ñоздан {{value}} назад"
-  label_f_hour: "{{value}} чаÑ"
-  label_f_hour_plural: "{{value}} чаÑов"
+  label_feeds_access_key_created_on: "Ключ доÑтупа RSS Ñоздан %{value} назад"
+  label_f_hour: "%{value} чаÑ"
+  label_f_hour_plural: "%{value} чаÑов"
   label_file_added: Добавлен файл
   label_file_plural: Файлы
   label_filter_add: Добавить фильтр
@@ -533,7 +533,7 @@
   label_issue_category: ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸
   label_issue_new: ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡Ð°
   label_issue_plural: Задачи
-  label_issues_by: "Сортировать по {{value}}"
+  label_issues_by: "Сортировать по %{value}"
   label_issue_status_new: Ðовый ÑтатуÑ
   label_issue_status_plural: СтатуÑÑ‹ задачи
   label_issue_status: Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð´Ð°Ñ‡Ð¸
@@ -543,10 +543,10 @@
   label_issue_watchers: Ðаблюдатели
   label_jump_to_a_project: Перейти к проекту...
   label_language_based: Ðа оÑнове Ñзыка
-  label_last_changes: "менее {{count}} изменений"
+  label_last_changes: "менее %{count} изменений"
   label_last_login: ПоÑледнее подключение
   label_last_month: поÑледний меÑÑц
-  label_last_n_days: "поÑледние {{count}} дней"
+  label_last_n_days: "поÑледние %{count} дней"
   label_last_week: поÑледнÑÑ Ð½ÐµÐ´ÐµÐ»ÑŽ
   label_latest_revision: ПоÑледнÑÑ Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ
   label_latest_revision_plural: ПоÑледние редакции
@@ -569,10 +569,10 @@
   label_message_posted: Добавлено Ñообщение
   label_me: мне
   label_min_max_length: ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ - макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð°
-  label_modification: "{{count}} изменение"
-  label_modification_plural: "{{count}} изменений"
-  label_modification_plural2: "{{count}} изменениÑ"
-  label_modification_plural5: "{{count}} изменений"
+  label_modification: "%{count} изменение"
+  label_modification_plural: "%{count} изменений"
+  label_modification_plural2: "%{count} изменениÑ"
+  label_modification_plural5: "%{count} изменений"
   label_modified: изменено
   label_module_plural: Модули
   label_months_from: меÑÑцев(ца) Ñ
@@ -653,9 +653,9 @@
   label_revision: РедакциÑ
   label_revision_plural: Редакции
   label_roadmap: Оперативный план
-  label_roadmap_due_in: "Ð’ Ñрок {{value}}"
+  label_roadmap_due_in: "Ð’ Ñрок %{value}"
   label_roadmap_no_issues: Ðет задач Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ верÑии
-  label_roadmap_overdue: "опоздание {{value}}"
+  label_roadmap_overdue: "опоздание %{value}"
   label_role: Роль
   label_role_and_permissions: Роли и права доÑтупа
   label_role_new: ÐÐ¾Ð²Ð°Ñ Ñ€Ð¾Ð»ÑŒ
@@ -668,7 +668,7 @@
   label_settings: ÐаÑтройки
   label_show_completed_versions: Показывать завершенные верÑии
   label_sort: Сортировать
-  label_sort_by: "Сортировать по {{value}}"
+  label_sort_by: "Сортировать по %{value}"
   label_sort_higher: Вверх
   label_sort_highest: В начало
   label_sort_lower: Вниз
@@ -694,11 +694,11 @@
   label_tracker: Трекер
   label_tracker_new: Ðовый трекер
   label_tracker_plural: Трекеры
-  label_updated_time: "Обновлено {{value}} назад"
-  label_updated_time_by: "Обновлено {{author}} {{age}} назад"
+  label_updated_time: "Обновлено %{value} назад"
+  label_updated_time_by: "Обновлено %{author} %{age} назад"
   label_used_by: ИÑпользуетÑÑ
   label_user: Пользователь
-  label_user_activity: "ÐктивноÑть Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ {{value}}"
+  label_user_activity: "ÐктивноÑть Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %{value}"
   label_user_mail_no_self_notified: "Ðе извещать об изменениÑÑ…, которые Ñ Ñделал Ñам"
   label_user_mail_option_all: "О вÑех ÑобытиÑÑ… во вÑех моих проектах"
   label_user_mail_option_selected: "О вÑех ÑобытиÑÑ… только в выбранном проекте..."
@@ -723,46 +723,46 @@
   label_x_closed_issues_abbr:
     zero:  "0 закрыто"
     one:   "1 закрыт"
-    few:   "{{count}} закрыто"
-    many:  "{{count}} закрыто"
-    other: "{{count}} закрыто"
+    few:   "%{count} закрыто"
+    many:  "%{count} закрыто"
+    other: "%{count} закрыто"
   label_x_comments:
     zero:  "нет комментариев"
     one:   "1 комментарий"
-    few:   "{{count}} комментариÑ"
-    many:  "{{count}} комментариев"
-    other: "{{count}} комментариев"
+    few:   "%{count} комментариÑ"
+    many:  "%{count} комментариев"
+    other: "%{count} комментариев"
   label_x_open_issues_abbr:
     zero:  "0 открыто"
     one:   "1 открыт"
-    few:   "{{count}} открыто"
-    many:  "{{count}} открыто"
-    other: "{{count}} открыто"
+    few:   "%{count} открыто"
+    many:  "%{count} открыто"
+    other: "%{count} открыто"
   label_x_open_issues_abbr_on_total:
-    zero:  "0 открыто / {{total}}"
-    one:   "1 открыт / {{total}}"
-    few:   "{{count}} открыто / {{total}}"
-    many:  "{{count}} открыто / {{total}}"
-    other: "{{count}} открыто / {{total}}"
+    zero:  "0 открыто / %{total}"
+    one:   "1 открыт / %{total}"
+    few:   "%{count} открыто / %{total}"
+    many:  "%{count} открыто / %{total}"
+    other: "%{count} открыто / %{total}"
   label_x_projects:
     zero:  "нет проектов"
     one:   "1 проект"
-    few:   "{{count}} проекта"
-    many:  "{{count}} проектов"
-    other: "{{count}} проектов"
+    few:   "%{count} проекта"
+    many:  "%{count} проектов"
+    other: "%{count} проектов"
   label_year: Год
   label_yesterday: вчера
 
-  mail_body_account_activation_request: "ЗарегиÑтрирован новый пользователь ({{value}}). Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ожидает Вашего утверждениÑ:"
+  mail_body_account_activation_request: "ЗарегиÑтрирован новый пользователь (%{value}). Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ожидает Вашего утверждениÑ:"
   mail_body_account_information: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Вашей учетной запиÑи
-  mail_body_account_information_external: "Ð’Ñ‹ можете иÑпользовать Вашу {{value}} учетную запиÑÑŒ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°."
+  mail_body_account_information_external: "Ð’Ñ‹ можете иÑпользовать Вашу %{value} учетную запиÑÑŒ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°."
   mail_body_lost_password: 'Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð¹Ð´Ð¸Ñ‚Ðµ по Ñледующей ÑÑылке:'
   mail_body_register: 'Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ учетной запиÑи зайдите по Ñледующей ÑÑылке:'
-  mail_body_reminder: "{{count}} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ на Ñледующие {{days}} дней:"
-  mail_subject_account_activation_request: "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° активацию Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтеме {{value}}"
-  mail_subject_lost_password: "Ваш {{value}} пароль"
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи {{value}}"
-  mail_subject_reminder: "{{count}} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ в ближайшие {{days}} дней"
+  mail_body_reminder: "%{count} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ на Ñледующие %{days} дней:"
+  mail_subject_account_activation_request: "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° активацию Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтеме %{value}"
+  mail_subject_lost_password: "Ваш %{value} пароль"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи %{value}"
+  mail_subject_reminder: "%{count} назначенных на Ð’Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡ в ближайшие %{days} дней"
 
   notice_account_activated: Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ активирована. Ð’Ñ‹ можете войти.
   notice_account_invalid_creditentials: Ðеправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль
@@ -775,10 +775,10 @@
   notice_account_wrong_password: Ðеверный пароль
   notice_can_t_change_password: Ð”Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ учетной запиÑи иÑпользуетÑÑ Ð¸Ñточник внешней аутентификации. Ðевозможно изменить пароль.
   notice_default_data_loaded: Была загружена ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ умолчанию.
-  notice_email_error: "Во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ пиÑьма произошла ошибка ({{value}})"
-  notice_email_sent: "Отправлено пиÑьмо {{value}}"
-  notice_failed_to_save_issues: "Ðе удалоÑÑŒ Ñохранить {{count}} пункт(ов) из {{total}} выбранных: {{ids}}."
-  notice_failed_to_save_members: "Ðе удалоÑÑŒ Ñохранить учаÑтника(ов): {{errors}}."
+  notice_email_error: "Во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ пиÑьма произошла ошибка (%{value})"
+  notice_email_sent: "Отправлено пиÑьмо %{value}"
+  notice_failed_to_save_issues: "Ðе удалоÑÑŒ Ñохранить %{count} пункт(ов) из %{total} выбранных: %{ids}."
+  notice_failed_to_save_members: "Ðе удалоÑÑŒ Ñохранить учаÑтника(ов): %{errors}."
   notice_feeds_access_key_reseted: Ваш ключ доÑтупа RSS был перезапущен.
   notice_file_not_found: Страница, на которую Ð’Ñ‹ пытаетеÑÑŒ зайти, не ÑущеÑтвует или удалена.
   notice_locking_conflict: Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° другим пользователем.
@@ -859,7 +859,7 @@
   setting_attachment_max_size: МакÑимальный размер вложениÑ
   setting_autofetch_changesets: ÐвтоматичеÑки Ñледить за изменениÑми хранилища
   setting_autologin: ÐвтоматичеÑкий вход
-  setting_bcc_recipients: ИÑпользовать Ñкрытые ÑпиÑки (bcc)
+  setting_bcc_recipients: ИÑпользовать Ñкрытые ÑпиÑки (BCC)
   setting_cache_formatted_text: Кешировать форматированный текÑÑ‚
   setting_commit_fix_keywords: Ðазначение ключевых Ñлов
   setting_commit_logs_encoding: Кодировка комментариев в хранилище
@@ -871,7 +871,7 @@
   setting_default_projects_public: Ðовые проекты ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñ‰ÐµÐ´Ð¾Ñтупными
   setting_diff_max_lines_displayed: МакÑимальное чиÑло Ñтрок Ð´Ð»Ñ diff
   setting_display_subprojects_issues: Отображение подпроектов по умолчанию
-  setting_emails_footer: ПодÑтрочные Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Email
+  setting_emails_footer: ПодÑтрочные Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ð¸Ñьма
   setting_enabled_scm: Разрешенные SCM
   setting_feeds_limit: Ограничение количеÑтва заголовков Ð´Ð»Ñ RSS потока
   setting_file_max_size_displayed: МакÑимальный размер текÑтового файла Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ
@@ -905,29 +905,29 @@
   text_are_you_sure_with_children: Удалить задачу и вÑе ее подзадачи?
   text_are_you_sure: Подтвердите
   text_assign_time_entries_to_project: Прикрепить зарегиÑтрированное Ð²Ñ€ÐµÐ¼Ñ Ðº проекту
-  text_caracters_maximum: "МакÑимум {{count}} Ñимволов(а)."
-  text_caracters_minimum: "Должно быть не менее {{count}} Ñимволов."
+  text_caracters_maximum: "МакÑимум %{count} Ñимволов(а)."
+  text_caracters_minimum: "Должно быть не менее %{count} Ñимволов."
   text_comma_separated: ДопуÑтимы неÑколько значений (через запÑтую).
   text_custom_field_possible_values_info: 'По одному значению в каждой Ñтроке'
   text_default_administrator_account_changed: Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ админиÑтратора по умолчанию изменена
-  text_destroy_time_entries_question: Ð’Ñ‹ ÑобираетеÑÑŒ удалить {{hours}} чаÑа(ов), прикрепленных за Ñтой задачей.
+  text_destroy_time_entries_question: Ð’Ñ‹ ÑобираетеÑÑŒ удалить %{hours} чаÑа(ов), прикрепленных за Ñтой задачей.
   text_destroy_time_entries: Удалить зарегиÑтрированное времÑ
   text_diff_truncated: '... Этот diff ограничен, так как превышает макÑимальный отображаемый размер.'
   text_email_delivery_not_configured: "Параметры работы Ñ Ð¿Ð¾Ñ‡Ñ‚Ð¾Ð²Ñ‹Ð¼ Ñервером не наÑтроены и Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ email не активна.\nÐаÑтроить параметры Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ SMTP-Ñервера Ð’Ñ‹ можете в файле config/email.yml. Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ перезапуÑтите приложение."
   text_enumeration_category_reassign_to: 'Ðазначить им Ñледующее значение:'
-  text_enumeration_destroy_question: "{{count}} объект(а,ов) ÑвÑзаны Ñ Ñтим значением."
+  text_enumeration_destroy_question: "%{count} объект(а,ов) ÑвÑзаны Ñ Ñтим значением."
   text_file_repository_writable: Хранилище Ñ Ð´Ð¾Ñтупом на запиÑÑŒ
-  text_issue_added: "По задаче {{id}} был Ñоздан отчет ({{author}})."
+  text_issue_added: "По задаче %{id} был Ñоздан отчет (%{author})."
   text_issue_category_destroy_assignments: Удалить Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸
-  text_issue_category_destroy_question: "ÐеÑколько задач ({{count}}) назначено в данную категорию. Что Ð’Ñ‹ хотите предпринÑть?"
+  text_issue_category_destroy_question: "ÐеÑколько задач (%{count}) назначено в данную категорию. Что Ð’Ñ‹ хотите предпринÑть?"
   text_issue_category_reassign_to: Переназначить задачи Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ категории
   text_issues_destroy_confirmation: 'Вы уверены, что хотите удалить выбранные задачи?'
   text_issues_ref_in_commit_messages: СопоÑтавление и изменение ÑтатуÑа задач иÑÑ…Ð¾Ð´Ñ Ð¸Ð· текÑта Ñообщений
-  text_issue_updated: "Задача {{id}} была обновлена ({{author}})."
-  text_journal_changed: "Параметр {{label}} изменилÑÑ Ñ {{old}} на {{new}}"
-  text_journal_deleted: "Значение {{old}} параметра {{label}} удалено"
-  text_journal_set_to: "Параметр {{label}} изменилÑÑ Ð½Ð° {{value}}"
-  text_length_between: "Длина между {{min}} и {{max}} Ñимволов."
+  text_issue_updated: "Задача %{id} была обновлена (%{author})."
+  text_journal_changed: "Параметр %{label} изменилÑÑ Ñ %{old} на %{new}"
+  text_journal_deleted: "Значение %{old} параметра %{label} удалено"
+  text_journal_set_to: "Параметр %{label} изменилÑÑ Ð½Ð° %{value}"
+  text_length_between: "Длина между %{min} и %{max} Ñимволов."
   text_load_default_configuration: Загрузить конфигурацию по умолчанию
   text_min_max_length_info: 0 означает отÑутÑтвие запретов
   text_no_configuration_data: "Роли, трекеры, ÑтатуÑÑ‹ задач и оперативный план не были Ñконфигурированы.\nÐаÑтоÑтельно рекомендуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ конфигурацию по-умолчанию. Ð’Ñ‹ Ñможете её изменить потом."
@@ -940,31 +940,31 @@
   text_rmagick_available: ДоÑтупно иÑпользование RMagick (опционально)
   text_select_mail_notifications: Выберите дейÑтвиÑ, на которые будет отÑылатьÑÑ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ на Ñлектронную почту.
   text_select_project_modules: 'Выберите модули, которые будут иÑпользованы в проекте:'
-  text_status_changed_by_changeset: "Реализовано в {{value}} редакции."
-  text_subprojects_destroy_warning: "Подпроекты: {{value}} также будут удалены."
+  text_status_changed_by_changeset: "Реализовано в %{value} редакции."
+  text_subprojects_destroy_warning: "Подпроекты: %{value} также будут удалены."
   text_tip_issue_begin_day: дата начала задачи
   text_tip_issue_begin_end_day: начало задачи и окончание ее в Ñтот день
   text_tip_issue_end_day: дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ‡Ð¸
   text_tracker_no_workflow: Ð”Ð»Ñ Ñтого трекера поÑледовательноÑть дейÑтвий не определена
   text_unallowed_characters: Запрещенные Ñимволы
   text_user_mail_option: "Ð”Ð»Ñ Ð½ÐµÐ²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… проектов, Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ о том что проÑматриваете или в чем учаÑтвуете (например, вопроÑÑ‹, автором которых Ð’Ñ‹ ÑвлÑетеÑÑŒ или которые Вам назначены)."
-  text_user_wrote: "{{value}} пиÑал(а):"
+  text_user_wrote: "%{value} пиÑал(а):"
   text_wiki_destroy_confirmation: Ð’Ñ‹ уверены, что хотите удалить данную Wiki и вÑе ее Ñодержимое?
   text_workflow_edit: Выберите роль и трекер Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледовательноÑти ÑоÑтоÑний
 
-  warning_attachments_not_saved: "{{count}} файл(ов) невозможно Ñохранить."
-  text_wiki_page_destroy_question: Эта Ñтраница имеет {{descendants}} дочерних Ñтраниц и их потомков. Что вы хотите Ñделать?
+  warning_attachments_not_saved: "%{count} файл(ов) невозможно Ñохранить."
+  text_wiki_page_destroy_question: Эта Ñтраница имеет %{descendants} дочерних Ñтраниц и их потомков. Что вы хотите Ñделать?
   text_wiki_page_reassign_children: Переопределить дочерние Ñтраницы на текущую Ñтраницу
   text_wiki_page_nullify_children: Сделать дочерние Ñтраницы главными Ñтраницами
   text_wiki_page_destroy_children: Удалить дочерние Ñтраницы и вÑех их потомков
   setting_password_min_length: ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° паролÑ
   field_group_by: Группировать результаты по
-  mail_subject_wiki_content_updated: "Wiki-Ñтраница '{{id}}' была обновлена"
+  mail_subject_wiki_content_updated: "Wiki-Ñтраница '%{id}' была обновлена"
   label_wiki_content_added: Добавлена wiki-Ñтраница
-  mail_subject_wiki_content_added: "Wiki-Ñтраница  '{{id}}' была добавлена"
-  mail_body_wiki_content_added: "{{author}} добавил(а) wiki-Ñтраницу '{{id}}'."
+  mail_subject_wiki_content_added: "Wiki-Ñтраница  '%{id}' была добавлена"
+  mail_body_wiki_content_added: "%{author} добавил(а) wiki-Ñтраницу '%{id}'."
   label_wiki_content_updated: Обновлена wiki-Ñтраница
-  mail_body_wiki_content_updated: "{{author}} обновил(а) wiki-Ñтраницу '{{id}}'."
+  mail_body_wiki_content_updated: "%{author} обновил(а) wiki-Ñтраницу '%{id}'."
   permission_add_project: Создание проекта
   setting_new_project_user_role_id: Роль, Ð½Ð°Ð·Ð½Ð°Ñ‡Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ, Ñоздавшему проект
   label_view_all_revisions: Показать вÑе ревизии
@@ -976,7 +976,7 @@
   label_group: Группа
   label_group_new: ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°
   label_time_entry_plural: Затраченное времÑ
-  text_journal_added: "{{label}} {{value}} добавлен"
+  text_journal_added: "%{label} %{value} добавлен"
   field_active: Ðктивно
   enumeration_system_activity: СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñть
   permission_delete_issue_watchers: Удаление наблюдателей
@@ -1011,10 +1011,10 @@
   setting_start_of_week: День начала недели
   label_api_access_key: Ключ доÑтупа к API
   text_line_separated: Разрешено неÑколько значений (по одному значению в Ñтроку).
-  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ {{value}}
+  label_revision_id: Ð ÐµÐ²Ð¸Ð·Ð¸Ñ %{value}
   permission_view_issues: ПроÑмотр задач
   label_display_used_statuses_only: Отображать только те ÑтатуÑÑ‹, которые иÑпользуютÑÑ Ð² Ñтом трекере
-  label_api_access_key_created_on: Ключ доÑтуп к API был Ñоздан {{value}} назад
+  label_api_access_key_created_on: Ключ доÑтуп к API был Ñоздан %{value} назад
   label_feeds_access_key: Ключ доÑтупа к RSS
   notice_api_access_key_reseted: Ваш ключ доÑтупа к API был Ñброшен.
   setting_rest_api_enabled: Включить веб-ÑÐµÑ€Ð²Ð¸Ñ REST
@@ -1035,13 +1035,17 @@
   text_zoom_in: Приблизить
   notice_unable_delete_time_entry: Ðевозможно удалить запиÑÑŒ журнала.
   label_overall_spent_time: Ð’Ñего затрачено времени
-
   label_user_mail_option_none: Ðет Ñобытий
   field_member_of_group: Группа назначенного
   field_assigned_to_role: Роль назначенного
   notice_not_authorized_archived_project: Запрашиваемый проект был архивирован.
+  label_principal_search: "Ðайти Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группу:"
+  label_user_search: "Ðайти пользователÑ:"
+  field_visible: Видимый
+  setting_emails_header: Заголовок пиÑьма
 
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/sk.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/sk.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "pol minúty"
       less_than_x_seconds:
         one:   "menej ako 1 sekunda"
-        other: "menej ako {{count}} sekúnd"
+        other: "menej ako %{count} sekúnd"
       x_seconds:
         one:   "1 sekunda"
-        other: "{{count}} sekúnd"
+        other: "%{count} sekúnd"
       less_than_x_minutes:
         one:   "menej ako minúta"
-        other: "menej ako {{count}} minút"
+        other: "menej ako %{count} minút"
       x_minutes:
         one:   "1 minuta"
-        other: "{{count}} minút"
+        other: "%{count} minút"
       about_x_hours:
         one:   "okolo 1 hodiny"
-        other: "okolo {{count}} hodín"
+        other: "okolo %{count} hodín"
       x_days:
         one:   "1 deň"
-        other: "{{count}} dní"
+        other: "%{count} dní"
       about_x_months:
         one:   "okolo 1 mesiaca"
-        other: "okolo {{count}} mesiace/ov"
+        other: "okolo %{count} mesiace/ov"
       x_months:
         one:   "1 mesiac"
-        other: "{{count}} mesiace/ov"
+        other: "%{count} mesiace/ov"
       about_x_years:
         one:   "okolo 1 roka"
-        other: "okolo {{count}} roky/ov"
+        other: "okolo %{count} roky/ov"
       over_x_years:
         one:   "cez 1 rok"
-        other: "cez {{count}} roky/ov"
+        other: "cez %{count} roky/ov"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     human: 
@@ -88,6 +88,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "nieje zahrnuté v zozname"
         exclusion: "je rezervované"
@@ -102,11 +106,11 @@
         taken: "je už použité"
         not_a_number: "nieje Äíslo"
         not_a_date: "nieje platný dátum"
-        greater_than: "musí byÅ¥ väÄšíe ako {{count}}"
-        greater_than_or_equal_to: "musí byÅ¥ väÄÅ¡ie alebo rovné {{count}}"
-        equal_to: "musí byť rovné {{count}}"
-        less_than: "musí byť menej ako {{count}}"
-        less_than_or_equal_to: "musí byť menej alebo rovné {{count}}"
+        greater_than: "musí byÅ¥ väÄšíe ako %{count}"
+        greater_than_or_equal_to: "musí byÅ¥ väÄÅ¡ie alebo rovné %{count}"
+        equal_to: "musí byť rovné %{count}"
+        less_than: "musí byť menej ako %{count}"
+        less_than_or_equal_to: "musí byť menej alebo rovné %{count}"
         odd: "musí byť nepárne"
         even: "musí byť párne"
         greater_than_start_date: "musí byÅ¥ neskôr ako poÄiatoÄný dátum"
@@ -146,30 +150,30 @@
   notice_locking_conflict: Údaje boli zmenené iným užívateľom.
   notice_scm_error: Položka a/alebo revízia neexistuje v repozitári.
   notice_not_authorized: Nemáte dostatoÄné práva pre zobrazenie tejto stránky.
-  notice_email_sent: "Na adresu {{value}} bol odeslaný email"
-  notice_email_error: "Pri odosielaní emailu nastala chyba ({{value}})"
+  notice_email_sent: "Na adresu %{value} bol odeslaný email"
+  notice_email_error: "Pri odosielaní emailu nastala chyba (%{value})"
   notice_feeds_access_key_reseted: Váš klÃºÄ pre prístup k Atomu bol resetovaný.
-  notice_failed_to_save_issues: "Nastala chyba pri ukládaní {{count}} úloh na {{total}} zvolený: {{ids}}."
+  notice_failed_to_save_issues: "Nastala chyba pri ukládaní %{count} úloh na %{total} zvolený: %{ids}."
   notice_no_issue_selected: "Nebola zvolená žiadná úloha. Prosím, zvoľte úlohy, ktoré chcete upraviť"
   notice_account_pending: "Váš úÄet bol vytvorený, teraz Äaká na schválenie administrátorom."
   notice_default_data_loaded: Výchozia konfigurácia úspešne nahraná.
   
-  error_can_t_load_default_data: "Výchozia konfigurácia nebola nahraná: {{value}}"
+  error_can_t_load_default_data: "Výchozia konfigurácia nebola nahraná: %{value}"
   error_scm_not_found: "Položka a/alebo revízia neexistuje v repozitári."
-  error_scm_command_failed: "Pri pokuse o prístup k repozitári došlo k chybe: {{value}}"
+  error_scm_command_failed: "Pri pokuse o prístup k repozitári došlo k chybe: %{value}"
   error_issue_not_found_in_project: 'Úloha nebola nájdená alebo nepatrí k tomuto projektu'
   
-  mail_subject_lost_password: "Vaše heslo ({{value}})"
+  mail_subject_lost_password: "Vaše heslo (%{value})"
   mail_body_lost_password: 'Pre zmenu vašeho hesla kliknite na následujúci odkaz:'
-  mail_subject_register: "Aktivácia úÄtu ({{value}})"
+  mail_subject_register: "Aktivácia úÄtu (%{value})"
   mail_body_register: 'Pre aktiváciu vaÅ¡eho úÄtu kliknite na následujúci odkaz:'
-  mail_body_account_information_external: "Pomocou vaÅ¡eho úÄtu {{value}} se môžete prihlásiÅ¥."
+  mail_body_account_information_external: "Pomocou vaÅ¡eho úÄtu %{value} se môžete prihlásiÅ¥."
   mail_body_account_information: Informácie o vaÅ¡om úÄte
-  mail_subject_account_activation_request: "Aktivácia {{value}} úÄtu"
-  mail_body_account_activation_request: "Bol zaregistrovaný nový uživateľ {{value}}. Aktivácia jeho úÄtu závisí na vaÅ¡om potvrdení."
+  mail_subject_account_activation_request: "Aktivácia %{value} úÄtu"
+  mail_body_account_activation_request: "Bol zaregistrovaný nový uživateľ %{value}. Aktivácia jeho úÄtu závisí na vaÅ¡om potvrdení."
   
   gui_validation_error: 1 chyba
-  gui_validation_error_plural: "{{count}} chyb(y)"
+  gui_validation_error_plural: "%{count} chyb(y)"
   
   field_name: Názov
   field_description: Popis
@@ -231,6 +235,7 @@
   field_attr_lastname: Priezvisko (atribut)
   field_attr_mail: Email (atribut)
   field_onthefly: Automatické vytváranie užívateľov
+  field_start_date: ZaÄiatok
   field_done_ratio: % hotovo
   field_auth_source: AutentifikaÄný mód
   field_hide_mail: Nezobrazovať môj email
@@ -304,14 +309,14 @@
   label_x_projects:
     zero:  žiadne projekty
     one:   1 projekt
-    other: "{{count}} projekty/ov"
+    other: "%{count} projekty/ov"
   label_project_all: Všetky projekty
   label_project_latest: Posledné projekty
   label_issue: Úloha
   label_issue_new: Nová úloha
   label_issue_plural: Úlohy
   label_issue_view_all: Všetky úlohy
-  label_issues_by: "Úlohy od užívateľa {{value}}"
+  label_issues_by: "Úlohy od užívateľa %{value}"
   label_issue_added: Úloha pridaná
   label_issue_updated: Úloha aktualizovaná
   label_document: Dokument
@@ -377,8 +382,8 @@
   label_text: Dlhý text
   label_attribute: Atribut
   label_attribute_plural: Atributy
-  label_download: "{{count}} Download"
-  label_download_plural: "{{count}} Downloady"
+  label_download: "%{count} Download"
+  label_download_plural: "%{count} Downloady"
   label_no_data: Žiadné položky
   label_change_status: Zmeniť stav
   label_history: História
@@ -409,17 +414,17 @@
   label_closed_issues: Uzavrený
   label_closed_issues_plural: Uzavrené
   label_x_open_issues_abbr_on_total:
-    zero:  0 otvorených z celkovo {{total}}
-    one:   1 otvorený z celkovo {{total}}
-    other: "{{count}} otvorené/ých z celkovo {{total}}"
+    zero:  0 otvorených z celkovo %{total}
+    one:   1 otvorený z celkovo %{total}
+    other: "%{count} otvorené/ých z celkovo %{total}"
   label_x_open_issues_abbr:
     zero:  0 otvorených
     one:   1 otvorený
-    other: "{{count}} otvorené/ých"
+    other: "%{count} otvorené/ých"
   label_x_closed_issues_abbr:
     zero:  0 zavretých
     one:   1 zavretý
-    other: "{{count}} zavreté/ých"
+    other: "%{count} zavreté/ých"
   label_total: Celkovo
   label_permissions: Práva
   label_current_status: Aktuálny stav
@@ -437,7 +442,7 @@
   label_months_from: mesiacov od
   label_gantt: Ganttov graf
   label_internal: Interný
-  label_last_changes: "posledných {{count}} zmien"
+  label_last_changes: "posledných %{count} zmien"
   label_change_view_all: Zobraziť všetky zmeny
   label_personalize_page: Prispôsobiť túto stránku
   label_comment: Komentár
@@ -445,7 +450,7 @@
   label_x_comments:
     zero: žiaden komentár
     one: 1 komentár
-    other: "{{count}} komentáre/ov"
+    other: "%{count} komentáre/ov"
   label_comment_add: Pridať komentár
   label_comment_added: Komentár pridaný
   label_comment_delete: Odstrániť komentár
@@ -464,7 +469,7 @@
   label_yesterday: vÄera
   label_this_week: tento týždeň
   label_last_week: minulý týždeň
-  label_last_n_days: "posledných {{count}} dní"
+  label_last_n_days: "posledných %{count} dní"
   label_this_month: tento mesiac
   label_last_month: minulý mesiac
   label_this_year: tento rok
@@ -478,8 +483,8 @@
   label_repository: Repozitár
   label_repository_plural: Repozitáre
   label_browse: Prechádzať
-  label_modification: "{{count}} zmena"
-  label_modification_plural: "{{count}} zmien"
+  label_modification: "%{count} zmena"
+  label_modification_plural: "%{count} zmien"
   label_revision: Revízia
   label_revision_plural: Revízií
   label_associated_revisions: Súvisiace verzie
@@ -495,8 +500,8 @@
   label_sort_lower: Presunúť dole
   label_sort_lowest: Presunúť na koniec
   label_roadmap: Plán
-  label_roadmap_due_in: "Zostáva {{value}}"
-  label_roadmap_overdue: "{{value}} neskoro"
+  label_roadmap_due_in: "Zostáva %{value}"
+  label_roadmap_overdue: "%{value} neskoro"
   label_roadmap_no_issues: Pre túto verziu niesú žiadne úlohy
   label_search: Hľadať
   label_result_plural: Výsledky
@@ -514,8 +519,8 @@
   label_changes_details: Detail všetkých zmien
   label_issue_tracking: Sledovanie úloh
   label_spent_time: Strávený Äas
-  label_f_hour: "{{value}} hodina"
-  label_f_hour_plural: "{{value}} hodín"
+  label_f_hour: "%{value} hodina"
+  label_f_hour_plural: "%{value} hodín"
   label_time_tracking: Sledovánie Äasu
   label_change_plural: Zmeny
   label_statistics: Å tatistiky
@@ -563,12 +568,12 @@
   label_date_from: Od
   label_date_to: Do
   label_language_based: Podľa výchozieho jazyka
-  label_sort_by: "Zoradenie podľa {{value}}"
+  label_sort_by: "Zoradenie podľa %{value}"
   label_send_test_email: Poslať testovací email
-  label_feeds_access_key_created_on: "Prístupový klÃºÄ pre RSS bol vytvorený pred {{value}}"
+  label_feeds_access_key_created_on: "Prístupový klÃºÄ pre RSS bol vytvorený pred %{value}"
   label_module_plural: Moduly
-  label_added_time_by: "Pridané užívateľom {{author}} pred {{age}}"
-  label_updated_time: "Aktualizované pred {{value}}"
+  label_added_time_by: "Pridané užívateľom %{author} pred %{age}"
+  label_updated_time: "Aktualizované pred %{value}"
   label_jump_to_a_project: Zvoliť projekt...
   label_file_plural: Súbory
   label_changeset_plural: Sady zmien
@@ -584,7 +589,7 @@
   label_registration_activation_by_email: aktivácia úÄtu emailom
   label_registration_manual_activation: manuálna aktivácia úÄtu
   label_registration_automatic_activation: automatická aktivácia úÄtu
-  label_display_per_page: "{{value}} na stránku"
+  label_display_per_page: "%{value} na stránku"
   label_age: Vek
   label_change_properties: Zmeniť vlastnosti
   label_general: Všeobecné
@@ -651,23 +656,23 @@
   text_tip_issue_end_day: úloha konÄí v tento deň
   text_tip_issue_begin_end_day: úloha zaÄína a konÄí v tento deň
   text_project_identifier_info: 'Povolené znaky sú malé písmena (a-z), Äísla a pomlÄka.<br />Po uložení už nieje možné identifikátor zmeniÅ¥.'
-  text_caracters_maximum: "{{count}} znakov maximálne."
-  text_caracters_minimum: "Musí byť aspoň {{count}} znaky/ov dlhé."
-  text_length_between: "Dĺžka medzi {{min}} až {{max}} znakmi."
+  text_caracters_maximum: "%{count} znakov maximálne."
+  text_caracters_minimum: "Musí byť aspoň %{count} znaky/ov dlhé."
+  text_length_between: "Dĺžka medzi %{min} až %{max} znakmi."
   text_tracker_no_workflow: Pre tuto frontu nieje definovaný žiadný workflow
   text_unallowed_characters: Nepovolené znaky
   text_comma_separated: Je povolené viacero hodnôt (oddelené navzájom Äiarkou).
   text_issues_ref_in_commit_messages: Odkazovať a upravovať úlohy v správach s následovnym obsahom
-  text_issue_added: "úloha {{id}} bola vytvorená užívateľom {{author}}."
-  text_issue_updated: "Úloha {{id}} byla aktualizovaná užívateľom {{author}}."
+  text_issue_added: "úloha %{id} bola vytvorená užívateľom %{author}."
+  text_issue_updated: "Úloha %{id} byla aktualizovaná užívateľom %{author}."
   text_wiki_destroy_confirmation: Naozaj si prajete odstrániť túto Wiki a celý jej obsah?
-  text_issue_category_destroy_question: "Niektoré úlohy ({{count}}) sú priradené k tejto kategórii. Čo chtete  s nimi spraviť?"
+  text_issue_category_destroy_question: "Niektoré úlohy (%{count}) sú priradené k tejto kategórii. Čo chtete  s nimi spraviť?"
   text_issue_category_destroy_assignments: Zrušiť priradenie ku kategórii
   text_issue_category_reassign_to: Priradiť úlohy do tejto kategórie
   text_user_mail_option: "U projektov, které neboli vybrané, budete dostávaÅ¥ oznamenie iba o vaÅ¡ich Äi o sledovaných položkách (napr. o položkách, ktorých ste autor, alebo ku ktorým ste priradený/á)."
   text_no_configuration_data: "Role, fronty, stavy úloh ani workflow neboli zatiaľ nakonfigurované.\nVelmi doporuÄujeme nahraÅ¥ východziu konfiguráciu. Potom si môžete vÅ¡etko upraviÅ¥"
   text_load_default_configuration: Nahrať východziu konfiguráciu
-  text_status_changed_by_changeset: "Aktualizované v sade zmien {{value}}."
+  text_status_changed_by_changeset: "Aktualizované v sade zmien %{value}."
   text_issues_destroy_confirmation: 'Naozaj si prajete odstrániť všetky zvolené úlohy?'
   text_select_project_modules: 'Aktivne moduly v tomto projekte:'
   text_default_administrator_account_changed: Zmenené výchozie nastavenie administrátorského úÄtu
@@ -705,15 +710,15 @@
   enumeration_activities: Aktivity (sledovanie Äasu)
   error_scm_annotate: "Položka neexistuje alebo nemôže byť komentovaná."
   label_planning: Plánovanie
-  text_subprojects_destroy_warning: "Jeho podprojekt(y): {{value}} budú takisto vymazané."
-  label_and_its_subprojects: "{{value}} a jeho podprojekty"
-  mail_body_reminder: "{{count}} úloha(y), ktorá(é) je(sú) vám priradený(é), ma(jú) byť hotova(é) za {{days}} dní:"
-  mail_subject_reminder: "{{count}} úloha(y) ma(jú) byť hotova(é) za pár {{days}} dní"
-  text_user_wrote: "{{value}} napísal:"
+  text_subprojects_destroy_warning: "Jeho podprojekt(y): %{value} budú takisto vymazané."
+  label_and_its_subprojects: "%{value} a jeho podprojekty"
+  mail_body_reminder: "%{count} úloha(y), ktorá(é) je(sú) vám priradený(é), ma(jú) byť hotova(é) za %{days} dní:"
+  mail_subject_reminder: "%{count} úloha(y) ma(jú) byť hotova(é) za pár %{days} dní"
+  text_user_wrote: "%{value} napísal:"
   label_duplicated_by: duplikovaný
   setting_enabled_scm: Zapnúť SCM
   text_enumeration_category_reassign_to: 'Prenastaviť na túto hodnotu:'
-  text_enumeration_destroy_question: "{{count}} objekty sú nastavené na túto hodnotu."
+  text_enumeration_destroy_question: "%{count} objekty sú nastavené na túto hodnotu."
   label_incoming_emails: Príchádzajúce emaily
   label_generate_key: VygenerovaÅ¥ kľúÄ
   setting_mail_handler_api_enabled: Zapnúť Webovú Službu (WS) pre príchodzie emaily
@@ -779,12 +784,12 @@
   permission_delete_own_messages: Mazanie vlastných správ
   text_repository_usernames_mapping: "Vyberte alebo upravte mapovanie medzi užívateľmi systému Redmine a užívateľskými menami nájdenými v logu repozitára.\nUžívatelia s rovnakým prihlasovacím menom alebo emailom v systéme Redmine a repozitára sú mapovaní automaticky."
   label_example: Príklad
-  label_user_activity: "Aktivita užívateľa {{value}}"
-  label_updated_time_by: "Aktualizované užívateľom {{author}} pred {{age}}"
+  label_user_activity: "Aktivita užívateľa %{value}"
+  label_updated_time_by: "Aktualizované užívateľom %{author} pred %{age}"
   text_diff_truncated: '... Tento rozdielový výpis bol skratený, pretože prekraÄuje maximálnu veľkosÅ¥, ktorá môže byÅ¥ zobrazená.'
   setting_diff_max_lines_displayed: Maximálne množstvo zobrazených riadkov rozdielového výpisu
   text_plugin_assets_writable: Adresár pre pluginy s možnosťou zápisu
-  warning_attachments_not_saved: "{{count}} súbor(y) nemohol(li) byť uložené."
+  warning_attachments_not_saved: "%{count} súbor(y) nemohol(li) byť uložené."
   field_editable: Editovateľné
   label_display: Zobrazenie
   button_create_and_continue: VytvoriÅ¥ a pokraÄovaÅ¥
@@ -799,22 +804,22 @@
   label_descending: Zostupné
   label_sort: Zoradenie
   label_ascending: Rastúce
-  label_date_from_to: Od {{start}} do {{end}}
+  label_date_from_to: Od %{start} do %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: Táto stránka má {{descendants}} podstránku/y a potomka/ov. Čo chcete vykonať?
+  text_wiki_page_destroy_question: Táto stránka má %{descendants} podstránku/y a potomka/ov. Čo chcete vykonať?
   text_wiki_page_reassign_children: Preradiť podstránky k tejto hlavnej stránke
   text_wiki_page_nullify_children: Zachovať podstránky ako hlavné stránky
   text_wiki_page_destroy_children: Vymazať podstránky a všetkých ich potomkov
   setting_password_min_length: Minimálna dĺžka hesla
   field_group_by: Skupinové výsledky podľa
-  mail_subject_wiki_content_updated: "'{{id}}' Wiki stránka bola aktualizovaná"
+  mail_subject_wiki_content_updated: "'%{id}' Wiki stránka bola aktualizovaná"
   label_wiki_content_added: Wiki stránka pridaná
-  mail_subject_wiki_content_added: "'{{id}}' Wiki stránka bola pridaná"
-  mail_body_wiki_content_added: The '{{id}}' Wiki stránka bola pridaná užívateľom {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' Wiki stránka bola pridaná"
+  mail_body_wiki_content_added: The '%{id}' Wiki stránka bola pridaná užívateľom %{author}.
   permission_add_project: Vytvorenie projektu
   label_wiki_content_updated: Wiki stránka aktualizovaná
-  mail_body_wiki_content_updated: Wiki stránka '{{id}}' bola aktualizovaná užívateľom {{author}}.
+  mail_body_wiki_content_updated: Wiki stránka '%{id}' bola aktualizovaná užívateľom %{author}.
   setting_repositories_encodings: Kódovanie repozitára
   setting_new_project_user_role_id: Rola dána non-admin užívateľovi, ktorý vytvorí projekt
   label_view_all_revisions: Zobraziť všetkz revízie
@@ -822,14 +827,14 @@
   label_branch: Vetva
   error_no_tracker_in_project: K tomuto projektu nieje priradená žiadna fronta. Prosím skontrolujte nastavenie projektu.
   error_no_default_issue_status: Nieje definovaný východzí stav úlohy. Prosím skontrolujte vase nastavenie (ChoÄte na "Administrácia -> Stavz úloh").
-  text_journal_changed: "{{label}} zmenené z {{old}} na {{new}}"
-  text_journal_set_to: "{{label}} nastavené na {{value}}"
-  text_journal_deleted: "{{label}} zmazané ({{old}})"
+  text_journal_changed: "%{label} zmenené z %{old} na %{new}"
+  text_journal_set_to: "%{label} nastavené na %{value}"
+  text_journal_deleted: "%{label} zmazané (%{old})"
   label_group_plural: Skupiny
   label_group: Skupina
   label_group_new: Nová skupina
   label_time_entry_plural: Strávený Äas
-  text_journal_added: "{{label}} {{value}} pridané"
+  text_journal_added: "%{label} %{value} pridané"
   field_active: Aktívne
   enumeration_system_activity: Aktivita systému
   permission_delete_issue_watchers: Odstrániť pozorovateľov
@@ -864,9 +869,9 @@
   setting_start_of_week: Štart pracovného týždňa v
   permission_view_issues: Zobraziť úlohy
   label_display_used_statuses_only: Zobraziť len stavy, ktoré sú priradené k tejto fronte
-  label_revision_id: Revízia {{value}}
+  label_revision_id: Revízia %{value}
   label_api_access_key: API prístupový kľúÄ
-  label_api_access_key_created_on: API prístupový kÄ¾ÃºÄ vytvorený pred {{value}}
+  label_api_access_key_created_on: API prístupový kÄ¾ÃºÄ vytvorený pred %{value}
   label_feeds_access_key: RSS prístupový kľúÄ
   notice_api_access_key_reseted: Váš API prístupový kÄ¾ÃºÄ bol resetovaný.
   setting_rest_api_enabled: Zapnúť REST web službu
@@ -893,12 +898,12 @@
   label_subtask_plural: Podúlohy
   label_project_copy_notifications: Zaslať emailové upozornenie behom kopírovania projektu
   error_can_not_delete_custom_field: Nieje možné vymazať užívateľské pole
-  error_unable_to_connect: Nieje možné vymazať ({{value}})
+  error_unable_to_connect: Nieje možné vymazať (%{value})
   error_can_not_remove_role: Táto roľa sa používa a nemôže byť vymazaná.
   error_can_not_delete_tracker: Táto fronta obsahuje úlohy a nemôže byť vymazaná.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -906,7 +911,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -917,8 +922,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/sl.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/sl.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "ni vkljuÄen na seznamu"
         exclusion: "je rezerviran"
@@ -106,11 +110,11 @@
         taken: "je že zaseden"
         not_a_number: "ni število"
         not_a_date: "ni veljaven datum"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "mora biti kasnejÅ¡i kot zaÄeten datum"
@@ -147,34 +151,34 @@
   notice_file_not_found: Stran na katero se želite povezati ne obstaja ali pa je bila umaknjena.
   notice_locking_conflict: Drug uporabnik je posodobil podatke.
   notice_not_authorized: Nimate privilegijev za dostop do te strani.
-  notice_email_sent: "E-poÅ¡tno sporoÄilo je bilo poslano {{value}}"
-  notice_email_error: "Ob poÅ¡iljanju e-sporoÄila je priÅ¡lo do napake ({{value}})"
+  notice_email_sent: "E-poÅ¡tno sporoÄilo je bilo poslano %{value}"
+  notice_email_error: "Ob poÅ¡iljanju e-sporoÄila je priÅ¡lo do napake (%{value})"
   notice_feeds_access_key_reseted: VaÅ¡ RSS dostopni kljuÄ je bil ponastavljen.
-  notice_failed_to_save_issues: "Neuspelo shranjevanje {{count}} zahtevka na {{total}} izbranem: {{ids}}."
+  notice_failed_to_save_issues: "Neuspelo shranjevanje %{count} zahtevka na %{total} izbranem: %{ids}."
   notice_no_issue_selected: "Izbran ni noben zahtevek! Prosimo preverite zahtevke, ki jih želite urediti."
   notice_account_pending: "VaÅ¡ raÄun je bil ustvarjen in Äaka na potrditev s strani administratorja."
   notice_default_data_loaded: Privzete nastavitve so bile uspešno naložene.
   notice_unable_delete_version: Verzije ni bilo mogoÄe izbrisati.
   
-  error_can_t_load_default_data: "Privzetih nastavitev ni bilo mogoÄe naložiti: {{value}}"
+  error_can_t_load_default_data: "Privzetih nastavitev ni bilo mogoÄe naložiti: %{value}"
   error_scm_not_found: "Vnos ali revizija v shrambi ni bila najdena ."
-  error_scm_command_failed: "Med vzpostavljem povezave s shrambo je prišlo do napake: {{value}}"
+  error_scm_command_failed: "Med vzpostavljem povezave s shrambo je prišlo do napake: %{value}"
   error_scm_annotate: "Vnos ne obstaja ali pa ga ni mogoÄe komentirati."
   error_issue_not_found_in_project: 'Zahtevek ni bil najden ali pa ne pripada temu projektu'
   
-  mail_subject_lost_password: "Vaše {{value}} geslo"
+  mail_subject_lost_password: "Vaše %{value} geslo"
   mail_body_lost_password: 'Za spremembo glesla kliknite na naslednjo povezavo:'
-  mail_subject_register: "Aktivacija {{value}} vaÅ¡ega raÄuna"
+  mail_subject_register: "Aktivacija %{value} vaÅ¡ega raÄuna"
   mail_body_register: 'Za aktivacijo vaÅ¡ega raÄuna kliknite na naslednjo povezavo:'
-  mail_body_account_information_external: "Za prijavo lahko uporabite vaÅ¡ {{value}} raÄun."
+  mail_body_account_information_external: "Za prijavo lahko uporabite vaÅ¡ %{value} raÄun."
   mail_body_account_information: Informacije o vaÅ¡em raÄunu
-  mail_subject_account_activation_request: "{{value}} zahtevek za aktivacijo raÄuna"
-  mail_body_account_activation_request: "Registriral se je nov uporabnik ({{value}}). RaÄun Äaka na vaÅ¡o odobritev:"
-  mail_subject_reminder: "{{count}} zahtevek(zahtevki) zapadejo v naslednjih {{days}} dneh"
-  mail_body_reminder: "{{count}} zahtevek(zahtevki), ki so vam dodeljeni bodo zapadli v naslednjih {{days}} dneh:"
+  mail_subject_account_activation_request: "%{value} zahtevek za aktivacijo raÄuna"
+  mail_body_account_activation_request: "Registriral se je nov uporabnik (%{value}). RaÄun Äaka na vaÅ¡o odobritev:"
+  mail_subject_reminder: "%{count} zahtevek(zahtevki) zapadejo v naslednjih %{days} dneh"
+  mail_body_reminder: "%{count} zahtevek(zahtevki), ki so vam dodeljeni bodo zapadli v naslednjih %{days} dneh:"
   
   gui_validation_error: 1 napaka
-  gui_validation_error_plural: "{{count}} napak"
+  gui_validation_error_plural: "%{count} napak"
   
   field_name: Ime
   field_description: Opis
@@ -236,6 +240,7 @@
   field_attr_lastname: Oznaka za priimek
   field_attr_mail: Oznaka za e-naslov
   field_onthefly: Sprotna izdelava uporabnikov
+  field_start_date: ZaÄetek
   field_done_ratio: % Narejeno
   field_auth_source: NaÄin overovljanja
   field_hide_mail: Skrij moj e-naslov
@@ -367,14 +372,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Vsi projekti
   label_project_latest: Zadnji projekti
   label_issue: Zahtevek
   label_issue_new: Nov zahtevek
   label_issue_plural: Zahtevki
   label_issue_view_all: Poglej vse zahtevke
-  label_issues_by: "Zahtevki od {{value}}"
+  label_issues_by: "Zahtevki od %{value}"
   label_issue_added: Zahtevek dodan
   label_issue_updated: Zahtevek posodobljen
   label_document: Dokument
@@ -422,7 +427,7 @@
   label_registered_on: Registriran
   label_activity: Aktivnost
   label_overall_activity: Celotna aktivnost
-  label_user_activity: "Aktivnost {{value}}"
+  label_user_activity: "Aktivnost %{value}"
   label_new: Nov
   label_logged_as: Prijavljen(a) kot
   label_environment: Okolje
@@ -431,7 +436,7 @@
   label_auth_source_new: Nov naÄin overovitve
   label_auth_source_plural: NaÄini overovitve
   label_subproject_plural: Podprojekti
-  label_and_its_subprojects: "{{value}} in njegovi podprojekti"
+  label_and_its_subprojects: "%{value} in njegovi podprojekti"
   label_min_max_length: Min - Max dolžina
   label_list: Seznam
   label_date: Datum
@@ -442,8 +447,8 @@
   label_text: Dolgo besedilo
   label_attribute: Lastnost
   label_attribute_plural: Lastnosti
-  label_download: "{{count}} Prenos"
-  label_download_plural: "{{count}} Prenosi"
+  label_download: "%{count} Prenos"
+  label_download_plural: "%{count} Prenosi"
   label_no_data: Ni podatkov za prikaz
   label_change_status: Spremeni stanje
   label_history: Zgodovina
@@ -474,17 +479,17 @@
   label_closed_issues: zapri zahtevek
   label_closed_issues_plural: zapri zahtevke
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Skupaj
   label_permissions: Dovoljenja
   label_current_status: Trenutno stanje
@@ -502,7 +507,7 @@
   label_months_from: mesecev od
   label_gantt: Gantt
   label_internal: Notranji
-  label_last_changes: "zadnjih {{count}} sprememb"
+  label_last_changes: "zadnjih %{count} sprememb"
   label_change_view_all: Poglej vse spremembe
   label_personalize_page: Individualiziraj to stran
   label_comment: Komentar
@@ -510,7 +515,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Dodaj komentar
   label_comment_added: Komentar dodan
   label_comment_delete: Izbriši komentarje
@@ -529,7 +534,7 @@
   label_yesterday: vÄeraj
   label_this_week: ta teden
   label_last_week: pretekli teden
-  label_last_n_days: "zadnjih {{count}} dni"
+  label_last_n_days: "zadnjih %{count} dni"
   label_this_month: ta mesec
   label_last_month: zadnji mesec
   label_this_year: to leto
@@ -543,8 +548,8 @@
   label_repository: Shramba
   label_repository_plural: Shrambe
   label_browse: Prebrskaj
-  label_modification: "{{count}} sprememba"
-  label_modification_plural: "{{count}} spremembe"
+  label_modification: "%{count} sprememba"
+  label_modification_plural: "%{count} spremembe"
   label_revision: Revizija
   label_revision_plural: Revizije
   label_associated_revisions: Povezane revizije
@@ -562,8 +567,8 @@
   label_sort_lower: Premakni dol
   label_sort_lowest: Premakni na dno
   label_roadmap: NaÄrt
-  label_roadmap_due_in: "Do {{value}}"
-  label_roadmap_overdue: "{{value}} zakasnel"
+  label_roadmap_due_in: "Do %{value}"
+  label_roadmap_overdue: "%{value} zakasnel"
   label_roadmap_no_issues: Ni zahtevkov za to verzijo
   label_search: IÅ¡Äi
   label_result_plural: Rezultati
@@ -581,8 +586,8 @@
   label_changes_details: Podrobnosti o vseh spremembah
   label_issue_tracking: Sledenje zahtevkom
   label_spent_time: Porabljen Äas
-  label_f_hour: "{{value}} ura"
-  label_f_hour_plural: "{{value}} ur"
+  label_f_hour: "%{value} ura"
+  label_f_hour_plural: "%{value} ur"
   label_time_tracking: Sledenje Äasu
   label_change_plural: Spremembe
   label_statistics: Statistika
@@ -631,13 +636,13 @@
   label_date_from: Do
   label_date_to: Do
   label_language_based: Glede na uporabnikov jezik
-  label_sort_by: "Razporedi po {{value}}"
+  label_sort_by: "Razporedi po %{value}"
   label_send_test_email: Pošlji testno e-pismo
-  label_feeds_access_key_created_on: "RSS dostopni kljuÄ narejen {{value}} nazaj"
+  label_feeds_access_key_created_on: "RSS dostopni kljuÄ narejen %{value} nazaj"
   label_module_plural: Moduli
-  label_added_time_by: "Dodan {{author}} {{age}} nazaj"
-  label_updated_time_by: "Posodobljen od {{author}} {{age}} nazaj"
-  label_updated_time: "Posodobljen {{value}} nazaj"
+  label_added_time_by: "Dodan %{author} %{age} nazaj"
+  label_updated_time_by: "Posodobljen od %{author} %{age} nazaj"
+  label_updated_time: "Posodobljen %{value} nazaj"
   label_jump_to_a_project: SkoÄi na projekt...
   label_file_plural: Datoteke
   label_changeset_plural: Zapisi sprememb
@@ -653,7 +658,7 @@
   label_registration_activation_by_email: aktivacija raÄuna po e-poÅ¡ti
   label_registration_manual_activation: roÄna aktivacija raÄuna
   label_registration_automatic_activation: samodejna aktivacija raÄuna
-  label_display_per_page: "Na stran: {{value}}"
+  label_display_per_page: "Na stran: %{value}"
   label_age: Starost
   label_change_properties: Sprememba lastnosti
   label_general: Splošno
@@ -720,41 +725,41 @@
   text_regexp_info: npr. ^[A-Z0-9]+$
   text_min_max_length_info: 0 pomeni brez omejitev
   text_project_destroy_confirmation: Ali ste prepriÄani da želite izbrisati izbrani projekt in vse z njim povezane podatke?
-  text_subprojects_destroy_warning: "Njegov(i) podprojekt(i): {{value}} bodo prav tako izbrisani."
+  text_subprojects_destroy_warning: "Njegov(i) podprojekt(i): %{value} bodo prav tako izbrisani."
   text_workflow_edit: Izberite vlogo in zahtevek za urejanje poteka dela
   text_are_you_sure: Ali ste prepriÄani?
   text_tip_issue_begin_day: naloga z zaÄetkom na ta dan
   text_tip_issue_end_day: naloga z zakljuÄkom na ta dan
   text_tip_issue_begin_end_day: naloga ki se zaÄne in konÄa ta dan
   text_project_identifier_info: 'Dovoljene so samo male Ärke (a-z), Å¡tevilke in vezaji.<br />Enkrat shranjen identifikator ne more biti spremenjen.'
-  text_caracters_maximum: "najveÄ {{count}} znakov."
-  text_caracters_minimum: "Mora biti vsaj dolg vsaj {{count}} znakov."
-  text_length_between: "Dolžina med {{min}} in {{max}} znakov."
+  text_caracters_maximum: "najveÄ %{count} znakov."
+  text_caracters_minimum: "Mora biti vsaj dolg vsaj %{count} znakov."
+  text_length_between: "Dolžina med %{min} in %{max} znakov."
   text_tracker_no_workflow: Potek dela za to vrsto zahtevka ni doloÄen
   text_unallowed_characters: Nedovoljeni znaki
   text_comma_separated: Dovoljenih je veÄ vrednosti (loÄenih z vejico).
   text_issues_ref_in_commit_messages: Zahtevki sklicev in popravkov v sporoÄilu predaje
-  text_issue_added: "Zahtevek {{id}} je sporoÄil(a) {{author}}."
-  text_issue_updated: "Zahtevek {{id}} je posodobil(a) {{author}}."
+  text_issue_added: "Zahtevek %{id} je sporoÄil(a) %{author}."
+  text_issue_updated: "Zahtevek %{id} je posodobil(a) %{author}."
   text_wiki_destroy_confirmation: Ali ste prepriÄani da želite izbrisati ta wiki in vso njegovo vsebino?
-  text_issue_category_destroy_question: "Nekateri zahtevki ({{count}}) so dodeljeni tej kategoriji. Kaj želite storiti?"
+  text_issue_category_destroy_question: "Nekateri zahtevki (%{count}) so dodeljeni tej kategoriji. Kaj želite storiti?"
   text_issue_category_destroy_assignments: Odstrani naloge v kategoriji
   text_issue_category_reassign_to: Ponovno dodeli zahtevke tej kategoriji
   text_user_mail_option: "Na neizbrane projekte boste prejemali le obvestila o zadevah ki jih spremljate ali v katere ste vkljuÄeni (npr. zahtevki katerih avtor(ica) ste)"
   text_no_configuration_data: "Vloge, vrste zahtevkov, statusi zahtevkov in potek dela Å¡e niso bili doloÄeni. \nZelo priporoÄljivo je, da naložite privzeto  konfiguracijo, ki jo lahko kasneje tudi prilagodite."
   text_load_default_configuration: Naloži privzeto konfiguracijo
-  text_status_changed_by_changeset: "Dodano v zapis sprememb {{value}}."
+  text_status_changed_by_changeset: "Dodano v zapis sprememb %{value}."
   text_issues_destroy_confirmation: 'Ali ste prepriÄani, da želite izbrisati izbrani(e) zahtevek(ke)?'
   text_select_project_modules: 'Izberite module, ki jih želite omogoÄiti za ta projekt:'
   text_default_administrator_account_changed: Spremenjen privzeti administratorski raÄun
   text_file_repository_writable: OmogoÄeno pisanje v shrambo datotek
   text_rmagick_available: RMagick je na voljo(neobvezno)
-  text_destroy_time_entries_question: "{{hours}} ur je bilo opravljenih na zahtevku, ki ga želite izbrisati. Kaj želite storiti?"
+  text_destroy_time_entries_question: "%{hours} ur je bilo opravljenih na zahtevku, ki ga želite izbrisati. Kaj želite storiti?"
   text_destroy_time_entries: Izbriši opravljene ure
   text_assign_time_entries_to_project: Predaj opravljene ure projektu
   text_reassign_time_entries: 'Prenesi opravljene ure na ta zahtevek:'
-  text_user_wrote: "{{value}} je napisal(a):"
-  text_enumeration_destroy_question: "{{count}} objektov je doloÄenih tej vrednosti."
+  text_user_wrote: "%{value} je napisal(a):"
+  text_enumeration_destroy_question: "%{count} objektov je doloÄenih tej vrednosti."
   text_enumeration_category_reassign_to: 'Ponastavi jih na to vrednost:'
   text_email_delivery_not_configured: "E-poÅ¡tna dostava ni nastavljena in oznanila so onemogoÄena.\nNastavite vaÅ¡ SMTP strežnik v config/email.yml in ponovno zaženite aplikacijo da ga omogoÄite.\n"
   text_repository_usernames_mapping: "Izberite ali posodobite Redmine uporabnika dodeljenega vsakemu uporabniškemu imenu najdenemu v zapisniku shrambe.\n Uporabniki z enakim Redmine ali shrambinem uporabniškem imenu ali e-poštnem naslovu so samodejno dodeljeni."
@@ -785,7 +790,7 @@
   enumeration_issue_priorities: Prioritete zahtevkov
   enumeration_doc_categories: Kategorije dokumentov
   enumeration_activities: Aktivnosti (sledenje Äasa)
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   field_editable: Editable
   text_plugin_assets_writable: Plugin assets directory writable
   label_display: Display
@@ -801,21 +806,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -823,14 +828,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -865,9 +870,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -894,12 +899,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -907,7 +912,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -918,8 +923,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/sr-YU.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/sr-YU.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -1,929 +1,938 @@
-# Serbian translations for Redmine
-# by Vladimir Medarović (vlada@medarovic.com)
-sr-YU:
-  direction: ltr
-  date:
-    formats:
-      # Use the strftime parameters for formats.
-      # When no format has been given, it uses default.
-      # You can provide other formats here if you like!
-      default: "%d.%m.%Y."
-      short: "%e %b"
-      long: "%B %e, %Y"
-      
-    day_names: [nedelja, ponedeljak, utorak, sreda, Äetvrtak, petak, subota]
-    abbr_day_names: [ned, pon, uto, sre, Äet, pet, sub]
-      
-    # Don't forget the nil at the beginning; there's no such thing as a 0th month
-    month_names: [~, januar, februar, mart, april, maj, jun, jul, avgust, septembar, oktobar, novembar, decembar]
-    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec]
-    # Used in date_select and datime_select.
-    order: [ :day, :month, :year ]
-
-  time:
-    formats:
-      default: "%d.%m.%Y. u %H:%M"
-      time: "%H:%M"
-      short: "%d. %b u %H:%M"
-      long: "%d. %B %Y u %H:%M"
-    am: "am"
-    pm: "pm"
-
-  datetime:
-    distance_in_words:
-      half_a_minute: "pola minuta"
-      less_than_x_seconds:
-        one:   "manje od jedne sekunde"
-        other: "manje od {{count}} sek."
-      x_seconds:
-        one:   "jedna sekunda"
-        other: "{{count}} sek."
-      less_than_x_minutes:
-        one:   "manje od minuta"
-        other: "manje od {{count}} min."
-      x_minutes:
-        one:   "jedan minut"
-        other: "{{count}} min."
-      about_x_hours:
-        one:   "približno jedan sat"
-        other: "približno {{count}} sati"
-      x_days:
-        one:   "jedan dan"
-        other: "{{count}} dana"
-      about_x_months:
-        one:   "približno jedan mesec"
-        other: "približno {{count}} meseci"
-      x_months:
-        one:   "jedan mesec"
-        other: "{{count}} meseci"
-      about_x_years:
-        one:   "približno godinu dana"
-        other: "približno {{count}} god."
-      over_x_years:
-        one:   "preko godinu dana"
-        other: "preko {{count}} god."
-      almost_x_years:
-        one:   "skoro godinu dana"
-        other: "skoro {{count}} god."
-
-  number:
-    format:
-      separator: ","
-      delimiter: ""
-      precision: 3
-    human:
-      format:
-        delimiter: ""
-        precision: 1
-      storage_units:
-        format: "%n %u"
-        units:
-          byte:
-            one: "Byte"
-            other: "Bytes"
-          kb: "KB"
-          mb: "MB"
-          gb: "GB"
-          tb: "TB"
-
-
-# Used in array.to_sentence.
-  support:
-    array:
-      sentence_connector: "i"
-      skip_last_comma: false
-      
-  activerecord:
-    errors:
-      messages:
-        inclusion: "nije ukljuÄen u spisak"
-        exclusion: "je rezervisan"
-        invalid: "je neispravan"
-        confirmation: "potvrda ne odgovara"
-        accepted: "mora biti prihvaćen"
-        empty: "ne može biti prazno"
-        blank: "ne može biti prazno"
-        too_long: "je predugaÄka (maksimum znakova je {{count}})"
-        too_short: "je prekratka (minimum znakova je {{count}})"
-        wrong_length: "je pogrešne dužine (broj znakova mora biti {{count}})"
-        taken: "je već u upotrebi"
-        not_a_number: "nije broj"
-        not_a_date: "nije ispravan datum"
-        greater_than: "mora biti veći od {{count}}"
-        greater_than_or_equal_to: "mora biti veći ili jednak {{count}}"
-        equal_to: "mora biti jednak {{count}}"
-        less_than: "mora biti manji od {{count}}"
-        less_than_or_equal_to: "mora biti manji ili jednak {{count}}"
-        odd: "mora biti paran"
-        even: "mora biti neparan"
-        greater_than_start_date: "mora biti veći od poÄetnog datuma"
-        not_same_project: "ne pripada istom projektu"
-        circular_dependency: "Ova veza će stvoriti kružnu referencu"
-        cant_link_an_issue_with_a_descendant: "Problem ne može biti povezan sa jednim od svojih podzadataka"
-
-  actionview_instancetag_blank_option: Molim odaberite
-  
-  general_text_No: 'Ne'
-  general_text_Yes: 'Da'
-  general_text_no: 'ne'
-  general_text_yes: 'da'
-  general_lang_name: 'Srpski'
-  general_csv_separator: ','
-  general_csv_decimal_separator: '.'
-  general_csv_encoding: UTF-8
-  general_pdf_encoding: UTF-8
-  general_first_day_of_week: '1'
-  
-  notice_account_updated: Nalog je uspešno ažuriran.
-  notice_account_invalid_creditentials: Neispravno korisniÄko ime ili lozinka.
-  notice_account_password_updated: Lozinka je uspešno ažurirana.
-  notice_account_wrong_password: Pogrešna lozinka
-  notice_account_register_done: KorisniÄki nalog je uspeÅ¡no kreiran. Kliknite na link koji ste dobili u e-poruci za aktivaciju.
-  notice_account_unknown_email: Nepoznat korisnik.
-  notice_can_t_change_password: Ovaj korisniÄki nalog za potvrdu identiteta koristi spoljni izvor. Nemoguće je promeniti lozinku.
-  notice_account_lost_email_sent: Poslata vam je e-poruka sa uputstvom za izbor nove lozinke
-  notice_account_activated: VaÅ¡ korisniÄki nalog je aktiviran. Sada se možete prijaviti.
-  notice_successful_create: Uspešno kreiranje.
-  notice_successful_update: Uspešno ažuriranje.
-  notice_successful_delete: Uspešno brisanje.
-  notice_successful_connection: Uspešno povezivanje.
-  notice_file_not_found: Strana kojoj želite pristupiti ne postoji ili je uklonjena.
-  notice_locking_conflict: Podatak je ažuriran od strane drugog korisnika.
-  notice_not_authorized: Niste ovlašćeni za pristup ovoj strani.
-  notice_email_sent: "E-poruka je poslata na {{value}}"
-  notice_email_error: "Dogodila se greška prilikom slanja e-poruke ({{value}})"
-  notice_feeds_access_key_reseted: VaÅ¡ RSS pristupni kljuÄ je poniÅ¡ten.
-  notice_api_access_key_reseted: VaÅ¡ API pristupni kljuÄ je poniÅ¡ten.
-  notice_failed_to_save_issues: "Neuspešno snimanje {{count}} problema od {{total}} odabranih: {{ids}}."
-  notice_failed_to_save_members: "NeuspeÅ¡no snimanje Älana(ova): {{errors}}."
-  notice_no_issue_selected: "Ni jedan problem nije odabran! Molimo, odaberite problem koji želite da menjate."
-  notice_account_pending: "VaÅ¡ nalog je kreiran i Äeka na odobrenje administratora."
-  notice_default_data_loaded: Podrazumevano konfigurisanje je uspeÅ¡no uÄitano.
-  notice_unable_delete_version: Verziju je nemoguće izbrisati.
-  notice_unable_delete_time_entry: Stavku evidencije vremena je nemoguće izbrisati.
-  notice_issue_done_ratios_updated: Odnos rešenih problema je ažuriran.
-  
-  error_can_t_load_default_data: "Podrazumevano konfigurisanje je nemoguće uÄitati: {{value}}"
-  error_scm_not_found: "Stavka ili ispravka nisu pronađene u spremištu."
-  error_scm_command_failed: "Greška se javila prilikom pokušaja pristupa spremištu: {{value}}"
-  error_scm_annotate: "Stavka ne postoji ili ne može biti oznaÄena."
-  error_issue_not_found_in_project: 'Problem nije pronađen ili ne pripada ovom projektu.'
-  error_no_tracker_in_project: 'Ni jedno praćenje nije povezano sa ovim projektom. Molimo proverite podešavanja projekta.'
-  error_no_default_issue_status: 'Podrazumevani status problema nije definisan. Molimo proverite vaše konfigurisanje (idite na "Administracija -> Statusi problema").'
-  error_can_not_delete_custom_field: Nemoguće je izbrisati prilagođeno polje
-  error_can_not_delete_tracker: "Ovo praćenje sadrži probleme i ne može biti obrisano."
-  error_can_not_remove_role: "Ova uloga je u upotrebi i ne može biti obrisana."
-  error_can_not_reopen_issue_on_closed_version: 'Problem dodeljen zatvorenoj verziji ne može biti ponovo otvoren'
-  error_can_not_archive_project: Ovaj projekat se ne može arhivirati
-  error_issue_done_ratios_not_updated: "Odnos rešenih problema nije ažuriran."
-  error_workflow_copy_source: 'Molimo odaberite izvorno praćenje ili ulogu'
-  error_workflow_copy_target: 'Molimo odaberite odredišno praćenje i ulogu'
-  error_unable_delete_issue_status: 'Status problema je nemoguće obrisati'
-  error_unable_to_connect: "Povezivanje sa ({{value}}) je nemoguće"  
-  warning_attachments_not_saved: "{{count}} datoteka ne može biti snimljena."
-  
-  mail_subject_lost_password: "Vaša {{value}} lozinka"
-  mail_body_lost_password: 'Za promenu vaše lozinke, kliknite na sledeći link:'
-  mail_subject_register: "Aktivacija vašeg {{value}} naloga"
-  mail_body_register: 'Za aktivaciju vašeg naloga, kliknite na sledeći link:'
-  mail_body_account_information_external: "Vaš nalog {{value}} možete koristiti za prijavu."
-  mail_body_account_information: Informacije o vašem nalogu
-  mail_subject_account_activation_request: "Zahtev za aktivaciju naloga {{value}}"
-  mail_body_account_activation_request: "Novi korisnik ({{value}}) je registrovan. Nalog Äeka na vaÅ¡e odobrenje:"
-  mail_subject_reminder: "{{count}} problema dospeva narednih {{days}} dana"
-  mail_body_reminder: "{{count}} problema dodeljenih vama dospeva u narednih {{days}} dana:"
-  mail_subject_wiki_content_added: "Wiki stranica '{{id}}' je dodata"
-  mail_body_wiki_content_added: "{{author}} je dodao wiki stranicu '{{id}}'."
-  mail_subject_wiki_content_updated: "Wiki stranica '{{id}}' je ažurirana"
-  mail_body_wiki_content_updated: "{{author}} je ažurirao wiki stranicu '{{id}}'."
-  
-  gui_validation_error: jedna greška
-  gui_validation_error_plural: "{{count}} grešaka"
-  
-  field_name: Naziv
-  field_description: Opis
-  field_summary: Rezime
-  field_is_required: Obavezno
-  field_firstname: Ime
-  field_lastname: Prezime
-  field_mail: E-adresa
-  field_filename: Datoteka
-  field_filesize: VeliÄina
-  field_downloads: Preuzimanja
-  field_author: Autor
-  field_created_on: Kreirano
-  field_updated_on: Ažurirano
-  field_field_format: Format
-  field_is_for_all: Za sve projekte
-  field_possible_values: Moguće vrednosti
-  field_regexp: Regularan izraz
-  field_min_length: Minimalna dužina
-  field_max_length: Maksimalna dužina
-  field_value: Vrednost
-  field_category: Kategorija
-  field_title: Naslov
-  field_project: Projekat
-  field_issue: Problem
-  field_status: Status
-  field_notes: Beleške
-  field_is_closed: Zatvoren problem
-  field_is_default: Podrazumevana vrednost
-  field_tracker: Praćenje
-  field_subject: Predmet
-  field_due_date: Krajnji rok
-  field_assigned_to: Dodeljeno
-  field_priority: Prioritet
-  field_fixed_version: Odredišna verzija
-  field_user: Korisnik
-  field_principal: Glavni
-  field_role: Uloga
-  field_homepage: PoÄetna stranica
-  field_is_public: Javno objavljivanje
-  field_parent: Potprojekat od
-  field_is_in_roadmap: Problemi prikazani u planu rada
-  field_login: KorisniÄko ime
-  field_mail_notification: Obaveštenja putem e-pošte
-  field_admin: Administrator
-  field_last_login_on: Poslednje povezivanje
-  field_language: Jezik
-  field_effective_date: Datum
-  field_password: Lozinka
-  field_new_password: Nova lozinka
-  field_password_confirmation: Potvrda lozinke
-  field_version: Verzija
-  field_type: Tip
-  field_host: Glavni raÄunar
-  field_port: Port
-  field_account: KorisniÄki nalog
-  field_base_dn: Bazni DN
-  field_attr_login: Atribut prijavljivanja
-  field_attr_firstname: Atribut imena
-  field_attr_lastname: Atribut prezimena
-  field_attr_mail: Atribut e-adrese
-  field_onthefly: Kreiranje korisnika u toku rada
-  field_done_ratio: % urađeno
-  field_auth_source: Režim potvrde identiteta
-  field_hide_mail: Sakrij moju e-adresu
-  field_comments: Komentar
-  field_url: URL
-  field_start_page: PoÄetna stranica
-  field_subproject: Potprojekat
-  field_hours: sati
-  field_activity: Aktivnost
-  field_spent_on: Datum
-  field_identifier: Identifikator
-  field_is_filter: Upotrebi kao filter
-  field_issue_to: Srodni problemi
-  field_delay: Kašnjenje
-  field_assignable: Problem može biti dodeljen ovoj ulozi
-  field_redirect_existing_links: Preusmeri postojeće veze
-  field_estimated_hours: Proteklo vreme
-  field_column_names: Kolone
-  field_time_zone: Vremenska zona
-  field_searchable: Može da se pretražuje
-  field_default_value: Podrazumevana vrednost
-  field_comments_sorting: Prikaži komentare
-  field_parent_title: MatiÄna stranica
-  field_editable: Izmenljivo
-  field_watcher: PosmatraÄ
-  field_identity_url: OpenID URL
-  field_content: Sadržaj
-  field_group_by: Grupisanje rezultata po
-  field_sharing: Deljenje
-  field_parent_issue: MatiÄni zadatak
-  
-  setting_app_title: Naslov aplikacije
-  setting_app_subtitle: Podnaslov aplikacije
-  setting_welcome_text: Tekst dobrodošlice
-  setting_default_language: Podrazumevani jezik
-  setting_login_required: Obavezna potvrda identiteta
-  setting_self_registration: Samoregistracija
-  setting_attachment_max_size: Maks. veliÄina priložene datoteke
-  setting_issues_export_limit: OgraniÄenje izvoza „problema“
-  setting_mail_from: E-adresa pošiljaoca
-  setting_bcc_recipients: Primaoci „Bcc“ kopije
-  setting_plain_text_mail: Poruka sa Äistim tekstom (bez HTML-a)
-  setting_host_name: Putanja i naziv glavnog raÄunara
-  setting_text_formatting: Oblikovanje teksta
-  setting_wiki_compression: Kompresija Wiki istorije
-  setting_feeds_limit: OgraniÄenje sadržaja izvora vesti
-  setting_default_projects_public: Podrazumeva se javno prikazivanje novih projekata
-  setting_autofetch_changesets: Izvršavanje automatskog preuzimanja
-  setting_sys_api_enabled: Omogućavanje WS za upravljanje spremištem
-  setting_commit_ref_keywords: Referenciranje kljuÄnih reÄi
-  setting_commit_fix_keywords: Popravljanje kljuÄnih reÄi
-  setting_autologin: Automatska prijava
-  setting_date_format: Format datuma
-  setting_time_format: Format vremena
-  setting_cross_project_issue_relations: Dozvoli povezivanje problema iz unakrsnih projekata
-  setting_issue_list_default_columns: Podrazumevane kolone prikazane na spisku problema
-  setting_repositories_encodings: Kodiranje spremišta
-  setting_commit_logs_encoding: Kodiranje izvršnih poruka
-  setting_emails_footer: Podnožje stranice e-poruke
-  setting_protocol: Protokol
-  setting_per_page_options: Opcije prikaza objekata po stranici
-  setting_user_format: Format prikaza korisnika
-  setting_activity_days_default: Broj dana prikazanih na projektnoj aktivnosti
-  setting_display_subprojects_issues: Prikazuj probleme iz potprojekata na glavnom projektu, ukoliko nije drugaÄije navedeno
-  setting_enabled_scm: Omogućavanje SCM
-  setting_mail_handler_body_delimiters: "Skraćivanje e-poruke nakon jedne od ovih linija"
-  setting_mail_handler_api_enabled: Omogućavanje WS dolazne e-poruke
-  setting_mail_handler_api_key: API kljuÄ
-  setting_sequential_project_identifiers: Generisanje sekvencijalnog imena projekta
-  setting_gravatar_enabled: Koristi Gravatar korisniÄke ikone
-  setting_gravatar_default: Podrazumevana Gravatar slika
-  setting_diff_max_lines_displayed: Maks. broj prikazanih razliÄitih linija
-  setting_file_max_size_displayed: Maks. veliÄina tekst. datoteka prikazanih umetnuto
-  setting_repository_log_display_limit: Maks. broj revizija prikazanih u datoteci za evidenciju
-  setting_openid: Dozvoli OpenID prijavu i registraciju
-  setting_password_min_length: Minimalna dužina lozinke
-  setting_new_project_user_role_id: Kreatoru projekta (koji nije administrator) dodeljuje je uloga
-  setting_default_projects_modules: Podrazumevano omogućeni moduli za nove projekte
-  setting_issue_done_ratio: IzraÄunaj odnos reÅ¡enih problema
-  setting_issue_done_ratio_issue_field: koristeći polje problema
-  setting_issue_done_ratio_issue_status: koristeći status problema
-  setting_start_of_week: Prvi dan u sedmici
-  setting_rest_api_enabled: Omogući REST web usluge
-  setting_cache_formatted_text: Keširanje obrađenog teksta
-  
-  permission_add_project: Kreiranje projekta
-  permission_add_subprojects: Kreiranje potpojekta
-  permission_edit_project: Izmena projekata
-  permission_select_project_modules: Odabiranje modula projekta
-  permission_manage_members: Upravljanje Älanovima
-  permission_manage_project_activities: Upravljanje projektnim aktivnostima
-  permission_manage_versions: Upravljanje verzijama
-  permission_manage_categories: Upravljanje kategorijama problema
-  permission_view_issues: Pregled problema
-  permission_add_issues: Dodavanje problema
-  permission_edit_issues: Izmena problema
-  permission_manage_issue_relations: Upravljanje vezama između problema
-  permission_add_issue_notes: Dodavanje beleški
-  permission_edit_issue_notes: Izmena beleški
-  permission_edit_own_issue_notes: Izmena sopstvenih beleški
-  permission_move_issues: Pomeranje problema
-  permission_delete_issues: Brisanje problema
-  permission_manage_public_queries: Upravljanje javnim upitima
-  permission_save_queries: Snimanje upita
-  permission_view_gantt: Pregledanje Gantovog dijagrama
-  permission_view_calendar: Pregledanje kalendara
-  permission_view_issue_watchers: Pregledanje spiska posmatraÄa
-  permission_add_issue_watchers: Dodavanje posmatraÄa
-  permission_delete_issue_watchers: Brisanje posmatraÄa
-  permission_log_time: Beleženje utrošenog vremena
-  permission_view_time_entries: Pregledanje utrošenog vremena
-  permission_edit_time_entries: Izmena utrošenog vremena
-  permission_edit_own_time_entries: Izmena sopstvenog utrošenog vremena
-  permission_manage_news: Upravljanje vestima
-  permission_comment_news: Komentarisanje vesti
-  permission_manage_documents: Upravljanje dokumentima
-  permission_view_documents: Pregledanje dokumenata
-  permission_manage_files: Upravljanje datotekama
-  permission_view_files: Pregledanje datoteka
-  permission_manage_wiki: Upravljanje wiki stranicama
-  permission_rename_wiki_pages: Promena imena wiki stranicama
-  permission_delete_wiki_pages: Brisanje wiki stranica
-  permission_view_wiki_pages: Pregledanje wiki stranica
-  permission_view_wiki_edits: Pregledanje wiki istorije
-  permission_edit_wiki_pages: Izmena wiki stranica
-  permission_delete_wiki_pages_attachments: Brisanje priloženih datoteka
-  permission_protect_wiki_pages: Zaštita wiki stranica
-  permission_manage_repository: Upravljanje spremištem
-  permission_browse_repository: Pregledanje spremišta
-  permission_view_changesets: Pregledanje skupa promena
-  permission_commit_access: Potvrda pristupa
-  permission_manage_boards: Upravljanje forumima
-  permission_view_messages: Pregledanje poruka
-  permission_add_messages: Slanje poruka
-  permission_edit_messages: Izmena poruka
-  permission_edit_own_messages: Izmena sopstvenih poruka
-  permission_delete_messages: Brisanje poruka
-  permission_delete_own_messages: Brisanje sopstvenih poruka
-  permission_export_wiki_pages: Izvoz wiki stranica
-  permission_manage_subtasks: Upravljanje podzadacima
-  
-  project_module_issue_tracking: Praćenje problema
-  project_module_time_tracking: Praćenje vremena
-  project_module_news: Vesti
-  project_module_documents: Dokumenti
-  project_module_files: Datoteke
-  project_module_wiki: Wiki
-  project_module_repository: Spremište
-  project_module_boards: Forumi
-  
-  label_user: Korisnik
-  label_user_plural: Korisnici
-  label_user_new: Novi korisnik
-  label_user_anonymous: Anoniman
-  label_project: Projekat
-  label_project_new: Novi projekat
-  label_project_plural: Projekti
-  label_x_projects:
-    zero:  nema projekata
-    one:   jedan projekat
-    other: "{{count}} projekata"
-  label_project_all: Svi projekti
-  label_project_latest: Poslednji projekti
-  label_issue: Problem
-  label_issue_new: Novi problem
-  label_issue_plural: Problemi
-  label_issue_view_all: Prikaz svih problema
-  label_issues_by: "Problemi ({{value}})"
-  label_issue_added: Problem je dodat
-  label_issue_updated: Problem je ažuriran
-  label_document: Dokument
-  label_document_new: Novi dokument
-  label_document_plural: Dokumenti
-  label_document_added: Dokument je dodat
-  label_role: Uloga
-  label_role_plural: Uloge
-  label_role_new: Nova uloga
-  label_role_and_permissions: Uloge i dozvole
-  label_member: ÄŒlan
-  label_member_new: Novi Älan
-  label_member_plural: ÄŒlanovi
-  label_tracker: Praćenje
-  label_tracker_plural: Praćenja
-  label_tracker_new: Novo praćenje
-  label_workflow: Tok posla
-  label_issue_status: Status problema
-  label_issue_status_plural: Statusi problema
-  label_issue_status_new: Novi status
-  label_issue_category: Kategorija problema
-  label_issue_category_plural: Kategorije problema
-  label_issue_category_new: Nova kategorija
-  label_custom_field: Prilagođeno polje
-  label_custom_field_plural: Prilagođena polja
-  label_custom_field_new: Novo prilagođeno polje
-  label_enumerations: Nabrojiva lista
-  label_enumeration_new: Nova vrednost
-  label_information: Informacija
-  label_information_plural: Informacije
-  label_please_login: Molimo, prijavite se
-  label_register: Registracija
-  label_login_with_open_id_option: ili prijava sa OpenID
-  label_password_lost: Izgubljena lozinka
-  label_home: PoÄetak
-  label_my_page: Moja stranica
-  label_my_account: Moj nalog
-  label_my_projects: Moji projekti
-  label_my_page_block: My page block
-  label_administration: Administracija
-  label_login: Prijava
-  label_logout: Odjava
-  label_help: Pomoć
-  label_reported_issues: Prijavljeni problemi
-  label_assigned_to_me_issues: Problemi dodeljeni meni
-  label_last_login: Poslednje povezivanje
-  label_registered_on: Registrovan
-  label_activity: Aktivnost
-  label_overall_activity: Celokupna aktivnost
-  label_user_activity: "Aktivnost korisnika {{value}}"
-  label_new: Novo
-  label_logged_as: Prijavljeni ste kao
-  label_environment: Okruženje
-  label_authentication: Potvrda identiteta
-  label_auth_source: Režim potvrde identiteta
-  label_auth_source_new: Novi režim potvrde identiteta
-  label_auth_source_plural: Režimi potvrde identiteta
-  label_subproject_plural: Potprojekti
-  label_subproject_new: Novi potprojekat
-  label_and_its_subprojects: "{{value}} i njegovi potprojekti"
-  label_min_max_length: Min. - Maks. dužina
-  label_list: Spisak
-  label_date: Datum
-  label_integer: Ceo broj
-  label_float: Sa pokretnim zarezom
-  label_boolean: LogiÄki operator
-  label_string: Tekst
-  label_text: Dugi tekst
-  label_attribute: Osobina
-  label_attribute_plural: Osobine
-  label_download: "{{count}} preuzimanje"
-  label_download_plural: "{{count}} preuzimanja"
-  label_no_data: Nema podataka za prikazivanje
-  label_change_status: Promena statusa
-  label_history: Istorija
-  label_attachment: Datoteka
-  label_attachment_new: Nova datoteka
-  label_attachment_delete: Brisanje datoteke
-  label_attachment_plural: Datoteke
-  label_file_added: Datoteka je dodata
-  label_report: Izveštaj
-  label_report_plural: Izveštaji
-  label_news: Vesti
-  label_news_new: Dodavanje vesti
-  label_news_plural: Vesti
-  label_news_latest: Poslednje vesti
-  label_news_view_all: Prikaz svih vesti
-  label_news_added: Vesti su dodate
-  label_settings: Podešavanja
-  label_overview: Pregled
-  label_version: Verzija
-  label_version_new: Nova verzija
-  label_version_plural: Verzije
-  label_close_versions: Zatvori završene verzije
-  label_confirmation: Potvrda
-  label_export_to: 'Takođe dostupno i u varijanti:'
-  label_read: ÄŒitanje...
-  label_public_projects: Javni projekti
-  label_open_issues: otvoren
-  label_open_issues_plural: otvorenih
-  label_closed_issues: zatvoren
-  label_closed_issues_plural: zatvorenih
-  label_x_open_issues_abbr_on_total:
-    zero:  0 otvorenih / {{total}}
-    one:   1 otvoren / {{total}}
-    other: "{{count}} otvorenih / {{total}}"
-  label_x_open_issues_abbr:
-    zero:  0 otvorenih
-    one:   1 otvoren
-    other: "{{count}} otvorenih"
-  label_x_closed_issues_abbr:
-    zero:  0 zatvorenih
-    one:   1 zatvoren
-    other: "{{count}} zatvorenih"
-  label_total: Ukupno
-  label_permissions: Dozvole
-  label_current_status: Trenutni status
-  label_new_statuses_allowed: Novi statusi dozvoljeni
-  label_all: svi
-  label_none: nijedan
-  label_nobody: nikome
-  label_next: Sledeće
-  label_previous: Prethodno
-  label_used_by: Koristio
-  label_details: Detalji
-  label_add_note: Dodaj belešku
-  label_per_page: Po strani
-  label_calendar: Kalendar
-  label_months_from: meseci od
-  label_gantt: Gantov dijagram
-  label_internal: Unutrašnji
-  label_last_changes: "poslednjih {{count}} promena"
-  label_change_view_all: Prikaži sve promene
-  label_personalize_page: Personalizuj ovu stranu
-  label_comment: Komentar
-  label_comment_plural: Komentari
-  label_x_comments:
-    zero: bez komentara
-    one: jedan komentar
-    other: "{{count}} komentara"
-  label_comment_add: Dodaj komentar
-  label_comment_added: Komentar dodat
-  label_comment_delete: Obriši komentare
-  label_query: Prilagođen upit
-  label_query_plural: Prilagođeni upiti
-  label_query_new: Novi upit
-  label_filter_add: Dodavanje filtera
-  label_filter_plural: Filteri
-  label_equals: je
-  label_not_equals: nije
-  label_in_less_than: manje od
-  label_in_more_than: više od
-  label_greater_or_equal: '>='
-  label_less_or_equal: '<='
-  label_in: u
-  label_today: danas
-  label_all_time: sve vreme
-  label_yesterday: juÄe
-  label_this_week: ove sedmice
-  label_last_week: poslednje sedmice
-  label_last_n_days: "poslednjih {{count}} dana"
-  label_this_month: ovog meseca
-  label_last_month: poslednjeg meseca
-  label_this_year: ove godine
-  label_date_range: Vremenski period
-  label_less_than_ago: pre manje od nekoliko dana
-  label_more_than_ago: pre više od nekoliko dana
-  label_ago: pre nekoliko dana
-  label_contains: sadrži
-  label_not_contains: ne sadrži
-  label_day_plural: dana
-  label_repository: Spremište
-  label_repository_plural: Spremišta
-  label_browse: Pregledanje
-  label_modification: "{{count}} promena"
-  label_modification_plural: "{{count}} promena"
-  label_branch: Grana
-  label_tag: Oznaka
-  label_revision: Revizija
-  label_revision_plural: Revizije
-  label_revision_id: "Revizija {{value}}"
-  label_associated_revisions: Pridružene revizije
-  label_added: dodato
-  label_modified: promenjeno
-  label_copied: kopirano
-  label_renamed: preimenovano
-  label_deleted: izbrisano
-  label_latest_revision: Poslednja revizija
-  label_latest_revision_plural: Poslednje revizije
-  label_view_revisions: Pregled revizija
-  label_view_all_revisions: Pregled svih revizija
-  label_max_size: Maksimalna veliÄina
-  label_sort_highest: Premeštanje na vrh
-  label_sort_higher: Premeštanje na gore
-  label_sort_lower: Premeštanje na dole
-  label_sort_lowest: Premeštanje na dno
-  label_roadmap: Plan rada
-  label_roadmap_due_in: "Dospeva {{value}}"
-  label_roadmap_overdue: "{{value}} najkasnije"
-  label_roadmap_no_issues: Nema problema za ovu verziju
-  label_search: Pretraga
-  label_result_plural: Rezultati
-  label_all_words: Sve reÄi
-  label_wiki: Wiki
-  label_wiki_edit: Wiki izmena
-  label_wiki_edit_plural: Wiki izmene
-  label_wiki_page: Wiki stranica
-  label_wiki_page_plural: Wiki stranice
-  label_index_by_title: Indeksiranje po naslovu
-  label_index_by_date: Indeksiranje po datumu
-  label_current_version: Trenutna verzija
-  label_preview: Pregled
-  label_feed_plural: Izvori vesti
-  label_changes_details: Detalji svih promena
-  label_issue_tracking: Praćenje problema
-  label_spent_time: Utrošeno vreme
-  label_overall_spent_time: Celokupno utrošeno vreme
-  label_f_hour: "{{value}} sat"
-  label_f_hour_plural: "{{value}} sati"
-  label_time_tracking: Praćenje vremena
-  label_change_plural: Promene
-  label_statistics: Statistika
-  label_commits_per_month: IzvrÅ¡enja meseÄno
-  label_commits_per_author: Izvršenja po autoru
-  label_view_diff: Pogledaj razlike
-  label_diff_inline: unutra
-  label_diff_side_by_side: uporedo
-  label_options: Opcije
-  label_copy_workflow_from: Kopiranje toka posla od
-  label_permissions_report: Izveštaj o dozvolama
-  label_watched_issues: Posmatrani problemi
-  label_related_issues: Srodni problemi
-  label_applied_status: Primenjeni statusi
-  label_loading: UÄitavanje...
-  label_relation_new: Nova relacija
-  label_relation_delete: Brisanje relacije
-  label_relates_to: srodnih sa
-  label_duplicates: dupliranih
-  label_duplicated_by: dupliranih od
-  label_blocks: odbijenih
-  label_blocked_by: odbijenih od
-  label_precedes: prethodi
-  label_follows: praćenih
-  label_end_to_start: od kraja do poÄetka
-  label_end_to_end: od kraja do kraja
-  label_start_to_start: od poÄetka do poÄetka
-  label_start_to_end: od poÄetka do kraja
-  label_stay_logged_in: Ostanite prijavljeni
-  label_disabled: onemogućeno
-  label_show_completed_versions: Prikazivanje završene verzije
-  label_me: meni
-  label_board: Forum
-  label_board_new: Novi forum
-  label_board_plural: Forumi
-  label_board_locked: ZakljuÄana
-  label_board_sticky: Lepljiva
-  label_topic_plural: Teme
-  label_message_plural: Poruke
-  label_message_last: Poslednja poruka
-  label_message_new: Nova poruka
-  label_message_posted: Poruka je dodata
-  label_reply_plural: Odgovori
-  label_send_information: Pošalji korisniku detalje naloga
-  label_year: Godina
-  label_month: Mesec
-  label_week: Sedmica
-  label_date_from: Å alje
-  label_date_to: Prima
-  label_language_based: Bazirano na jeziku korisnika
-  label_sort_by: "Sortirano po {{value}}"
-  label_send_test_email: Slanje probne e-poruke
-  label_feeds_access_key: RSS pristupni kljuÄ
-  label_missing_feeds_access_key: RSS pristupni kljuÄ nedostaje
-  label_feeds_access_key_created_on: "RSS pristupni kljuÄ je napravljen pre {{value}}"
-  label_module_plural: Moduli
-  label_added_time_by: "Dodao {{author}} pre {{age}}"
-  label_updated_time_by: "Ažurirao {{author}} pre {{age}}"
-  label_updated_time: "Ažurirano pre {{value}}"
-  label_jump_to_a_project: Skok na projekat...
-  label_file_plural: Datoteke
-  label_changeset_plural: Skupovi promena
-  label_default_columns: Podrazumevane kolone
-  label_no_change_option: (Bez promena)
-  label_bulk_edit_selected_issues: Grupna izmena odabranih problema
-  label_theme: Tema
-  label_default: Podrazumevano
-  label_search_titles_only: Pretražuj samo naslove
-  label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
-  label_user_mail_option_selected: "Za bilo koji događaj na samo odabranim projektima..."
-  label_user_mail_no_self_notified: "Ne želim biti obaveštavan za promene koje sam pravim"
-  label_registration_activation_by_email: aktivacija naloga putem e-poruke
-  label_registration_manual_activation: ruÄna aktivacija naloga
-  label_registration_automatic_activation: automatska aktivacija naloga
-  label_display_per_page: "Broj stavki po stranici: {{value}}"
-  label_age: Starost
-  label_change_properties: Promeni svojstva
-  label_general: Opšti
-  label_more: Više
-  label_scm: SCM
-  label_plugins: Dodatne komponente
-  label_ldap_authentication: LDAP potvrda identiteta
-  label_downloads_abbr: D/L
-  label_optional_description: Opciono opis
-  label_add_another_file: Dodaj još jednu datoteku
-  label_preferences: Podešavanja
-  label_chronological_order: po hronološkom redosledu
-  label_reverse_chronological_order: po obrnutom hronološkom redosledu
-  label_planning: Planiranje
-  label_incoming_emails: Dolazne e-poruke
-  label_generate_key: Generisanje kljuÄa
-  label_issue_watchers: PosmatraÄi
-  label_example: Primer
-  label_display: Prikaz
-  label_sort: Sortiranje
-  label_ascending: Rastući niz
-  label_descending: Opadajući niz
-  label_date_from_to: Od {{start}} do {{end}}
-  label_wiki_content_added: Wiki stranica je dodata
-  label_wiki_content_updated: Wiki stranica je ažurirana
-  label_group: Grupa
-  label_group_plural: Grupe
-  label_group_new: Nova grupa
-  label_time_entry_plural: Utrošeno vreme
-  label_version_sharing_none: Nije deljeno
-  label_version_sharing_descendants: Sa potprojektima
-  label_version_sharing_hierarchy: Sa hijerarhijom projekta
-  label_version_sharing_tree: Sa stablom projekta
-  label_version_sharing_system: Sa svim projektima
-  label_update_issue_done_ratios: Ažuriraj odnos rešenih problema
-  label_copy_source: Izvor
-  label_copy_target: Odredište
-  label_copy_same_as_target: Isto kao odredište
-  label_display_used_statuses_only: Prikazuj statuse korišćene samo od strane ovog praćenja
-  label_api_access_key: API pristupni kljuÄ
-  label_missing_api_access_key: Nedostaje API pristupni kljuÄ
-  label_api_access_key_created_on: "API pristupni kljuÄ je kreiran pre {{value}}"
-  label_profile: Profil
-  label_subtask_plural: Podzadatak
-  label_project_copy_notifications: Pošalji e-poruku sa obaveštenjem prilikom kopiranja projekta 
-  
-  button_login: Prijava
-  button_submit: Pošalji
-  button_save: Snimi
-  button_check_all: UkljuÄi sve
-  button_uncheck_all: IskljuÄi sve
-  button_delete: Izbriši
-  button_create: Kreiraj
-  button_create_and_continue: Kreiraj i nastavi
-  button_test: Test
-  button_edit: Izmeni
-  button_add: Dodaj
-  button_change: Promeni
-  button_apply: Primeni
-  button_clear: Obriši
-  button_lock: ZakljuÄaj
-  button_unlock: OtkljuÄaj
-  button_download: Preuzmi
-  button_list: Spisak
-  button_view: Prikaži
-  button_move: Pomeri
-  button_move_and_follow: Pomeri i prati
-  button_back: Nazad
-  button_cancel: Poništi
-  button_activate: Aktiviraj
-  button_sort: Sortiraj
-  button_log_time: Evidentiraj vreme
-  button_rollback: Povratak na ovu verziju
-  button_watch: Prati
-  button_unwatch: Ne prati više
-  button_reply: Odgovori
-  button_archive: Arhiviraj
-  button_unarchive: Vrati iz arhive
-  button_reset: Poništi
-  button_rename: Preimenuj
-  button_change_password: Promeni lozinku
-  button_copy: Kopiraj
-  button_copy_and_follow: Kopiraj i prati
-  button_annotate: Pribeleži
-  button_update: Ažuriraj
-  button_configure: Podesi
-  button_quote: Pod navodnicima
-  button_duplicate: Dupliraj
-  button_show: Prikaži
-  
-  status_active: aktivni
-  status_registered: registrovani
-  status_locked: zakljuÄani
-  
-  version_status_open: otvoren
-  version_status_locked: zakljuÄan
-  version_status_closed: zatvoren
-
-  field_active: Aktivan
-  
-  text_select_mail_notifications: Odaberi akcije za koje će obaveštenje biti poslato putem e-pošte.
-  text_regexp_info: npr. ^[A-Z0-9]+$
-  text_min_max_length_info: 0 znaÄi bez ograniÄenja
-  text_project_destroy_confirmation: Jeste li sigurni da želite da izbrišete ovaj projekat i sve pripadajuće podatke?
-  text_subprojects_destroy_warning: "Potprojekti: {{value}} će takođe biti izbrisan."
-  text_workflow_edit: Odaberite ulogu i praćenje za izmenu toka posla
-  text_are_you_sure: Jeste li sigurni?
-  text_journal_changed: "{{label}} promenjen od {{old}} u {{new}}"
-  text_journal_set_to: "{{label}} postavljen u {{value}}"
-  text_journal_deleted: "{{label}} izbrisano ({{old}})"
-  text_journal_added: "{{label}} {{value}} dodato"
-  text_tip_issue_begin_day: zadatak poÄinje ovog dana
-  text_tip_issue_end_day: zadatak se završava ovog dana
-  text_tip_issue_begin_end_day: zadatak poÄinje i zavrÅ¡ava ovog dana
-  text_project_identifier_info: 'Dozvoljena su samo mala slova (a-š), brojevi i crtice.<br />Jednom snimljen identifikator više se ne može promeniti.'
-  text_caracters_maximum: "Najviše {{count}} znak(ova)."
-  text_caracters_minimum: "Broj znakova mora biti najmanje {{count}}."
-  text_length_between: "Broj znakova mora biti između {{min}} i {{max}}."
-  text_tracker_no_workflow: Ovo praćenje nema definisan tok posla
-  text_unallowed_characters: Nedozvoljeni znakovi
-  text_comma_separated: Dozvoljene su višestruke vrednosti (odvojene zarezom).
-  text_line_separated: Dozvoljene su višestruke vrednosti (jedan red za svaku vrednost).
-  text_issues_ref_in_commit_messages: Referenciranje i popravljanje problema u izvršnim porukama
-  text_issue_added: "{{author}} je prijavio problem {{id}}."
-  text_issue_updated: "{{author}} je ažurirao problem {{id}}."
-  text_wiki_destroy_confirmation: Jeste li sigurni da želite da obrišete wiki i sav sadržaj?
-  text_issue_category_destroy_question: "Nekoliko problema ({{count}}) je dodeljeno ovoj kategoriji. Šta želite da uradite?"
-  text_issue_category_destroy_assignments: Ukloni dodeljene kategorije
-  text_issue_category_reassign_to: Dodeli ponovo probleme ovoj kategoriji
-  text_user_mail_option: "Za neizabrane projekte, dobićete samo obaveÅ¡tenje o stvarima koje pratite ili ste ukljuÄeni (npr. problemi Äiji ste vi autor ili zastupnik)."
-  text_no_configuration_data: "Uloge, praćenja, statusi problema i toka posla joÅ¡ uvek nisu podeÅ¡eni.\nPreporuÄljivo je da uÄitate podrazumevano konfigurisanje. Izmena je moguća nakon prvog uÄitavanja."
-  text_load_default_configuration: UÄitaj podrazumevano konfigurisanje
-  text_status_changed_by_changeset: "Primenjeno u skupu sa promenama {{value}}."
-  text_issues_destroy_confirmation: 'Jeste li sigurni da želite da izbrišete odabrane probleme?'
-  text_select_project_modules: 'Odaberite module koje želite omogućiti za ovaj projekat:'
-  text_default_administrator_account_changed: Podrazumevani administratorski nalog je promenjen
-  text_file_repository_writable: Fascikla priloženih datoteka je upisiva
-  text_plugin_assets_writable: Fascikla elemenata dodatnih komponenti je upisiva
-  text_rmagick_available: RMagick je dostupan (opciono)
-  text_destroy_time_entries_question: "{{hours}} sati je prijavljeno za ovaj problem koji želite izbrisati. Šta želite da uradite?"
-  text_destroy_time_entries: Izbriši prijavljene sate
-  text_assign_time_entries_to_project: Dodeli prijavljene sate projektu
-  text_reassign_time_entries: 'Dodeli ponovo prijavljene sate ovom problemu:'
-  text_user_wrote: "{{value}} je napisao:"
-  text_enumeration_destroy_question: "{{count}} objekat(a) je dodeljeno ovoj vrednosti."
-  text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
-  text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
-  text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisniÄkog imena pronaÄ‘enog u evidenciji spremiÅ¡ta.\nKorisnici sa istim Redmine imenom i imenom spremiÅ¡ta ili e-adresom su automatski mapirani."
-  text_diff_truncated: '... Ova razlika je iseÄena jer je dostignuta maksimalna veliÄina prikaza.'
-  text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
-  text_wiki_page_destroy_question: "Ova stranica ima {{descendants}} podređenih stranica i podstranica. Šta želite da uradite?"
-  text_wiki_page_nullify_children: "Zadrži podređene stranice kao korene stranice"
-  text_wiki_page_destroy_children: "Izbriši podređene stranice i sve njihove podstranice"
-  text_wiki_page_reassign_children: "Dodeli ponovo podreÄ‘ene stranice ovoj matiÄnoj stranici"
-  text_own_membership_delete_confirmation: "Nakon uklanjanja pojedinih ili svih vaših dozvola nećete više moći da uređujete ovaj projekat.\nŽelite li da nastavite?"
-  text_zoom_in: Uvećaj
-  text_zoom_out: Umanji
-  
-  default_role_manager: Menadžer
-  default_role_developer: Programer
-  default_role_reporter: IzveÅ¡taÄ
-  default_tracker_bug: Greška
-  default_tracker_feature: Funkcionalnost
-  default_tracker_support: Podrška
-  default_issue_status_new: Novo
-  default_issue_status_in_progress: U toku
-  default_issue_status_resolved: Rešeno
-  default_issue_status_feedback: Povratna informacija
-  default_issue_status_closed: Zatvoreno
-  default_issue_status_rejected: Odbijeno
-  default_doc_category_user: KorisniÄka dokumentacija
-  default_doc_category_tech: TehniÄka dokumentacija
-  default_priority_low: Nizak
-  default_priority_normal: Normalan
-  default_priority_high: Visok
-  default_priority_urgent: Hitno
-  default_priority_immediate: Neposredno
-  default_activity_design: Dizajn
-  default_activity_development: Razvoj
-  
-  enumeration_issue_priorities: Prioriteti problema
-  enumeration_doc_categories: Kategorije dokumenta
-  enumeration_activities: Aktivnosti (praćenje vremena)
-  enumeration_system_activity: Sistemska aktivnost
-  
-  field_time_entries: Vreme evidencije
-  project_module_gantt: Gantov dijagram
-  project_module_calendar: Kalendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
-  text_are_you_sure_with_children: Delete issue and all child issues?
-  field_text: Text field
-  label_user_mail_option_only_owner: Only for things I am the owner of
-  setting_default_notification_option: Default notification option
-  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
-  label_user_mail_option_only_assigned: Only for things I am assigned to
-  label_user_mail_option_none: No events
-  field_member_of_group: Assignee's group
-  field_assigned_to_role: Assignee's role
+# Serbian translations for Redmine
+# by Vladimir Medarović (vlada@medarovic.com)
+sr-YU:
+  direction: ltr
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d.%m.%Y."
+      short: "%e %b"
+      long: "%B %e, %Y"
+      
+    day_names: [nedelja, ponedeljak, utorak, sreda, Äetvrtak, petak, subota]
+    abbr_day_names: [ned, pon, uto, sre, Äet, pet, sub]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, januar, februar, mart, april, maj, jun, jul, avgust, septembar, oktobar, novembar, decembar]
+    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%d.%m.%Y. u %H:%M"
+      time: "%H:%M"
+      short: "%d. %b u %H:%M"
+      long: "%d. %B %Y u %H:%M"
+    am: "am"
+    pm: "pm"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "pola minuta"
+      less_than_x_seconds:
+        one:   "manje od jedne sekunde"
+        other: "manje od %{count} sek."
+      x_seconds:
+        one:   "jedna sekunda"
+        other: "%{count} sek."
+      less_than_x_minutes:
+        one:   "manje od minuta"
+        other: "manje od %{count} min."
+      x_minutes:
+        one:   "jedan minut"
+        other: "%{count} min."
+      about_x_hours:
+        one:   "približno jedan sat"
+        other: "približno %{count} sati"
+      x_days:
+        one:   "jedan dan"
+        other: "%{count} dana"
+      about_x_months:
+        one:   "približno jedan mesec"
+        other: "približno %{count} meseci"
+      x_months:
+        one:   "jedan mesec"
+        other: "%{count} meseci"
+      about_x_years:
+        one:   "približno godinu dana"
+        other: "približno %{count} god."
+      over_x_years:
+        one:   "preko godinu dana"
+        other: "preko %{count} god."
+      almost_x_years:
+        one:   "skoro godinu dana"
+        other: "skoro %{count} god."
+
+  number:
+    format:
+      separator: ","
+      delimiter: ""
+      precision: 3
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one: "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "i"
+      skip_last_comma: false
+      
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
+      messages:
+        inclusion: "nije ukljuÄen u spisak"
+        exclusion: "je rezervisan"
+        invalid: "je neispravan"
+        confirmation: "potvrda ne odgovara"
+        accepted: "mora biti prihvaćen"
+        empty: "ne može biti prazno"
+        blank: "ne može biti prazno"
+        too_long: "je predugaÄka (maksimum znakova je %{count})"
+        too_short: "je prekratka (minimum znakova je %{count})"
+        wrong_length: "je pogrešne dužine (broj znakova mora biti %{count})"
+        taken: "je već u upotrebi"
+        not_a_number: "nije broj"
+        not_a_date: "nije ispravan datum"
+        greater_than: "mora biti veći od %{count}"
+        greater_than_or_equal_to: "mora biti veći ili jednak %{count}"
+        equal_to: "mora biti jednak %{count}"
+        less_than: "mora biti manji od %{count}"
+        less_than_or_equal_to: "mora biti manji ili jednak %{count}"
+        odd: "mora biti paran"
+        even: "mora biti neparan"
+        greater_than_start_date: "mora biti veći od poÄetnog datuma"
+        not_same_project: "ne pripada istom projektu"
+        circular_dependency: "Ova veza će stvoriti kružnu referencu"
+        cant_link_an_issue_with_a_descendant: "Problem ne može biti povezan sa jednim od svojih podzadataka"
+
+  actionview_instancetag_blank_option: Molim odaberite
+  
+  general_text_No: 'Ne'
+  general_text_Yes: 'Da'
+  general_text_no: 'ne'
+  general_text_yes: 'da'
+  general_lang_name: 'Srpski'
+  general_csv_separator: ','
+  general_csv_decimal_separator: '.'
+  general_csv_encoding: UTF-8
+  general_pdf_encoding: UTF-8
+  general_first_day_of_week: '1'
+  
+  notice_account_updated: Nalog je uspešno ažuriran.
+  notice_account_invalid_creditentials: Neispravno korisniÄko ime ili lozinka.
+  notice_account_password_updated: Lozinka je uspešno ažurirana.
+  notice_account_wrong_password: Pogrešna lozinka
+  notice_account_register_done: KorisniÄki nalog je uspeÅ¡no kreiran. Kliknite na link koji ste dobili u e-poruci za aktivaciju.
+  notice_account_unknown_email: Nepoznat korisnik.
+  notice_can_t_change_password: Ovaj korisniÄki nalog za potvrdu identiteta koristi spoljni izvor. Nemoguće je promeniti lozinku.
+  notice_account_lost_email_sent: Poslata vam je e-poruka sa uputstvom za izbor nove lozinke
+  notice_account_activated: VaÅ¡ korisniÄki nalog je aktiviran. Sada se možete prijaviti.
+  notice_successful_create: Uspešno kreiranje.
+  notice_successful_update: Uspešno ažuriranje.
+  notice_successful_delete: Uspešno brisanje.
+  notice_successful_connection: Uspešno povezivanje.
+  notice_file_not_found: Strana kojoj želite pristupiti ne postoji ili je uklonjena.
+  notice_locking_conflict: Podatak je ažuriran od strane drugog korisnika.
+  notice_not_authorized: Niste ovlašćeni za pristup ovoj strani.
+  notice_email_sent: "E-poruka je poslata na %{value}"
+  notice_email_error: "Dogodila se greška prilikom slanja e-poruke (%{value})"
+  notice_feeds_access_key_reseted: VaÅ¡ RSS pristupni kljuÄ je poniÅ¡ten.
+  notice_api_access_key_reseted: VaÅ¡ API pristupni kljuÄ je poniÅ¡ten.
+  notice_failed_to_save_issues: "Neuspešno snimanje %{count} problema od %{total} odabranih: %{ids}."
+  notice_failed_to_save_members: "NeuspeÅ¡no snimanje Älana(ova): %{errors}."
+  notice_no_issue_selected: "Ni jedan problem nije odabran! Molimo, odaberite problem koji želite da menjate."
+  notice_account_pending: "VaÅ¡ nalog je kreiran i Äeka na odobrenje administratora."
+  notice_default_data_loaded: Podrazumevano konfigurisanje je uspeÅ¡no uÄitano.
+  notice_unable_delete_version: Verziju je nemoguće izbrisati.
+  notice_unable_delete_time_entry: Stavku evidencije vremena je nemoguće izbrisati.
+  notice_issue_done_ratios_updated: Odnos rešenih problema je ažuriran.
+  
+  error_can_t_load_default_data: "Podrazumevano konfigurisanje je nemoguće uÄitati: %{value}"
+  error_scm_not_found: "Stavka ili ispravka nisu pronađene u spremištu."
+  error_scm_command_failed: "Greška se javila prilikom pokušaja pristupa spremištu: %{value}"
+  error_scm_annotate: "Stavka ne postoji ili ne može biti oznaÄena."
+  error_issue_not_found_in_project: 'Problem nije pronađen ili ne pripada ovom projektu.'
+  error_no_tracker_in_project: 'Ni jedno praćenje nije povezano sa ovim projektom. Molimo proverite podešavanja projekta.'
+  error_no_default_issue_status: 'Podrazumevani status problema nije definisan. Molimo proverite vaše konfigurisanje (idite na "Administracija -> Statusi problema").'
+  error_can_not_delete_custom_field: Nemoguće je izbrisati prilagođeno polje
+  error_can_not_delete_tracker: "Ovo praćenje sadrži probleme i ne može biti obrisano."
+  error_can_not_remove_role: "Ova uloga je u upotrebi i ne može biti obrisana."
+  error_can_not_reopen_issue_on_closed_version: 'Problem dodeljen zatvorenoj verziji ne može biti ponovo otvoren'
+  error_can_not_archive_project: Ovaj projekat se ne može arhivirati
+  error_issue_done_ratios_not_updated: "Odnos rešenih problema nije ažuriran."
+  error_workflow_copy_source: 'Molimo odaberite izvorno praćenje ili ulogu'
+  error_workflow_copy_target: 'Molimo odaberite odredišno praćenje i ulogu'
+  error_unable_delete_issue_status: 'Status problema je nemoguće obrisati'
+  error_unable_to_connect: "Povezivanje sa (%{value}) je nemoguće"  
+  warning_attachments_not_saved: "%{count} datoteka ne može biti snimljena."
+  
+  mail_subject_lost_password: "Vaša %{value} lozinka"
+  mail_body_lost_password: 'Za promenu vaše lozinke, kliknite na sledeći link:'
+  mail_subject_register: "Aktivacija vašeg %{value} naloga"
+  mail_body_register: 'Za aktivaciju vašeg naloga, kliknite na sledeći link:'
+  mail_body_account_information_external: "Vaš nalog %{value} možete koristiti za prijavu."
+  mail_body_account_information: Informacije o vašem nalogu
+  mail_subject_account_activation_request: "Zahtev za aktivaciju naloga %{value}"
+  mail_body_account_activation_request: "Novi korisnik (%{value}) je registrovan. Nalog Äeka na vaÅ¡e odobrenje:"
+  mail_subject_reminder: "%{count} problema dospeva narednih %{days} dana"
+  mail_body_reminder: "%{count} problema dodeljenih vama dospeva u narednih %{days} dana:"
+  mail_subject_wiki_content_added: "Wiki stranica '%{id}' je dodata"
+  mail_body_wiki_content_added: "%{author} je dodao wiki stranicu '%{id}'."
+  mail_subject_wiki_content_updated: "Wiki stranica '%{id}' je ažurirana"
+  mail_body_wiki_content_updated: "%{author} je ažurirao wiki stranicu '%{id}'."
+  
+  gui_validation_error: jedna greška
+  gui_validation_error_plural: "%{count} grešaka"
+  
+  field_name: Naziv
+  field_description: Opis
+  field_summary: Rezime
+  field_is_required: Obavezno
+  field_firstname: Ime
+  field_lastname: Prezime
+  field_mail: E-adresa
+  field_filename: Datoteka
+  field_filesize: VeliÄina
+  field_downloads: Preuzimanja
+  field_author: Autor
+  field_created_on: Kreirano
+  field_updated_on: Ažurirano
+  field_field_format: Format
+  field_is_for_all: Za sve projekte
+  field_possible_values: Moguće vrednosti
+  field_regexp: Regularan izraz
+  field_min_length: Minimalna dužina
+  field_max_length: Maksimalna dužina
+  field_value: Vrednost
+  field_category: Kategorija
+  field_title: Naslov
+  field_project: Projekat
+  field_issue: Problem
+  field_status: Status
+  field_notes: Beleške
+  field_is_closed: Zatvoren problem
+  field_is_default: Podrazumevana vrednost
+  field_tracker: Praćenje
+  field_subject: Predmet
+  field_due_date: Krajnji rok
+  field_assigned_to: Dodeljeno
+  field_priority: Prioritet
+  field_fixed_version: Odredišna verzija
+  field_user: Korisnik
+  field_principal: Glavni
+  field_role: Uloga
+  field_homepage: PoÄetna stranica
+  field_is_public: Javno objavljivanje
+  field_parent: Potprojekat od
+  field_is_in_roadmap: Problemi prikazani u planu rada
+  field_login: KorisniÄko ime
+  field_mail_notification: Obaveštenja putem e-pošte
+  field_admin: Administrator
+  field_last_login_on: Poslednje povezivanje
+  field_language: Jezik
+  field_effective_date: Datum
+  field_password: Lozinka
+  field_new_password: Nova lozinka
+  field_password_confirmation: Potvrda lozinke
+  field_version: Verzija
+  field_type: Tip
+  field_host: Glavni raÄunar
+  field_port: Port
+  field_account: KorisniÄki nalog
+  field_base_dn: Bazni DN
+  field_attr_login: Atribut prijavljivanja
+  field_attr_firstname: Atribut imena
+  field_attr_lastname: Atribut prezimena
+  field_attr_mail: Atribut e-adrese
+  field_onthefly: Kreiranje korisnika u toku rada
+  field_start_date: PoÄetak
+  field_done_ratio: % urađeno
+  field_auth_source: Režim potvrde identiteta
+  field_hide_mail: Sakrij moju e-adresu
+  field_comments: Komentar
+  field_url: URL
+  field_start_page: PoÄetna stranica
+  field_subproject: Potprojekat
+  field_hours: sati
+  field_activity: Aktivnost
+  field_spent_on: Datum
+  field_identifier: Identifikator
+  field_is_filter: Upotrebi kao filter
+  field_issue_to: Srodni problemi
+  field_delay: Kašnjenje
+  field_assignable: Problem može biti dodeljen ovoj ulozi
+  field_redirect_existing_links: Preusmeri postojeće veze
+  field_estimated_hours: Proteklo vreme
+  field_column_names: Kolone
+  field_time_zone: Vremenska zona
+  field_searchable: Može da se pretražuje
+  field_default_value: Podrazumevana vrednost
+  field_comments_sorting: Prikaži komentare
+  field_parent_title: MatiÄna stranica
+  field_editable: Izmenljivo
+  field_watcher: PosmatraÄ
+  field_identity_url: OpenID URL
+  field_content: Sadržaj
+  field_group_by: Grupisanje rezultata po
+  field_sharing: Deljenje
+  field_parent_issue: MatiÄni zadatak
+  
+  setting_app_title: Naslov aplikacije
+  setting_app_subtitle: Podnaslov aplikacije
+  setting_welcome_text: Tekst dobrodošlice
+  setting_default_language: Podrazumevani jezik
+  setting_login_required: Obavezna potvrda identiteta
+  setting_self_registration: Samoregistracija
+  setting_attachment_max_size: Maks. veliÄina priložene datoteke
+  setting_issues_export_limit: OgraniÄenje izvoza „problema“
+  setting_mail_from: E-adresa pošiljaoca
+  setting_bcc_recipients: Primaoci „Bcc“ kopije
+  setting_plain_text_mail: Poruka sa Äistim tekstom (bez HTML-a)
+  setting_host_name: Putanja i naziv glavnog raÄunara
+  setting_text_formatting: Oblikovanje teksta
+  setting_wiki_compression: Kompresija Wiki istorije
+  setting_feeds_limit: OgraniÄenje sadržaja izvora vesti
+  setting_default_projects_public: Podrazumeva se javno prikazivanje novih projekata
+  setting_autofetch_changesets: Izvršavanje automatskog preuzimanja
+  setting_sys_api_enabled: Omogućavanje WS za upravljanje spremištem
+  setting_commit_ref_keywords: Referenciranje kljuÄnih reÄi
+  setting_commit_fix_keywords: Popravljanje kljuÄnih reÄi
+  setting_autologin: Automatska prijava
+  setting_date_format: Format datuma
+  setting_time_format: Format vremena
+  setting_cross_project_issue_relations: Dozvoli povezivanje problema iz unakrsnih projekata
+  setting_issue_list_default_columns: Podrazumevane kolone prikazane na spisku problema
+  setting_repositories_encodings: Kodiranje spremišta
+  setting_commit_logs_encoding: Kodiranje izvršnih poruka
+  setting_emails_footer: Podnožje stranice e-poruke
+  setting_protocol: Protokol
+  setting_per_page_options: Opcije prikaza objekata po stranici
+  setting_user_format: Format prikaza korisnika
+  setting_activity_days_default: Broj dana prikazanih na projektnoj aktivnosti
+  setting_display_subprojects_issues: Prikazuj probleme iz potprojekata na glavnom projektu, ukoliko nije drugaÄije navedeno
+  setting_enabled_scm: Omogućavanje SCM
+  setting_mail_handler_body_delimiters: "Skraćivanje e-poruke nakon jedne od ovih linija"
+  setting_mail_handler_api_enabled: Omogućavanje WS dolazne e-poruke
+  setting_mail_handler_api_key: API kljuÄ
+  setting_sequential_project_identifiers: Generisanje sekvencijalnog imena projekta
+  setting_gravatar_enabled: Koristi Gravatar korisniÄke ikone
+  setting_gravatar_default: Podrazumevana Gravatar slika
+  setting_diff_max_lines_displayed: Maks. broj prikazanih razliÄitih linija
+  setting_file_max_size_displayed: Maks. veliÄina tekst. datoteka prikazanih umetnuto
+  setting_repository_log_display_limit: Maks. broj revizija prikazanih u datoteci za evidenciju
+  setting_openid: Dozvoli OpenID prijavu i registraciju
+  setting_password_min_length: Minimalna dužina lozinke
+  setting_new_project_user_role_id: Kreatoru projekta (koji nije administrator) dodeljuje je uloga
+  setting_default_projects_modules: Podrazumevano omogućeni moduli za nove projekte
+  setting_issue_done_ratio: IzraÄunaj odnos reÅ¡enih problema
+  setting_issue_done_ratio_issue_field: koristeći polje problema
+  setting_issue_done_ratio_issue_status: koristeći status problema
+  setting_start_of_week: Prvi dan u sedmici
+  setting_rest_api_enabled: Omogući REST web usluge
+  setting_cache_formatted_text: Keširanje obrađenog teksta
+  
+  permission_add_project: Kreiranje projekta
+  permission_add_subprojects: Kreiranje potpojekta
+  permission_edit_project: Izmena projekata
+  permission_select_project_modules: Odabiranje modula projekta
+  permission_manage_members: Upravljanje Älanovima
+  permission_manage_project_activities: Upravljanje projektnim aktivnostima
+  permission_manage_versions: Upravljanje verzijama
+  permission_manage_categories: Upravljanje kategorijama problema
+  permission_view_issues: Pregled problema
+  permission_add_issues: Dodavanje problema
+  permission_edit_issues: Izmena problema
+  permission_manage_issue_relations: Upravljanje vezama između problema
+  permission_add_issue_notes: Dodavanje beleški
+  permission_edit_issue_notes: Izmena beleški
+  permission_edit_own_issue_notes: Izmena sopstvenih beleški
+  permission_move_issues: Pomeranje problema
+  permission_delete_issues: Brisanje problema
+  permission_manage_public_queries: Upravljanje javnim upitima
+  permission_save_queries: Snimanje upita
+  permission_view_gantt: Pregledanje Gantovog dijagrama
+  permission_view_calendar: Pregledanje kalendara
+  permission_view_issue_watchers: Pregledanje spiska posmatraÄa
+  permission_add_issue_watchers: Dodavanje posmatraÄa
+  permission_delete_issue_watchers: Brisanje posmatraÄa
+  permission_log_time: Beleženje utrošenog vremena
+  permission_view_time_entries: Pregledanje utrošenog vremena
+  permission_edit_time_entries: Izmena utrošenog vremena
+  permission_edit_own_time_entries: Izmena sopstvenog utrošenog vremena
+  permission_manage_news: Upravljanje vestima
+  permission_comment_news: Komentarisanje vesti
+  permission_manage_documents: Upravljanje dokumentima
+  permission_view_documents: Pregledanje dokumenata
+  permission_manage_files: Upravljanje datotekama
+  permission_view_files: Pregledanje datoteka
+  permission_manage_wiki: Upravljanje wiki stranicama
+  permission_rename_wiki_pages: Promena imena wiki stranicama
+  permission_delete_wiki_pages: Brisanje wiki stranica
+  permission_view_wiki_pages: Pregledanje wiki stranica
+  permission_view_wiki_edits: Pregledanje wiki istorije
+  permission_edit_wiki_pages: Izmena wiki stranica
+  permission_delete_wiki_pages_attachments: Brisanje priloženih datoteka
+  permission_protect_wiki_pages: Zaštita wiki stranica
+  permission_manage_repository: Upravljanje spremištem
+  permission_browse_repository: Pregledanje spremišta
+  permission_view_changesets: Pregledanje skupa promena
+  permission_commit_access: Potvrda pristupa
+  permission_manage_boards: Upravljanje forumima
+  permission_view_messages: Pregledanje poruka
+  permission_add_messages: Slanje poruka
+  permission_edit_messages: Izmena poruka
+  permission_edit_own_messages: Izmena sopstvenih poruka
+  permission_delete_messages: Brisanje poruka
+  permission_delete_own_messages: Brisanje sopstvenih poruka
+  permission_export_wiki_pages: Izvoz wiki stranica
+  permission_manage_subtasks: Upravljanje podzadacima
+  
+  project_module_issue_tracking: Praćenje problema
+  project_module_time_tracking: Praćenje vremena
+  project_module_news: Vesti
+  project_module_documents: Dokumenti
+  project_module_files: Datoteke
+  project_module_wiki: Wiki
+  project_module_repository: Spremište
+  project_module_boards: Forumi
+  
+  label_user: Korisnik
+  label_user_plural: Korisnici
+  label_user_new: Novi korisnik
+  label_user_anonymous: Anoniman
+  label_project: Projekat
+  label_project_new: Novi projekat
+  label_project_plural: Projekti
+  label_x_projects:
+    zero:  nema projekata
+    one:   jedan projekat
+    other: "%{count} projekata"
+  label_project_all: Svi projekti
+  label_project_latest: Poslednji projekti
+  label_issue: Problem
+  label_issue_new: Novi problem
+  label_issue_plural: Problemi
+  label_issue_view_all: Prikaz svih problema
+  label_issues_by: "Problemi (%{value})"
+  label_issue_added: Problem je dodat
+  label_issue_updated: Problem je ažuriran
+  label_document: Dokument
+  label_document_new: Novi dokument
+  label_document_plural: Dokumenti
+  label_document_added: Dokument je dodat
+  label_role: Uloga
+  label_role_plural: Uloge
+  label_role_new: Nova uloga
+  label_role_and_permissions: Uloge i dozvole
+  label_member: ÄŒlan
+  label_member_new: Novi Älan
+  label_member_plural: ÄŒlanovi
+  label_tracker: Praćenje
+  label_tracker_plural: Praćenja
+  label_tracker_new: Novo praćenje
+  label_workflow: Tok posla
+  label_issue_status: Status problema
+  label_issue_status_plural: Statusi problema
+  label_issue_status_new: Novi status
+  label_issue_category: Kategorija problema
+  label_issue_category_plural: Kategorije problema
+  label_issue_category_new: Nova kategorija
+  label_custom_field: Prilagođeno polje
+  label_custom_field_plural: Prilagođena polja
+  label_custom_field_new: Novo prilagođeno polje
+  label_enumerations: Nabrojiva lista
+  label_enumeration_new: Nova vrednost
+  label_information: Informacija
+  label_information_plural: Informacije
+  label_please_login: Molimo, prijavite se
+  label_register: Registracija
+  label_login_with_open_id_option: ili prijava sa OpenID
+  label_password_lost: Izgubljena lozinka
+  label_home: PoÄetak
+  label_my_page: Moja stranica
+  label_my_account: Moj nalog
+  label_my_projects: Moji projekti
+  label_my_page_block: My page block
+  label_administration: Administracija
+  label_login: Prijava
+  label_logout: Odjava
+  label_help: Pomoć
+  label_reported_issues: Prijavljeni problemi
+  label_assigned_to_me_issues: Problemi dodeljeni meni
+  label_last_login: Poslednje povezivanje
+  label_registered_on: Registrovan
+  label_activity: Aktivnost
+  label_overall_activity: Celokupna aktivnost
+  label_user_activity: "Aktivnost korisnika %{value}"
+  label_new: Novo
+  label_logged_as: Prijavljeni ste kao
+  label_environment: Okruženje
+  label_authentication: Potvrda identiteta
+  label_auth_source: Režim potvrde identiteta
+  label_auth_source_new: Novi režim potvrde identiteta
+  label_auth_source_plural: Režimi potvrde identiteta
+  label_subproject_plural: Potprojekti
+  label_subproject_new: Novi potprojekat
+  label_and_its_subprojects: "%{value} i njegovi potprojekti"
+  label_min_max_length: Min. - Maks. dužina
+  label_list: Spisak
+  label_date: Datum
+  label_integer: Ceo broj
+  label_float: Sa pokretnim zarezom
+  label_boolean: LogiÄki operator
+  label_string: Tekst
+  label_text: Dugi tekst
+  label_attribute: Osobina
+  label_attribute_plural: Osobine
+  label_download: "%{count} preuzimanje"
+  label_download_plural: "%{count} preuzimanja"
+  label_no_data: Nema podataka za prikazivanje
+  label_change_status: Promena statusa
+  label_history: Istorija
+  label_attachment: Datoteka
+  label_attachment_new: Nova datoteka
+  label_attachment_delete: Brisanje datoteke
+  label_attachment_plural: Datoteke
+  label_file_added: Datoteka je dodata
+  label_report: Izveštaj
+  label_report_plural: Izveštaji
+  label_news: Vesti
+  label_news_new: Dodavanje vesti
+  label_news_plural: Vesti
+  label_news_latest: Poslednje vesti
+  label_news_view_all: Prikaz svih vesti
+  label_news_added: Vesti su dodate
+  label_settings: Podešavanja
+  label_overview: Pregled
+  label_version: Verzija
+  label_version_new: Nova verzija
+  label_version_plural: Verzije
+  label_close_versions: Zatvori završene verzije
+  label_confirmation: Potvrda
+  label_export_to: 'Takođe dostupno i u varijanti:'
+  label_read: ÄŒitanje...
+  label_public_projects: Javni projekti
+  label_open_issues: otvoren
+  label_open_issues_plural: otvorenih
+  label_closed_issues: zatvoren
+  label_closed_issues_plural: zatvorenih
+  label_x_open_issues_abbr_on_total:
+    zero:  0 otvorenih / %{total}
+    one:   1 otvoren / %{total}
+    other: "%{count} otvorenih / %{total}"
+  label_x_open_issues_abbr:
+    zero:  0 otvorenih
+    one:   1 otvoren
+    other: "%{count} otvorenih"
+  label_x_closed_issues_abbr:
+    zero:  0 zatvorenih
+    one:   1 zatvoren
+    other: "%{count} zatvorenih"
+  label_total: Ukupno
+  label_permissions: Dozvole
+  label_current_status: Trenutni status
+  label_new_statuses_allowed: Novi statusi dozvoljeni
+  label_all: svi
+  label_none: nijedan
+  label_nobody: nikome
+  label_next: Sledeće
+  label_previous: Prethodno
+  label_used_by: Koristio
+  label_details: Detalji
+  label_add_note: Dodaj belešku
+  label_per_page: Po strani
+  label_calendar: Kalendar
+  label_months_from: meseci od
+  label_gantt: Gantov dijagram
+  label_internal: Unutrašnji
+  label_last_changes: "poslednjih %{count} promena"
+  label_change_view_all: Prikaži sve promene
+  label_personalize_page: Personalizuj ovu stranu
+  label_comment: Komentar
+  label_comment_plural: Komentari
+  label_x_comments:
+    zero: bez komentara
+    one: jedan komentar
+    other: "%{count} komentara"
+  label_comment_add: Dodaj komentar
+  label_comment_added: Komentar dodat
+  label_comment_delete: Obriši komentare
+  label_query: Prilagođen upit
+  label_query_plural: Prilagođeni upiti
+  label_query_new: Novi upit
+  label_filter_add: Dodavanje filtera
+  label_filter_plural: Filteri
+  label_equals: je
+  label_not_equals: nije
+  label_in_less_than: manje od
+  label_in_more_than: više od
+  label_greater_or_equal: '>='
+  label_less_or_equal: '<='
+  label_in: u
+  label_today: danas
+  label_all_time: sve vreme
+  label_yesterday: juÄe
+  label_this_week: ove sedmice
+  label_last_week: poslednje sedmice
+  label_last_n_days: "poslednjih %{count} dana"
+  label_this_month: ovog meseca
+  label_last_month: poslednjeg meseca
+  label_this_year: ove godine
+  label_date_range: Vremenski period
+  label_less_than_ago: pre manje od nekoliko dana
+  label_more_than_ago: pre više od nekoliko dana
+  label_ago: pre nekoliko dana
+  label_contains: sadrži
+  label_not_contains: ne sadrži
+  label_day_plural: dana
+  label_repository: Spremište
+  label_repository_plural: Spremišta
+  label_browse: Pregledanje
+  label_modification: "%{count} promena"
+  label_modification_plural: "%{count} promena"
+  label_branch: Grana
+  label_tag: Oznaka
+  label_revision: Revizija
+  label_revision_plural: Revizije
+  label_revision_id: "Revizija %{value}"
+  label_associated_revisions: Pridružene revizije
+  label_added: dodato
+  label_modified: promenjeno
+  label_copied: kopirano
+  label_renamed: preimenovano
+  label_deleted: izbrisano
+  label_latest_revision: Poslednja revizija
+  label_latest_revision_plural: Poslednje revizije
+  label_view_revisions: Pregled revizija
+  label_view_all_revisions: Pregled svih revizija
+  label_max_size: Maksimalna veliÄina
+  label_sort_highest: Premeštanje na vrh
+  label_sort_higher: Premeštanje na gore
+  label_sort_lower: Premeštanje na dole
+  label_sort_lowest: Premeštanje na dno
+  label_roadmap: Plan rada
+  label_roadmap_due_in: "Dospeva %{value}"
+  label_roadmap_overdue: "%{value} najkasnije"
+  label_roadmap_no_issues: Nema problema za ovu verziju
+  label_search: Pretraga
+  label_result_plural: Rezultati
+  label_all_words: Sve reÄi
+  label_wiki: Wiki
+  label_wiki_edit: Wiki izmena
+  label_wiki_edit_plural: Wiki izmene
+  label_wiki_page: Wiki stranica
+  label_wiki_page_plural: Wiki stranice
+  label_index_by_title: Indeksiranje po naslovu
+  label_index_by_date: Indeksiranje po datumu
+  label_current_version: Trenutna verzija
+  label_preview: Pregled
+  label_feed_plural: Izvori vesti
+  label_changes_details: Detalji svih promena
+  label_issue_tracking: Praćenje problema
+  label_spent_time: Utrošeno vreme
+  label_overall_spent_time: Celokupno utrošeno vreme
+  label_f_hour: "%{value} sat"
+  label_f_hour_plural: "%{value} sati"
+  label_time_tracking: Praćenje vremena
+  label_change_plural: Promene
+  label_statistics: Statistika
+  label_commits_per_month: IzvrÅ¡enja meseÄno
+  label_commits_per_author: Izvršenja po autoru
+  label_view_diff: Pogledaj razlike
+  label_diff_inline: unutra
+  label_diff_side_by_side: uporedo
+  label_options: Opcije
+  label_copy_workflow_from: Kopiranje toka posla od
+  label_permissions_report: Izveštaj o dozvolama
+  label_watched_issues: Posmatrani problemi
+  label_related_issues: Srodni problemi
+  label_applied_status: Primenjeni statusi
+  label_loading: UÄitavanje...
+  label_relation_new: Nova relacija
+  label_relation_delete: Brisanje relacije
+  label_relates_to: srodnih sa
+  label_duplicates: dupliranih
+  label_duplicated_by: dupliranih od
+  label_blocks: odbijenih
+  label_blocked_by: odbijenih od
+  label_precedes: prethodi
+  label_follows: praćenih
+  label_end_to_start: od kraja do poÄetka
+  label_end_to_end: od kraja do kraja
+  label_start_to_start: od poÄetka do poÄetka
+  label_start_to_end: od poÄetka do kraja
+  label_stay_logged_in: Ostanite prijavljeni
+  label_disabled: onemogućeno
+  label_show_completed_versions: Prikazivanje završene verzije
+  label_me: meni
+  label_board: Forum
+  label_board_new: Novi forum
+  label_board_plural: Forumi
+  label_board_locked: ZakljuÄana
+  label_board_sticky: Lepljiva
+  label_topic_plural: Teme
+  label_message_plural: Poruke
+  label_message_last: Poslednja poruka
+  label_message_new: Nova poruka
+  label_message_posted: Poruka je dodata
+  label_reply_plural: Odgovori
+  label_send_information: Pošalji korisniku detalje naloga
+  label_year: Godina
+  label_month: Mesec
+  label_week: Sedmica
+  label_date_from: Å alje
+  label_date_to: Prima
+  label_language_based: Bazirano na jeziku korisnika
+  label_sort_by: "Sortirano po %{value}"
+  label_send_test_email: Slanje probne e-poruke
+  label_feeds_access_key: RSS pristupni kljuÄ
+  label_missing_feeds_access_key: RSS pristupni kljuÄ nedostaje
+  label_feeds_access_key_created_on: "RSS pristupni kljuÄ je napravljen pre %{value}"
+  label_module_plural: Moduli
+  label_added_time_by: "Dodao %{author} pre %{age}"
+  label_updated_time_by: "Ažurirao %{author} pre %{age}"
+  label_updated_time: "Ažurirano pre %{value}"
+  label_jump_to_a_project: Skok na projekat...
+  label_file_plural: Datoteke
+  label_changeset_plural: Skupovi promena
+  label_default_columns: Podrazumevane kolone
+  label_no_change_option: (Bez promena)
+  label_bulk_edit_selected_issues: Grupna izmena odabranih problema
+  label_theme: Tema
+  label_default: Podrazumevano
+  label_search_titles_only: Pretražuj samo naslove
+  label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
+  label_user_mail_option_selected: "Za bilo koji događaj na samo odabranim projektima..."
+  label_user_mail_no_self_notified: "Ne želim biti obaveštavan za promene koje sam pravim"
+  label_registration_activation_by_email: aktivacija naloga putem e-poruke
+  label_registration_manual_activation: ruÄna aktivacija naloga
+  label_registration_automatic_activation: automatska aktivacija naloga
+  label_display_per_page: "Broj stavki po stranici: %{value}"
+  label_age: Starost
+  label_change_properties: Promeni svojstva
+  label_general: Opšti
+  label_more: Više
+  label_scm: SCM
+  label_plugins: Dodatne komponente
+  label_ldap_authentication: LDAP potvrda identiteta
+  label_downloads_abbr: D/L
+  label_optional_description: Opciono opis
+  label_add_another_file: Dodaj još jednu datoteku
+  label_preferences: Podešavanja
+  label_chronological_order: po hronološkom redosledu
+  label_reverse_chronological_order: po obrnutom hronološkom redosledu
+  label_planning: Planiranje
+  label_incoming_emails: Dolazne e-poruke
+  label_generate_key: Generisanje kljuÄa
+  label_issue_watchers: PosmatraÄi
+  label_example: Primer
+  label_display: Prikaz
+  label_sort: Sortiranje
+  label_ascending: Rastući niz
+  label_descending: Opadajući niz
+  label_date_from_to: Od %{start} do %{end}
+  label_wiki_content_added: Wiki stranica je dodata
+  label_wiki_content_updated: Wiki stranica je ažurirana
+  label_group: Grupa
+  label_group_plural: Grupe
+  label_group_new: Nova grupa
+  label_time_entry_plural: Utrošeno vreme
+  label_version_sharing_none: Nije deljeno
+  label_version_sharing_descendants: Sa potprojektima
+  label_version_sharing_hierarchy: Sa hijerarhijom projekta
+  label_version_sharing_tree: Sa stablom projekta
+  label_version_sharing_system: Sa svim projektima
+  label_update_issue_done_ratios: Ažuriraj odnos rešenih problema
+  label_copy_source: Izvor
+  label_copy_target: Odredište
+  label_copy_same_as_target: Isto kao odredište
+  label_display_used_statuses_only: Prikazuj statuse korišćene samo od strane ovog praćenja
+  label_api_access_key: API pristupni kljuÄ
+  label_missing_api_access_key: Nedostaje API pristupni kljuÄ
+  label_api_access_key_created_on: "API pristupni kljuÄ je kreiran pre %{value}"
+  label_profile: Profil
+  label_subtask_plural: Podzadatak
+  label_project_copy_notifications: Pošalji e-poruku sa obaveštenjem prilikom kopiranja projekta 
+  
+  button_login: Prijava
+  button_submit: Pošalji
+  button_save: Snimi
+  button_check_all: UkljuÄi sve
+  button_uncheck_all: IskljuÄi sve
+  button_delete: Izbriši
+  button_create: Kreiraj
+  button_create_and_continue: Kreiraj i nastavi
+  button_test: Test
+  button_edit: Izmeni
+  button_add: Dodaj
+  button_change: Promeni
+  button_apply: Primeni
+  button_clear: Obriši
+  button_lock: ZakljuÄaj
+  button_unlock: OtkljuÄaj
+  button_download: Preuzmi
+  button_list: Spisak
+  button_view: Prikaži
+  button_move: Pomeri
+  button_move_and_follow: Pomeri i prati
+  button_back: Nazad
+  button_cancel: Poništi
+  button_activate: Aktiviraj
+  button_sort: Sortiraj
+  button_log_time: Evidentiraj vreme
+  button_rollback: Povratak na ovu verziju
+  button_watch: Prati
+  button_unwatch: Ne prati više
+  button_reply: Odgovori
+  button_archive: Arhiviraj
+  button_unarchive: Vrati iz arhive
+  button_reset: Poništi
+  button_rename: Preimenuj
+  button_change_password: Promeni lozinku
+  button_copy: Kopiraj
+  button_copy_and_follow: Kopiraj i prati
+  button_annotate: Pribeleži
+  button_update: Ažuriraj
+  button_configure: Podesi
+  button_quote: Pod navodnicima
+  button_duplicate: Dupliraj
+  button_show: Prikaži
+  
+  status_active: aktivni
+  status_registered: registrovani
+  status_locked: zakljuÄani
+  
+  version_status_open: otvoren
+  version_status_locked: zakljuÄan
+  version_status_closed: zatvoren
+
+  field_active: Aktivan
+  
+  text_select_mail_notifications: Odaberi akcije za koje će obaveštenje biti poslato putem e-pošte.
+  text_regexp_info: npr. ^[A-Z0-9]+$
+  text_min_max_length_info: 0 znaÄi bez ograniÄenja
+  text_project_destroy_confirmation: Jeste li sigurni da želite da izbrišete ovaj projekat i sve pripadajuće podatke?
+  text_subprojects_destroy_warning: "Potprojekti: %{value} će takođe biti izbrisan."
+  text_workflow_edit: Odaberite ulogu i praćenje za izmenu toka posla
+  text_are_you_sure: Jeste li sigurni?
+  text_journal_changed: "%{label} promenjen od %{old} u %{new}"
+  text_journal_set_to: "%{label} postavljen u %{value}"
+  text_journal_deleted: "%{label} izbrisano (%{old})"
+  text_journal_added: "%{label} %{value} dodato"
+  text_tip_issue_begin_day: zadatak poÄinje ovog dana
+  text_tip_issue_end_day: zadatak se završava ovog dana
+  text_tip_issue_begin_end_day: zadatak poÄinje i zavrÅ¡ava ovog dana
+  text_project_identifier_info: 'Dozvoljena su samo mala slova (a-š), brojevi i crtice.<br />Jednom snimljen identifikator više se ne može promeniti.'
+  text_caracters_maximum: "Najviše %{count} znak(ova)."
+  text_caracters_minimum: "Broj znakova mora biti najmanje %{count}."
+  text_length_between: "Broj znakova mora biti između %{min} i %{max}."
+  text_tracker_no_workflow: Ovo praćenje nema definisan tok posla
+  text_unallowed_characters: Nedozvoljeni znakovi
+  text_comma_separated: Dozvoljene su višestruke vrednosti (odvojene zarezom).
+  text_line_separated: Dozvoljene su višestruke vrednosti (jedan red za svaku vrednost).
+  text_issues_ref_in_commit_messages: Referenciranje i popravljanje problema u izvršnim porukama
+  text_issue_added: "%{author} je prijavio problem %{id}."
+  text_issue_updated: "%{author} je ažurirao problem %{id}."
+  text_wiki_destroy_confirmation: Jeste li sigurni da želite da obrišete wiki i sav sadržaj?
+  text_issue_category_destroy_question: "Nekoliko problema (%{count}) je dodeljeno ovoj kategoriji. Šta želite da uradite?"
+  text_issue_category_destroy_assignments: Ukloni dodeljene kategorije
+  text_issue_category_reassign_to: Dodeli ponovo probleme ovoj kategoriji
+  text_user_mail_option: "Za neizabrane projekte, dobićete samo obaveÅ¡tenje o stvarima koje pratite ili ste ukljuÄeni (npr. problemi Äiji ste vi autor ili zastupnik)."
+  text_no_configuration_data: "Uloge, praćenja, statusi problema i toka posla joÅ¡ uvek nisu podeÅ¡eni.\nPreporuÄljivo je da uÄitate podrazumevano konfigurisanje. Izmena je moguća nakon prvog uÄitavanja."
+  text_load_default_configuration: UÄitaj podrazumevano konfigurisanje
+  text_status_changed_by_changeset: "Primenjeno u skupu sa promenama %{value}."
+  text_issues_destroy_confirmation: 'Jeste li sigurni da želite da izbrišete odabrane probleme?'
+  text_select_project_modules: 'Odaberite module koje želite omogućiti za ovaj projekat:'
+  text_default_administrator_account_changed: Podrazumevani administratorski nalog je promenjen
+  text_file_repository_writable: Fascikla priloženih datoteka je upisiva
+  text_plugin_assets_writable: Fascikla elemenata dodatnih komponenti je upisiva
+  text_rmagick_available: RMagick je dostupan (opciono)
+  text_destroy_time_entries_question: "%{hours} sati je prijavljeno za ovaj problem koji želite izbrisati. Šta želite da uradite?"
+  text_destroy_time_entries: Izbriši prijavljene sate
+  text_assign_time_entries_to_project: Dodeli prijavljene sate projektu
+  text_reassign_time_entries: 'Dodeli ponovo prijavljene sate ovom problemu:'
+  text_user_wrote: "%{value} je napisao:"
+  text_enumeration_destroy_question: "%{count} objekat(a) je dodeljeno ovoj vrednosti."
+  text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
+  text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
+  text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisniÄkog imena pronaÄ‘enog u evidenciji spremiÅ¡ta.\nKorisnici sa istim Redmine imenom i imenom spremiÅ¡ta ili e-adresom su automatski mapirani."
+  text_diff_truncated: '... Ova razlika je iseÄena jer je dostignuta maksimalna veliÄina prikaza.'
+  text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
+  text_wiki_page_destroy_question: "Ova stranica ima %{descendants} podređenih stranica i podstranica. Šta želite da uradite?"
+  text_wiki_page_nullify_children: "Zadrži podređene stranice kao korene stranice"
+  text_wiki_page_destroy_children: "Izbriši podređene stranice i sve njihove podstranice"
+  text_wiki_page_reassign_children: "Dodeli ponovo podreÄ‘ene stranice ovoj matiÄnoj stranici"
+  text_own_membership_delete_confirmation: "Nakon uklanjanja pojedinih ili svih vaših dozvola nećete više moći da uređujete ovaj projekat.\nŽelite li da nastavite?"
+  text_zoom_in: Uvećaj
+  text_zoom_out: Umanji
+  
+  default_role_manager: Menadžer
+  default_role_developer: Programer
+  default_role_reporter: IzveÅ¡taÄ
+  default_tracker_bug: Greška
+  default_tracker_feature: Funkcionalnost
+  default_tracker_support: Podrška
+  default_issue_status_new: Novo
+  default_issue_status_in_progress: U toku
+  default_issue_status_resolved: Rešeno
+  default_issue_status_feedback: Povratna informacija
+  default_issue_status_closed: Zatvoreno
+  default_issue_status_rejected: Odbijeno
+  default_doc_category_user: KorisniÄka dokumentacija
+  default_doc_category_tech: TehniÄka dokumentacija
+  default_priority_low: Nizak
+  default_priority_normal: Normalan
+  default_priority_high: Visok
+  default_priority_urgent: Hitno
+  default_priority_immediate: Neposredno
+  default_activity_design: Dizajn
+  default_activity_development: Razvoj
+  
+  enumeration_issue_priorities: Prioriteti problema
+  enumeration_doc_categories: Kategorije dokumenta
+  enumeration_activities: Aktivnosti (praćenje vremena)
+  enumeration_system_activity: Sistemska aktivnost
+  
+  field_time_entries: Vreme evidencije
+  project_module_gantt: Gantov dijagram
+  project_module_calendar: Kalendar
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+  text_are_you_sure_with_children: Delete issue and all child issues?
+  field_text: Text field
+  label_user_mail_option_only_owner: Only for things I am the owner of
+  setting_default_notification_option: Default notification option
+  label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+  label_user_mail_option_only_assigned: Only for things I am assigned to
+  label_user_mail_option_none: No events
+  field_member_of_group: Assignee's group
+  field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
+  label_principal_search: "Search for user or group:"
+  label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/sr.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/sr.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -34,37 +34,37 @@
       half_a_minute: "пола минута"
       less_than_x_seconds:
         one:   "мање од једне Ñекунде"
-        other: "мање од {{count}} Ñек."
+        other: "мање од %{count} Ñек."
       x_seconds:
         one:   "једна Ñекунда"
-        other: "{{count}} Ñек."
+        other: "%{count} Ñек."
       less_than_x_minutes:
         one:   "мање од минута"
-        other: "мање од {{count}} мин."
+        other: "мање од %{count} мин."
       x_minutes:
         one:   "један минут"
-        other: "{{count}} мин."
+        other: "%{count} мин."
       about_x_hours:
         one:   "приближно један Ñат"
-        other: "приближно {{count}} Ñати"
+        other: "приближно %{count} Ñати"
       x_days:
         one:   "један дан"
-        other: "{{count}} дана"
+        other: "%{count} дана"
       about_x_months:
         one:   "приближно један меÑец"
-        other: "приближно {{count}} меÑеци"
+        other: "приближно %{count} меÑеци"
       x_months:
         one:   "један меÑец"
-        other: "{{count}} меÑеци"
+        other: "%{count} меÑеци"
       about_x_years:
         one:   "приближно годину дана"
-        other: "приближно {{count}} год."
+        other: "приближно %{count} год."
       over_x_years:
         one:   "преко годину дана"
-        other: "преко {{count}} год."
+        other: "преко %{count} год."
       almost_x_years:
         one:   "Ñкоро годину дана"
-        other: "Ñкоро {{count}} год."
+        other: "Ñкоро %{count} год."
 
   number:
     format:
@@ -95,6 +95,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "није укључен у ÑпиÑак"
         exclusion: "је резервиÑан"
@@ -103,17 +107,17 @@
         accepted: "мора бити прихваћен"
         empty: "не може бити празно"
         blank: "не може бити празно"
-        too_long: "је предугачка (макÑимум знакова је {{count}})"
-        too_short: "је прекратка (минимум знакова је {{count}})"
-        wrong_length: "је погрешне дужине (број знакова мора бити {{count}})"
+        too_long: "је предугачка (макÑимум знакова је %{count})"
+        too_short: "је прекратка (минимум знакова је %{count})"
+        wrong_length: "је погрешне дужине (број знакова мора бити %{count})"
         taken: "је већ у употреби"
         not_a_number: "није број"
         not_a_date: "није иÑправан датум"
-        greater_than: "мора бити већи од {{count}}"
-        greater_than_or_equal_to: "мора бити већи или једнак {{count}}"
-        equal_to: "мора бити једнак {{count}}"
-        less_than: "мора бити мањи од {{count}}"
-        less_than_or_equal_to: "мора бити мањи или једнак {{count}}"
+        greater_than: "мора бити већи од %{count}"
+        greater_than_or_equal_to: "мора бити већи или једнак %{count}"
+        equal_to: "мора бити једнак %{count}"
+        less_than: "мора бити мањи од %{count}"
+        less_than_or_equal_to: "мора бити мањи или једнак %{count}"
         odd: "мора бити паран"
         even: "мора бити непаран"
         greater_than_start_date: "мора бити већи од почетног датума"
@@ -150,12 +154,12 @@
   notice_file_not_found: Страна којој желите приÑтупити не поÑтоји или је уклоњена.
   notice_locking_conflict: Податак је ажуриран од Ñтране другог кориÑника.
   notice_not_authorized: ÐиÑте овлашћени за приÑтуп овој Ñтрани.
-  notice_email_sent: "E-порука је поÑлата на {{value}}"
-  notice_email_error: "Догодила Ñе грешка приликом Ñлања е-поруке ({{value}})"
+  notice_email_sent: "E-порука је поÑлата на %{value}"
+  notice_email_error: "Догодила Ñе грешка приликом Ñлања е-поруке (%{value})"
   notice_feeds_access_key_reseted: Ваш RSS приÑтупни кључ је поништен.
   notice_api_access_key_reseted: Ваш API приÑтупни кључ је поништен.
-  notice_failed_to_save_issues: "ÐеуÑпешно Ñнимање {{count}} проблема од {{total}} одабраних: {{ids}}."
-  notice_failed_to_save_members: "ÐеуÑпешно Ñнимање члана(ова): {{errors}}."
+  notice_failed_to_save_issues: "ÐеуÑпешно Ñнимање %{count} проблема од %{total} одабраних: %{ids}."
+  notice_failed_to_save_members: "ÐеуÑпешно Ñнимање члана(ова): %{errors}."
   notice_no_issue_selected: "Ðи један проблем није одабран! Молимо, одаберите проблем који желите да мењате."
   notice_account_pending: "Ваш налог је креиран и чека на одобрење админиÑтратора."
   notice_default_data_loaded: Подразумевано конфигуриÑање је уÑпешно учитано.
@@ -163,9 +167,9 @@
   notice_unable_delete_time_entry: Ставку евиденције времена је немогуће избриÑати.
   notice_issue_done_ratios_updated: ÐžÐ´Ð½Ð¾Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ñ… проблема је ажуриран.
   
-  error_can_t_load_default_data: "Подразумевано конфигуриÑање је немогуће учитати: {{value}}"
+  error_can_t_load_default_data: "Подразумевано конфигуриÑање је немогуће учитати: %{value}"
   error_scm_not_found: "Ставка или иÑправка ниÑу пронађене у Ñпремишту."
-  error_scm_command_failed: "Грешка Ñе јавила приликом покушаја приÑтупа Ñпремишту: {{value}}"
+  error_scm_command_failed: "Грешка Ñе јавила приликом покушаја приÑтупа Ñпремишту: %{value}"
   error_scm_annotate: "Ставка не поÑтоји или не може бити означена."
   error_issue_not_found_in_project: 'Проблем није пронађен или не припада овом пројекту.'
   error_no_tracker_in_project: 'Ðи једно праћење није повезано Ñа овим пројектом. Молимо проверите подешавања пројекта.'
@@ -179,26 +183,26 @@
   error_workflow_copy_source: 'Молимо одаберите изворно праћење или улогу'
   error_workflow_copy_target: 'Молимо одаберите одредишно праћење и улогу'
   error_unable_delete_issue_status: 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° је немогуће обриÑати'
-  error_unable_to_connect: "Повезивање Ñа ({{value}}) је немогуће"  
-  warning_attachments_not_saved: "{{count}} датотека не може бити Ñнимљена."
+  error_unable_to_connect: "Повезивање Ñа (%{value}) је немогуће"  
+  warning_attachments_not_saved: "%{count} датотека не може бити Ñнимљена."
   
-  mail_subject_lost_password: "Ваша {{value}} лозинка"
+  mail_subject_lost_password: "Ваша %{value} лозинка"
   mail_body_lost_password: 'За промену ваше лозинке, кликните на Ñледећи линк:'
-  mail_subject_register: "Ðктивација вашег {{value}} налога"
+  mail_subject_register: "Ðктивација вашег %{value} налога"
   mail_body_register: 'За активацију вашег налога, кликните на Ñледећи линк:'
-  mail_body_account_information_external: "Ваш налог {{value}} можете кориÑтити за пријаву."
+  mail_body_account_information_external: "Ваш налог %{value} можете кориÑтити за пријаву."
   mail_body_account_information: Информације о вашем налогу
-  mail_subject_account_activation_request: "Захтев за активацију налога {{value}}"
-  mail_body_account_activation_request: "Ðови кориÑник ({{value}}) је региÑтрован. Ðалог чека на ваше одобрење:"
-  mail_subject_reminder: "{{count}} проблема доÑпева наредних {{days}} дана"
-  mail_body_reminder: "{{count}} проблема додељених вама доÑпева у наредних {{days}} дана:"
-  mail_subject_wiki_content_added: "Wiki Ñтраница '{{id}}' је додата"
-  mail_body_wiki_content_added: "{{author}} је додао wiki Ñтраницу '{{id}}'."
-  mail_subject_wiki_content_updated: "Wiki Ñтраница '{{id}}' је ажурирана"
-  mail_body_wiki_content_updated: "{{author}} је ажурирао wiki Ñтраницу '{{id}}'."
+  mail_subject_account_activation_request: "Захтев за активацију налога %{value}"
+  mail_body_account_activation_request: "Ðови кориÑник (%{value}) је региÑтрован. Ðалог чека на ваше одобрење:"
+  mail_subject_reminder: "%{count} проблема доÑпева наредних %{days} дана"
+  mail_body_reminder: "%{count} проблема додељених вама доÑпева у наредних %{days} дана:"
+  mail_subject_wiki_content_added: "Wiki Ñтраница '%{id}' је додата"
+  mail_body_wiki_content_added: "%{author} је додао wiki Ñтраницу '%{id}'."
+  mail_subject_wiki_content_updated: "Wiki Ñтраница '%{id}' је ажурирана"
+  mail_body_wiki_content_updated: "%{author} је ажурирао wiki Ñтраницу '%{id}'."
   
   gui_validation_error: једна грешка
-  gui_validation_error_plural: "{{count}} грешака"
+  gui_validation_error_plural: "%{count} грешака"
   
   field_name: Ðазив
   field_description: ОпиÑ
@@ -261,6 +265,7 @@
   field_attr_lastname: Ðтрибут презимена
   field_attr_mail: Ðтрибут е-адреÑе
   field_onthefly: Креирање кориÑника у току рада
+  field_start_date: Почетак
   field_done_ratio: % урађено
   field_auth_source: Режим потврде идентитета
   field_hide_mail: Сакриј моју е-адреÑу
@@ -421,14 +426,14 @@
   label_x_projects:
     zero:  нема пројеката
     one:   један пројекат
-    other: "{{count}} пројеката"
+    other: "%{count} пројеката"
   label_project_all: Сви пројекти
   label_project_latest: ПоÑледњи пројекти
   label_issue: Проблем
   label_issue_new: Ðови проблем
   label_issue_plural: Проблеми
   label_issue_view_all: Приказ Ñвих проблема
-  label_issues_by: "Проблеми ({{value}})"
+  label_issues_by: "Проблеми (%{value})"
   label_issue_added: Проблем је додат
   label_issue_updated: Проблем је ажуриран
   label_document: Документ
@@ -478,7 +483,7 @@
   label_registered_on: РегиÑтрован
   label_activity: ÐктивноÑÑ‚
   label_overall_activity: Целокупна активноÑÑ‚
-  label_user_activity: "ÐктивноÑÑ‚ кориÑника {{value}}"
+  label_user_activity: "ÐктивноÑÑ‚ кориÑника %{value}"
   label_new: Ðово
   label_logged_as: Пријављени Ñте као
   label_environment: Окружење
@@ -488,7 +493,7 @@
   label_auth_source_plural: Режими потврде идентитета
   label_subproject_plural: Потпројекти
   label_subproject_new: Ðови потпројекат
-  label_and_its_subprojects: "{{value}} и његови потпројекти"
+  label_and_its_subprojects: "%{value} и његови потпројекти"
   label_min_max_length: Мин. - МакÑ. дужина
   label_list: СпиÑак
   label_date: Датум
@@ -499,8 +504,8 @@
   label_text: Дуги текÑÑ‚
   label_attribute: ОÑобина
   label_attribute_plural: ОÑобине
-  label_download: "{{count}} преузимање"
-  label_download_plural: "{{count}} преузимања"
+  label_download: "%{count} преузимање"
+  label_download_plural: "%{count} преузимања"
   label_no_data: Ðема података за приказивање
   label_change_status: Промена ÑтатуÑа
   label_history: ИÑторија
@@ -532,17 +537,17 @@
   label_closed_issues: затворен
   label_closed_issues_plural: затворених
   label_x_open_issues_abbr_on_total:
-    zero:  0 отворених / {{total}}
-    one:   1 отворен / {{total}}
-    other: "{{count}} отворених / {{total}}"
+    zero:  0 отворених / %{total}
+    one:   1 отворен / %{total}
+    other: "%{count} отворених / %{total}"
   label_x_open_issues_abbr:
     zero:  0 отворених
     one:   1 отворен
-    other: "{{count}} отворених"
+    other: "%{count} отворених"
   label_x_closed_issues_abbr:
     zero:  0 затворених
     one:   1 затворен
-    other: "{{count}} затворених"
+    other: "%{count} затворених"
   label_total: Укупно
   label_permissions: Дозволе
   label_current_status: Тренутни ÑтатуÑ
@@ -560,7 +565,7 @@
   label_months_from: меÑеци од
   label_gantt: Гантов дијаграм
   label_internal: Унутрашњи
-  label_last_changes: "поÑледњих {{count}} промена"
+  label_last_changes: "поÑледњих %{count} промена"
   label_change_view_all: Прикажи Ñве промене
   label_personalize_page: ПерÑонализуј ову Ñтрану
   label_comment: Коментар
@@ -568,7 +573,7 @@
   label_x_comments:
     zero: без коментара
     one: један коментар
-    other: "{{count}} коментара"
+    other: "%{count} коментара"
   label_comment_add: Додај коментар
   label_comment_added: Коментар додат
   label_comment_delete: Обриши коментаре
@@ -589,7 +594,7 @@
   label_yesterday: јуче
   label_this_week: ове Ñедмице
   label_last_week: поÑледње Ñедмице
-  label_last_n_days: "поÑледњих {{count}} дана"
+  label_last_n_days: "поÑледњих %{count} дана"
   label_this_month: овог меÑеца
   label_last_month: поÑледњег меÑеца
   label_this_year: ове године
@@ -603,13 +608,13 @@
   label_repository: Спремиште
   label_repository_plural: Спремишта
   label_browse: Прегледање
-  label_modification: "{{count}} промена"
-  label_modification_plural: "{{count}} промена"
+  label_modification: "%{count} промена"
+  label_modification_plural: "%{count} промена"
   label_branch: Грана
   label_tag: Ознака
   label_revision: Ревизија
   label_revision_plural: Ревизије
-  label_revision_id: "Ревизија {{value}}"
+  label_revision_id: "Ревизија %{value}"
   label_associated_revisions: Придружене ревизије
   label_added: додато
   label_modified: промењено
@@ -626,8 +631,8 @@
   label_sort_lower: Премештање на доле
   label_sort_lowest: Премештање на дно
   label_roadmap: План рада
-  label_roadmap_due_in: "ДоÑпева {{value}}"
-  label_roadmap_overdue: "{{value}} најкаÑније"
+  label_roadmap_due_in: "ДоÑпева %{value}"
+  label_roadmap_overdue: "%{value} најкаÑније"
   label_roadmap_no_issues: Ðема проблема за ову верзију
   label_search: Претрага
   label_result_plural: Резултати
@@ -646,8 +651,8 @@
   label_issue_tracking: Праћење проблема
   label_spent_time: Утрошено време
   label_overall_spent_time: Целокупно утрошено време
-  label_f_hour: "{{value}} Ñат"
-  label_f_hour_plural: "{{value}} Ñати"
+  label_f_hour: "%{value} Ñат"
+  label_f_hour_plural: "%{value} Ñати"
   label_time_tracking: Праћење времена
   label_change_plural: Промене
   label_statistics: СтатиÑтика
@@ -698,15 +703,15 @@
   label_date_from: Шаље
   label_date_to: Прима
   label_language_based: Базирано на језику кориÑника
-  label_sort_by: "Сортирано по {{value}}"
+  label_sort_by: "Сортирано по %{value}"
   label_send_test_email: Слање пробне е-поруке
   label_feeds_access_key: RSS приÑтупни кључ
   label_missing_feeds_access_key: RSS приÑтупни кључ недоÑтаје
-  label_feeds_access_key_created_on: "RSS приÑтупни кључ је направљен пре {{value}}"
+  label_feeds_access_key_created_on: "RSS приÑтупни кључ је направљен пре %{value}"
   label_module_plural: Модули
-  label_added_time_by: "Додао {{author}} пре {{age}}"
-  label_updated_time_by: "Ðжурирао {{author}} пре {{age}}"
-  label_updated_time: "Ðжурирано пре {{value}}"
+  label_added_time_by: "Додао %{author} пре %{age}"
+  label_updated_time_by: "Ðжурирао %{author} пре %{age}"
+  label_updated_time: "Ðжурирано пре %{value}"
   label_jump_to_a_project: Скок на пројекат...
   label_file_plural: Датотеке
   label_changeset_plural: Скупови промена
@@ -722,7 +727,7 @@
   label_registration_activation_by_email: активација налога путем е-поруке
   label_registration_manual_activation: ручна активација налога
   label_registration_automatic_activation: аутоматÑка активација налога
-  label_display_per_page: "Број Ñтавки по Ñтраници: {{value}}"
+  label_display_per_page: "Број Ñтавки по Ñтраници: %{value}"
   label_age: СтароÑÑ‚
   label_change_properties: Промени ÑвојÑтва
   label_general: Општи
@@ -745,7 +750,7 @@
   label_sort: Сортирање
   label_ascending: РаÑтући низ
   label_descending: Опадајући низ
-  label_date_from_to: Од {{start}} до {{end}}
+  label_date_from_to: Од %{start} до %{end}
   label_wiki_content_added: Wiki Ñтраница је додата
   label_wiki_content_updated: Wiki Ñтраница је ажурирана
   label_group: Група
@@ -764,7 +769,7 @@
   label_display_used_statuses_only: Приказуј ÑтатуÑе коришћене Ñамо од Ñтране овог праћења
   label_api_access_key: API приÑтупни кључ
   label_missing_api_access_key: ÐедоÑтаје API приÑтупни кључ
-  label_api_access_key_created_on: "API приÑтупни кључ је креиран пре {{value}}"
+  label_api_access_key_created_on: "API приÑтупни кључ је креиран пре %{value}"
   label_profile: Профил
   label_subtask_plural: Подзадатак
   label_project_copy_notifications: Пошаљи е-поруку Ñа обавештењем приликом копирања пројекта 
@@ -827,53 +832,53 @@
   text_regexp_info: нпр. ^[A-Z0-9]+$
   text_min_max_length_info: 0 значи без ограничења
   text_project_destroy_confirmation: ЈеÑте ли Ñигурни да желите да избришете овај пројекат и Ñве припадајуће податке?
-  text_subprojects_destroy_warning: "Потпројекти: {{value}} ће такође бити избриÑан."
+  text_subprojects_destroy_warning: "Потпројекти: %{value} ће такође бити избриÑан."
   text_workflow_edit: Одаберите улогу и праћење за измену тока поÑла
   text_are_you_sure: ЈеÑте ли Ñигурни?
-  text_journal_changed: "{{label}} промењен од {{old}} у {{new}}"
-  text_journal_set_to: "{{label}} поÑтављен у {{value}}"
-  text_journal_deleted: "{{label}} избриÑано ({{old}})"
-  text_journal_added: "{{label}} {{value}} додато"
+  text_journal_changed: "%{label} промењен од %{old} у %{new}"
+  text_journal_set_to: "%{label} поÑтављен у %{value}"
+  text_journal_deleted: "%{label} избриÑано (%{old})"
+  text_journal_added: "%{label} %{value} додато"
   text_tip_issue_begin_day: задатак почиње овог дана
   text_tip_issue_end_day: задатак Ñе завршава овог дана
   text_tip_issue_begin_end_day: задатак почиње и завршава овог дана
   text_project_identifier_info: 'Дозвољена Ñу Ñамо мала Ñлова (a-ш), бројеви и цртице.<br />Једном Ñнимљен идентификатор више Ñе не може променити.'
-  text_caracters_maximum: "Ðајвише {{count}} знак(ова)."
-  text_caracters_minimum: "Број знакова мора бити најмање {{count}}."
-  text_length_between: "Број знакова мора бити између {{min}} и {{max}}."
+  text_caracters_maximum: "Ðајвише %{count} знак(ова)."
+  text_caracters_minimum: "Број знакова мора бити најмање %{count}."
+  text_length_between: "Број знакова мора бити између %{min} и %{max}."
   text_tracker_no_workflow: Ово праћење нема дефиниÑан ток поÑла
   text_unallowed_characters: Ðедозвољени знакови
   text_comma_separated: Дозвољене Ñу вишеÑтруке вредноÑти (одвојене зарезом).
   text_line_separated: Дозвољене Ñу вишеÑтруке вредноÑти (један ред за Ñваку вредноÑÑ‚).
   text_issues_ref_in_commit_messages: Референцирање и поправљање проблема у извршним порукама
-  text_issue_added: "{{author}} је пријавио проблем {{id}}."
-  text_issue_updated: "{{author}} је ажурирао проблем {{id}}."
+  text_issue_added: "%{author} је пријавио проблем %{id}."
+  text_issue_updated: "%{author} је ажурирао проблем %{id}."
   text_wiki_destroy_confirmation: ЈеÑте ли Ñигурни да желите да обришете wiki и Ñав Ñадржај?
-  text_issue_category_destroy_question: "Ðеколико проблема ({{count}}) је додељено овој категорији. Шта желите да урадите?"
+  text_issue_category_destroy_question: "Ðеколико проблема (%{count}) је додељено овој категорији. Шта желите да урадите?"
   text_issue_category_destroy_assignments: Уклони додељене категорије
   text_issue_category_reassign_to: Додели поново проблеме овој категорији
   text_user_mail_option: "За неизабране пројекте, добићете Ñамо обавештење о Ñтварима које пратите или Ñте укључени (нпр. проблеми чији Ñте ви аутор или заÑтупник)."
   text_no_configuration_data: "Улоге, праћења, ÑтатуÑи проблема и тока поÑла још увек ниÑу подешени.\nПрепоручљиво је да учитате подразумевано конфигуриÑање. Измена је могућа након првог учитавања."
   text_load_default_configuration: Учитај подразумевано конфигуриÑање
-  text_status_changed_by_changeset: "Примењено у Ñкупу Ñа променама {{value}}."
+  text_status_changed_by_changeset: "Примењено у Ñкупу Ñа променама %{value}."
   text_issues_destroy_confirmation: 'ЈеÑте ли Ñигурни да желите да избришете одабране проблеме?'
   text_select_project_modules: 'Одаберите модуле које желите омогућити за овај пројекат:'
   text_default_administrator_account_changed: Подразумевани админиÑтраторÑки налог је промењен
   text_file_repository_writable: ФаÑцикла приложених датотека је упиÑива
   text_plugin_assets_writable: ФаÑцикла елемената додатних компоненти је упиÑива
   text_rmagick_available: RMagick је доÑтупан (опционо)
-  text_destroy_time_entries_question: "{{hours}} Ñати је пријављено за овај проблем који желите избриÑати. Шта желите да урадите?"
+  text_destroy_time_entries_question: "%{hours} Ñати је пријављено за овај проблем који желите избриÑати. Шта желите да урадите?"
   text_destroy_time_entries: Избриши пријављене Ñате
   text_assign_time_entries_to_project: Додели пријављене Ñате пројекту
   text_reassign_time_entries: 'Додели поново пријављене Ñате овом проблему:'
-  text_user_wrote: "{{value}} је напиÑао:"
-  text_enumeration_destroy_question: "{{count}} објекат(а) је додељено овој вредноÑти."
+  text_user_wrote: "%{value} је напиÑао:"
+  text_enumeration_destroy_question: "%{count} објекат(а) је додељено овој вредноÑти."
   text_enumeration_category_reassign_to: 'Додели их поново овој вредноÑти:'
   text_email_delivery_not_configured: "ИÑпорука е-порука није конфигуриÑана и обавештења Ñу онемогућена.\nПодеÑите ваш SMTP Ñервер у config/email.yml и покрените поново апликацију за њихово омогућавање."
   text_repository_usernames_mapping: "Одаберите или ажурирајте Redmine кориÑнике мапирањем Ñваког кориÑничког имена пронађеног у евиденцији Ñпремишта.\nКориÑници Ñа иÑтим Redmine именом и именом Ñпремишта или е-адреÑом Ñу аутоматÑки мапирани."
   text_diff_truncated: '... Ова разлика је иÑечена јер је доÑтигнута макÑимална величина приказа.'
   text_custom_field_possible_values_info: 'Један ред за Ñваку вредноÑÑ‚'
-  text_wiki_page_destroy_question: "Ова Ñтраница има {{descendants}} подређених Ñтраница и подÑтраница. Шта желите да урадите?"
+  text_wiki_page_destroy_question: "Ова Ñтраница има %{descendants} подређених Ñтраница и подÑтраница. Шта желите да урадите?"
   text_wiki_page_nullify_children: "Задржи подређене Ñтранице као корене Ñтранице"
   text_wiki_page_destroy_children: "Избриши подређене Ñтранице и Ñве њихове подÑтранице"
   text_wiki_page_reassign_children: "Додели поново подређене Ñтранице овој матичној Ñтраници"
@@ -912,7 +917,7 @@
   project_module_gantt: Гантов дијаграм
   project_module_calendar: Календар
 
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -923,8 +928,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/sv.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/sv.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -54,7 +54,7 @@
           byte:
             one: "Byte"
             other: "Bytes"
-          kb: "KB"
+          kb: "kB"
           mb: "MB"
           gb: "GB"
           tb: "TB"
@@ -65,44 +65,44 @@
       half_a_minute: "en halv minut"
       less_than_x_seconds:
         one:   "mindre än en sekund"
-        other: "mindre än {{count}} sekunder"
+        other: "mindre än %{count} sekunder"
       x_seconds:
         one:   "en sekund"
-        other: "{{count}} sekunder"
+        other: "%{count} sekunder"
       less_than_x_minutes:
         one:   "mindre än en minut"
-        other: "mindre än {{count}} minuter"
+        other: "mindre än %{count} minuter"
       x_minutes:
         one:   "en minut"
-        other: "{{count}} minuter"
+        other: "%{count} minuter"
       about_x_hours:
         one:   "ungefär en timme"
-        other: "ungefär {{count}} timmar"
+        other: "ungefär %{count} timmar"
       x_days:
         one:   "en dag"
-        other: "{{count}} dagar"
+        other: "%{count} dagar"
       about_x_months:
         one:   "ungefär en månad"
-        other: "ungefär {{count}} månader"
+        other: "ungefär %{count} månader"
       x_months:
         one:   "en månad"
-        other: "{{count}} månader"
+        other: "%{count} månader"
       about_x_years:
         one:   "ungefär ett år"
-        other: "ungefär {{count}} år"
+        other: "ungefär %{count} år"
       over_x_years:
         one:   "mer än ett år"
-        other: "mer än {{count}} år"
+        other: "mer än %{count} år"
       almost_x_years:
         one:   "nästan 1 år"
-        other: "nästan {{count}} år"
+        other: "nästan %{count} år"
         
   activerecord:
     errors:
       template:
         header:
-          one:    "Ett fel förhindrade denna {{model}} från att sparas"
-          other:  "{{count}} fel förhindrade denna {{model}} från att sparas"
+          one:    "Ett fel förhindrade denna %{model} från att sparas"
+          other:  "%{count} fel förhindrade denna %{model} från att sparas"
         # The variable :count is also available
         body: "Det var problem med följande fält:"
       # The values :model, :attribute and :value are always available for interpolation
@@ -115,16 +115,16 @@
         accepted : "måste vara accepterad"
         empty: "får ej vara tom"
         blank: "måste anges"
-        too_long: "är för lång (maximum är {{count}} tecken)"
-        too_short: "är för kort (minimum är {{count}} tecken)"
-        wrong_length: "har fel längd (ska vara {{count}} tecken)"
+        too_long: "är för lång (maximum är %{count} tecken)"
+        too_short: "är för kort (minimum är %{count} tecken)"
+        wrong_length: "har fel längd (ska vara %{count} tecken)"
         taken: "har redan tagits"
         not_a_number: "är inte ett nummer"
-        greater_than: "måste vara större än {{count}}"
-        greater_than_or_equal_to: "måste vara större än eller lika med {{count}}"
+        greater_than: "måste vara större än %{count}"
+        greater_than_or_equal_to: "måste vara större än eller lika med %{count}"
         equal_to: "måste vara samma som"
-        less_than: "måste vara mindre än {{count}}"
-        less_than_or_equal_to: "måste vara mindre än eller lika med {{count}}"
+        less_than: "måste vara mindre än %{count}"
+        less_than_or_equal_to: "måste vara mindre än eller lika med %{count}"
         odd: "måste vara udda"
         even: "måste vara jämnt"
         greater_than_start_date: "måste vara senare än startdatumet"
@@ -196,12 +196,12 @@
   notice_locking_conflict: Data har uppdaterats av en annan användare.
   notice_not_authorized: Du saknar behörighet att komma åt den här sidan.
   notice_not_authorized_archived_project: Projektet du försöker komma åt har arkiverats.
-  notice_email_sent: "Ett mail skickades till {{value}}"
-  notice_email_error: "Ett fel inträffade när mail skickades ({{value}})"
+  notice_email_sent: "Ett mail skickades till %{value}"
+  notice_email_error: "Ett fel inträffade när mail skickades (%{value})"
   notice_feeds_access_key_reseted: Din RSS-nyckel återställdes.
   notice_api_access_key_reseted: Din API-nyckel återställdes.
-  notice_failed_to_save_issues: "Misslyckades med att spara {{count}} ärende(n) på {{total}} valt: {{ids}}."
-  notice_failed_to_save_members: "Misslyckades med att spara medlem(mar): {{errors}}."
+  notice_failed_to_save_issues: "Misslyckades med att spara %{count} ärende(n) på %{total} valt: %{ids}."
+  notice_failed_to_save_members: "Misslyckades med att spara medlem(mar): %{errors}."
   notice_no_issue_selected: "Inget ärende är markerat! Var vänlig, markera de ärenden du vill ändra."
   notice_account_pending: "Ditt konto skapades och avvaktar nu administratörens godkännande."
   notice_default_data_loaded: Standardkonfiguration inläst.
@@ -209,9 +209,9 @@
   notice_unable_delete_time_entry: Tidloggning kunde inte tas bort.
   notice_issue_done_ratios_updated: % klart uppdaterade.
   
-  error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: {{value}}"
+  error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
   error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
-  error_scm_command_failed: "Ett fel inträffade vid försök att nå versionsarkivet: {{value}}"
+  error_scm_command_failed: "Ett fel inträffade vid försök att nå versionsarkivet: %{value}"
   error_scm_annotate: "Inlägget existerar inte eller kan inte kommenteras."
   error_issue_not_found_in_project: 'Ärendet hittades inte eller så tillhör det inte detta projekt'
   error_no_tracker_in_project: 'Ingen ärendetyp är associerad med projektet. Vänligen kontrollera projektinställningarna.'
@@ -225,27 +225,27 @@
   error_workflow_copy_source: 'Vänligen välj källans ärendetyp eller roll'
   error_workflow_copy_target: 'Vänligen välj ärendetyp(er) och roll(er) för mål'
   error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
-  error_unable_to_connect: Kan inte ansluta ({{value}})
+  error_unable_to_connect: Kan inte ansluta (%{value})
   
-  warning_attachments_not_saved: "{{count}} fil(er) kunde inte sparas."
+  warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
   
-  mail_subject_lost_password: "Ditt {{value}} lösenord"
+  mail_subject_lost_password: "Ditt %{value} lösenord"
   mail_body_lost_password: 'För att ändra ditt lösenord, klicka på följande länk:'
-  mail_subject_register: "Din {{value}} kontoaktivering"
+  mail_subject_register: "Din %{value} kontoaktivering"
   mail_body_register: 'För att aktivera ditt konto, klicka på följande länk:'
-  mail_body_account_information_external: "Du kan använda ditt {{value}}-konto för att logga in."
+  mail_body_account_information_external: "Du kan använda ditt %{value}-konto för att logga in."
   mail_body_account_information: Din kontoinformation
-  mail_subject_account_activation_request: "{{value}} begäran om kontoaktivering"
-  mail_body_account_activation_request: "En ny användare ({{value}}) har registrerat sig och avvaktar ditt godkännande:"
-  mail_subject_reminder: "{{count}} ärende(n) har deadline under de kommande {{days}} dagarna"
-  mail_body_reminder: "{{count}} ärende(n) som är tilldelat dig har deadline under de {{days}} dagarna:"
-  mail_subject_wiki_content_added: "'{{id}}' wikisida has lagts till"
-  mail_body_wiki_content_added: The '{{id}}' wikisida has lagts till av {{author}}.
-  mail_subject_wiki_content_updated: "'{{id}}' wikisida har uppdaterats"
-  mail_body_wiki_content_updated: The '{{id}}' wikisida har uppdaterats av {{author}}.
+  mail_subject_account_activation_request: "%{value} begäran om kontoaktivering"
+  mail_body_account_activation_request: "En ny användare (%{value}) har registrerat sig och avvaktar ditt godkännande:"
+  mail_subject_reminder: "%{count} ärende(n) har deadline under de kommande %{days} dagarna"
+  mail_body_reminder: "%{count} ärende(n) som är tilldelat dig har deadline under de %{days} dagarna:"
+  mail_subject_wiki_content_added: "'%{id}' wikisida has lagts till"
+  mail_body_wiki_content_added: The '%{id}' wikisida has lagts till av %{author}.
+  mail_subject_wiki_content_updated: "'%{id}' wikisida har uppdaterats"
+  mail_body_wiki_content_updated: The '%{id}' wikisida har uppdaterats av %{author}.
   
   gui_validation_error: 1 fel
-  gui_validation_error_plural: "{{count}} fel"
+  gui_validation_error_plural: "%{count} fel"
   
   field_name: Namn
   field_description: Beskrivning
@@ -308,6 +308,7 @@
   field_attr_lastname: Efternamnsattribut
   field_attr_mail: Mailattribut
   field_onthefly: Skapa användare on-the-fly
+  field_start_date: Startdatum
   field_done_ratio: % Klart
   field_auth_source: Autentiseringsläge
   field_hide_mail: Dölj min mailadress
@@ -342,6 +343,7 @@
   field_member_of_group: Tilldelad användares grupp
   field_assigned_to_role: Tilldelad användares roll
   field_text: Textfält
+  field_visible: Synlig
   
   setting_app_title: Applikationsrubrik
   setting_app_subtitle: Applikationsunderrubrik
@@ -351,14 +353,14 @@
   setting_self_registration: Självregistrering
   setting_attachment_max_size: Maxstorlek på bilaga
   setting_issues_export_limit: Exportgräns för ärenden
-  setting_mail_from: Avsändare
+  setting_mail_from: Avsändaradress
   setting_bcc_recipients: Hemlig kopia (bcc) till mottagare
   setting_plain_text_mail: Oformaterad text i mail (ingen HTML)
   setting_host_name: Värddatornamn
   setting_text_formatting: Textformatering
   setting_wiki_compression: Komprimering av wikihistorik
   setting_feeds_limit: Innehållsgräns för Feed
-  setting_default_projects_public: Nya projekt är publika som standard
+  setting_default_projects_public: Nya projekt är publika
   setting_autofetch_changesets: Automatisk hämtning av commits
   setting_sys_api_enabled: Aktivera WS för versionsarkivhantering
   setting_commit_ref_keywords: Referens-nyckelord
@@ -370,12 +372,13 @@
   setting_issue_list_default_columns: Standardkolumner i ärendelistan
   setting_repositories_encodings: Teckenuppsättningar för versionsarkiv
   setting_commit_logs_encoding: Teckenuppsättning för commit-meddelanden
+  setting_emails_header: Mail-header
   setting_emails_footer: Signatur
   setting_protocol: Protokoll
   setting_per_page_options: Alternativ, objekt per sida
   setting_user_format: Visningsformat för användare
   setting_activity_days_default: Dagar som visas på projektaktivitet
-  setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt som standard
+  setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt
   setting_enabled_scm: Aktivera SCM
   setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
   setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
@@ -389,7 +392,7 @@
   setting_openid: Tillåt inloggning och registrering med OpenID
   setting_password_min_length: Minsta tillåtna lösenordslängd
   setting_new_project_user_role_id: Tilldelad roll för en icke-administratör som skapar ett projekt
-  setting_default_projects_modules: Standardaktiverade moduler för nya projekt
+  setting_default_projects_modules: Aktiverade moduler för nya projekt
   setting_issue_done_ratio: Beräkna % klart med
   setting_issue_done_ratio_issue_field: Använd ärendefältet
   setting_issue_done_ratio_issue_status: Använd ärendestatus
@@ -475,14 +478,14 @@
   label_x_projects:
     zero:  inga projekt
     one:   1 projekt
-    other: "{{count}} projekt"
+    other: "%{count} projekt"
   label_project_all: Alla projekt
   label_project_latest: Senaste projekt
   label_issue: Ärende
   label_issue_new: Nytt ärende
   label_issue_plural: Ärenden
   label_issue_view_all: Visa alla ärenden
-  label_issues_by: "Ärenden {{value}}"
+  label_issues_by: "Ärenden %{value}"
   label_issue_added: Ärende tillagt
   label_issue_updated: Ärende uppdaterat
   label_document: Dokument
@@ -532,7 +535,7 @@
   label_registered_on: Registrerad
   label_activity: Aktivitet
   label_overall_activity: All aktivitet
-  label_user_activity: "Aktiviteter för {{value}}"
+  label_user_activity: "Aktiviteter för %{value}"
   label_new: Ny
   label_logged_as: Inloggad som
   label_environment: Miljö
@@ -542,7 +545,7 @@
   label_auth_source_plural: Autentiseringslägen
   label_subproject_plural: Underprojekt
   label_subproject_new: Nytt underprojekt
-  label_and_its_subprojects: "{{value}} och dess underprojekt"
+  label_and_its_subprojects: "%{value} och dess underprojekt"
   label_min_max_length: Min./Max.-längd
   label_list: Lista
   label_date: Datum
@@ -553,8 +556,8 @@
   label_text: LÃ¥ng text
   label_attribute: Attribut
   label_attribute_plural: Attribut
-  label_download: "{{count}} Nerladdning"
-  label_download_plural: "{{count}} Nerladdningar"
+  label_download: "%{count} Nerladdning"
+  label_download_plural: "%{count} Nerladdningar"
   label_no_data: Ingen data att visa
   label_change_status: Ändra status
   label_history: Historia
@@ -586,17 +589,17 @@
   label_closed_issues: stängd
   label_closed_issues_plural: stängda
   label_x_open_issues_abbr_on_total:
-    zero:  0 öppna av {{total}}
-    one:   1 öppen av {{total}}
-    other: "{{count}} öppna av {{total}}"
+    zero:  0 öppna av %{total}
+    one:   1 öppen av %{total}
+    other: "%{count} öppna av %{total}"
   label_x_open_issues_abbr:
     zero:  0 öppna
     one:   1 öppen
-    other: "{{count}} öppna"
+    other: "%{count} öppna"
   label_x_closed_issues_abbr:
     zero:  0 stängda
     one:   1 stängd
-    other: "{{count}} stängda"
+    other: "%{count} stängda"
   label_total: Total
   label_permissions: Behörigheter
   label_current_status: Nuvarande status
@@ -614,7 +617,7 @@
   label_months_from: månader från
   label_gantt: Gantt
   label_internal: Intern
-  label_last_changes: "senaste {{count}} ändringar"
+  label_last_changes: "senaste %{count} ändringar"
   label_change_view_all: Visa alla ändringar
   label_personalize_page: Anpassa denna sida
   label_comment: Kommentar
@@ -622,7 +625,7 @@
   label_x_comments:
     zero: inga kommentarer
     one: 1 kommentar
-    other: "{{count}} kommentarer"
+    other: "%{count} kommentarer"
   label_comment_add: Lägg till kommentar
   label_comment_added: Kommentar tillagd
   label_comment_delete: Ta bort kommentar
@@ -643,7 +646,7 @@
   label_yesterday: igår
   label_this_week: denna vecka
   label_last_week: senaste veckan
-  label_last_n_days: "senaste {{count}} dagarna"
+  label_last_n_days: "senaste %{count} dagarna"
   label_this_month: denna månad
   label_last_month: senaste månaden
   label_this_year: detta året
@@ -657,13 +660,13 @@
   label_repository: Versionsarkiv
   label_repository_plural: Versionsarkiv
   label_browse: Bläddra
-  label_modification: "{{count}} ändring"
-  label_modification_plural: "{{count}} ändringar"
+  label_modification: "%{count} ändring"
+  label_modification_plural: "%{count} ändringar"
   label_branch: Branch
   label_tag: Tag
   label_revision: Revision
   label_revision_plural: Revisioner
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_associated_revisions: Associerade revisioner
   label_added: tillagd
   label_modified: modifierad
@@ -680,8 +683,8 @@
   label_sort_lower: Flytta ner
   label_sort_lowest: Flytta till botten
   label_roadmap: Roadmap
-  label_roadmap_due_in: "Färdig om {{value}}"
-  label_roadmap_overdue: "{{value}} sen"
+  label_roadmap_due_in: "Färdig om %{value}"
+  label_roadmap_overdue: "%{value} sen"
   label_roadmap_no_issues: Inga ärenden för denna version
   label_search: Sök
   label_result_plural: Resultat
@@ -700,8 +703,8 @@
   label_issue_tracking: Ärendeuppföljning
   label_spent_time: Spenderad tid
   label_overall_spent_time: Total tid spenderad
-  label_f_hour: "{{value}} timme"
-  label_f_hour_plural: "{{value}} timmar"
+  label_f_hour: "%{value} timme"
+  label_f_hour_plural: "%{value} timmar"
   label_time_tracking: Tidsuppföljning
   label_change_plural: Ändringar
   label_statistics: Statistik
@@ -752,15 +755,15 @@
   label_date_from: Från
   label_date_to: Till
   label_language_based: Språkbaserad
-  label_sort_by: "Sortera på {{value}}"
+  label_sort_by: "Sortera på %{value}"
   label_send_test_email: Skicka testmail
   label_feeds_access_key: RSS-nyckel
   label_missing_feeds_access_key: Saknar en RSS-nyckel
-  label_feeds_access_key_created_on: "RSS-nyckel skapad för {{value}} sedan"
+  label_feeds_access_key_created_on: "RSS-nyckel skapad för %{value} sedan"
   label_module_plural: Moduler
-  label_added_time_by: "Tillagd av {{author}} för {{age}} sedan"
-  label_updated_time_by: "Uppdaterad av {{author}} för {{age}} sedan"
-  label_updated_time: "Uppdaterad för {{value}} sedan"
+  label_added_time_by: "Tillagd av %{author} för %{age} sedan"
+  label_updated_time_by: "Uppdaterad av %{author} för %{age} sedan"
+  label_updated_time: "Uppdaterad för %{value} sedan"
   label_jump_to_a_project: GÃ¥ till projekt...
   label_file_plural: Filer
   label_changeset_plural: Changesets
@@ -780,7 +783,7 @@
   label_registration_activation_by_email: kontoaktivering med mail
   label_registration_manual_activation: manuell kontoaktivering
   label_registration_automatic_activation: automatisk kontoaktivering
-  label_display_per_page: "Per sida: {{value}}"
+  label_display_per_page: "Per sida: %{value}"
   label_age: Ã…lder
   label_change_properties: Ändra inställningar
   label_general: Allmänt
@@ -803,7 +806,7 @@
   label_sort: Sortera
   label_descending: Fallande
   label_ascending: Stigande
-  label_date_from_to: Från {{start}} till {{end}}
+  label_date_from_to: Från %{start} till %{end}
   label_wiki_content_added: Wikisida tillagd
   label_wiki_content_updated: Wikisida uppdaterad
   label_group: Grupp
@@ -822,10 +825,12 @@
   label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
   label_api_access_key: API-nyckel
   label_missing_api_access_key: Saknar en API-nyckel
-  label_api_access_key_created_on: API-nyckel skapad för {{value}} sedan
+  label_api_access_key_created_on: API-nyckel skapad för %{value} sedan
   label_profile: Profil
   label_subtask_plural: Underaktiviteter
   label_project_copy_notifications: Skicka mailnotifieringar när projektet kopieras
+  label_principal_search: "Sök efter användare eller grupp:"
+  label_user_search: "Sök efter användare:"
   
   button_login: Logga in
   button_submit: Skicka
@@ -837,7 +842,7 @@
   button_create_and_continue: Skapa och fortsätt
   button_test: Testa
   button_edit: Ändra
-  button_edit_associated_wikipage: "Ändra associerad Wikisida: {{page_title}}"
+  button_edit_associated_wikipage: "Ändra associerad Wikisida: %{page_title}"
   button_add: Lägg till
   button_change: Ändra
   button_apply: Verkställ
@@ -886,54 +891,54 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 betyder ingen gräns
   text_project_destroy_confirmation: Är du säker på att du vill ta bort detta projekt och all relaterad data?
-  text_subprojects_destroy_warning: "Alla underprojekt: {{value}} kommer också tas bort."
+  text_subprojects_destroy_warning: "Alla underprojekt: %{value} kommer också tas bort."
   text_workflow_edit: Välj en roll och en ärendetyp för att ändra arbetsflöde
   text_are_you_sure: Är du säker ?
   text_are_you_sure_with_children: Ta bort ärende och alla underärenden?
-  text_journal_changed: "{{label}} ändrad från {{old}} till {{new}}"
-  text_journal_set_to: "{{label}} satt till {{value}}"
-  text_journal_deleted: "{{label}} borttagen ({{old}})"
-  text_journal_added: "{{label}} {{value}} tillagd"
-  text_tip_issue_begin_day: arbetsuppgift som börjar denna dag
-  text_tip_issue_end_day: arbetsuppgift som slutar denna dag
-  text_tip_issue_begin_end_day: arbetsuppgift börjar och slutar denna dag
+  text_journal_changed: "%{label} ändrad från %{old} till %{new}"
+  text_journal_set_to: "%{label} satt till %{value}"
+  text_journal_deleted: "%{label} borttagen (%{old})"
+  text_journal_added: "%{label} %{value} tillagd"
+  text_tip_issue_begin_day: ärende som börjar denna dag
+  text_tip_issue_end_day: ärende som slutar denna dag
+  text_tip_issue_begin_end_day: ärende som börjar och slutar denna dag
   text_project_identifier_info: 'Små bokstäver (a-z), siffror och streck tillåtna.<br />När den är sparad kan identifieraren inte ändras.'
-  text_caracters_maximum: "max {{count}} tecken."
-  text_caracters_minimum: "Måste vara minst {{count}} tecken lång."
-  text_length_between: "Längd mellan {{min}} och {{max}} tecken."
+  text_caracters_maximum: "max %{count} tecken."
+  text_caracters_minimum: "Måste vara minst %{count} tecken lång."
+  text_length_between: "Längd mellan %{min} och %{max} tecken."
   text_tracker_no_workflow: Inget arbetsflöde definerat för denna ärendetyp
   text_unallowed_characters: Otillåtna tecken
   text_comma_separated: Flera värden tillåtna (kommaseparerade).
   text_line_separated: Flera värden tillåtna (ett värde per rad).
   text_issues_ref_in_commit_messages: Referera och fixa ärenden i commit-meddelanden
-  text_issue_added: "Ärende {{id}} har rapporterats (av {{author}})."
-  text_issue_updated: "Ärende {{id}} har uppdaterats (av {{author}})."
+  text_issue_added: "Ärende %{id} har rapporterats (av %{author})."
+  text_issue_updated: "Ärende %{id} har uppdaterats (av %{author})."
   text_wiki_destroy_confirmation: Är du säker på att du vill ta bort denna wiki och allt dess innehåll ?
-  text_issue_category_destroy_question: "Några ärenden ({{count}}) är tilldelade till denna kategori. Vad vill du göra ?"
+  text_issue_category_destroy_question: "Några ärenden (%{count}) är tilldelade till denna kategori. Vad vill du göra ?"
   text_issue_category_destroy_assignments: Ta bort kategoritilldelningar
   text_issue_category_reassign_to: Återtilldela ärenden till denna kategori
   text_user_mail_option: "För omarkerade projekt kommer du bara bli underrättad om saker du bevakar eller är inblandad i (T.ex. ärenden du skapat eller tilldelats)."
   text_no_configuration_data: "Roller, ärendetyper, ärendestatus och arbetsflöden har inte konfigurerats ännu.\nDet rekommenderas att läsa in standardkonfigurationen. Du kommer att kunna göra ändringar efter att den blivit inläst."
   text_load_default_configuration: Läs in standardkonfiguration
-  text_status_changed_by_changeset: "Tilldelad i changeset {{value}}."
+  text_status_changed_by_changeset: "Tilldelad i changeset %{value}."
   text_issues_destroy_confirmation: 'Är du säker på att du vill radera markerade ärende(n) ?'
   text_select_project_modules: 'Välj vilka moduler som ska vara aktiva för projektet:'
   text_default_administrator_account_changed: Standardadministratörens konto ändrat
   text_file_repository_writable: Arkivet för bifogade filer är skrivbart
   text_plugin_assets_writable: Arkivet för plug-ins är skrivbart
   text_rmagick_available: RMagick tillgängligt (ej obligatoriskt)
-  text_destroy_time_entries_question: "{{hours}} timmar har rapporterats på ärendena du är på väg att ta bort. Vad vill du göra ?"
+  text_destroy_time_entries_question: "%{hours} timmar har rapporterats på ärendena du är på väg att ta bort. Vad vill du göra ?"
   text_destroy_time_entries: Ta bort rapporterade timmar
   text_assign_time_entries_to_project: Tilldela rapporterade timmar till projektet
   text_reassign_time_entries: 'Återtilldela rapporterade timmar till detta ärende:'
-  text_user_wrote: "{{value}} skrev:"
-  text_enumeration_destroy_question: "{{count}} objekt är tilldelade till detta värde."
+  text_user_wrote: "%{value} skrev:"
+  text_enumeration_destroy_question: "%{count} objekt är tilldelade till detta värde."
   text_enumeration_category_reassign_to: 'Återtilldela till detta värde:'
   text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/email.yml och starta om applikationen för att aktivera dem."
-  text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller emailadress i både Redmine och versionsarkivet mappas automatiskt."
+  text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller mailadress i både Redmine och versionsarkivet mappas automatiskt."
   text_diff_truncated: '... Denna diff har förminskats eftersom den överskrider den maximala storlek som kan visas.'
   text_custom_field_possible_values_info: 'Ett värde per rad'
-  text_wiki_page_destroy_question: Denna sida har {{descendants}} underliggande sidor. Vad vill du göra?
+  text_wiki_page_destroy_question: Denna sida har %{descendants} underliggande sidor. Vad vill du göra?
   text_wiki_page_nullify_children: Behåll undersidor som rotsidor
   text_wiki_page_destroy_children: Ta bort alla underliggande sidor
   text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
@@ -967,8 +972,8 @@
   enumeration_doc_categories: Dokumentkategorier
   enumeration_activities: Aktiviteter (tidsuppföljning)
   enumeration_system_activity: Systemaktivitet
-  field_start_date: Start date
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/th.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/th.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number:
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "ไม่อยู่ในรายà¸à¸²à¸£"
         exclusion: "ถูà¸à¸ªà¸‡à¸§à¸™à¹„ว้"
@@ -106,11 +110,11 @@
         taken: "ถูà¸à¹ƒà¸Šà¹‰à¹„ปà¹à¸¥à¹‰à¸§"
         not_a_number: "ไม่ใช่ตัวเลข"
         not_a_date: "ไม่ใช่วันที่ ที่ถูà¸à¸•้อง"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "ต้องมาà¸à¸à¸§à¹ˆà¸²à¸§à¸±à¸™à¹€à¸£à¸´à¹ˆà¸¡"
@@ -147,31 +151,31 @@
   notice_file_not_found: หน้าที่คุณต้องà¸à¸²à¸£à¸”ูไม่มีอยู่จริง หรือถูà¸à¸¥à¸šà¹„ปà¹à¸¥à¹‰à¸§.
   notice_locking_conflict: ข้อมูลถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดยผู้ใช้คนอื่น.
   notice_not_authorized: คุณไม่มีสิทธิเข้าถึงหน้านี้.
-  notice_email_sent: "อีเมล์ได้ถูà¸à¸ªà¹ˆà¸‡à¸–ึง {{value}}"
-  notice_email_error: "เà¸à¸´à¸”ความผิดพลาดขณะà¸à¸³à¸ªà¹ˆà¸‡à¸­à¸µà¹€à¸¡à¸¥à¹Œ ({{value}})"
+  notice_email_sent: "อีเมล์ได้ถูà¸à¸ªà¹ˆà¸‡à¸–ึง %{value}"
+  notice_email_error: "เà¸à¸´à¸”ความผิดพลาดขณะà¸à¸³à¸ªà¹ˆà¸‡à¸­à¸µà¹€à¸¡à¸¥à¹Œ (%{value})"
   notice_feeds_access_key_reseted: RSS access key ของคุณถูภreset à¹à¸¥à¹‰à¸§.
-  notice_failed_to_save_issues: "{{count}} ปัà¸à¸«à¸²à¸ˆà¸²à¸ {{total}} ปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸à¹„ม่สามารถจัดเà¸à¹‡à¸š: {{ids}}."
+  notice_failed_to_save_issues: "%{count} ปัà¸à¸«à¸²à¸ˆà¸²à¸ %{total} ปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸à¹„ม่สามารถจัดเà¸à¹‡à¸š: %{ids}."
   notice_no_issue_selected: "ไม่มีปัà¸à¸«à¸²à¸—ี่ถูà¸à¹€à¸¥à¸·à¸­à¸! à¸à¸£à¸¸à¸“าเลือà¸à¸›à¸±à¸à¸«à¸²à¸—ี่คุณต้องà¸à¸²à¸£à¹à¸à¹‰à¹„ข."
   notice_account_pending: "บัà¸à¸Šà¸µà¸‚องคุณสร้างเสร็จà¹à¸¥à¹‰à¸§ ขณะนี้รอà¸à¸²à¸£à¸­à¸™à¸¸à¸¡à¸±à¸•ิจาà¸à¸œà¸¹à¹‰à¸šà¸£à¸´à¸«à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£."
   notice_default_data_loaded: ค่าเริ่มต้นโหลดเสร็จà¹à¸¥à¹‰à¸§.
   
-  error_can_t_load_default_data: "ค่าเริ่มต้นโหลดไม่สำเร็จ: {{value}}"
+  error_can_t_load_default_data: "ค่าเริ่มต้นโหลดไม่สำเร็จ: %{value}"
   error_scm_not_found: "ไม่พบรุ่นที่ต้องà¸à¸²à¸£à¹ƒà¸™à¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ."
-  error_scm_command_failed: "เà¸à¸´à¸”ความผิดพลาดในà¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ: {{value}}"
+  error_scm_command_failed: "เà¸à¸´à¸”ความผิดพลาดในà¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸•้นฉบับ: %{value}"
   error_scm_annotate: "entry ไม่มีอยู่จริง หรือไม่สามารถเขียนหมายเหตุประà¸à¸­à¸š."
   error_issue_not_found_in_project: 'ไม่พบปัà¸à¸«à¸²à¸™à¸µà¹‰ หรือปัà¸à¸«à¸²à¹„ม่ได้อยู่ในโครงà¸à¸²à¸£à¸™à¸µà¹‰'
   
-  mail_subject_lost_password: "รหัสผ่าน {{value}} ของคุณ"
+  mail_subject_lost_password: "รหัสผ่าน %{value} ของคุณ"
   mail_body_lost_password: 'คลิ๊à¸à¸—ี่ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่าน:'
-  mail_subject_register: "เปิดบัà¸à¸Šà¸µ {{value}} ของคุณ"
+  mail_subject_register: "เปิดบัà¸à¸Šà¸µ %{value} ของคุณ"
   mail_body_register: 'คลิ๊à¸à¸—ี่ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่าน:'
-  mail_body_account_information_external: "คุณสามารถใช้บัà¸à¸Šà¸µ {{value}} เพื่อเข้าสู่ระบบ."
+  mail_body_account_information_external: "คุณสามารถใช้บัà¸à¸Šà¸µ %{value} เพื่อเข้าสู่ระบบ."
   mail_body_account_information: ข้อมูลบัà¸à¸Šà¸µà¸‚องคุณ
-  mail_subject_account_activation_request: "à¸à¸£à¸¸à¸“าเปิดบัà¸à¸Šà¸µ {{value}}"
-  mail_body_account_activation_request: "ผู้ใช้ใหม่ ({{value}}) ได้ลงทะเบียน. บัà¸à¸Šà¸µà¸‚องเขาà¸à¸³à¸¥à¸±à¸‡à¸£à¸­à¸­à¸™à¸¸à¸¡à¸±à¸•ิ:"
+  mail_subject_account_activation_request: "à¸à¸£à¸¸à¸“าเปิดบัà¸à¸Šà¸µ %{value}"
+  mail_body_account_activation_request: "ผู้ใช้ใหม่ (%{value}) ได้ลงทะเบียน. บัà¸à¸Šà¸µà¸‚องเขาà¸à¸³à¸¥à¸±à¸‡à¸£à¸­à¸­à¸™à¸¸à¸¡à¸±à¸•ิ:"
   
   gui_validation_error: 1 ข้อผิดพลาด
-  gui_validation_error_plural: "{{count}} ข้อผิดพลาด"
+  gui_validation_error_plural: "%{count} ข้อผิดพลาด"
   
   field_name: ชื่อ
   field_description: รายละเอียด
@@ -233,6 +237,7 @@
   field_attr_lastname: นามสà¸à¸¸à¸¥ attribute
   field_attr_mail: อีเมล์ attribute
   field_onthefly: สร้างผู้ใช้ทันที
+  field_start_date: เริ่ม
   field_done_ratio: % สำเร็จ
   field_auth_source: วิธีà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸•ัวตน
   field_hide_mail: ซ่อนอีเมล์ของฉัน
@@ -306,14 +311,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: โครงà¸à¸²à¸£à¸—ั้งหมด
   label_project_latest: โครงà¸à¸²à¸£à¸¥à¹ˆà¸²à¸ªà¸¸à¸”
   label_issue: ปัà¸à¸«à¸²
   label_issue_new: ปัà¸à¸«à¸²à¹ƒà¸«à¸¡à¹ˆ
   label_issue_plural: ปัà¸à¸«à¸²
   label_issue_view_all: ดูปัà¸à¸«à¸²à¸—ั้งหมด
-  label_issues_by: "ปัà¸à¸«à¸²à¹‚ดย {{value}}"
+  label_issues_by: "ปัà¸à¸«à¸²à¹‚ดย %{value}"
   label_issue_added: ปัà¸à¸«à¸²à¸–ูà¸à¹€à¸žà¸´à¹ˆà¸¡
   label_issue_updated: ปัà¸à¸«à¸²à¸–ูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡
   label_document: เอà¸à¸ªà¸²à¸£
@@ -381,8 +386,8 @@
   label_text: ข้อความขนาดยาว
   label_attribute: คุณลัà¸à¸©à¸“ะ
   label_attribute_plural: คุณลัà¸à¸©à¸“ะ
-  label_download: "{{count}} ดาวน์โหลด"
-  label_download_plural: "{{count}} ดาวน์โหลด"
+  label_download: "%{count} ดาวน์โหลด"
+  label_download_plural: "%{count} ดาวน์โหลด"
   label_no_data: จำนวนข้อมูลที่à¹à¸ªà¸”ง
   label_change_status: เปลี่ยนสถานะ
   label_history: ประวัติ
@@ -413,17 +418,17 @@
   label_closed_issues: ปิด
   label_closed_issues_plural: ปิด
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: จำนวนรวม
   label_permissions: สิทธิ
   label_current_status: สถานะปัจจุบัน
@@ -441,7 +446,7 @@
   label_months_from: เดือนจาà¸
   label_gantt: Gantt
   label_internal: ภายใน
-  label_last_changes: "last {{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_last_changes: "last %{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
   label_change_view_all: ดูà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ั้งหมด
   label_personalize_page: ปรับà¹à¸•่งหน้านี้
   label_comment: ความเห็น
@@ -449,7 +454,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: เพิ่มความเห็น
   label_comment_added: ความเห็นถูà¸à¹€à¸žà¸´à¹ˆà¸¡
   label_comment_delete: ลบความเห็น
@@ -468,7 +473,7 @@
   label_yesterday: เมื่อวาน
   label_this_week: อาทิตย์นี้
   label_last_week: อาทิตย์ที่à¹à¸¥à¹‰à¸§
-  label_last_n_days: "{{count}} วันย้อนหลัง"
+  label_last_n_days: "%{count} วันย้อนหลัง"
   label_this_month: เดือนนี้
   label_last_month: เดือนที่à¹à¸¥à¹‰à¸§
   label_this_year: ปีนี้
@@ -482,8 +487,8 @@
   label_repository: ที่เà¸à¹‡à¸šà¸•้นฉบับ
   label_repository_plural: ที่เà¸à¹‡à¸šà¸•้นฉบับ
   label_browse: เปิดหา
-  label_modification: "{{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
-  label_modification_plural: "{{count}} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_modification: "%{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
+  label_modification_plural: "%{count} เปลี่ยนà¹à¸›à¸¥à¸‡"
   label_revision: à¸à¸²à¸£à¹à¸à¹‰à¹„ข
   label_revision_plural: à¸à¸²à¸£à¹à¸à¹‰à¹„ข
   label_associated_revisions: à¸à¸²à¸£à¹à¸à¹‰à¹„ขที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง
@@ -499,8 +504,8 @@
   label_sort_lower: ย้ายลง
   label_sort_lowest: ย้ายไปล่างสุด
   label_roadmap: à¹à¸œà¸™à¸‡à¸²à¸™
-  label_roadmap_due_in: "ถึงà¸à¸³à¸«à¸™à¸”ใน {{value}}"
-  label_roadmap_overdue: "{{value}} ช้าà¸à¸§à¹ˆà¸²à¸à¸³à¸«à¸™à¸”"
+  label_roadmap_due_in: "ถึงà¸à¸³à¸«à¸™à¸”ใน %{value}"
+  label_roadmap_overdue: "%{value} ช้าà¸à¸§à¹ˆà¸²à¸à¸³à¸«à¸™à¸”"
   label_roadmap_no_issues: ไม่มีปัà¸à¸«à¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¸™à¸µà¹‰
   label_search: ค้นหา
   label_result_plural: ผลà¸à¸²à¸£à¸„้นหา
@@ -518,8 +523,8 @@
   label_changes_details: รายละเอียดà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ั้งหมด
   label_issue_tracking: ติดตามปัà¸à¸«à¸²
   label_spent_time: เวลาที่ใช้
-  label_f_hour: "{{value}} ชั่วโมง"
-  label_f_hour_plural: "{{value}} ชั่วโมง"
+  label_f_hour: "%{value} ชั่วโมง"
+  label_f_hour_plural: "%{value} ชั่วโมง"
   label_time_tracking: ติดตามà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹€à¸§à¸¥à¸²
   label_change_plural: เปลี่ยนà¹à¸›à¸¥à¸‡
   label_statistics: สถิติ
@@ -567,12 +572,12 @@
   label_date_from: จาà¸
   label_date_to: ถึง
   label_language_based: ขึ้นอยู่à¸à¸±à¸šà¸ à¸²à¸©à¸²à¸‚องผู้ใช้
-  label_sort_by: "เรียงโดย {{value}}"
+  label_sort_by: "เรียงโดย %{value}"
   label_send_test_email: ส่งจดหมายทดสอบ
-  label_feeds_access_key_created_on: "RSS access key สร้างเมื่อ {{value}} ที่ผ่านมา"
+  label_feeds_access_key_created_on: "RSS access key สร้างเมื่อ %{value} ที่ผ่านมา"
   label_module_plural: ส่วนประà¸à¸­à¸š
-  label_added_time_by: "เพิ่มโดย {{author}} {{age}} ที่ผ่านมา"
-  label_updated_time: "ปรับปรุง {{value}} ที่ผ่านมา"
+  label_added_time_by: "เพิ่มโดย %{author} %{age} ที่ผ่านมา"
+  label_updated_time: "ปรับปรุง %{value} ที่ผ่านมา"
   label_jump_to_a_project: ไปที่โครงà¸à¸²à¸£...
   label_file_plural: à¹à¸Ÿà¹‰à¸¡
   label_changeset_plural: à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡
@@ -588,7 +593,7 @@
   label_registration_activation_by_email: เปิดบัà¸à¸Šà¸µà¸œà¹ˆà¸²à¸™à¸­à¸µà¹€à¸¡à¸¥à¹Œ
   label_registration_manual_activation: อนุมัติโดยผู้บริหารจัดà¸à¸²à¸£
   label_registration_automatic_activation: เปิดบัà¸à¸Šà¸µà¸­à¸±à¸•โนมัติ
-  label_display_per_page: "ต่อหน้า: {{value}}"
+  label_display_per_page: "ต่อหน้า: %{value}"
   label_age: อายุ
   label_change_properties: เปลี่ยนคุณสมบัติ
   label_general: ทั่วๆ ไป
@@ -650,36 +655,36 @@
   text_regexp_info: ตัวอย่าง ^[A-Z0-9]+$
   text_min_max_length_info: 0 หมายถึงไม่จำà¸à¸±à¸”
   text_project_destroy_confirmation: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หมว่าต้องà¸à¸²à¸£à¸¥à¸šà¹‚ครงà¸à¸²à¸£à¹à¸¥à¸°à¸‚้อมูลที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้่อง ?
-  text_subprojects_destroy_warning: "โครงà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢: {{value}} จะถูà¸à¸¥à¸šà¸”้วย."
+  text_subprojects_destroy_warning: "โครงà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢: %{value} จะถูà¸à¸¥à¸šà¸”้วย."
   text_workflow_edit: เลือà¸à¸šà¸—บาทà¹à¸¥à¸°à¸à¸²à¸£à¸•ิดตาม เพื่อà¹à¸à¹‰à¹„ขลำดับงาน
   text_are_you_sure: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หม ?
   text_tip_issue_begin_day: งานที่เริ่มวันนี้
   text_tip_issue_end_day: งานที่จบวันนี้
   text_tip_issue_begin_end_day: งานที่เริ่มà¹à¸¥à¸°à¸ˆà¸šà¸§à¸±à¸™à¸™à¸µà¹‰
   text_project_identifier_info: 'ภาษาอังà¸à¸¤à¸©à¸•ัวเล็à¸(a-z), ตัวเลข(0-9) à¹à¸¥à¸°à¸‚ีด (-) เท่านั้น.<br />เมื่อจัดเà¸à¹‡à¸šà¹à¸¥à¹‰à¸§, ชื่อเฉพาะไม่สามารถเปลี่ยนà¹à¸›à¸¥à¸‡à¹„ด้'
-  text_caracters_maximum: "สูงสุด {{count}} ตัวอัà¸à¸©à¸£."
-  text_caracters_minimum: "ต้องยาวอย่างน้อย {{count}} ตัวอัà¸à¸©à¸£."
-  text_length_between: "ความยาวระหว่าง {{min}} ถึง {{max}} ตัวอัà¸à¸©à¸£."
+  text_caracters_maximum: "สูงสุด %{count} ตัวอัà¸à¸©à¸£."
+  text_caracters_minimum: "ต้องยาวอย่างน้อย %{count} ตัวอัà¸à¸©à¸£."
+  text_length_between: "ความยาวระหว่าง %{min} ถึง %{max} ตัวอัà¸à¸©à¸£."
   text_tracker_no_workflow: ไม่ได้บัà¸à¸à¸±à¸•ิลำดับงานสำหรับà¸à¸²à¸£à¸•ิดตามนี้
   text_unallowed_characters: ตัวอัà¸à¸©à¸£à¸•้องห้าม
   text_comma_separated: ใส่ได้หลายค่า โดยคั่นด้วยลูà¸à¸™à¹‰à¸³( ,).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "ปัà¸à¸«à¸² {{id}} ถูà¸à¹à¸ˆà¹‰à¸‡à¹‚ดย {{author}}."
-  text_issue_updated: "ปัà¸à¸«à¸² {{id}} ถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดย {{author}}."
+  text_issue_added: "ปัà¸à¸«à¸² %{id} ถูà¸à¹à¸ˆà¹‰à¸‡à¹‚ดย %{author}."
+  text_issue_updated: "ปัà¸à¸«à¸² %{id} ถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¹‚ดย %{author}."
   text_wiki_destroy_confirmation: คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸¥à¸š wiki นี้พร้อมทั้งเนี้อหา?
-  text_issue_category_destroy_question: "บางปัà¸à¸«à¸² ({{count}}) อยู่ในประเภทนี้. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร ?"
+  text_issue_category_destroy_question: "บางปัà¸à¸«à¸² (%{count}) อยู่ในประเภทนี้. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร ?"
   text_issue_category_destroy_assignments: ลบประเภทนี้
   text_issue_category_reassign_to: ระบุปัà¸à¸«à¸²à¹ƒà¸™à¸›à¸£à¸°à¹€à¸ à¸—นี้
   text_user_mail_option: "ในโครงà¸à¸²à¸£à¸—ี่ไม่ได้เลือà¸, คุณจะได้รับà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸ªà¸´à¹ˆà¸‡à¸—ี่คุณเà¸à¹‰à¸²à¸”ูหรือมีส่วนเà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง (เช่นปัà¸à¸«à¸²à¸—ี่คุณà¹à¸ˆà¹‰à¸‡à¹„ว้หรือได้รับมอบหมาย)."
   text_no_configuration_data: "บทบาท, à¸à¸²à¸£à¸•ิดตาม, สถานะปัà¸à¸«à¸² à¹à¸¥à¸°à¸¥à¸³à¸”ับงานยังไม่ได้ถูà¸à¸•ั้งค่า.\nขอà¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¹‚หลดค่าเริ่มต้น. คุณสามารถà¹à¸à¹‰à¹„ขค่าได้หลังจาà¸à¹‚หลดà¹à¸¥à¹‰à¸§."
   text_load_default_configuration: โหลดค่าเริ่มต้น
-  text_status_changed_by_changeset: "ประยุà¸à¸•์ใช้ในà¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡ {{value}}."
+  text_status_changed_by_changeset: "ประยุà¸à¸•์ใช้ในà¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡ %{value}."
   text_issues_destroy_confirmation: 'คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¹„หมว่าต้องà¸à¸²à¸£à¸¥à¸šà¸›à¸±à¸à¸«à¸²(ทั้งหลาย)ที่เลือà¸à¹„ว้?'
   text_select_project_modules: 'เลือà¸à¸ªà¹ˆà¸§à¸™à¸›à¸£à¸°à¸à¸­à¸šà¸—ี่ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹‚ครงà¸à¸²à¸£à¸™à¸µà¹‰:'
   text_default_administrator_account_changed: ค่าเริ่มต้นของบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¸šà¸£à¸´à¸«à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£à¸–ูà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡
   text_file_repository_writable: ที่เà¸à¹‡à¸šà¸•้นฉบับสามารถเขียนได้
   text_rmagick_available: RMagick มีให้ใช้ (เป็นตัวเลือà¸)
-  text_destroy_time_entries_question: "{{hours}} ชั่วโมงที่ถูà¸à¹à¸ˆà¹‰à¸‡à¹ƒà¸™à¸›à¸±à¸à¸«à¸²à¸™à¸µà¹‰à¸ˆà¸°à¹‚ดนลบ. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร?"
+  text_destroy_time_entries_question: "%{hours} ชั่วโมงที่ถูà¸à¹à¸ˆà¹‰à¸‡à¹ƒà¸™à¸›à¸±à¸à¸«à¸²à¸™à¸µà¹‰à¸ˆà¸°à¹‚ดนลบ. คุณต้องà¸à¸²à¸£à¸—ำอย่างไร?"
   text_destroy_time_entries: ลบเวลาที่รายงานไว้
   text_assign_time_entries_to_project: ระบุเวลาที่ใช้ในโครงà¸à¸²à¸£à¸™à¸µà¹‰
   text_reassign_time_entries: 'ระบุเวลาที่ใช้ในโครงà¸à¸²à¸£à¸™à¸µà¹ˆà¸­à¸µà¸à¸„รั้ง:'
@@ -709,14 +714,14 @@
   enumeration_issue_priorities: ความสำคัà¸à¸‚องปัà¸à¸«à¸²
   enumeration_doc_categories: ประเภทเอà¸à¸ªà¸²à¸£
   enumeration_activities: à¸à¸´à¸ˆà¸à¸£à¸£à¸¡ (ใช้ในà¸à¸²à¸£à¸•ิดตามเวลา)
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  text_user_wrote: "{{value}} wrote:"
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  text_user_wrote: "%{value} 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: "{{count}} objects are assigned to this value."
+  text_enumeration_destroy_question: "%{count} 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
@@ -782,12 +787,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -802,21 +807,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -824,14 +829,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -866,9 +871,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -895,12 +900,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -908,7 +913,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -919,8 +924,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/tr.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/tr.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -37,38 +37,38 @@
       less_than_x_seconds:
         zero: '1 saniyeden az'
         one: '1 saniyeden az'
-        other: '{{count}} saniyeden az'
+        other: '%{count} saniyeden az'
       x_seconds:
         one: '1 saniye'
-        other: '{{count}} saniye'
+        other: '%{count} saniye'
       less_than_x_minutes:
         zero: '1 dakikadan az'
         one: '1 dakikadan az'
-        other: '{{count}} dakikadan az'
+        other: '%{count} dakikadan az'
       x_minutes:
         one: '1 dakika'
-        other: '{{count}} dakika'
+        other: '%{count} dakika'
       about_x_hours:
         one: '1 saat civarında'
-        other: '{{count}} saat civarında'
+        other: '%{count} saat civarında'
       x_days:
         one: '1 gün'
-        other: '{{count}} gün'
+        other: '%{count} gün'
       about_x_months:
         one: '1 ay civarında'
-        other: '{{count}} ay civarında'
+        other: '%{count} ay civarında'
       x_months:
         one: '1 ay'
-        other: '{{count}} ay'
+        other: '%{count} ay'
       about_x_years:
         one: '1 yıl civarında'
-        other: '{{count}} yıl civarında'
+        other: '%{count} yıl civarında'
       over_x_years:
         one: '1 yıldan fazla'
-        other: '{{count}} yıldan fazla'
+        other: '%{count} yıldan fazla'
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
       
   number:
     format:
@@ -116,8 +116,8 @@
     errors:
       template:
         header:
-          one:    "{{model}} giriÅŸi kaydedilemedi: 1 hata."
-          other:  "{{model}} giriÅŸi kadedilemedi: {{count}} hata."
+          one:    "%{model} giriÅŸi kaydedilemedi: 1 hata."
+          other:  "%{model} giriÅŸi kadedilemedi: %{count} hata."
         body: "Lütfen aşağıdaki hataları düzeltiniz:"
 
       messages:
@@ -128,16 +128,16 @@
         accepted: "kabul edilmeli"
         empty: "doldurulmalı"
         blank: "doldurulmalı"
-        too_long: "çok uzun (en fazla {{count}} karakter)"
-        too_short: "çok kısa (en az {{count}} karakter)"
-        wrong_length: "yanlış uzunlukta (tam olarak {{count}} karakter olmalı)"
+        too_long: "çok uzun (en fazla %{count} karakter)"
+        too_short: "çok kısa (en az %{count} karakter)"
+        wrong_length: "yanlış uzunlukta (tam olarak %{count} karakter olmalı)"
         taken: "hali hazırda kullanılmakta"
         not_a_number: "geçerli bir sayı değil"
-        greater_than: "{{count}} sayısından büyük olmalı"
-        greater_than_or_equal_to: "{{count}} sayısına eşit veya büyük olmalı"
-        equal_to: "tam olarak {{count}} olmalı"
-        less_than: "{{count}} sayısından küçük olmalı"
-        less_than_or_equal_to: "{{count}} sayısına eşit veya küçük olmalı"
+        greater_than: "%{count} sayısından büyük olmalı"
+        greater_than_or_equal_to: "%{count} sayısına eşit veya büyük olmalı"
+        equal_to: "tam olarak %{count} olmalı"
+        less_than: "%{count} sayısından küçük olmalı"
+        less_than_or_equal_to: "%{count} sayısına eşit veya küçük olmalı"
         odd: "tek olmalı"
         even: "çift olmalı"
         greater_than_start_date: "başlangıç tarihinden büyük olmalı"
@@ -174,31 +174,31 @@
   notice_file_not_found: Erişmek istediğiniz sayfa mevcut değil ya da kaldırılmış.
   notice_locking_conflict: Veri başka bir kullanıcı tarafından güncellendi.
   notice_not_authorized: Bu sayfaya eriÅŸme yetkiniz yok.
-  notice_email_sent: "E-posta gönderildi {{value}}"
-  notice_email_error: "E-posta gönderilirken bir hata oluştu ({{value}})"
+  notice_email_sent: "E-posta gönderildi %{value}"
+  notice_email_error: "E-posta gönderilirken bir hata oluştu (%{value})"
   notice_feeds_access_key_reseted: RSS erişim anahtarınız sıfırlandı.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
   notice_no_issue_selected: "Seçili ileti yok! Lütfen, düzenlemek istediğiniz iletileri işaretleyin."
   notice_account_pending: "Hesabınız oluşturuldu ve yönetici onayı bekliyor."
   notice_default_data_loaded: Varasayılan konfigürasyon başarılıyla yüklendi.
   
-  error_can_t_load_default_data: "Varsayılan konfigürasyon yüklenemedi: {{value}}"
+  error_can_t_load_default_data: "Varsayılan konfigürasyon yüklenemedi: %{value}"
   error_scm_not_found: "Depoda, giriÅŸ ya da revizyon yok."
-  error_scm_command_failed: "Depoya erişmeye çalışırken bir hata meydana geldi: {{value}}"
+  error_scm_command_failed: "Depoya erişmeye çalışırken bir hata meydana geldi: %{value}"
   error_scm_annotate: "GiriÅŸ mevcut deÄŸil veya izah edilemedi."
   error_issue_not_found_in_project: 'İleti bilgisi bulunamadı veya bu projeye ait değil'
   
-  mail_subject_lost_password: "Parolanız {{value}}"
+  mail_subject_lost_password: "Parolanız %{value}"
   mail_body_lost_password: 'Parolanızı değiştirmek için, aşağıdaki bağlantıya tıklayın:'
-  mail_subject_register: "Your {{value}} hesap aktivasyonu"
+  mail_subject_register: "Your %{value} hesap aktivasyonu"
   mail_body_register: 'Hesabınızı etkinleştirmek için, aşağıdaki bağlantıya tıklayın:'
-  mail_body_account_information_external: "Hesabınızı {{value}} giriş yapmak için kullanabilirsiniz."
+  mail_body_account_information_external: "Hesabınızı %{value} giriş yapmak için kullanabilirsiniz."
   mail_body_account_information: Hesap bilgileriniz
-  mail_subject_account_activation_request: "{{value}} hesabı etkinleştirme isteği"
-  mail_body_account_activation_request: "Yeni bir kullanıcı ({{value}}) kaydedildi. Hesap onaylanmayı bekliyor:"
+  mail_subject_account_activation_request: "%{value} hesabı etkinleştirme isteği"
+  mail_body_account_activation_request: "Yeni bir kullanıcı (%{value}) kaydedildi. Hesap onaylanmayı bekliyor:"
   
   gui_validation_error: 1 hata
-  gui_validation_error_plural: "{{count}} hata"
+  gui_validation_error_plural: "%{count} hata"
   
   field_name: İsim
   field_description: Açıklama
@@ -260,6 +260,7 @@
   field_attr_lastname: Soyad NiteliÄŸi
   field_attr_mail: E-Posta NiteliÄŸi
   field_onthefly: Anında kullanıcı oluşturma
+  field_start_date: Başlangıç
   field_done_ratio: % tamamlandı
   field_auth_source: Kimlik Denetim Modu
   field_hide_mail: E-posta adresimi gizle
@@ -333,14 +334,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Tüm Projeler
   label_project_latest: En son projeler
   label_issue: İleti
   label_issue_new: Yeni İleti
   label_issue_plural: İletiler
   label_issue_view_all: Tüm iletileri izle
-  label_issues_by: "{{value}} tarafından gönderilmiş iletiler"
+  label_issues_by: "%{value} tarafından gönderilmiş iletiler"
   label_issue_added: İleti eklendi
   label_issue_updated: İleti güncellendi
   label_document: Belge
@@ -406,8 +407,8 @@
   label_text: Uzun Metin
   label_attribute: Nitelik
   label_attribute_plural: Nitelikler
-  label_download: "{{count}} indirilen"
-  label_download_plural: "{{count}} indirilen"
+  label_download: "%{count} indirilen"
+  label_download_plural: "%{count} indirilen"
   label_no_data: Gösterilecek veri yok
   label_change_status: DeÄŸiÅŸim Durumu
   label_history: Geçmiş
@@ -438,17 +439,17 @@
   label_closed_issues: kapalı
   label_closed_issues_plural: kapalı
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Toplam
   label_permissions: İzinler
   label_current_status: Mevcut Durum
@@ -466,7 +467,7 @@
   label_months_from: aylardan itibaren
   label_gantt: Gantt
   label_internal: Dahili
-  label_last_changes: "Son {{count}} deÄŸiÅŸiklik"
+  label_last_changes: "Son %{count} deÄŸiÅŸiklik"
   label_change_view_all: Tüm Değişiklikleri gör
   label_personalize_page: Bu sayfayı kişiselleştir
   label_comment: Açıklama
@@ -474,7 +475,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Açıklama Ekle
   label_comment_added: Açıklama Eklendi
   label_comment_delete: Açıklamaları sil
@@ -493,7 +494,7 @@
   label_yesterday: Dün
   label_this_week: Bu hafta
   label_last_week: Geçen hafta
-  label_last_n_days: "Son {{count}} gün"
+  label_last_n_days: "Son %{count} gün"
   label_this_month: Bu ay
   label_last_month: Geçen ay
   label_this_year: Bu yıl
@@ -507,8 +508,8 @@
   label_repository: Depo
   label_repository_plural: Depolar
   label_browse: Tara
-  label_modification: "{{count}} deÄŸiÅŸim"
-  label_modification_plural: "{{count}} deÄŸiÅŸim"
+  label_modification: "%{count} deÄŸiÅŸim"
+  label_modification_plural: "%{count} deÄŸiÅŸim"
   label_revision: Revizyon
   label_revision_plural: Revizyonlar
   label_associated_revisions: BirleÅŸtirilmiÅŸ revizyonlar
@@ -524,8 +525,8 @@
   label_sort_lower: Aşağı taşı
   label_sort_lowest: Dibe taşı
   label_roadmap: Yol Haritası
-  label_roadmap_due_in: "Due in {{value}}"
-  label_roadmap_overdue: "{{value}} geç"
+  label_roadmap_due_in: "Due in %{value}"
+  label_roadmap_overdue: "%{value} geç"
   label_roadmap_no_issues: Bu versiyon için ileti yok
   label_search: Ara
   label_result_plural: Sonuçlar
@@ -543,8 +544,8 @@
   label_changes_details: Bütün değişikliklerin detayları
   label_issue_tracking: İleti Takibi
   label_spent_time: Harcanan zaman
-  label_f_hour: "{{value}} saat"
-  label_f_hour_plural: "{{value}} saat"
+  label_f_hour: "%{value} saat"
+  label_f_hour_plural: "%{value} saat"
   label_time_tracking: Zaman Takibi
   label_change_plural: DeÄŸiÅŸiklikler
   label_statistics: İstatistikler
@@ -592,12 +593,12 @@
   label_date_from: Başlangıç
   label_date_to: BitiÅŸ
   label_language_based: Kullanıcı diline istinaden
-  label_sort_by: "{{value}} göre sırala"
+  label_sort_by: "%{value} göre sırala"
   label_send_test_email: Test e-postası gönder
-  label_feeds_access_key_created_on: "RSS erişim anahtarı {{value}} önce oluşturuldu"
+  label_feeds_access_key_created_on: "RSS erişim anahtarı %{value} önce oluşturuldu"
   label_module_plural: Modüller
-  label_added_time_by: "{{author}} tarafından {{age}} önce eklendi"
-  label_updated_time: "{{value}} önce güncellendi"
+  label_added_time_by: "%{author} tarafından %{age} önce eklendi"
+  label_updated_time: "%{value} önce güncellendi"
   label_jump_to_a_project: Projeye git...
   label_file_plural: Dosyalar
   label_changeset_plural: DeÄŸiÅŸiklik Listeleri
@@ -613,7 +614,7 @@
   label_registration_activation_by_email: e-posta ile hesap etkinleÅŸtirme
   label_registration_manual_activation: Elle hesap etkinleÅŸtirme
   label_registration_automatic_activation: Otomatik hesap etkinleÅŸtirme
-  label_display_per_page: "Sayfa başına: {{value}}"
+  label_display_per_page: "Sayfa başına: %{value}"
   label_age: YaÅŸ
   label_change_properties: Özellikleri değiştir
   label_general: Genel
@@ -675,36 +676,36 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 sınırlama yok demektir
   text_project_destroy_confirmation: Bu projeyi ve bağlantılı verileri silmek istediğinizden emin misiniz?
-  text_subprojects_destroy_warning: "Ayrıca {{value}} alt proje silinecek."
+  text_subprojects_destroy_warning: "Ayrıca %{value} alt proje silinecek."
   text_workflow_edit: İşakışını düzenlemek için bir rol ve takipçi seçin
   text_are_you_sure: Emin misiniz ?
   text_tip_issue_begin_day: Bugün başlayan görevler
   text_tip_issue_end_day: Bugün sona eren görevler
   text_tip_issue_begin_end_day: Bugün başlayan ve sona eren görevler
   text_project_identifier_info: 'Küçük harfler (a-z), sayılar ve noktalar kabul edilir.<br />Bir kere kaydedildiğinde,tanımlayıcı değiştirilemez.'
-  text_caracters_maximum: "En çok {{count}} karakter."
-  text_caracters_minimum: "En az {{count}} karakter uzunluğunda olmalı."
-  text_length_between: "{{min}} ve {{max}} karakterleri arasındaki uzunluk."
+  text_caracters_maximum: "En çok %{count} karakter."
+  text_caracters_minimum: "En az %{count} karakter uzunluğunda olmalı."
+  text_length_between: "%{min} ve %{max} karakterleri arasındaki uzunluk."
   text_tracker_no_workflow: Bu takipçi için işakışı tanımlanmamış
   text_unallowed_characters: Yasaklı karakterler
   text_comma_separated: Çoklu değer uygundur(Virgül ile ayrılmış).
   text_issues_ref_in_commit_messages: Teslim mesajlarındaki iletileri çözme ve başvuruda bulunma
-  text_issue_added: "İleti {{id}}, {{author}} tarafından rapor edildi."
-  text_issue_updated: "İleti {{id}}, {{author}} tarafından güncellendi."
+  text_issue_added: "İleti %{id}, %{author} tarafından rapor edildi."
+  text_issue_updated: "İleti %{id}, %{author} tarafından güncellendi."
   text_wiki_destroy_confirmation: bu wikiyi ve tüm içeriğini silmek istediğinizden emin misiniz?
-  text_issue_category_destroy_question: "Bazı iletiler ({{count}}) bu kategoriye atandı. Ne yapmak istersiniz?"
+  text_issue_category_destroy_question: "Bazı iletiler (%{count}) bu kategoriye atandı. Ne yapmak istersiniz?"
   text_issue_category_destroy_assignments: Kategori atamalarını kaldır
   text_issue_category_reassign_to: İletileri bu kategoriye tekrar ata
   text_user_mail_option: "Seçili olmayan projeler için, sadece dahil olduğunuz ya da izlediğiniz öğeler hakkında uyarılar alacaksınız (örneğin,yazarı veya atandığınız iletiler)."
   text_no_configuration_data: "Roller, takipçiler, ileti durumları ve işakışı henüz yapılandırılmadı.\nVarsayılan yapılandırılmanın yüklenmesi şiddetle tavsiye edilir. Bir kez yüklendiğinde yapılandırmayı değiştirebileceksiniz."
   text_load_default_configuration: Varsayılan yapılandırmayı yükle
-  text_status_changed_by_changeset: "Değişiklik listesi {{value}} içinde uygulandı."
+  text_status_changed_by_changeset: "Değişiklik listesi %{value} içinde uygulandı."
   text_issues_destroy_confirmation: 'Seçili iletileri silmek istediğinizden emin misiniz ?'
   text_select_project_modules: 'Bu proje için etkinleştirmek istediğiniz modülleri seçin:'
   text_default_administrator_account_changed: Varsayılan yönetici hesabı değişti
   text_file_repository_writable: Dosya deposu yazılabilir
   text_rmagick_available: RMagick Kullanılabilir (isteğe bağlı)
-  text_destroy_time_entries_question: Silmek üzere olduğunuz iletiler üzerine {{hours}} saat raporlandı.Ne yapmak istersiniz ?
+  text_destroy_time_entries_question: Silmek üzere olduğunuz iletiler üzerine %{hours} saat raporlandı.Ne yapmak istersiniz ?
   text_destroy_time_entries: Raporlanmış saatleri sil
   text_assign_time_entries_to_project: Raporlanmış saatleri projeye ata
   text_reassign_time_entries: 'Raporlanmış saatleri bu iletiye tekrar ata:'
@@ -743,13 +744,13 @@
   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."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   label_issue_watchers: Watchers
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
   label_duplicated_by: duplicated by
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
-  text_user_wrote: "{{value}} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
   setting_mail_handler_api_enabled: Enable WS for incoming emails
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
   setting_mail_handler_api_key: API key
   setting_commit_logs_encoding: Commit messages encoding
   general_csv_decimal_separator: '.'
@@ -808,12 +809,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -828,21 +829,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -854,10 +855,10 @@
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -892,9 +893,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -921,12 +922,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -934,7 +935,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -945,8 +946,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/uk.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/uk.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -32,37 +32,37 @@
       half_a_minute: "half a minute"
       less_than_x_seconds:
         one:   "less than 1 second"
-        other: "less than {{count}} seconds"
+        other: "less than %{count} seconds"
       x_seconds:
         one:   "1 second"
-        other: "{{count}} seconds"
+        other: "%{count} seconds"
       less_than_x_minutes:
         one:   "less than a minute"
-        other: "less than {{count}} minutes"
+        other: "less than %{count} minutes"
       x_minutes:
         one:   "1 minute"
-        other: "{{count}} minutes"
+        other: "%{count} minutes"
       about_x_hours:
         one:   "about 1 hour"
-        other: "about {{count}} hours"
+        other: "about %{count} hours"
       x_days:
         one:   "1 day"
-        other: "{{count}} days"
+        other: "%{count} days"
       about_x_months:
         one:   "about 1 month"
-        other: "about {{count}} months"
+        other: "about %{count} months"
       x_months:
         one:   "1 month"
-        other: "{{count}} months"
+        other: "%{count} months"
       about_x_years:
         one:   "about 1 year"
-        other: "about {{count}} years"
+        other: "about %{count} years"
       over_x_years:
         one:   "over 1 year"
-        other: "over {{count}} years"
+        other: "over %{count} years"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
 
   number: 
     format:
@@ -92,6 +92,10 @@
       
   activerecord:
     errors:
+      template:
+        header:
+          one:    "1 error prohibited this %{model} from being saved"
+          other:  "%{count} errors prohibited this %{model} from being saved"
       messages:
         inclusion: "немає в ÑпиÑку"
         exclusion: "зарезервовано"
@@ -106,11 +110,11 @@
         taken: "вже викориÑтовуєтьÑÑ"
         not_a_number: "не Ñ” чиÑлом"
         not_a_date: "Ñ” недійÑною датою"
-        greater_than: "must be greater than {{count}}"
-        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
-        equal_to: "must be equal to {{count}}"
-        less_than: "must be less than {{count}}"
-        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        greater_than: "must be greater than %{count}"
+        greater_than_or_equal_to: "must be greater than or equal to %{count}"
+        equal_to: "must be equal to %{count}"
+        less_than: "must be less than %{count}"
+        less_than_or_equal_to: "must be less than or equal to %{count}"
         odd: "must be odd"
         even: "must be even"
         greater_than_start_date: "повинна бути пізніша за дату початку"
@@ -148,24 +152,24 @@
   notice_locking_conflict: Дані оновлено іншим кориÑтувачем.
   notice_scm_error: ЗапиÑу та/або Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ” в репозиторії.
   notice_not_authorized: У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав Ð´Ð»Ñ Ð²Ñ–Ð´Ð²Ñ–Ð´Ð¸Ð½Ð¸ даної Ñторінки.
-  notice_email_sent: "Відправлено лиÑта {{value}}"
-  notice_email_error: "Під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта відбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° ({{value}})"
+  notice_email_sent: "Відправлено лиÑта %{value}"
+  notice_email_error: "Під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта відбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° (%{value})"
   notice_feeds_access_key_reseted: Ваш ключ доÑтупу RSS було Ñкинуто.
-  notice_failed_to_save_issues: "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ {{count}} пункт(ів) з {{total}} вибраних: {{ids}}."
+  notice_failed_to_save_issues: "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ %{count} пункт(ів) з %{total} вибраних: %{ids}."
   notice_no_issue_selected: "Ðе вибрано жодної задачі! Будь лаÑка, відзначте задачу, Ñку ви хочете відредагувати."
   notice_account_pending: "Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñтворено Ñ– він чекає на Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратором."
   
-  mail_subject_lost_password: "Ваш {{value}} пароль"
+  mail_subject_lost_password: "Ваш %{value} пароль"
   mail_body_lost_password: 'Ð”Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ паролÑ, зайдіть за наÑтупним поÑиланнÑм:'
-  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу {{value}}"
+  mail_subject_register: "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу %{value}"
   mail_body_register: 'Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— облікового запиÑу, зайдіть за наÑтупним поÑиланнÑм:'
-  mail_body_account_information_external: "Ви можете викориÑтовувати ваш {{value}} обліковий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ."
+  mail_body_account_information_external: "Ви можете викориÑтовувати ваш %{value} обліковий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ."
   mail_body_account_information: Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ð¾ Вашому обліковому запиÑу
-  mail_subject_account_activation_request: "Запит на активацію облікового запиÑу {{value}}"
-  mail_body_account_activation_request: "Ðовий кориÑтувач ({{value}}) зареєÑтрувавÑÑ. Його обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‡ÐµÐºÐ°Ñ” на ваше підтвердженнÑ:"
+  mail_subject_account_activation_request: "Запит на активацію облікового запиÑу %{value}"
+  mail_body_account_activation_request: "Ðовий кориÑтувач (%{value}) зареєÑтрувавÑÑ. Його обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‡ÐµÐºÐ°Ñ” на ваше підтвердженнÑ:"
   
   gui_validation_error: 1 помилка
-  gui_validation_error_plural: "{{count}} помилки(ок)"
+  gui_validation_error_plural: "%{count} помилки(ок)"
   
   field_name: Ім'Ñ
   field_description: ОпиÑ
@@ -227,6 +231,7 @@
   field_attr_lastname: Ðтрибут Прізвище
   field_attr_mail: Ðтрибут Email
   field_onthefly: Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача на льоту
+  field_start_date: Початок
   field_done_ratio: % зроблено
   field_auth_source: Режим аутентифікації
   field_hide_mail: Приховувати мій email
@@ -284,14 +289,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: УÑÑ– проекти
   label_project_latest: ОÑтанні проекти
   label_issue: ПитаннÑ
   label_issue_new: Ðові питаннÑ
   label_issue_plural: ПитаннÑ
   label_issue_view_all: ПроглÑнути вÑÑ– питаннÑ
-  label_issues_by: "ÐŸÐ¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° {{value}}"
+  label_issues_by: "ÐŸÐ¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° %{value}"
   label_document: Документ
   label_document_new: Ðовий документ
   label_document_plural: Документи
@@ -353,8 +358,8 @@
   label_text: Довгий текÑÑ‚
   label_attribute: Ðтрибут
   label_attribute_plural: атрибути
-  label_download: "{{count}} Завантажено"
-  label_download_plural: "{{count}} Завантажень"
+  label_download: "%{count} Завантажено"
+  label_download_plural: "%{count} Завантажень"
   label_no_data: Ðемає даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ
   label_change_status: Змінити ÑтатуÑ
   label_history: ІÑторіÑ
@@ -383,17 +388,17 @@
   label_closed_issues: закрите
   label_closed_issues_plural: закриті
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Ð’Ñього
   label_permissions: Права доÑтупу
   label_current_status: Поточний ÑтатуÑ
@@ -411,7 +416,7 @@
   label_months_from: міÑÑців(цÑ) з
   label_gantt: Діаграма Ганта
   label_internal: Внутрішній
-  label_last_changes: "оÑтанні {{count}} змін"
+  label_last_changes: "оÑтанні %{count} змін"
   label_change_view_all: ПроглÑнути вÑÑ– зміни
   label_personalize_page: ПерÑоналізувати цю Ñторінку
   label_comment: Коментувати
@@ -419,7 +424,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Залишити коментар
   label_comment_added: Коментар додано
   label_comment_delete: Видалити коментарі
@@ -443,8 +448,8 @@
   label_day_plural: днів(Ñ)
   label_repository: Репозиторій
   label_browse: ПроглÑнути
-  label_modification: "{{count}} зміна"
-  label_modification_plural: "{{count}} змін"
+  label_modification: "%{count} зміна"
+  label_modification_plural: "%{count} змін"
   label_revision: ВерÑÑ–Ñ
   label_revision_plural: ВерÑій
   label_added: додано
@@ -459,8 +464,8 @@
   label_sort_lower: Вниз
   label_sort_lowest: У кінець
   label_roadmap: Оперативний план
-  label_roadmap_due_in: "Строк {{value}}"
-  label_roadmap_overdue: "{{value}} запізненнÑ"
+  label_roadmap_due_in: "Строк %{value}"
+  label_roadmap_overdue: "%{value} запізненнÑ"
   label_roadmap_no_issues: Ðемає питань Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ—
   label_search: Пошук
   label_result_plural: Результати 
@@ -478,8 +483,8 @@
   label_changes_details: Подробиці по вÑÑ–Ñ… змінах 
   label_issue_tracking: ÐšÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ†Ñ–Ñ Ð¿Ð¸Ñ‚Ð°Ð½ÑŒ
   label_spent_time: Витрачений чаÑ
-  label_f_hour: "{{value}} година"
-  label_f_hour_plural: "{{value}} годин(и)"
+  label_f_hour: "%{value} година"
+  label_f_hour_plural: "%{value} годин(и)"
   label_time_tracking: Облік чаÑу
   label_change_plural: Зміни
   label_statistics: СтатиÑтика
@@ -526,12 +531,12 @@
   label_date_from: З
   label_date_to: Кому
   label_language_based: Ðа оÑнові мови кориÑтувача
-  label_sort_by: "Сортувати за {{value}}"
+  label_sort_by: "Сортувати за %{value}"
   label_send_test_email: ПоÑлати email Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸
-  label_feeds_access_key_created_on: "Ключ доÑтупу RSS Ñтворений {{value}} назад "
+  label_feeds_access_key_created_on: "Ключ доÑтупу RSS Ñтворений %{value} назад "
   label_module_plural: Модулі
-  label_added_time_by: "Доданий {{author}} {{age}} назад"
-  label_updated_time: "Оновлений {{value}} назад"
+  label_added_time_by: "Доданий %{author} %{age} назад"
+  label_updated_time: "Оновлений %{value} назад"
   label_jump_to_a_project: Перейти до проекту...
   label_file_plural: Файли
   label_changeset_plural: Ðабори змін
@@ -599,17 +604,17 @@
   text_tip_issue_end_day: день Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ–
   text_tip_issue_begin_end_day: початок задачі Ñ– Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ днÑ
   text_project_identifier_info: 'РÑдкові букви (a-z), допуÑтимі цифри Ñ– дефіÑ.<br />Збережений ідентифікатор не може бути змінений.'
-  text_caracters_maximum: "{{count}} Ñимволів(а) макÑимум."
-  text_caracters_minimum: "Повинно мати Ñкнайменше  {{count}} Ñимволів(а) у довжину."
-  text_length_between: "Довжина між {{min}} Ñ– {{max}} Ñимволів."
+  text_caracters_maximum: "%{count} Ñимволів(а) макÑимум."
+  text_caracters_minimum: "Повинно мати Ñкнайменше  %{count} Ñимволів(а) у довжину."
+  text_length_between: "Довжина між %{min} Ñ– %{max} Ñимволів."
   text_tracker_no_workflow: Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ координатора поÑлідовніÑть дій не визначена
   text_unallowed_characters: Заборонені Ñимволи
   text_comma_separated: ДопуÑтимі декілька значень (розділені комою).
   text_issues_ref_in_commit_messages: ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ‚Ð° зміна питань у повідомленнÑÑ… до подавань
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Ви впевнені, що хочете видалити цю wiki Ñ– веÑÑŒ зміÑÑ‚?
-  text_issue_category_destroy_question: "Декілька питань ({{count}}) призначено в цю категорію. Що ви хочете зробити?"
+  text_issue_category_destroy_question: "Декілька питань (%{count}) призначено в цю категорію. Що ви хочете зробити?"
   text_issue_category_destroy_assignments: Видалити Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ—
   text_issue_category_reassign_to: Перепризначити задачі до даної категорії
   text_user_mail_option: "Ð”Ð»Ñ Ð½ÐµÐ²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… проектів ви отримуватимете Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ про те, що проглÑдаєте або в чому берете учаÑть (наприклад, Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼ Ñких ви Ñ” або Ñкі вам призначені)."
@@ -639,8 +644,8 @@
   enumeration_issue_priorities: Пріоритети питань
   enumeration_doc_categories: Категорії документів
   enumeration_activities: Дії (облік чаÑу)
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
-  label_display_per_page: "Per page: {{value}}"
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
+  label_display_per_page: "Per page: %{value}"
   label_issue_added: Issue added
   label_issue_updated: Issue updated
   setting_per_page_options: Objects per page options
@@ -650,7 +655,7 @@
   label_document_added: Document added
   label_message_posted: Message added
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
-  error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
+  error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
   setting_user_format: Users display format
   label_age: Age
   label_file_added: File added
@@ -666,7 +671,7 @@
   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."
   label_news_added: News added
   label_repository_plural: Repositories
-  error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
+  error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
   project_module_boards: Boards
   project_module_issue_tracking: Issue tracking
   project_module_wiki: Wiki
@@ -683,7 +688,7 @@
   label_ldap_authentication: LDAP authentication
   label_downloads_abbr: D/L
   label_this_month: this month
-  label_last_n_days: "last {{count}} days"
+  label_last_n_days: "last %{count} days"
   label_all_time: all time
   label_this_year: this year
   label_date_range: Date range
@@ -692,7 +697,7 @@
   label_last_month: last month
   label_add_another_file: Add another file
   label_optional_description: Optional description
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} 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
@@ -707,15 +712,15 @@
   setting_default_projects_public: New projects are public by default
   error_scm_annotate: "The entry does not exist or can not be annotated."
   label_planning: Planning
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
-  label_and_its_subprojects: "{{value}} and its subprojects"
-  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
-  mail_subject_reminder: "{{count}} issue(s) due in the next {{days}} days"
-  text_user_wrote: "{{value}} wrote:"
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
+  label_and_its_subprojects: "%{value} and its subprojects"
+  mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+  mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+  text_user_wrote: "%{value} 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: "{{count}} objects are assigned to this value."
+  text_enumeration_destroy_question: "%{count} 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
@@ -781,12 +786,12 @@
   text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
   permission_edit_own_messages: Edit own messages
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -801,21 +806,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -823,14 +828,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -865,9 +870,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -894,12 +899,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -907,7 +912,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -918,8 +923,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/vi.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/vi.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -66,37 +66,37 @@
       half_a_minute: "30 giây"
       less_than_x_seconds:
         one:   "chưa tới 1 giây"
-        other: "chưa tới {{count}} giây"
+        other: "chưa tới %{count} giây"
       x_seconds:
         one:   "1 giây"
-        other: "{{count}} giây"
+        other: "%{count} giây"
       less_than_x_minutes:
         one:   "chưa tới 1 phút"
-        other: "chưa tới {{count}} phút"
+        other: "chưa tới %{count} phút"
       x_minutes:
         one:   "1 phút"
-        other: "{{count}} phút"
+        other: "%{count} phút"
       about_x_hours:
         one:   "khoảng 1 giá»"
-        other: "khoảng {{count}} giá»"
+        other: "khoảng %{count} giá»"
       x_days:
         one:   "1 ngày"
-        other: "{{count}} ngày"
+        other: "%{count} ngày"
       about_x_months:
         one:   "khoảng 1 tháng"
-        other: "khoảng {{count}} tháng"
+        other: "khoảng %{count} tháng"
       x_months:
         one:   "1 tháng"
-        other: "{{count}} tháng"
+        other: "%{count} tháng"
       about_x_years:
         one:   "khoảng 1 năm"
-        other: "khoảng {{count}} năm"
+        other: "khoảng %{count} năm"
       over_x_years:
         one:   "hơn 1 năm"
-        other: "hơn {{count}} năm"
+        other: "hơn %{count} năm"
       almost_x_years:
         one:   "almost 1 year"
-        other: "almost {{count}} years"
+        other: "almost %{count} years"
     prompts:
       year:   "Năm"
       month:  "Tháng"
@@ -109,8 +109,8 @@
     errors:
       template:
         header:
-          one:   "1 lỗi ngăn không cho lưu {{model}} này"
-          other: "{{count}} lỗi ngăn không cho lưu {{model}} này"
+          one:   "1 lỗi ngăn không cho lưu %{model} này"
+          other: "%{count} lỗi ngăn không cho lưu %{model} này"
         # The variable :count is also available
         body: "Có lỗi với các mục sau:"
 
@@ -124,16 +124,16 @@
         accepted: "phải được đồng ý"
         empty: "không thể rỗng"
         blank: "không thể để trắng"
-        too_long: "quá dài (tối đa {{count}} ký tự)"
-        too_short: "quá ngắn (tối thiểu {{count}} ký tự)"
-        wrong_length: "độ dài không đúng (phải là {{count}} ký tự)"
+        too_long: "quá dài (tối đa %{count} ký tự)"
+        too_short: "quá ngắn (tối thiểu %{count} ký tự)"
+        wrong_length: "độ dài không đúng (phải là %{count} ký tự)"
         taken: "đã có"
         not_a_number: "không phải là số"
-        greater_than: "phải lớn hơn {{count}}"
-        greater_than_or_equal_to: "phải lớn hơn hoặc bằng {{count}}"
-        equal_to: "phải bằng {{count}}"
-        less_than: "phải nhỠhơn {{count}}"
-        less_than_or_equal_to: "phải nhỠhơn hoặc bằng {{count}}"
+        greater_than: "phải lớn hơn %{count}"
+        greater_than_or_equal_to: "phải lớn hơn hoặc bằng %{count}"
+        equal_to: "phải bằng %{count}"
+        less_than: "phải nhỠhơn %{count}"
+        less_than_or_equal_to: "phải nhỠhơn hoặc bằng %{count}"
         odd: "phải là số chẵn"
         even: "phải là số lẻ"
         greater_than_start_date: "phải đi sau ngày bắt đầu"
@@ -205,34 +205,34 @@
   notice_file_not_found: Trang bạn cố xem không tồn tại hoặc đã chuyển.
   notice_locking_conflict: Thông tin Ä‘ang được cập nhật bởi ngưá»i khác. Hãy chép ná»™i dung cập nhật cá»§a bạn vào clipboard.
   notice_not_authorized: Bạn không có quyá»n xem trang này.
-  notice_email_sent: "Email đã được gửi tới {{value}}"
-  notice_email_error: "Lỗi xảy ra khi gửi email ({{value}})"
+  notice_email_sent: "Email đã được gửi tới %{value}"
+  notice_email_error: "Lỗi xảy ra khi gửi email (%{value})"
   notice_feeds_access_key_reseted: Mã số chứng thực RSS đã được tạo lại.
-  notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
+  notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
   notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
   notice_account_pending: "Thông tin tài khoản đã được tạo ra và đang chỠchứng thực từ ban quản trị."
   notice_default_data_loaded: Äã nạp cấu hình mặc định.
   notice_unable_delete_version: Không thể xóa phiên bản.
   
-  error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: {{value}}"
+  error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: %{value}"
   error_scm_not_found: "The entry or revision was not found in the repository."
-  error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: {{value}}"
+  error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: %{value}"
   error_scm_annotate: "The entry does not exist or can not be annotated."
   error_issue_not_found_in_project: 'Vấn đỠkhông tồn tại hoặc không thuộc dự án'
   
-  mail_subject_lost_password: "{{value}}: mật mã của bạn"
+  mail_subject_lost_password: "%{value}: mật mã của bạn"
   mail_body_lost_password: "Äể đổi mật mã, hãy click chuá»™t vào liên kết sau:"
-  mail_subject_register: "{{value}}: kích hoạt tài khoản"
+  mail_subject_register: "%{value}: kích hoạt tài khoản"
   mail_body_register: "Äể kích hoạt tài khoản, hãy click chuá»™t vào liên kết sau:"
-  mail_body_account_information_external: " Bạn có thể dùng tài khoản {{value}} để đăng nhập."
+  mail_body_account_information_external: " Bạn có thể dùng tài khoản %{value} để đăng nhập."
   mail_body_account_information: Thông tin vỠtài khoản
-  mail_subject_account_activation_request: "{{value}}: Yêu cầu chứng thực tài khoản"
-  mail_body_account_activation_request: "Ngưá»i dùng ({{value}}) má»›i đăng ký và cần bạn xác nhận:"
-  mail_subject_reminder: "{{count}} vấn đỠhết hạn trong các {{days}} ngày tới"
-  mail_body_reminder: "{{count}} vấn đỠgán cho bạn sẽ hết hạn trong {{days}} ngày tới:"
+  mail_subject_account_activation_request: "%{value}: Yêu cầu chứng thực tài khoản"
+  mail_body_account_activation_request: "Ngưá»i dùng (%{value}) má»›i đăng ký và cần bạn xác nhận:"
+  mail_subject_reminder: "%{count} vấn đỠhết hạn trong các %{days} ngày tới"
+  mail_body_reminder: "%{count} vấn đỠgán cho bạn sẽ hết hạn trong %{days} ngày tới:"
   
   gui_validation_error: 1 lá»—i
-  gui_validation_error_plural: "{{count}} lá»—i"
+  gui_validation_error_plural: "%{count} lá»—i"
   
   field_name: Tên
   field_description: Mô tả
@@ -294,6 +294,7 @@
   field_attr_lastname: Lastname attribute
   field_attr_mail: Email attribute
   field_onthefly: On-the-fly user creation
+  field_start_date: Bắt đầu
   field_done_ratio: Tiến độ
   field_auth_source: Authentication mode
   field_hide_mail: Không làm lộ email của bạn
@@ -373,14 +374,14 @@
   label_x_projects:
     zero:  no projects
     one:   1 project
-    other: "{{count}} projects"
+    other: "%{count} projects"
   label_project_all: Má»i dá»± án
   label_project_latest: Dự án mới nhất
   label_issue: Vấn Ä‘á»
   label_issue_new: Tạo vấn đỠmới
   label_issue_plural: Vấn Ä‘á»
   label_issue_view_all: Tất cả vấn Ä‘á»
-  label_issues_by: "Vấn đỠcủa {{value}}"
+  label_issues_by: "Vấn đỠcủa %{value}"
   label_issue_added: Äã thêm vấn Ä‘á»
   label_issue_updated: Vấn đỠđược cập nhật
   label_document: Tài liệu
@@ -436,7 +437,7 @@
   label_auth_source_new: New authentication mode
   label_auth_source_plural: Authentication modes
   label_subproject_plural: Dự án con
-  label_and_its_subprojects: "{{value}} và dự án con"
+  label_and_its_subprojects: "%{value} và dự án con"
   label_min_max_length: Min - Max length
   label_list: List
   label_date: Ngày
@@ -447,8 +448,8 @@
   label_text: Long text
   label_attribute: Attribute
   label_attribute_plural: Attributes
-  label_download: "{{count}} lần tải"
-  label_download_plural: "{{count}} lần tải"
+  label_download: "%{count} lần tải"
+  label_download_plural: "%{count} lần tải"
   label_no_data: Chưa có thông tin gì
   label_change_status: Äổi trạng thái
   label_history: Lược sử
@@ -479,17 +480,17 @@
   label_closed_issues: đóng
   label_closed_issues_plural: đóng
   label_x_open_issues_abbr_on_total:
-    zero:  0 open / {{total}}
-    one:   1 open / {{total}}
-    other: "{{count}} open / {{total}}"
+    zero:  0 open / %{total}
+    one:   1 open / %{total}
+    other: "%{count} open / %{total}"
   label_x_open_issues_abbr:
     zero:  0 open
     one:   1 open
-    other: "{{count}} open"
+    other: "%{count} open"
   label_x_closed_issues_abbr:
     zero:  0 closed
     one:   1 closed
-    other: "{{count}} closed"
+    other: "%{count} closed"
   label_total: Tổng cộng
   label_permissions: Quyá»n
   label_current_status: Trạng thái hiện tại
@@ -507,7 +508,7 @@
   label_months_from: tháng từ
   label_gantt: Biểu đồ sự kiện
   label_internal: Ná»™i bá»™
-  label_last_changes: "{{count}} thay đổi cuối"
+  label_last_changes: "%{count} thay đổi cuối"
   label_change_view_all: Xem má»i thay đổi
   label_personalize_page: Äiá»u chỉnh trang này
   label_comment: Bình luận
@@ -515,7 +516,7 @@
   label_x_comments:
     zero: no comments
     one: 1 comment
-    other: "{{count}} comments"
+    other: "%{count} comments"
   label_comment_add: Thêm bình luận
   label_comment_added: Äã thêm bình luận
   label_comment_delete: Xóa bình luận
@@ -534,7 +535,7 @@
   label_yesterday: hôm qua
   label_this_week: tuần này
   label_last_week: tuần trước
-  label_last_n_days: "{{count}} ngày cuối"
+  label_last_n_days: "%{count} ngày cuối"
   label_this_month: tháng này
   label_last_month: tháng cuối
   label_this_year: năm này
@@ -548,8 +549,8 @@
   label_repository: Kho lưu trữ
   label_repository_plural: Kho lưu trữ
   label_browse: Duyệt
-  label_modification: "{{count}} thay đổi"
-  label_modification_plural: "{{count}} thay đổi"
+  label_modification: "%{count} thay đổi"
+  label_modification_plural: "%{count} thay đổi"
   label_revision: Bản Ä‘iá»u chỉnh
   label_revision_plural: Bản Ä‘iá»u chỉnh
   label_associated_revisions: Associated revisions
@@ -567,8 +568,8 @@
   label_sort_lower: Dịch xuống
   label_sort_lowest: Xuống dưới cùng
   label_roadmap: Kế hoạch
-  label_roadmap_due_in: "Hết hạn trong {{value}}"
-  label_roadmap_overdue: "Trá»… {{value}}"
+  label_roadmap_due_in: "Hết hạn trong %{value}"
+  label_roadmap_overdue: "Trá»… %{value}"
   label_roadmap_no_issues: Không có vấn đỠcho phiên bản này
   label_search: Tìm
   label_result_plural: Kết quả
@@ -586,8 +587,8 @@
   label_changes_details: Chi tiết cá»§a má»i thay đổi
   label_issue_tracking: Vấn Ä‘á»
   label_spent_time: Thá»i gian
-  label_f_hour: "{{value}} giá»"
-  label_f_hour_plural: "{{value}} giá»"
+  label_f_hour: "%{value} giá»"
+  label_f_hour_plural: "%{value} giá»"
   label_time_tracking: Theo dõi thá»i gian
   label_change_plural: Thay đổi
   label_statistics: Thống kê
@@ -636,12 +637,12 @@
   label_date_from: Từ
   label_date_to: Äến
   label_language_based: Theo ngôn ngữ ngưá»i dùng
-  label_sort_by: "Sắp xếp theo {{value}}"
+  label_sort_by: "Sắp xếp theo %{value}"
   label_send_test_email: Send a test email
-  label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây {{value}}"
+  label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây %{value}"
   label_module_plural: Mô-đun
-  label_added_time_by: "thêm bởi {{author}} cách đây {{age}}"
-  label_updated_time: "Cập nhật cách đây {{value}}"
+  label_added_time_by: "thêm bởi %{author} cách đây %{age}"
+  label_updated_time: "Cập nhật cách đây %{value}"
   label_jump_to_a_project: Nhảy đến dự án...
   label_file_plural: Tập tin
   label_changeset_plural: Thay đổi
@@ -657,7 +658,7 @@
   label_registration_activation_by_email: account activation by email
   label_registration_manual_activation: manual account activation
   label_registration_automatic_activation: automatic account activation
-  label_display_per_page: "má»—i trang: {{value}}"
+  label_display_per_page: "má»—i trang: %{value}"
   label_age: Age
   label_change_properties: Thay đổi thuộc tính
   label_general: Tổng quan
@@ -723,41 +724,41 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 để chỉ không hạn chế
   text_project_destroy_confirmation: Are you sure you want to delete this project and related data ?
-  text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
+  text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
   text_workflow_edit: Select a role and a tracker to edit the workflow
   text_are_you_sure: Bạn chắc chứ?
   text_tip_issue_begin_day: ngày bắt đầu
   text_tip_issue_end_day: ngày kết thúc
   text_tip_issue_begin_end_day: bắt đầu và kết thúc cùng ngày
   text_project_identifier_info: 'Chỉ cho phép chữ cái thưá»ng (a-z), con số và dấu gạch ngang.<br />Sau khi lưu, chỉ số ID không thể thay đổi.'
-  text_caracters_maximum: "Tối đa {{count}} ký tự."
-  text_caracters_minimum: "Phải gồm ít nhất {{count}} ký tự."
-  text_length_between: "Length between {{min}} and {{max}} characters."
+  text_caracters_maximum: "Tối đa %{count} ký tự."
+  text_caracters_minimum: "Phải gồm ít nhất %{count} ký tự."
+  text_length_between: "Length between %{min} and %{max} characters."
   text_tracker_no_workflow: No workflow defined for this tracker
   text_unallowed_characters: Ký tự không hợp lệ
   text_comma_separated: Multiple values allowed (comma separated).
   text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
-  text_issue_added: "Issue {{id}} has been reported by {{author}}."
-  text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+  text_issue_added: "Issue %{id} has been reported by %{author}."
+  text_issue_updated: "Issue %{id} has been updated by %{author}."
   text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
-  text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do ?"
+  text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do ?"
   text_issue_category_destroy_assignments: Remove category assignments
   text_issue_category_reassign_to: Reassign issues to this category
   text_user_mail_option: "Vá»›i các dá»± án không được chá»n, bạn chỉ có thể nhận được thông báo vá» các vấn đỠbạn đăng ký theo dõi hoặc có liên quan đến bạn (chẳng hạn, vấn đỠđược gán cho bạn)."
   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."
   text_load_default_configuration: Load the default configuration
-  text_status_changed_by_changeset: "Applied in changeset {{value}}."
+  text_status_changed_by_changeset: "Applied in changeset %{value}."
   text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
   text_select_project_modules: 'Chá»n các mô-Ä‘un cho dá»± án:'
   text_default_administrator_account_changed: Default administrator account changed
   text_file_repository_writable: File repository writable
   text_rmagick_available: RMagick available (optional)
-  text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do ?"
+  text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
   text_destroy_time_entries: Delete reported hours
   text_assign_time_entries_to_project: Assign reported hours to the project
   text_reassign_time_entries: 'Reassign reported hours to this issue:'
-  text_user_wrote: "{{value}} wrote:"
-  text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
+  text_user_wrote: "%{value} wrote:"
+  text_enumeration_destroy_question: "%{count} objects are assigned to this value."
   text_enumeration_category_reassign_to: 'Reassign them to this value:'
   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."
   
@@ -840,12 +841,12 @@
   label_example: Ví dụ
   text_repository_usernames_mapping: "Chá»n hoặc cập nhật ánh xạ ngưá»i dùng hệ thống vá»›i ngưá»i dùng trong kho lưu trữ.\nNhững trưá»ng hợp trùng hợp vá» tên và email sẽ được tá»± động ánh xạ."
   permission_delete_own_messages: Delete own messages
-  label_user_activity: "{{value}}'s activity"
-  label_updated_time_by: "Updated by {{author}} {{age}} ago"
+  label_user_activity: "%{value}'s activity"
+  label_updated_time_by: "Updated by %{author} %{age} ago"
   text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
   setting_diff_max_lines_displayed: Max number of diff lines displayed
   text_plugin_assets_writable: Plugin assets directory writable
-  warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+  warning_attachments_not_saved: "%{count} file(s) could not be saved."
   button_create_and_continue: Create and continue
   text_custom_field_possible_values_info: 'One line for each value'
   label_display: Display
@@ -860,21 +861,21 @@
   label_descending: Descending
   label_sort: Sort
   label_ascending: Ascending
-  label_date_from_to: From {{start}} to {{end}}
+  label_date_from_to: From %{start} to %{end}
   label_greater_or_equal: ">="
   label_less_or_equal: <=
-  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
+  text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
   text_wiki_page_reassign_children: Reassign child pages to this parent page
   text_wiki_page_nullify_children: Keep child pages as root pages
   text_wiki_page_destroy_children: Delete child pages and all their descendants
   setting_password_min_length: Minimum password length
   field_group_by: Group results by
-  mail_subject_wiki_content_updated: "'{{id}}' wiki page has been updated"
+  mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
   label_wiki_content_added: Wiki page added
-  mail_subject_wiki_content_added: "'{{id}}' wiki page has been added"
-  mail_body_wiki_content_added: The '{{id}}' wiki page has been added by {{author}}.
+  mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+  mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
   label_wiki_content_updated: Wiki page updated
-  mail_body_wiki_content_updated: The '{{id}}' wiki page has been updated by {{author}}.
+  mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
   permission_add_project: Create project
   setting_new_project_user_role_id: Role given to a non-admin user who creates a project
   label_view_all_revisions: View all revisions
@@ -882,14 +883,14 @@
   label_branch: Branch
   error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
   error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
-  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
-  text_journal_set_to: "{{label}} set to {{value}}"
-  text_journal_deleted: "{{label}} deleted ({{old}})"
+  text_journal_changed: "%{label} changed from %{old} to %{new}"
+  text_journal_set_to: "%{label} set to %{value}"
+  text_journal_deleted: "%{label} deleted (%{old})"
   label_group_plural: Groups
   label_group: Group
   label_group_new: New group
   label_time_entry_plural: Spent time
-  text_journal_added: "{{label}} {{value}} added"
+  text_journal_added: "%{label} %{value} added"
   field_active: Active
   enumeration_system_activity: System Activity
   permission_delete_issue_watchers: Delete watchers
@@ -924,9 +925,9 @@
   setting_start_of_week: Start calendars on
   permission_view_issues: View Issues
   label_display_used_statuses_only: Only display statuses that are used by this tracker
-  label_revision_id: Revision {{value}}
+  label_revision_id: Revision %{value}
   label_api_access_key: API access key
-  label_api_access_key_created_on: API access key created {{value}} ago
+  label_api_access_key_created_on: API access key created %{value} ago
   label_feeds_access_key: RSS access key
   notice_api_access_key_reseted: Your API access key was reset.
   setting_rest_api_enabled: Enable REST web service
@@ -953,12 +954,12 @@
   label_subtask_plural: Subtasks
   label_project_copy_notifications: Send email notifications during the project copy
   error_can_not_delete_custom_field: Unable to delete custom field
-  error_unable_to_connect: Unable to connect ({{value}})
+  error_unable_to_connect: Unable to connect (%{value})
   error_can_not_remove_role: This role is in use and can not be deleted.
   error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
   field_principal: Principal
   label_my_page_block: My page block
-  notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+  notice_failed_to_save_members: "Failed to save member(s): %{errors}."
   text_zoom_out: Zoom out
   text_zoom_in: Zoom in
   notice_unable_delete_time_entry: Unable to delete time log entry.
@@ -966,7 +967,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -977,8 +978,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/locales/zh-TW.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/zh-TW.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -104,37 +104,37 @@
       half_a_minute: "åŠåˆ†é˜"
       less_than_x_seconds:
         one: "å°æ–¼ 1 ç§’"
-        other: "å°æ–¼ {{count}} ç§’"
+        other: "å°æ–¼ %{count} ç§’"
       x_seconds:
         one: "1 ç§’"
-        other: "{{count}} ç§’"
+        other: "%{count} ç§’"
       less_than_x_minutes:
         one: "å°æ–¼ 1 分é˜"
-        other: "å°æ–¼ {{count}} 分é˜"
+        other: "å°æ–¼ %{count} 分é˜"
       x_minutes:
         one: "1 分é˜"
-        other: "{{count}} 分é˜"
+        other: "%{count} 分é˜"
       about_x_hours:
         one: "ç´„ 1 å°æ™‚"
-        other: "ç´„ {{count}} å°æ™‚"
+        other: "ç´„ %{count} å°æ™‚"
       x_days:
         one: "1 天"
-        other: "{{count}} 天"
+        other: "%{count} 天"
       about_x_months:
         one: "約 1 個月"
-        other: "約 {{count}} 個月"
+        other: "約 %{count} 個月"
       x_months:
         one: "1 個月"
-        other: "{{count}} 個月"
+        other: "%{count} 個月"
       about_x_years:
         one: "ç´„ 1 å¹´"
-        other: "ç´„ {{count}} å¹´"
+        other: "ç´„ %{count} å¹´"
       over_x_years:
         one: "è¶…éŽ 1 å¹´"
-        other: "è¶…éŽ {{count}} å¹´"
+        other: "è¶…éŽ %{count} å¹´"
       almost_x_years:
         one:   "將近 1 年"
-        other: "將近 {{count}} 年"
+        other: "將近 %{count} 年"
     prompts:
       year:   "å¹´"
       month:  "月"
@@ -147,8 +147,8 @@
     errors:
       template:
         header: 
-          one:   "有 1 個錯誤發生使得「{{model}}ã€ç„¡æ³•被儲存。"
-          other: "有 {{count}} 個錯誤發生使得「{{model}}ã€ç„¡æ³•被儲存。"
+          one:   "有 1 個錯誤發生使得「%{model}ã€ç„¡æ³•被儲存。"
+          other: "有 %{count} 個錯誤發生使得「%{model}ã€ç„¡æ³•被儲存。"
         # The variable :count is also available
         body: "䏋颿‰€åˆ—æ¬„ä½æœ‰å•題:"
       # The values :model, :attribute and :value are always available for interpolation
@@ -161,16 +161,16 @@
         accepted: "必须是å¯è¢«æŽ¥å—çš„"
         empty: "ä¸èƒ½ç•™ç©º"
         blank: "ä¸èƒ½æ˜¯ç©ºç™½å­—å…ƒ"
-        too_long: "éŽé•·ï¼ˆæœ€é•·æ˜¯ {{count}} 個字)"
-        too_short: "éŽçŸ­ï¼ˆæœ€çŸ­æ˜¯ {{count}} 個字)"
-        wrong_length: "字數錯誤(必須是 {{count}} 個字)"
+        too_long: "éŽé•·ï¼ˆæœ€é•·æ˜¯ %{count} 個字)"
+        too_short: "éŽçŸ­ï¼ˆæœ€çŸ­æ˜¯ %{count} 個字)"
+        wrong_length: "字數錯誤(必須是 %{count} 個字)"
         taken: "已經被使用"
         not_a_number: "䏿˜¯æ•¸å­—"
-        greater_than: "必須大於 {{count}}"
-        greater_than_or_equal_to: "必須大於或等於 {{count}}"
-        equal_to: "必須等於 {{count}}"
-        less_than: "å¿…é ˆå°æ–¼ {{count}}"
-        less_than_or_equal_to: "å¿…é ˆå°æ–¼æˆ–等於 {{count}}"
+        greater_than: "必須大於 %{count}"
+        greater_than_or_equal_to: "必須大於或等於 %{count}"
+        equal_to: "必須等於 %{count}"
+        less_than: "å¿…é ˆå°æ–¼ %{count}"
+        less_than_or_equal_to: "å¿…é ˆå°æ–¼æˆ–等於 %{count}"
         odd: "必須是奇數"
         even: "å¿…é ˆæ˜¯å¶æ•¸"
         # Append your own errors here or at the model/attributes scope.
@@ -185,7 +185,7 @@
       # For example,
       #   models:
       #     user:
-      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       blank: "This is a custom blank message for %{model}: %{attribute}"
       #       attributes:
       #         login:
       #           blank: "This is a custom blank message for User login"
@@ -236,22 +236,23 @@
   notice_locking_conflict: 資料已被其他使用者更新。
   notice_not_authorized: ä½ æœªè¢«æŽˆæ¬Šå­˜å–æ­¤é é¢ã€‚
   notice_not_authorized_archived_project: 您欲存å–的專案已經被歸檔å°å­˜ã€‚
-  notice_email_sent: "郵件已經æˆåŠŸå¯„é€è‡³ä»¥ä¸‹æ”¶ä»¶è€…: {{value}}"
-  notice_email_error: "寄é€éƒµä»¶çš„éŽç¨‹ä¸­ç™¼ç”ŸéŒ¯èª¤ ({{value}})"
+  notice_email_sent: "郵件已經æˆåŠŸå¯„é€è‡³ä»¥ä¸‹æ”¶ä»¶è€…: %{value}"
+  notice_email_error: "寄é€éƒµä»¶çš„éŽç¨‹ä¸­ç™¼ç”ŸéŒ¯èª¤ (%{value})"
   notice_feeds_access_key_reseted: 您的 RSS å­˜å–é‡‘é‘°å·²è¢«é‡æ–°è¨­å®šã€‚
   notice_api_access_key_reseted: 您的 API å­˜å–é‡‘é‘°å·²è¢«é‡æ–°è¨­å®šã€‚
-  notice_failed_to_save_issues: " {{count}} 個項目儲存失敗(總共é¸å– {{total}} 個項目): {{ids}} 。"
-  notice_failed_to_save_members: "æˆå“¡å„²å­˜å¤±æ•—: {{errors}}."
+  notice_failed_to_save_issues: " %{count} 個項目儲存失敗(總共é¸å– %{total} 個項目): %{ids} 。"
+  notice_failed_to_save_members: "æˆå“¡å„²å­˜å¤±æ•—: %{errors}."
   notice_no_issue_selected: "æœªé¸æ“‡ä»»ä½•é …ç›®ï¼è«‹å‹¾é¸æ‚¨æƒ³è¦ç·¨è¼¯çš„項目。"
   notice_account_pending: "您的帳號已經建立,正在等待管ç†å“¡çš„審核。"
   notice_default_data_loaded: é è¨­çµ„態已載入æˆåŠŸã€‚
   notice_unable_delete_version: 無法刪除版本。
   notice_unable_delete_time_entry: 無法刪除工時記錄項目。
   notice_issue_done_ratios_updated: 項目完æˆç™¾åˆ†æ¯”已更新。
+  notice_gantt_chart_truncated: "由於項目數é‡è¶…éŽå¯é¡¯ç¤ºæ•¸é‡çš„æœ€å¤§å€¼ (%{max}),故此甘特圖尾部已被截斷"
 
-  error_can_t_load_default_data: "無法載入é è¨­çµ„態: {{value}}"
+  error_can_t_load_default_data: "無法載入é è¨­çµ„態: %{value}"
   error_scm_not_found: "在 SCM 儲存庫中找ä¸åˆ°é€™å€‹é …目或版次。"
-  error_scm_command_failed: "å˜—è©¦å­˜å– SCM 儲存庫時發生錯誤: {{value}}"
+  error_scm_command_failed: "å˜—è©¦å­˜å– SCM 儲存庫時發生錯誤: %{value}"
   error_scm_annotate: "SCM 儲存庫中無此項目或此項目無法被加註。"
   error_issue_not_found_in_project: '該項目ä¸å­˜åœ¨æˆ–ä¸å±¬æ–¼æ­¤å°ˆæ¡ˆ'
   error_no_tracker_in_project: '此專案尚未指定追蹤標籤。請檢查專案的設定資訊。'
@@ -265,26 +266,26 @@
   error_workflow_copy_source: 'è«‹é¸æ“‡ä¸€å€‹ä¾†æºé …目追蹤標籤或角色'
   error_workflow_copy_target: 'è«‹é¸æ“‡ä¸€å€‹ï¼ˆæˆ–多個)目的項目追蹤標籤或角色'
   error_unable_delete_issue_status: '無法刪除項目狀態'
-  error_unable_to_connect: "無法連線至({{value}})"
-  warning_attachments_not_saved: "{{count}} 個附加檔案無法被儲存。"
+  error_unable_to_connect: "無法連線至(%{value})"
+  warning_attachments_not_saved: "%{count} 個附加檔案無法被儲存。"
   
   mail_subject_lost_password: 您的 Redmine 網站密碼
   mail_body_lost_password: '欲變更您的 Redmine 網站密碼, 請點é¸ä»¥ä¸‹éˆçµ:'
   mail_subject_register: 啟用您的 Redmine 帳號
   mail_body_register: '欲啟用您的 Redmine 帳號, 請點é¸ä»¥ä¸‹éˆçµ:'
-  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨ {{value}} 帳號登入 Redmine 網站。"
+  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨ %{value} 帳號登入 Redmine 網站。"
   mail_body_account_information: 您的 Redmine 帳號資訊
   mail_subject_account_activation_request: Redmine 帳號啟用需求通知
-  mail_body_account_activation_request: "æœ‰ä½æ–°ç”¨æˆ¶ ({{value}}) 已經完æˆè¨»å†Šï¼Œæ­£ç­‰å€™æ‚¨çš„審核:"
-  mail_subject_reminder: "您有 {{count}} 個項目å³å°‡åˆ°æœŸ ({{days}})"
-  mail_body_reminder: "{{count}} 個指派給您的項目,將於 {{days}} 天之內到期:"
-  mail_subject_wiki_content_added: "'{{id}}' wiki é é¢å·²è¢«æ–°å¢ž"
-  mail_body_wiki_content_added: "The '{{id}}' wiki é é¢å·²è¢« {{author}} 新增。"
-  mail_subject_wiki_content_updated: "'{{id}}' wiki é é¢å·²è¢«æ›´æ–°"
-  mail_body_wiki_content_updated: "The '{{id}}' wiki é é¢å·²è¢« {{author}} 更新。"
+  mail_body_account_activation_request: "æœ‰ä½æ–°ç”¨æˆ¶ (%{value}) 已經完æˆè¨»å†Šï¼Œæ­£ç­‰å€™æ‚¨çš„審核:"
+  mail_subject_reminder: "您有 %{count} 個項目å³å°‡åˆ°æœŸ (%{days})"
+  mail_body_reminder: "%{count} 個指派給您的項目,將於 %{days} 天之內到期:"
+  mail_subject_wiki_content_added: "'%{id}' wiki é é¢å·²è¢«æ–°å¢ž"
+  mail_body_wiki_content_added: "æ­¤ '%{id}' wiki é é¢å·²è¢« %{author} 新增。"
+  mail_subject_wiki_content_updated: "'%{id}' wiki é é¢å·²è¢«æ›´æ–°"
+  mail_body_wiki_content_updated: "æ­¤ '%{id}' wiki é é¢å·²è¢« %{author} 更新。"
   
   gui_validation_error: 1 個錯誤
-  gui_validation_error_plural: "{{count}} 個錯誤"
+  gui_validation_error_plural: "%{count} 個錯誤"
   
   field_name: å稱
   field_description: 概述
@@ -383,6 +384,7 @@
   field_member_of_group: "被指派者的群組"
   field_assigned_to_role: "被指派者的角色"
   field_text: 內容文字
+  field_visible: å¯è¢«çœ‹è¦‹
   
   setting_app_title: 標題
   setting_app_subtitle: 副標題
@@ -411,6 +413,7 @@
   setting_issue_list_default_columns: é è¨­é¡¯ç¤ºæ–¼é …目清單的欄ä½
   setting_repositories_encodings: 版本庫編碼
   setting_commit_logs_encoding: é€äº¤è¨Šæ¯ç·¨ç¢¼
+  setting_emails_header: é›»å­éƒµä»¶å‰é ­èªªæ˜Ž
   setting_emails_footer: é›»å­éƒµä»¶é™„帶說明
   setting_protocol: å”定
   setting_per_page_options: æ¯é é¡¯ç¤ºå€‹æ•¸é¸é …
@@ -438,6 +441,9 @@
   setting_rest_api_enabled: 啟用 REST 網路æœå‹™æŠ€è¡“(Web Service)
   setting_cache_formatted_text: å¿«å–已格å¼åŒ–文字
   setting_default_notification_option: é è¨­é€šçŸ¥é¸é …
+  setting_commit_logtime_enabled: 啟用é€äº¤ä¸­çš„æ™‚間記錄
+  setting_commit_logtime_activity_id: æ™‚é–“è¨˜éŒ„å°æ‡‰çš„æ´»å‹•
+  setting_gantt_items_limit: 甘特圖中項目顯示數é‡çš„æœ€å¤§å€¼
   
   permission_add_project: 建立專案
   permission_add_subprojects: 建立å­å°ˆæ¡ˆ
@@ -516,14 +522,14 @@
   label_x_projects:
     zero:  無專案
     one:   1 個專案
-    other: "{{count}} 個專案"
+    other: "%{count} 個專案"
   label_project_all: 全部的專案
   label_project_latest: 最近的專案
   label_issue: é …ç›®
   label_issue_new: 建立新項目
   label_issue_plural: 項目清單
   label_issue_view_all: 檢視所有項目
-  label_issues_by: "項目按 {{value}} 分組顯示"
+  label_issues_by: "項目按 %{value} 分組顯示"
   label_issue_added: 項目已新增
   label_issue_updated: 項目已更新
   label_document: 文件
@@ -573,7 +579,7 @@
   label_registered_on: 註冊於
   label_activity: 活動
   label_overall_activity: 整體活動
-  label_user_activity: "{{value}} 的活動"
+  label_user_activity: "%{value} 的活動"
   label_new: 建立新的...
   label_logged_as: ç›®å‰ç™»å…¥
   label_environment: 環境
@@ -583,7 +589,7 @@
   label_auth_source_plural: èªè­‰æ¨¡å¼æ¸…å–®
   label_subproject_plural: å­å°ˆæ¡ˆ
   label_subproject_new: 建立å­å°ˆæ¡ˆ
-  label_and_its_subprojects: "{{value}} 與其å­å°ˆæ¡ˆ"
+  label_and_its_subprojects: "%{value} 與其å­å°ˆæ¡ˆ"
   label_min_max_length: æœ€å° - 最大 長度
   label_list: 清單
   label_date: 日期
@@ -594,8 +600,8 @@
   label_text: 長文字
   label_attribute: 屬性
   label_attribute_plural: 屬性
-  label_download: "{{count}} 個下載"
-  label_download_plural: "{{count}} 個下載"
+  label_download: "%{count} 個下載"
+  label_download_plural: "%{count} 個下載"
   label_no_data: 沒有任何資料å¯ä¾›é¡¯ç¤º
   label_change_status: 變更狀態
   label_history: æ­·å²
@@ -627,17 +633,17 @@
   label_closed_issues: å·²çµæŸ
   label_closed_issues_plural: å·²çµæŸ
   label_x_open_issues_abbr_on_total:
-    zero:  0 進行中 / 共 {{total}}
-    one:   1 進行中 / 共 {{total}}
-    other: "{{count}} 進行中 / 共 {{total}}"
+    zero:  0 進行中 / 共 %{total}
+    one:   1 進行中 / 共 %{total}
+    other: "%{count} 進行中 / 共 %{total}"
   label_x_open_issues_abbr:
     zero:  0 進行中
     one:   1 進行中
-    other: "{{count}} 進行中"
+    other: "%{count} 進行中"
   label_x_closed_issues_abbr:
     zero:  0 å·²çµæŸ
     one:   1 å·²çµæŸ
-    other: "{{count}} å·²çµæŸ"
+    other: "%{count} å·²çµæŸ"
   label_total: 總計
   label_permissions: 權é™
   label_current_status: ç›®å‰ç‹€æ…‹
@@ -655,7 +661,7 @@
   label_months_from: 個月, 開始月份
   label_gantt: 甘特圖
   label_internal: 內部
-  label_last_changes: "最近 {{count}} 個變更"
+  label_last_changes: "最近 %{count} 個變更"
   label_change_view_all: 檢視全部的變更
   label_personalize_page: 自訂版é¢
   label_comment: 註解
@@ -663,7 +669,7 @@
   label_x_comments:
     zero: 無註解
     one: 1 個註解
-    other: "{{count}} 個註解"
+    other: "%{count} 個註解"
   label_comment_add: 加入新註解
   label_comment_added: 新註解已加入
   label_comment_delete: 刪除註解
@@ -684,7 +690,7 @@
   label_yesterday: 昨天
   label_this_week: 本週
   label_last_week: 上週
-  label_last_n_days: "éŽåŽ» {{count}} 天"
+  label_last_n_days: "éŽåŽ» %{count} 天"
   label_this_month: 這個月
   label_last_month: 上個月
   label_this_year: 今年
@@ -698,13 +704,13 @@
   label_repository: 版本控管
   label_repository_plural: 版本控管
   label_browse: ç€è¦½
-  label_modification: "{{count}} 變更"
-  label_modification_plural: "{{count}} 變更"
+  label_modification: "%{count} 變更"
+  label_modification_plural: "%{count} 變更"
   label_branch: 分支
   label_tag: 標籤 
   label_revision: 版次
   label_revision_plural: 版次清單
-  label_revision_id: "版次 {{value}}"
+  label_revision_id: "版次 %{value}"
   label_associated_revisions: 相關版次
   label_added: 已新增
   label_modified: 已修改
@@ -721,8 +727,8 @@
   label_sort_lower: 往下移動
   label_sort_lowest: 移動至çµå°¾
   label_roadmap: 版本è—圖
-  label_roadmap_due_in: "剩餘 {{value}}"
-  label_roadmap_overdue: "逾期 {{value}}"
+  label_roadmap_due_in: "剩餘 %{value}"
+  label_roadmap_overdue: "逾期 %{value}"
   label_roadmap_no_issues: 此版本尚未包å«ä»»ä½•é …ç›®
   label_search: æœå°‹
   label_result_plural: çµæžœ
@@ -741,8 +747,8 @@
   label_issue_tracking: 項目追蹤
   label_spent_time: 耗用工時
   label_overall_spent_time: 整體耗用工時
-  label_f_hour: "{{value}} å°æ™‚"
-  label_f_hour_plural: "{{value}} å°æ™‚"
+  label_f_hour: "%{value} å°æ™‚"
+  label_f_hour_plural: "%{value} å°æ™‚"
   label_time_tracking: 工時追蹤
   label_change_plural: 變更
   label_statistics: 統計資訊
@@ -793,15 +799,15 @@
   label_date_from: é–‹å§‹
   label_date_to: çµæŸ
   label_language_based: ä¾ç”¨æˆ¶ä¹‹èªžç³»æ±ºå®š
-  label_sort_by: "按 {{value}} 排åº"
+  label_sort_by: "按 %{value} 排åº"
   label_send_test_email: 坄逿¸¬è©¦éƒµä»¶
   label_feeds_access_key: RSS å­˜å–金鑰
   label_missing_feeds_access_key: 找ä¸åˆ° RSS å­˜å–金鑰
-  label_feeds_access_key_created_on: "RSS å­˜å–éµå»ºç«‹æ–¼ {{value}} 之å‰"
+  label_feeds_access_key_created_on: "RSS å­˜å–éµå»ºç«‹æ–¼ %{value} 之å‰"
   label_module_plural: 模組
-  label_added_time_by: "是由 {{author}} æ–¼ {{age}} å‰åŠ å…¥"
-  label_updated_time_by: "是由 {{author}} æ–¼ {{age}} 剿›´æ–°"
-  label_updated_time: "æ–¼ {{value}} 剿›´æ–°"
+  label_added_time_by: "是由 %{author} æ–¼ %{age} å‰åŠ å…¥"
+  label_updated_time_by: "是由 %{author} æ–¼ %{age} 剿›´æ–°"
+  label_updated_time: "æ–¼ %{value} 剿›´æ–°"
   label_jump_to_a_project: 鏿“‡æ¬²å‰å¾€çš„專案...
   label_file_plural: 檔案清單
   label_changeset_plural: 變更集清單
@@ -821,7 +827,7 @@
   label_registration_activation_by_email: é€éŽé›»å­éƒµä»¶å•Ÿç”¨å¸³æˆ¶
   label_registration_manual_activation: 手動啟用帳戶
   label_registration_automatic_activation: 自動啟用帳戶
-  label_display_per_page: "æ¯é é¡¯ç¤º: {{value}} 個"
+  label_display_per_page: "æ¯é é¡¯ç¤º: %{value} 個"
   label_age: 年齡
   label_change_properties: 變更屬性
   label_general: 一般
@@ -844,7 +850,7 @@
   label_sort: 排åº
   label_ascending: éžå¢žæŽ’åº
   label_descending: éžæ¸›æŽ’åº
-  label_date_from_to: èµ· {{start}} è¿„ {{end}}
+  label_date_from_to: èµ· %{start} è¿„ %{end}
   label_wiki_content_added: Wiki é é¢å·²æ–°å¢ž
   label_wiki_content_updated: Wiki é é¢å·²æ›´æ–°
   label_group: 群組
@@ -863,10 +869,12 @@
   label_display_used_statuses_only: 僅顯示此追蹤標籤所使用之狀態
   label_api_access_key: API å­˜å–金鑰
   label_missing_api_access_key: 找ä¸åˆ° API å­˜å–金鑰
-  label_api_access_key_created_on: "API å­˜å–金鑰建立於 {{value}} 之å‰"
+  label_api_access_key_created_on: "API å­˜å–金鑰建立於 %{value} 之å‰"
   label_profile: é…置概æ³
   label_subtask_plural: å­å·¥ä½œé …ç›®
   label_project_copy_notifications: 在複製專案的éŽç¨‹ä¸­ï¼Œå‚³é€é€šçŸ¥éƒµä»¶
+  label_principal_search: "æœå°‹ç”¨æˆ¶æˆ–群組:"
+  label_user_search: "æœå°‹ç”¨æˆ¶ï¼š"
 
   button_login: 登入
   button_submit: é€å‡º
@@ -878,7 +886,7 @@
   button_create_and_continue: 繼續建立
   button_test: 測試
   button_edit: 編輯
-  button_edit_associated_wikipage: "編輯相關 Wiki é é¢: {{page_title}}"
+  button_edit_associated_wikipage: "編輯相關 Wiki é é¢: %{page_title}"
   button_add: 新增
   button_change: 修改
   button_apply: 套用
@@ -927,54 +935,55 @@
   text_regexp_info: eg. ^[A-Z0-9]+$
   text_min_max_length_info: 0 代表「ä¸é™åˆ¶ã€
   text_project_destroy_confirmation: 您確定è¦åˆªé™¤é€™å€‹å°ˆæ¡ˆå’Œå…¶ä»–相關資料?
-  text_subprojects_destroy_warning: "下列å­å°ˆæ¡ˆï¼š {{value}} 將一併被刪除。"
+  text_subprojects_destroy_warning: "下列å­å°ˆæ¡ˆï¼š %{value} 將一併被刪除。"
   text_workflow_edit: 鏿“‡è§’色與追蹤標籤以設定其工作æµç¨‹
   text_are_you_sure: 確定執行?
   text_are_you_sure_with_children: "確定刪除此工作項目åŠå…¶å­é …目?"
-  text_journal_changed: "{{label}} 從 {{old}} 變更為 {{new}}"
-  text_journal_set_to: "{{label}} 設定為 {{value}}"
-  text_journal_deleted: "{{label}} 已刪除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} 已新增"
+  text_journal_changed: "%{label} 從 %{old} 變更為 %{new}"
+  text_journal_set_to: "%{label} 設定為 %{value}"
+  text_journal_deleted: "%{label} 已刪除 (%{old})"
+  text_journal_added: "%{label} %{value} 已新增"
   text_tip_issue_begin_day: 今天起始的工作
   text_tip_issue_end_day: 今天截止的的工作
   text_tip_issue_begin_end_day: 今天起始與截止的工作
   text_project_identifier_info: 'åªå…許å°å¯«è‹±æ–‡å­—æ¯ï¼ˆa-z)ã€é˜¿æ‹‰ä¼¯æ•¸å­—與連字符號(-)。<br />儲存後,代碼ä¸å¯å†è¢«æ›´æ”¹ã€‚'
-  text_caracters_maximum: "最多 {{count}} 個字元."
-  text_caracters_minimum: "長度必須大於 {{count}} 個字元."
-  text_length_between: "長度必須介於 {{min}} 至 {{max}} 個字元之間."
+  text_caracters_maximum: "最多 %{count} 個字元."
+  text_caracters_minimum: "長度必須大於 %{count} 個字元."
+  text_length_between: "長度必須介於 %{min} 至 %{max} 個字元之間."
   text_tracker_no_workflow: 此追蹤標籤尚未定義工作æµç¨‹
   text_unallowed_characters: ä¸å…許的字元
   text_comma_separated: å¯è¼¸å…¥å¤šå€‹å€¼ï¼ˆé ˆä»¥é€—號分隔)。
   text_line_separated: å¯è¼¸å…¥å¤šå€‹å€¼ï¼ˆé ˆä»¥æ›è¡Œç¬¦è™Ÿåˆ†éš”ï¼Œå³æ¯åˆ—åªèƒ½è¼¸å…¥ä¸€å€‹å€¼ï¼‰ã€‚
   text_issues_ref_in_commit_messages: é€äº¤è¨Šæ¯ä¸­åƒç…§(或修正)項目之關éµå­—
-  text_issue_added: "項目 {{id}} 已被 {{author}} 通報。"
-  text_issue_updated: "項目 {{id}} 已被 {{author}} 更新。"
+  text_issue_added: "項目 %{id} 已被 %{author} 通報。"
+  text_issue_updated: "項目 %{id} 已被 %{author} 更新。"
   text_wiki_destroy_confirmation: 您確定è¦åˆªé™¤é€™å€‹ wiki 和其中的所有內容?
-  text_issue_category_destroy_question: "有 ({{count}}) 個項目被指派到此分類. è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
+  text_issue_category_destroy_question: "有 (%{count}) 個項目被指派到此分類. è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
   text_issue_category_destroy_assignments: 移除這些項目的分類
   text_issue_category_reassign_to: 釿–°æŒ‡æ´¾é€™äº›é …目至其它分類
   text_user_mail_option: "å°æ–¼é‚£äº›æœªè¢«é¸æ“‡çš„å°ˆæ¡ˆï¼Œå°‡åªæœƒæŽ¥æ”¶åˆ°æ‚¨æ­£åœ¨è§€å¯Ÿä¸­ï¼Œæˆ–是åƒèˆ‡ä¸­çš„項目通知。(「åƒèˆ‡ä¸­çš„é …ç›®ã€åŒ…嫿‚¨å»ºç«‹çš„æˆ–是指派給您的項目)"
   text_no_configuration_data: "角色ã€è¿½è¹¤æ¨™ç±¤ã€é …目狀態與æµç¨‹å°šæœªè¢«è¨­å®šå®Œæˆã€‚\n強烈建議您先載入é è¨­çš„組態。將é è¨­çµ„態載入之後,您å¯å†è®Šæ›´å…¶ä¸­ä¹‹å€¼ã€‚"
   text_load_default_configuration: 載入é è¨­çµ„æ…‹
-  text_status_changed_by_changeset: "已套用至變更集 {{value}}."
+  text_status_changed_by_changeset: "已套用至變更集 %{value}."
+  text_time_logged_by_changeset: "紀錄於變更集 %{value}."
   text_issues_destroy_confirmation: 'ç¢ºå®šåˆªé™¤å·²é¸æ“‡çš„項目?'
   text_select_project_modules: '鏿“‡æ­¤å°ˆæ¡ˆå¯ä½¿ç”¨ä¹‹æ¨¡çµ„:'
   text_default_administrator_account_changed: 已變更é è¨­ç®¡ç†å“¡å¸³è™Ÿå…§å®¹
   text_file_repository_writable: å¯å¯«å…¥é™„加檔案目錄
   text_plugin_assets_writable: å¯å¯«å…¥é™„加元件目錄
   text_rmagick_available: å¯ä½¿ç”¨ RMagick (é¸é…)
-  text_destroy_time_entries_question: 您å³å°‡åˆªé™¤çš„項目已報工 {{hours}} å°æ™‚. æ‚¨çš„é¸æ“‡æ˜¯ï¼Ÿ
+  text_destroy_time_entries_question: 您å³å°‡åˆªé™¤çš„項目已報工 %{hours} å°æ™‚. æ‚¨çš„é¸æ“‡æ˜¯ï¼Ÿ
   text_destroy_time_entries: 刪除已報工的時數
   text_assign_time_entries_to_project: 指定已報工的時數至專案中
   text_reassign_time_entries: '釿–°æŒ‡å®šå·²å ±å·¥çš„æ™‚數至此項目:'
-  text_user_wrote: "{{value}} å…ˆå‰æåˆ°:"
-  text_enumeration_destroy_question: "ç›®å‰æœ‰ {{count}} 個物件使用此列舉值。"
+  text_user_wrote: "%{value} å…ˆå‰æåˆ°:"
+  text_enumeration_destroy_question: "ç›®å‰æœ‰ %{count} 個物件使用此列舉值。"
   text_enumeration_category_reassign_to: '釿–°è¨­å®šå…¶åˆ—舉值為:'
   text_email_delivery_not_configured: "您尚未設定電å­éƒµä»¶å‚³é€æ–¹å¼ï¼Œå› æ­¤æé†’é¸é …已被åœç”¨ã€‚\n請在 config/email.yml 中設定 SMTP ä¹‹å¾Œï¼Œé‡æ–°å•Ÿå‹• Redmine,以啟用電å­éƒµä»¶æé†’é¸é …。"
   text_repository_usernames_mapping: "鏿“‡æˆ–æ›´æ–° Redmine ä½¿ç”¨è€…èˆ‡ç‰ˆæœ¬åº«ä½¿ç”¨è€…ä¹‹å°æ‡‰é—œä¿‚。\n版本庫中之使用者帳號或電å­éƒµä»¶ä¿¡ç®±ï¼Œèˆ‡ Redmine 設定相åŒè€…ï¼Œå°‡è‡ªå‹•ç”¢ç”Ÿå°æ‡‰é—œä¿‚。"
   text_diff_truncated: '... 這份差異已被截短以符åˆé¡¯ç¤ºè¡Œæ•¸ä¹‹æœ€å¤§å€¼'
   text_custom_field_possible_values_info: '一列輸入一個值'
-  text_wiki_page_destroy_question: "æ­¤é é¢åŒ…å« {{descendants}} 個å­é é¢åŠå»¶ä¼¸é é¢ã€‚ è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
+  text_wiki_page_destroy_question: "æ­¤é é¢åŒ…å« %{descendants} 個å­é é¢åŠå»¶ä¼¸é é¢ã€‚ è«‹é¸æ“‡æ‚¨æƒ³è¦çš„動作?"
   text_wiki_page_nullify_children: "ä¿ç•™æ‰€æœ‰å­é é¢ç•¶ä½œæ ¹é é¢"
   text_wiki_page_destroy_children: "刪除所有å­é é¢åŠå…¶å»¶ä¼¸é é¢"
   text_wiki_page_reassign_children: "釿–°æŒ‡å®šæ‰€æœ‰çš„å­é é¢ä¹‹çˆ¶é é¢è‡³æ­¤é é¢"
@@ -1008,8 +1017,3 @@
   enumeration_doc_categories: 文件分類
   enumeration_activities: 活動 (時間追蹤)
   enumeration_system_activity: 系統活動
-
-  label_principal_search: "Search for user or group:"
-  label_user_search: "Search for user:"
-  field_visible: Visible
-  setting_emails_header: Emails header
--- a/config/locales/zh.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/locales/zh.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -29,37 +29,37 @@
       half_a_minute: "åŠåˆ†é’Ÿ"
       less_than_x_seconds:
         one: "一秒内"
-        other: "少于 {{count}} 秒"
+        other: "少于 %{count} 秒"
       x_seconds:
         one: "一秒"
-        other: "{{count}} ç§’"
+        other: "%{count} ç§’"
       less_than_x_minutes:
         one: "一分钟内"
-        other: "少于 {{count}} 分钟"
+        other: "少于 %{count} 分钟"
       x_minutes:
         one: "一分钟"
-        other: "{{count}} 分钟"
+        other: "%{count} 分钟"
       about_x_hours:
         one: "å¤§çº¦ä¸€å°æ—¶"
-        other: "大约 {{count}} å°æ—¶"
+        other: "大约 %{count} å°æ—¶"
       x_days:
         one: "一天"
-        other: "{{count}} 天"
+        other: "%{count} 天"
       about_x_months:
         one: "大约一个月"
-        other: "大约 {{count}} 个月"
+        other: "大约 %{count} 个月"
       x_months:
         one: "一个月"
-        other: "{{count}} 个月"
+        other: "%{count} 个月"
       about_x_years:
         one: "大约一年"
-        other: "大约 {{count}} 年"
+        other: "大约 %{count} 年"
       over_x_years:
         one: "一年以上"
-        other: "{{count}} 年以上"
+        other: "%{count} 年以上"
       almost_x_years:
         one:   "将近 1 年"
-        other: "将近 {{count}} 年"
+        other: "将近 %{count} 年"
     prompts:
       year:   "å¹´"
       month:  "月"
@@ -111,8 +111,8 @@
     errors:
       template:
         header: 
-          one: "有 1 个错误å‘生导致「{{model}}ã€æ— æ³•被ä¿å­˜ã€‚"
-          other: "有 {{count}} 个错误å‘生导致「{{model}}ã€æ— æ³•被ä¿å­˜ã€‚"
+          one: "有 1 个错误å‘生导致「%{model}ã€æ— æ³•被ä¿å­˜ã€‚"
+          other: "有 %{count} 个错误å‘生导致「%{model}ã€æ— æ³•被ä¿å­˜ã€‚"
         body: "如下字段出现错误:"
       messages:
         inclusion: "ä¸åŒ…å«äºŽåˆ—表中"
@@ -122,16 +122,16 @@
         accepted: "必须是å¯è¢«æŽ¥å—çš„"
         empty: "ä¸èƒ½ç•™ç©º"
         blank: "ä¸èƒ½ä¸ºç©ºå­—符"
-        too_long: "过长(最长为 {{count}} 个字符)"
-        too_short: "过短(最短为 {{count}} 个字符)"
-        wrong_length: "é•¿åº¦éžæ³•(必须为 {{count}} 个字符)"
+        too_long: "过长(最长为 %{count} 个字符)"
+        too_short: "过短(最短为 %{count} 个字符)"
+        wrong_length: "é•¿åº¦éžæ³•(必须为 %{count} 个字符)"
         taken: "å·²ç»è¢«ä½¿ç”¨"
         not_a_number: "䏿˜¯æ•°å­—"
-        greater_than: "必须大于 {{count}}"
-        greater_than_or_equal_to: "必须大于或等于 {{count}}"
-        equal_to: "必须等于 {{count}}"
-        less_than: "å¿…é¡»å°äºŽ {{count}}"
-        less_than_or_equal_to: "å¿…é¡»å°äºŽæˆ–等于 {{count}}"
+        greater_than: "必须大于 %{count}"
+        greater_than_or_equal_to: "必须大于或等于 %{count}"
+        equal_to: "必须等于 %{count}"
+        less_than: "å¿…é¡»å°äºŽ %{count}"
+        less_than_or_equal_to: "å¿…é¡»å°äºŽæˆ–等于 %{count}"
         odd: "å¿…é¡»ä¸ºå•æ•°"
         even: "å¿…é¡»ä¸ºåŒæ•°"
         greater_than_start_date: "必须在起始日期之åŽ"
@@ -168,20 +168,20 @@
   notice_file_not_found: 您访问的页é¢ä¸å­˜åœ¨æˆ–已被删除。
   notice_locking_conflict: æ•°æ®å·²è¢«å¦ä¸€ä½ç”¨æˆ·æ›´æ–°
   notice_not_authorized: 对ä¸èµ·ï¼Œæ‚¨æ— æƒè®¿é—®æ­¤é¡µé¢ã€‚
-  notice_email_sent: "邮件已æˆåŠŸå‘é€åˆ° {{value}}"
-  notice_email_error: "å‘é€é‚®ä»¶æ—¶å‘生错误 ({{value}})"
+  notice_email_sent: "邮件已æˆåŠŸå‘é€åˆ° %{value}"
+  notice_email_error: "å‘é€é‚®ä»¶æ—¶å‘生错误 (%{value})"
   notice_feeds_access_key_reseted: 您的RSSå­˜å–键已被é‡ç½®ã€‚
   notice_api_access_key_reseted: 您的API访问键已被é‡ç½®ã€‚
-  notice_failed_to_save_issues: "{{count}} 个问题ä¿å­˜å¤±è´¥ï¼ˆå…±é€‰æ‹© {{total}} 个问题):{{ids}}."
+  notice_failed_to_save_issues: "%{count} 个问题ä¿å­˜å¤±è´¥ï¼ˆå…±é€‰æ‹© %{total} 个问题):%{ids}."
   notice_no_issue_selected: "未选择任何问题ï¼è¯·é€‰æ‹©æ‚¨è¦ç¼–辑的问题。"
   notice_account_pending: "您的å¸å·å·²è¢«æˆåŠŸåˆ›å»ºï¼Œæ­£åœ¨ç­‰å¾…ç®¡ç†å‘˜çš„审核。"
   notice_default_data_loaded: æˆåŠŸè½½å…¥é»˜è®¤è®¾ç½®ã€‚
   notice_unable_delete_version: 无法删除版本
   notice_issue_done_ratios_updated: 问题完æˆåº¦å·²æ›´æ–°ã€‚
 
-  error_can_t_load_default_data: "无法载入默认设置:{{value}}"
+  error_can_t_load_default_data: "无法载入默认设置:%{value}"
   error_scm_not_found: "版本库中ä¸å­˜åœ¨è¯¥æ¡ç›®å’Œï¼ˆæˆ–)其修订版本。"
-  error_scm_command_failed: "访问版本库时å‘生错误:{{value}}"
+  error_scm_command_failed: "访问版本库时å‘生错误:%{value}"
   error_scm_annotate: "该æ¡ç›®ä¸å­˜åœ¨æˆ–无法追溯。"
   error_issue_not_found_in_project: '问题ä¸å­˜åœ¨æˆ–ä¸å±žäºŽæ­¤é¡¹ç›®'
   error_no_tracker_in_project: 该项目未设定跟踪标签,请检查项目é…置。
@@ -192,25 +192,25 @@
   error_workflow_copy_source: 请选择一个æºè·Ÿè¸ªæ ‡ç­¾æˆ–者角色
   error_workflow_copy_target: 请选择目标跟踪标签和角色
 
-  warning_attachments_not_saved: "{{count}} 个文件ä¿å­˜å¤±è´¥ã€‚"
+  warning_attachments_not_saved: "%{count} 个文件ä¿å­˜å¤±è´¥ã€‚"
   
-  mail_subject_lost_password: "您的 {{value}} 密ç "
+  mail_subject_lost_password: "您的 %{value} 密ç "
   mail_body_lost_password: '请点击以下链接æ¥ä¿®æ”¹æ‚¨çš„密ç ï¼š'
-  mail_subject_register: "{{value}}å¸å·æ¿€æ´»"
+  mail_subject_register: "%{value}å¸å·æ¿€æ´»"
   mail_body_register: 'è¯·ç‚¹å‡»ä»¥ä¸‹é“¾æŽ¥æ¥æ¿€æ´»æ‚¨çš„å¸å·ï¼š'
-  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨æ‚¨çš„ {{value}} å¸å·æ¥ç™»å½•。"
+  mail_body_account_information_external: "您å¯ä»¥ä½¿ç”¨æ‚¨çš„ %{value} å¸å·æ¥ç™»å½•。"
   mail_body_account_information: 您的å¸å·ä¿¡æ¯
-  mail_subject_account_activation_request: "{{value}}å¸å·æ¿€æ´»è¯·æ±‚"
-  mail_body_account_activation_request: "新用户({{value}}ï¼‰å·²å®Œæˆæ³¨å†Œï¼Œæ­£åœ¨ç­‰å€™æ‚¨çš„审核:"
-  mail_subject_reminder: "{{count}} 个问题需è¦å°½å¿«è§£å†³ ({{days}})"
-  mail_body_reminder: "指派给您的 {{count}} 个问题需è¦åœ¨ {{days}} 天内完æˆï¼š"
-  mail_subject_wiki_content_added: "'{{id}}' wiki页é¢å·²æ·»åŠ "
-  mail_body_wiki_content_added: "'{{id}}' wiki页é¢å·²ç”± {{author}} 添加。"
-  mail_subject_wiki_content_updated: "'{{id}}' wiki页é¢å·²æ›´æ–°"
-  mail_body_wiki_content_updated: "'{{id}}' wiki页é¢å·²ç”± {{author}} 更新。"
+  mail_subject_account_activation_request: "%{value}å¸å·æ¿€æ´»è¯·æ±‚"
+  mail_body_account_activation_request: "新用户(%{value}ï¼‰å·²å®Œæˆæ³¨å†Œï¼Œæ­£åœ¨ç­‰å€™æ‚¨çš„审核:"
+  mail_subject_reminder: "%{count} 个问题需è¦å°½å¿«è§£å†³ (%{days})"
+  mail_body_reminder: "指派给您的 %{count} 个问题需è¦åœ¨ %{days} 天内完æˆï¼š"
+  mail_subject_wiki_content_added: "'%{id}' wiki页é¢å·²æ·»åŠ "
+  mail_body_wiki_content_added: "'%{id}' wiki页é¢å·²ç”± %{author} 添加。"
+  mail_subject_wiki_content_updated: "'%{id}' wiki页é¢å·²æ›´æ–°"
+  mail_body_wiki_content_updated: "'%{id}' wiki页é¢å·²ç”± %{author} 更新。"
 
   gui_validation_error: 1 个错误
-  gui_validation_error_plural: "{{count}} 个错误"
+  gui_validation_error_plural: "%{count} 个错误"
   
   field_name: åç§°
   field_description: æè¿°
@@ -272,6 +272,7 @@
   field_attr_lastname: å§“æ°å±žæ€§
   field_attr_mail: 邮件属性
   field_onthefly: 峿—¶ç”¨æˆ·ç”Ÿæˆ
+  field_start_date: 开始
   field_done_ratio: 完æˆåº¦
   field_auth_source: è®¤è¯æ¨¡å¼
   field_hide_mail: éšè—我的邮件地å€
@@ -427,14 +428,14 @@
   label_x_projects:
     zero:  无项目
     one:   1 个项目
-    other: "{{count}} 个项目"
+    other: "%{count} 个项目"
   label_project_all: 所有的项目
   label_project_latest: 最近的项目
   label_issue: 问题
   label_issue_new: 新建问题
   label_issue_plural: 问题
   label_issue_view_all: 查看所有问题
-  label_issues_by: "按 {{value}} 分组显示问题"
+  label_issues_by: "按 %{value} 分组显示问题"
   label_issue_added: 问题已添加
   label_issue_updated: 问题已更新
   label_document: 文档
@@ -483,7 +484,7 @@
   label_registered_on: 注册于
   label_activity: 活动
   label_overall_activity: 全部活动
-  label_user_activity: "{{value}} 的活动"
+  label_user_activity: "%{value} 的活动"
   label_new: 新建
   label_logged_as: 登录为
   label_environment: 环境
@@ -493,7 +494,7 @@
   label_auth_source_plural: è®¤è¯æ¨¡å¼
   label_subproject_plural: å­é¡¹ç›®
   label_subproject_new: 新建å­é¡¹ç›®
-  label_and_its_subprojects: "{{value}} åŠå…¶å­é¡¹ç›®"
+  label_and_its_subprojects: "%{value} åŠå…¶å­é¡¹ç›®"
   label_min_max_length: æœ€å° - 最大 长度
   label_list: 列表
   label_date: 日期
@@ -504,8 +505,8 @@
   label_text: 文本
   label_attribute: 属性
   label_attribute_plural: 属性
-  label_download: "{{count}} 次下载"
-  label_download_plural: "{{count}} 次下载"
+  label_download: "%{count} 次下载"
+  label_download_plural: "%{count} 次下载"
   label_no_data: 没有任何数æ®å¯ä¾›æ˜¾ç¤º
   label_change_status: å˜æ›´çжæ€
   label_history: 历å²è®°å½•
@@ -537,17 +538,17 @@
   label_closed_issues: 已关闭
   label_closed_issues_plural: 已关闭
   label_x_open_issues_abbr_on_total:
-    zero:  0 打开 / {{total}}
-    one:   1 打开 / {{total}}
-    other: "{{count}} 打开 / {{total}}"
+    zero:  0 打开 / %{total}
+    one:   1 打开 / %{total}
+    other: "%{count} 打开 / %{total}"
   label_x_open_issues_abbr:
     zero:  0 打开
     one:   1 打开
-    other: "{{count}} 打开"
+    other: "%{count} 打开"
   label_x_closed_issues_abbr:
     zero:  0 关闭
     one:   1 关闭
-    other: "{{count}} 关闭"
+    other: "%{count} 关闭"
   label_total: åˆè®¡
   label_permissions: æƒé™
   label_current_status: 当å‰çжæ€
@@ -565,7 +566,7 @@
   label_months_from: 个月以æ¥
   label_gantt: 甘特图
   label_internal: 内部
-  label_last_changes: "最近的 {{count}} æ¬¡å˜æ›´"
+  label_last_changes: "最近的 %{count} æ¬¡å˜æ›´"
   label_change_view_all: æŸ¥çœ‹æ‰€æœ‰å˜æ›´
   label_personalize_page: 个性化定制本页
   label_comment: 评论
@@ -573,7 +574,7 @@
   label_x_comments:
     zero: 无评论
     one: 1 æ¡è¯„论
-    other: "{{count}} æ¡è¯„论"
+    other: "%{count} æ¡è¯„论"
   label_comment_add: 添加评论
   label_comment_added: 评论已添加
   label_comment_delete: 删除评论
@@ -594,7 +595,7 @@
   label_yesterday: 昨天
   label_this_week: 本周
   label_last_week: 上周
-  label_last_n_days: "æœ€åŽ {{count}} 天"
+  label_last_n_days: "æœ€åŽ %{count} 天"
   label_this_month: 本月
   label_last_month: 上月
   label_this_year: 今年
@@ -608,13 +609,13 @@
   label_repository: 版本库
   label_repository_plural: 版本库
   label_browse: æµè§ˆ
-  label_modification: "{{count}} 个更新"
-  label_modification_plural: "{{count}} 个更新"
+  label_modification: "%{count} 个更新"
+  label_modification_plural: "%{count} 个更新"
   label_branch: 分支
   label_tag: 标签
   label_revision: 修订
   label_revision_plural: 修订
-  label_revision_id: 修订 {{value}}
+  label_revision_id: 修订 %{value}
   label_associated_revisions: 相关修订版本
   label_added: 已添加
   label_modified: 已修改
@@ -631,8 +632,8 @@
   label_sort_lower: 下移
   label_sort_lowest: 置底
   label_roadmap: 路线图
-  label_roadmap_due_in: "截止日期到  {{value}}"
-  label_roadmap_overdue: "{{value}} 延期"
+  label_roadmap_due_in: "截止日期到  %{value}"
+  label_roadmap_overdue: "%{value} 延期"
   label_roadmap_no_issues: 该版本没有问题
   label_search: æœç´¢
   label_result_plural: 结果
@@ -650,8 +651,8 @@
   label_changes_details: æ‰€æœ‰å˜æ›´çš„详情
   label_issue_tracking: 问题跟踪
   label_spent_time: 耗时
-  label_f_hour: "{{value}} å°æ—¶"
-  label_f_hour_plural: "{{value}} å°æ—¶"
+  label_f_hour: "%{value} å°æ—¶"
+  label_f_hour_plural: "%{value} å°æ—¶"
   label_time_tracking: 时间跟踪
   label_change_plural: å˜æ›´
   label_statistics: 统计
@@ -700,15 +701,15 @@
   label_date_from: 从
   label_date_to: 到
   label_language_based: æ ¹æ®ç”¨æˆ·çš„语言
-  label_sort_by: "æ ¹æ® {{value}} 排åº"
+  label_sort_by: "æ ¹æ® %{value} 排åº"
   label_send_test_email: å‘逿µ‹è¯•邮件
   label_feeds_access_key: RSSå­˜å–é”®
   label_missing_feeds_access_key: 缺少RSSå­˜å–é”®
-  label_feeds_access_key_created_on: "RSSå­˜å–键是在 {{value}} 之å‰å»ºç«‹çš„"
+  label_feeds_access_key_created_on: "RSSå­˜å–键是在 %{value} 之å‰å»ºç«‹çš„"
   label_module_plural: 模å—
-  label_added_time_by: "ç”± {{author}} 在 {{age}} 之剿·»åŠ "
-  label_updated_time: " 更新于 {{value}} 之å‰"
-  label_updated_time_by: "ç”± {{author}} 更新于 {{age}} 之å‰"
+  label_added_time_by: "ç”± %{author} 在 %{age} 之剿·»åŠ "
+  label_updated_time: " 更新于 %{value} 之å‰"
+  label_updated_time_by: "ç”± %{author} 更新于 %{age} 之å‰"
   label_jump_to_a_project: 选择一个项目...
   label_file_plural: 文件
   label_changeset_plural: å˜æ›´
@@ -724,7 +725,7 @@
   label_registration_activation_by_email: é€šè¿‡é‚®ä»¶è®¤è¯æ¿€æ´»å¸å·
   label_registration_manual_activation: 手动激活å¸å·
   label_registration_automatic_activation: 自动激活å¸å·
-  label_display_per_page: "æ¯é¡µæ˜¾ç¤ºï¼š{{value}}"
+  label_display_per_page: "æ¯é¡µæ˜¾ç¤ºï¼š%{value}"
   label_age: 年龄
   label_change_properties: 修改属性
   label_general: 一般
@@ -747,7 +748,7 @@
   label_sort: 排åº
   label_ascending: å‡åº
   label_descending: é™åº
-  label_date_from_to: 从 {{start}} 到 {{end}}
+  label_date_from_to: 从 %{start} 到 %{end}
   label_wiki_content_added: Wiki 页é¢å·²æ·»åŠ 
   label_wiki_content_updated: Wiki 页é¢å·²æ›´æ–°
   label_group: 组
@@ -766,7 +767,7 @@
   label_display_used_statuses_only: åªæ˜¾ç¤ºè¢«æ­¤è·Ÿè¸ªæ ‡ç­¾ä½¿ç”¨çš„状æ€
   label_api_access_key: API访问键
   label_missing_api_access_key: 缺少API访问键
-  label_api_access_key_created_on: API访问键是在 {{value}} 之å‰å»ºç«‹çš„
+  label_api_access_key_created_on: API访问键是在 %{value} 之å‰å»ºç«‹çš„
   
   button_login: 登录
   button_submit: æäº¤
@@ -826,53 +827,53 @@
   text_regexp_info: 例如:^[A-Z0-9]+$
   text_min_max_length_info: 0 表示没有é™åˆ¶
   text_project_destroy_confirmation: 您确信è¦åˆ é™¤è¿™ä¸ªé¡¹ç›®ä»¥åŠæ‰€æœ‰ç›¸å…³çš„æ•°æ®å—?
-  text_subprojects_destroy_warning: "以下å­é¡¹ç›®ä¹Ÿå°†è¢«åŒæ—¶åˆ é™¤ï¼š{{value}}"
+  text_subprojects_destroy_warning: "以下å­é¡¹ç›®ä¹Ÿå°†è¢«åŒæ—¶åˆ é™¤ï¼š%{value}"
   text_workflow_edit: 选择角色和跟踪标签æ¥ç¼–辑工作æµç¨‹
   text_are_you_sure: 您确定?
-  text_journal_changed: "{{label}} 从 {{old}} å˜æ›´ä¸º {{new}}"
-  text_journal_set_to: "{{label}} 被设置为 {{value}}"
-  text_journal_deleted: "{{label}} 已删除 ({{old}})"
-  text_journal_added: "{{label}} {{value}} 已添加"
+  text_journal_changed: "%{label} 从 %{old} å˜æ›´ä¸º %{new}"
+  text_journal_set_to: "%{label} 被设置为 %{value}"
+  text_journal_deleted: "%{label} 已删除 (%{old})"
+  text_journal_added: "%{label} %{value} 已添加"
   text_tip_issue_begin_day: 今天开始的任务
   text_tip_issue_end_day: 今天结æŸçš„任务
   text_tip_issue_begin_end_day: 今天开始并结æŸçš„任务
   text_project_identifier_info: 'åªå…许使用å°å†™å­—æ¯ï¼ˆa-z),数字和连字符(-)。<br />请注æ„,标识符ä¿å­˜åŽå°†ä¸å¯ä¿®æ”¹ã€‚'
-  text_caracters_maximum: "最多 {{count}} 个字符。"
-  text_caracters_minimum: "è‡³å°‘éœ€è¦ {{count}} 个字符。"
-  text_length_between: "长度必须在 {{min}} 到 {{max}} 个字符之间。"
+  text_caracters_maximum: "最多 %{count} 个字符。"
+  text_caracters_minimum: "è‡³å°‘éœ€è¦ %{count} 个字符。"
+  text_length_between: "长度必须在 %{min} 到 %{max} 个字符之间。"
   text_tracker_no_workflow: 此跟踪标签未定义工作æµç¨‹
   text_unallowed_characters: éžæ³•字符
   text_comma_separated: å¯ä»¥ä½¿ç”¨å¤šä¸ªå€¼ï¼ˆç”¨é€—å·,分开)。
   text_line_separated: å¯ä»¥ä½¿ç”¨å¤šä¸ªå€¼ï¼ˆæ¯è¡Œä¸€ä¸ªå€¼ï¼‰ã€‚
   text_issues_ref_in_commit_messages: 在æäº¤ä¿¡æ¯ä¸­å¼•用和解决问题
-  text_issue_added: "问题 {{id}} 已由 {{author}} æäº¤ã€‚"
-  text_issue_updated: "问题 {{id}} 已由 {{author}} 更新。"
+  text_issue_added: "问题 %{id} 已由 %{author} æäº¤ã€‚"
+  text_issue_updated: "问题 %{id} 已由 %{author} 更新。"
   text_wiki_destroy_confirmation: 您确定è¦åˆ é™¤è¿™ä¸ª wiki åŠå…¶æ‰€æœ‰å†…容å—?
-  text_issue_category_destroy_question: "有一些问题({{count}} ä¸ªï¼‰å±žäºŽæ­¤ç±»åˆ«ã€‚æ‚¨æƒ³è¿›è¡Œå“ªç§æ“作?"
+  text_issue_category_destroy_question: "有一些问题(%{count} ä¸ªï¼‰å±žäºŽæ­¤ç±»åˆ«ã€‚æ‚¨æƒ³è¿›è¡Œå“ªç§æ“作?"
   text_issue_category_destroy_assignments: 删除问题的所属类别(问题å˜ä¸ºæ— ç±»åˆ«ï¼‰
   text_issue_category_reassign_to: 为问题选择其它类别
   text_user_mail_option: "对于没有选中的项目,您将åªä¼šæ”¶åˆ°æ‚¨è·Ÿè¸ªæˆ–å‚与的项目的通知(比如说,您是问题的报告者, 或被指派解决此问题)。"
   text_no_configuration_data: "角色ã€è·Ÿè¸ªæ ‡ç­¾ã€é—®é¢˜çжæ€å’Œå·¥ä½œæµç¨‹è¿˜æ²¡æœ‰è®¾ç½®ã€‚\n强烈建议您先载入默认设置,然åŽåœ¨æ­¤åŸºç¡€ä¸Šè¿›è¡Œä¿®æ”¹ã€‚"
   text_load_default_configuration: 载入默认设置
-  text_status_changed_by_changeset: "å·²åº”ç”¨åˆ°å˜æ›´åˆ—表 {{value}}."
+  text_status_changed_by_changeset: "å·²åº”ç”¨åˆ°å˜æ›´åˆ—表 %{value}."
   text_issues_destroy_confirmation: '您确定è¦åˆ é™¤é€‰ä¸­çš„问题å—?'
   text_select_project_modules: '请选择此项目å¯ä»¥ä½¿ç”¨çš„æ¨¡å—:'
   text_default_administrator_account_changed: 默认的管ç†å‘˜å¸å·å·²æ”¹å˜
   text_file_repository_writable: 附件路径å¯å†™
   text_plugin_assets_writable: æ’件的附件路径å¯å†™
   text_rmagick_available: RMagick å¯ç”¨ï¼ˆå¯é€‰çš„)
-  text_destroy_time_entries_question: 您è¦åˆ é™¤çš„问题已ç»ä¸ŠæŠ¥äº† {{hours}} å°æ—¶çš„工作é‡ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
+  text_destroy_time_entries_question: 您è¦åˆ é™¤çš„问题已ç»ä¸ŠæŠ¥äº† %{hours} å°æ—¶çš„工作é‡ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
   text_destroy_time_entries: 删除上报的工作é‡
   text_assign_time_entries_to_project: å°†å·²ä¸ŠæŠ¥çš„å·¥ä½œé‡æäº¤åˆ°é¡¹ç›®ä¸­
   text_reassign_time_entries: 'å°†å·²ä¸ŠæŠ¥çš„å·¥ä½œé‡æŒ‡å®šåˆ°æ­¤é—®é¢˜ï¼š'
-  text_user_wrote: "{{value}} 写到:"
+  text_user_wrote: "%{value} 写到:"
   text_enumeration_category_reassign_to: '将它们关è”到新的枚举值:'
-  text_enumeration_destroy_question: "{{count}} 个对象被关è”到了这个枚举值。"
+  text_enumeration_destroy_question: "%{count} 个对象被关è”到了这个枚举值。"
   text_email_delivery_not_configured: "邮件傿•°å°šæœªé…置,因此邮件通知功能已被ç¦ç”¨ã€‚\n请在config/email.yml中é…置您的SMTPæœåŠ¡å™¨ä¿¡æ¯å¹¶é‡æ–°å¯åŠ¨ä»¥ä½¿å…¶ç”Ÿæ•ˆã€‚"
   text_repository_usernames_mapping: "选择或更新与版本库中的用户å对应的Redmine用户。\n版本库中与Redmine中的åŒå用户将被自动对应。"
   text_diff_truncated: '... å·®åˆ«å†…å®¹è¶…è¿‡äº†å¯æ˜¾ç¤ºçš„æœ€å¤§è¡Œæ•°å¹¶å·²è¢«æˆªæ–­'
   text_custom_field_possible_values_info: 'æ¯é¡¹æ•°å€¼ä¸€è¡Œ'
-  text_wiki_page_destroy_question: æ­¤é¡µé¢æœ‰ {{descendants}} 个å­é¡µé¢å’Œä¸‹çº§é¡µé¢ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
+  text_wiki_page_destroy_question: æ­¤é¡µé¢æœ‰ %{descendants} 个å­é¡µé¢å’Œä¸‹çº§é¡µé¢ã€‚æ‚¨æƒ³è¿›è¡Œé‚£ç§æ“作?
   text_wiki_page_reassign_children: å°†å­é¡µé¢çš„上级页é¢è®¾ç½®ä¸º
   text_wiki_page_nullify_children: å°†å­é¡µé¢ä¿ç•™ä¸ºæ ¹é¡µé¢
   text_wiki_page_destroy_children: 删除å­é¡µé¢åŠå…¶æ‰€æœ‰ä¸‹çº§é¡µé¢
@@ -916,12 +917,12 @@
   label_subtask_plural: å­ä»»åŠ¡
   label_project_copy_notifications: å¤åˆ¶é¡¹ç›®æ—¶å‘é€é‚®ä»¶é€šçŸ¥
   error_can_not_delete_custom_field: ä¸èƒ½åˆ é™¤è‡ªå®šä¹‰å±žæ€§
-  error_unable_to_connect: ä¸èƒ½è¿žæŽ¥åˆ° ({{value}})
+  error_unable_to_connect: ä¸èƒ½è¿žæŽ¥åˆ° (%{value})
   error_can_not_remove_role: 该角色正在使用中, ä¸èƒ½åˆ é™¤.
   error_can_not_delete_tracker: 该跟踪标签包å«é—®é¢˜, ä¸èƒ½åˆ é™¤.
   field_principal: 用户/用户组
   label_my_page_block: æˆ‘çš„å·¥ä½œå°æ¨¡å—
-  notice_failed_to_save_members: "æˆå‘˜ä¿å­˜å¤±è´¥ï¼š{{errors}}。"
+  notice_failed_to_save_members: "æˆå‘˜ä¿å­˜å¤±è´¥ï¼š%{errors}。"
   text_zoom_out: 缩å°
   text_zoom_in: 放大
   notice_unable_delete_time_entry: 无法删除工时记录。
@@ -929,7 +930,7 @@
   field_time_entries: Log time
   project_module_gantt: Gantt
   project_module_calendar: Calendar
-  button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}"
+  button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
   text_are_you_sure_with_children: Delete issue and all child issues?
   field_text: Text field
   label_user_mail_option_only_owner: Only for things I am the owner of
@@ -940,8 +941,12 @@
   field_member_of_group: Assignee's group
   field_assigned_to_role: Assignee's role
   notice_not_authorized_archived_project: The project you're trying to access has been archived.
-  field_start_date: Start date
   label_principal_search: "Search for user or group:"
   label_user_search: "Search for user:"
   field_visible: Visible
   setting_emails_header: Emails header
+  setting_commit_logtime_activity_id: Activity for logged time
+  text_time_logged_by_changeset: Applied in changeset %{value}.
+  setting_commit_logtime_enabled: Enable time logging
+  notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
+  setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
--- a/config/settings.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/config/settings.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -66,6 +66,9 @@
 feeds_limit:
   format: int
   default: 15
+gantt_items_limit:
+  format: int
+  default: 500
 # Maximum size of files that can be displayed
 # inline through the file viewer (in KB)
 file_max_size_displayed:
@@ -98,6 +101,11 @@
   default: 0
 commit_fix_done_ratio:
   default: 100
+commit_logtime_enabled:
+  default: 0
+commit_logtime_activity_id:
+  format: int
+  default: 0
 # autologin duration in days
 # 0 means autologin is disabled 
 autologin:
--- a/db/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 27
-/svn/!svn/ver/4402/trunk/db
+/svn/!svn/ver/4610/trunk/db
 END
--- a/db/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/db
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T12:33:14.198318Z
-4402
-jplang
+2011-01-01T23:08:49.766359Z
+4610
+jbbarth
 has-props
 
 
--- a/db/migrate/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 35
-/svn/!svn/ver/4402/trunk/db/migrate
+/svn/!svn/ver/4610/trunk/db/migrate
 END
 20101107130441_add_custom_fields_visible.rb
 K 25
@@ -97,7 +97,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 94
-/svn/!svn/ver/4216/trunk/db/migrate/20100129193402_change_users_mail_notification_to_string.rb
+/svn/!svn/ver/4413/trunk/db/migrate/20100129193402_change_users_mail_notification_to_string.rb
 END
 008_create_user_preferences.rb
 K 25
@@ -421,7 +421,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 85
-/svn/!svn/ver/4368/trunk/db/migrate/20100129193813_update_mail_notification_values.rb
+/svn/!svn/ver/4413/trunk/db/migrate/20100129193813_update_mail_notification_values.rb
 END
 20091017214611_add_missing_indexes_to_journals.rb
 K 25
@@ -511,7 +511,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 81
-/svn/!svn/ver/4370/trunk/db/migrate/20101104182107_add_unique_index_on_members.rb
+/svn/!svn/ver/4610/trunk/db/migrate/20101104182107_add_unique_index_on_members.rb
 END
 20100313132032_add_issues_nested_sets_columns.rb
 K 25
--- a/db/migrate/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/db/migrate
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T12:33:14.198318Z
-4402
-jplang
+2011-01-01T23:08:49.766359Z
+4610
+jbbarth
 
 
 
@@ -542,33 +542,33 @@
 
 
 
-2010-11-19T13:04:50.888959Z
-7a99a8db186dc5ae3903ff470808fbd8
-2010-09-28T18:22:00.231301Z
-4216
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-290
+2011-01-13T14:09:38.000000Z
+627e34913535f16f767133cbdc5b57f0
+2010-11-20T09:55:06.580420Z
+4413
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1071
 
 008_create_user_preferences.rb
 file
@@ -2378,10 +2378,10 @@
 
 
 
-2010-11-19T13:04:50.888959Z
-d584696f16d190556dd796ab71ebe6f8
-2010-11-06T10:57:56.438344Z
-4368
+2011-01-13T14:09:38.000000Z
+d2251c92048ec4169e2c220f1510d803
+2010-11-20T09:55:06.580420Z
+4413
 jplang
 
 
@@ -2404,7 +2404,7 @@
 
 
 
-583
+241
 
 20091017214611_add_missing_indexes_to_journals.rb
 file
@@ -2888,33 +2888,33 @@
 
 
 
-2010-11-19T13:04:50.888959Z
-c682cee6b57ef16a410b2253213f9864
-2010-11-06T11:49:45.617666Z
-4370
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-898
+2011-01-13T14:09:38.000000Z
+7a04693ea608e342b463c73c461b2da0
+2011-01-01T23:08:49.766359Z
+4610
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+949
 
 20100313132032_add_issues_nested_sets_columns.rb
 file
--- a/db/migrate/.svn/text-base/20100129193402_change_users_mail_notification_to_string.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/.svn/text-base/20100129193402_change_users_mail_notification_to_string.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,17 @@
 class ChangeUsersMailNotificationToString < ActiveRecord::Migration
   def self.up
-    change_column :users, :mail_notification, :string, :default => '', :null => false
+    rename_column :users, :mail_notification, :mail_notification_bool
+    add_column :users, :mail_notification, :string, :default => '', :null => false
+    User.update_all("mail_notification = 'all'", "mail_notification_bool = #{connection.quoted_true}")
+    User.update_all("mail_notification = 'selected'", "EXISTS (SELECT 1 FROM #{Member.table_name} WHERE #{Member.table_name}.mail_notification = #{connection.quoted_true} AND #{Member.table_name}.user_id = #{User.table_name}.id)")
+    User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')")
+    remove_column :users, :mail_notification_bool
   end
 
   def self.down
-    change_column :users, :mail_notification, :boolean, :default => true, :null => false
+    rename_column :users, :mail_notification, :mail_notification_char
+    add_column :users, :mail_notification, :boolean, :default => true, :null => false
+    User.update_all("mail_notification = #{connection.quoted_false}", "mail_notification_char <> 'all'")
+    remove_column :users, :mail_notification_char
   end
 end
--- a/db/migrate/.svn/text-base/20100129193813_update_mail_notification_values.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/.svn/text-base/20100129193813_update_mail_notification_values.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,8 @@
 # Patch the data from a boolean change.
 class UpdateMailNotificationValues < ActiveRecord::Migration
   def self.up
-    User.update_all("mail_notification = 'all'", "mail_notification IN ('1', 't')")
-    User.update_all("mail_notification = 'selected'", "EXISTS (SELECT 1 FROM #{Member.table_name} WHERE #{Member.table_name}.mail_notification = #{connection.quoted_true} AND #{Member.table_name}.user_id = #{User.table_name}.id)")
-    User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')")
+    # No-op
+    # See 20100129193402_change_users_mail_notification_to_string.rb
   end
 
   def self.down
--- a/db/migrate/.svn/text-base/20101104182107_add_unique_index_on_members.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/.svn/text-base/20101104182107_add_unique_index_on_members.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,5 +17,6 @@
   end
 
   def self.down
+    remove_index :members, [:user_id, :project_id]
   end
 end
--- a/db/migrate/20100129193402_change_users_mail_notification_to_string.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/20100129193402_change_users_mail_notification_to_string.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,17 @@
 class ChangeUsersMailNotificationToString < ActiveRecord::Migration
   def self.up
-    change_column :users, :mail_notification, :string, :default => '', :null => false
+    rename_column :users, :mail_notification, :mail_notification_bool
+    add_column :users, :mail_notification, :string, :default => '', :null => false
+    User.update_all("mail_notification = 'all'", "mail_notification_bool = #{connection.quoted_true}")
+    User.update_all("mail_notification = 'selected'", "EXISTS (SELECT 1 FROM #{Member.table_name} WHERE #{Member.table_name}.mail_notification = #{connection.quoted_true} AND #{Member.table_name}.user_id = #{User.table_name}.id)")
+    User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')")
+    remove_column :users, :mail_notification_bool
   end
 
   def self.down
-    change_column :users, :mail_notification, :boolean, :default => true, :null => false
+    rename_column :users, :mail_notification, :mail_notification_char
+    add_column :users, :mail_notification, :boolean, :default => true, :null => false
+    User.update_all("mail_notification = #{connection.quoted_false}", "mail_notification_char <> 'all'")
+    remove_column :users, :mail_notification_char
   end
 end
--- a/db/migrate/20100129193813_update_mail_notification_values.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/20100129193813_update_mail_notification_values.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,8 @@
 # Patch the data from a boolean change.
 class UpdateMailNotificationValues < ActiveRecord::Migration
   def self.up
-    User.update_all("mail_notification = 'all'", "mail_notification IN ('1', 't')")
-    User.update_all("mail_notification = 'selected'", "EXISTS (SELECT 1 FROM #{Member.table_name} WHERE #{Member.table_name}.mail_notification = #{connection.quoted_true} AND #{Member.table_name}.user_id = #{User.table_name}.id)")
-    User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')")
+    # No-op
+    # See 20100129193402_change_users_mail_notification_to_string.rb
   end
 
   def self.down
--- a/db/migrate/20101104182107_add_unique_index_on_members.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/db/migrate/20101104182107_add_unique_index_on_members.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,5 +17,6 @@
   end
 
   def self.down
+    remove_index :members, [:user_id, :project_id]
   end
 end
--- a/doc/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 28
-/svn/!svn/ver/4348/trunk/doc
+/svn/!svn/ver/4670/trunk/doc
 END
 UPGRADING
 K 25
@@ -25,13 +25,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 36
-/svn/!svn/ver/3848/trunk/doc/INSTALL
+/svn/!svn/ver/4567/trunk/doc/INSTALL
 END
 CHANGELOG
 K 25
 svn:wc:ra_dav:version-url
 V 38
-/svn/!svn/ver/4348/trunk/doc/CHANGELOG
+/svn/!svn/ver/4670/trunk/doc/CHANGELOG
 END
 COPYING
 K 25
--- a/doc/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/doc
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-01T00:37:14.867836Z
-4348
-edavis10
+2011-01-09T15:57:44.051951Z
+4670
+jplang
 
 
 
@@ -134,11 +134,11 @@
 
 
 
-2010-09-23T14:37:44.939791Z
-cc24a3b3e2deae6410de710cd2eed893
-2010-07-18T15:19:04.080578Z
-3848
-edavis10
+2011-01-13T14:09:38.000000Z
+1e44cb9fd6df3d50661a812598996dcb
+2010-12-23T10:03:32.666117Z
+4567
+jplang
 has-props
 
 
@@ -160,7 +160,7 @@
 
 
 
-2961
+2987
 
 CHANGELOG
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-11-19T13:04:51.228963Z
-c17df05456a8e8f311c61ea7825fe2aa
-2010-11-01T00:37:14.867836Z
-4348
-edavis10
+2011-01-13T14:09:38.000000Z
+dd376ebfe28816365c8c71db0212c730
+2011-01-09T15:57:44.051951Z
+4670
+jplang
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-77969
+84248
 
 COPYING
 file
--- a/doc/.svn/text-base/CHANGELOG.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/.svn/text-base/CHANGELOG.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,119 @@
 == Redmine changelog
 
 Redmine - project management software
-Copyright (C) 2006-2010  Jean-Philippe Lang
+Copyright (C) 2006-2011  Jean-Philippe Lang
 http://www.redmine.org/
 
+== 2011-01-09 v1.1.0
+
+* Defect #2038: Italics in wiki headers show-up wrong in the toc
+* Defect #3449: Redmine Takes Too Long On Large Mercurial Repository
+* Defect #3567: Sorting for changesets might go wrong on Mercurial repos
+* Defect #3707: {{toc}} doesn't work with {{include}}
+* Defect #5096: Redmine hangs up while browsing Git repository
+* Defect #6000: Safe Attributes prevents plugin extension of Issue model...
+* Defect #6064: Modules not assigned to projects created via API
+* Defect #6110: MailHandler should allow updating Issue Priority and Custom fields
+* Defect #6136: JSON API holds less information than XML API
+* Defect #6345: xml used by rest API is invalid
+* Defect #6348: Gantt chart PDF rendering errors
+* Defect #6403: Updating an issue with custom fields fails
+* Defect #6467: "Member of role", "Member of group" filter not work correctly
+* Defect #6473: New gantt broken after clearing issue filters
+* Defect #6541: Email notifications send to everybody
+* Defect #6549: Notification settings not migrated properly
+* Defect #6591: Acronyms must have a minimum of three characters
+* Defect #6674: Delete time log broken after changes to REST
+* Defect #6681: Mercurial, Bazaar and Darcs auto close issue text should be commit id instead of revision number
+* Defect #6724: Wiki uploads does not work anymore (SVN 4266)
+* Defect #6746: Wiki links are broken on Activity page
+* Defect #6747: Wiki diff does not work since r4265
+* Defect #6763: New gantt charts: subject displayed twice on issues
+* Defect #6826: Clicking "Add" twice creates duplicate member record
+* Defect #6844: Unchecking status filter on the issue list has no effect
+* Defect #6895: Wrong Polish translation of "blocks"
+* Defect #6943: Migration from boolean to varchar fails on PostgreSQL 8.1
+* Defect #7064: Mercurial adapter does not recognize non alphabetic nor numeric in UTF-8 copied files
+* Defect #7128: New gantt chart does not render subtasks under parent task
+* Defect #7135: paging mechanism returns the same last page forever
+* Defect #7188: Activity page not refreshed when changing language
+* Defect #7195: Apply CLI-supplied defaults for incoming mail only to new issues not replies
+* Defect #7197: Tracker reset to default when replying to an issue email
+* Defect #7213: Copy project does not copy all roles and permissions
+* Defect #7225: Project settings: Trackers & Custom fields only relevant if module Issue tracking is active
+* Feature #630: Allow non-unique names for projects
+* Feature #1738: Add a "Visible" flag to project/user custom fields
+* Feature #2803: Support for Javascript in Themes
+* Feature #2852: Clean Incoming Email of quoted text "----- Reply above this line ------"
+* Feature #2995: Improve error message when trying to access an archived project
+* Feature #3170: Autocomplete issue relations on subject
+* Feature #3503: Administrator Be Able To Modify Email settings Of Users
+* Feature #4155: Automatic spent time logging from commit messages
+* Feature #5136: Parent select on Wiki rename page
+* Feature #5338: Descendants (subtasks) should be available via REST API
+* Feature #5494: Wiki TOC should display heading from level 4
+* Feature #5594: Improve MailHandler's keyword handling
+* Feature #5622: Allow version to be set via incoming email
+* Feature #5712: Reload themes
+* Feature #5869: Issue filters by Group and Role
+* Feature #6092: Truncate Git revision labels in Activity page/feed and allow configurable length
+* Feature #6112: Accept localized keywords when receiving emails
+* Feature #6140: REST issues response with issue count limit and offset
+* Feature #6260: REST API for Users
+* Feature #6276: Gantt Chart rewrite
+* Feature #6446: Remove length limits on project identifier and name
+* Feature #6628: Improvements in truncate email
+* Feature #6779: Project JSON API
+* Feature #6823: REST API for time tracker.
+* Feature #7072: REST API for news
+* Feature #7111: Expose more detail on journal entries
+* Feature #7141: REST API: get information about current user
+* Patch #4807: Allow to set the done_ratio field with the incoming mail system
+* Patch #5441: Initialize TimeEntry attributes with params[:time_entry]
+* Patch #6762: Use GET instead of POST to retrieve context_menu
+* Patch #7160: French translation ofr "not_a_date" is missing
+* Patch #7212: Missing remove_index in AddUniqueIndexOnMembers down migration
+
+
+== 2010-12-23 v1.0.5
+
+* #6656: Mercurial adapter loses seconds of commit times
+* #6996: Migration trac(sqlite3) -> redmine(postgresql) doesnt escape ' char
+* #7013: v-1.0.4 trunk - see {{count}} in page display rather than value
+* #7016: redundant 'field_start_date' in ja.yml
+* #7018: 'undefined method `reschedule_after' for nil:NilClass' on new issues
+* #7024: E-mail notifications about Wiki changes.
+* #7033: 'class' attribute of <pre> tag shouldn't be truncate
+* #7035: CSV value separator in russian
+* #7122: Issue-description Quote-button missing
+* #7144: custom queries making use of deleted custom fields cause a 500 error
+* #7162: Multiply defined label in french translation
+
+== 2010-11-28 v1.0.4
+
+* #5324: Git not working if color.ui is enabled
+* #6447: Issues API doesn't allow full key auth for all actions
+* #6457: Edit User group problem
+* #6575: start date being filled with current date even when blank value is submitted
+* #6740: Max attachment size, incorrect usage of 'KB'
+* #6760: Select box sorted by ID instead of name in Issue Category
+* #6766: Changing target version name can cause an internal error
+* #6784: Redmine not working with i18n gem 0.4.2
+* #6839: Hardcoded absolute links in my/page_layout
+* #6841: Projects API doesn't allow full key auth for all actions
+* #6860: svn: Write error: Broken pipe when browsing repository
+* #6874: API should return XML description when creating a project
+* #6932: submitting wrong parent task input creates a 500 error
+* #6966: Records of Forums are remained, deleting project
+* #6990: Layout problem in workflow overview
+* #5117: mercurial_adapter should ensure the right LANG environment variable
+* #6782: Traditional Chinese language file (to r4352)
+* #6783: Swedish Translation for r4352
+* #6804: Bugfix: spelling fixes
+* #6814: Japanese Translation for r4362
+* #6948: Bulgarian translation
+* #6973: Update es.yml
+
 == 2010-10-31 v1.0.3
 
 * #4065: Redmine.pm doesn't work with LDAPS and a non-standard port
@@ -1112,7 +1222,7 @@
 * Search engines now supports pagination. Results are sorted in reverse chronological order
 * Added "Estimated hours" attribute on issues
 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
-* Forum notifications are now also sent to the authors of the thread, even if they don’t watch the board
+* Forum notifications are now also sent to the authors of the thread, even if they don�t watch the board
 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
 * Gantt chart: now starts at the current month by default
 * Gantt chart: month count and zoom factor are automatically saved as user preferences
@@ -1120,7 +1230,7 @@
 * Added wiki index by date
 * Added preview on add/edit issue form
 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
-* Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that they’re properly displayed)
+* Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that they�re properly displayed)
 * Calendar: first day of week can now be set in lang files
 * Automatic closing of duplicate issues
 * Added a cross-project issue list
@@ -1132,7 +1242,7 @@
 * Added some accesskeys
 * Added "Float" as a custom field format
 * Added basic Theme support
-* Added the ability to set the “done ratio” of issues fixed by commit (Nikolay Solakov)
+* Added the ability to set the �done ratio� of issues fixed by commit (Nikolay Solakov)
 * Added custom fields in issue related mail notifications
 * Email notifications are now sent in plain text and html
 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
@@ -1165,7 +1275,7 @@
 * Added Korean translation (Choi Jong Yoon)
 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
 * Performance improvement on calendar and gantt
-* Fixed: wiki preview doesn’t work on long entries
+* Fixed: wiki preview doesn�t work on long entries
 * Fixed: queries with multiple custom fields return no result
 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
 * Fixed: URL with ~ broken in wiki formatting
@@ -1176,7 +1286,7 @@
 
 * per project forums added
 * added the ability to archive projects
-* added “Watch” functionality on issues. It allows users to receive notifications about issue changes
+* added �Watch� functionality on issues. It allows users to receive notifications about issue changes
 * custom fields for issues can now be used as filters on issue list
 * added per user custom queries
 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
@@ -1217,7 +1327,7 @@
 * added swedish translation (Thomas Habets)
 * italian translation update (Alessio Spadaro)
 * japanese translation update (Satoru Kurashiki)
-* fixed: error on history atom feed when there’s no notes on an issue change
+* fixed: error on history atom feed when there�s no notes on an issue change
 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
 * fixed: creation of Oracle schema
 * fixed: last day of the month not included in project activity
--- a/doc/.svn/text-base/INSTALL.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/.svn/text-base/INSTALL.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -9,14 +9,16 @@
 
 * Ruby 1.8.6 or 1.8.7
 
+* RubyGems 1.3.1
+
 * Ruby on Rails 2.3.5 (official downloadable Redmine releases are packaged with
   the appropriate Rails version)
 
-* Rack 1.0.1
+* Rack 1.0.1 gem
 
-* RubyGems 1.3.1
+* Rake 0.8.3 gem
 
-* Rake 0.8.3
+* I18n 0.4.2 gem
 
 * A database:
   * MySQL (tested with MySQL 5)
--- a/doc/CHANGELOG	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/CHANGELOG	Thu Jan 13 14:12:06 2011 +0000
@@ -1,9 +1,119 @@
 == Redmine changelog
 
 Redmine - project management software
-Copyright (C) 2006-2010  Jean-Philippe Lang
+Copyright (C) 2006-2011  Jean-Philippe Lang
 http://www.redmine.org/
 
+== 2011-01-09 v1.1.0
+
+* Defect #2038: Italics in wiki headers show-up wrong in the toc
+* Defect #3449: Redmine Takes Too Long On Large Mercurial Repository
+* Defect #3567: Sorting for changesets might go wrong on Mercurial repos
+* Defect #3707: {{toc}} doesn't work with {{include}}
+* Defect #5096: Redmine hangs up while browsing Git repository
+* Defect #6000: Safe Attributes prevents plugin extension of Issue model...
+* Defect #6064: Modules not assigned to projects created via API
+* Defect #6110: MailHandler should allow updating Issue Priority and Custom fields
+* Defect #6136: JSON API holds less information than XML API
+* Defect #6345: xml used by rest API is invalid
+* Defect #6348: Gantt chart PDF rendering errors
+* Defect #6403: Updating an issue with custom fields fails
+* Defect #6467: "Member of role", "Member of group" filter not work correctly
+* Defect #6473: New gantt broken after clearing issue filters
+* Defect #6541: Email notifications send to everybody
+* Defect #6549: Notification settings not migrated properly
+* Defect #6591: Acronyms must have a minimum of three characters
+* Defect #6674: Delete time log broken after changes to REST
+* Defect #6681: Mercurial, Bazaar and Darcs auto close issue text should be commit id instead of revision number
+* Defect #6724: Wiki uploads does not work anymore (SVN 4266)
+* Defect #6746: Wiki links are broken on Activity page
+* Defect #6747: Wiki diff does not work since r4265
+* Defect #6763: New gantt charts: subject displayed twice on issues
+* Defect #6826: Clicking "Add" twice creates duplicate member record
+* Defect #6844: Unchecking status filter on the issue list has no effect
+* Defect #6895: Wrong Polish translation of "blocks"
+* Defect #6943: Migration from boolean to varchar fails on PostgreSQL 8.1
+* Defect #7064: Mercurial adapter does not recognize non alphabetic nor numeric in UTF-8 copied files
+* Defect #7128: New gantt chart does not render subtasks under parent task
+* Defect #7135: paging mechanism returns the same last page forever
+* Defect #7188: Activity page not refreshed when changing language
+* Defect #7195: Apply CLI-supplied defaults for incoming mail only to new issues not replies
+* Defect #7197: Tracker reset to default when replying to an issue email
+* Defect #7213: Copy project does not copy all roles and permissions
+* Defect #7225: Project settings: Trackers & Custom fields only relevant if module Issue tracking is active
+* Feature #630: Allow non-unique names for projects
+* Feature #1738: Add a "Visible" flag to project/user custom fields
+* Feature #2803: Support for Javascript in Themes
+* Feature #2852: Clean Incoming Email of quoted text "----- Reply above this line ------"
+* Feature #2995: Improve error message when trying to access an archived project
+* Feature #3170: Autocomplete issue relations on subject
+* Feature #3503: Administrator Be Able To Modify Email settings Of Users
+* Feature #4155: Automatic spent time logging from commit messages
+* Feature #5136: Parent select on Wiki rename page
+* Feature #5338: Descendants (subtasks) should be available via REST API
+* Feature #5494: Wiki TOC should display heading from level 4
+* Feature #5594: Improve MailHandler's keyword handling
+* Feature #5622: Allow version to be set via incoming email
+* Feature #5712: Reload themes
+* Feature #5869: Issue filters by Group and Role
+* Feature #6092: Truncate Git revision labels in Activity page/feed and allow configurable length
+* Feature #6112: Accept localized keywords when receiving emails
+* Feature #6140: REST issues response with issue count limit and offset
+* Feature #6260: REST API for Users
+* Feature #6276: Gantt Chart rewrite
+* Feature #6446: Remove length limits on project identifier and name
+* Feature #6628: Improvements in truncate email
+* Feature #6779: Project JSON API
+* Feature #6823: REST API for time tracker.
+* Feature #7072: REST API for news
+* Feature #7111: Expose more detail on journal entries
+* Feature #7141: REST API: get information about current user
+* Patch #4807: Allow to set the done_ratio field with the incoming mail system
+* Patch #5441: Initialize TimeEntry attributes with params[:time_entry]
+* Patch #6762: Use GET instead of POST to retrieve context_menu
+* Patch #7160: French translation ofr "not_a_date" is missing
+* Patch #7212: Missing remove_index in AddUniqueIndexOnMembers down migration
+
+
+== 2010-12-23 v1.0.5
+
+* #6656: Mercurial adapter loses seconds of commit times
+* #6996: Migration trac(sqlite3) -> redmine(postgresql) doesnt escape ' char
+* #7013: v-1.0.4 trunk - see {{count}} in page display rather than value
+* #7016: redundant 'field_start_date' in ja.yml
+* #7018: 'undefined method `reschedule_after' for nil:NilClass' on new issues
+* #7024: E-mail notifications about Wiki changes.
+* #7033: 'class' attribute of <pre> tag shouldn't be truncate
+* #7035: CSV value separator in russian
+* #7122: Issue-description Quote-button missing
+* #7144: custom queries making use of deleted custom fields cause a 500 error
+* #7162: Multiply defined label in french translation
+
+== 2010-11-28 v1.0.4
+
+* #5324: Git not working if color.ui is enabled
+* #6447: Issues API doesn't allow full key auth for all actions
+* #6457: Edit User group problem
+* #6575: start date being filled with current date even when blank value is submitted
+* #6740: Max attachment size, incorrect usage of 'KB'
+* #6760: Select box sorted by ID instead of name in Issue Category
+* #6766: Changing target version name can cause an internal error
+* #6784: Redmine not working with i18n gem 0.4.2
+* #6839: Hardcoded absolute links in my/page_layout
+* #6841: Projects API doesn't allow full key auth for all actions
+* #6860: svn: Write error: Broken pipe when browsing repository
+* #6874: API should return XML description when creating a project
+* #6932: submitting wrong parent task input creates a 500 error
+* #6966: Records of Forums are remained, deleting project
+* #6990: Layout problem in workflow overview
+* #5117: mercurial_adapter should ensure the right LANG environment variable
+* #6782: Traditional Chinese language file (to r4352)
+* #6783: Swedish Translation for r4352
+* #6804: Bugfix: spelling fixes
+* #6814: Japanese Translation for r4362
+* #6948: Bulgarian translation
+* #6973: Update es.yml
+
 == 2010-10-31 v1.0.3
 
 * #4065: Redmine.pm doesn't work with LDAPS and a non-standard port
@@ -1112,7 +1222,7 @@
 * Search engines now supports pagination. Results are sorted in reverse chronological order
 * Added "Estimated hours" attribute on issues
 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
-* Forum notifications are now also sent to the authors of the thread, even if they don’t watch the board
+* Forum notifications are now also sent to the authors of the thread, even if they don�t watch the board
 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
 * Gantt chart: now starts at the current month by default
 * Gantt chart: month count and zoom factor are automatically saved as user preferences
@@ -1120,7 +1230,7 @@
 * Added wiki index by date
 * Added preview on add/edit issue form
 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
-* Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that they’re properly displayed)
+* Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that they�re properly displayed)
 * Calendar: first day of week can now be set in lang files
 * Automatic closing of duplicate issues
 * Added a cross-project issue list
@@ -1132,7 +1242,7 @@
 * Added some accesskeys
 * Added "Float" as a custom field format
 * Added basic Theme support
-* Added the ability to set the “done ratio” of issues fixed by commit (Nikolay Solakov)
+* Added the ability to set the �done ratio� of issues fixed by commit (Nikolay Solakov)
 * Added custom fields in issue related mail notifications
 * Email notifications are now sent in plain text and html
 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
@@ -1165,7 +1275,7 @@
 * Added Korean translation (Choi Jong Yoon)
 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
 * Performance improvement on calendar and gantt
-* Fixed: wiki preview doesn’t work on long entries
+* Fixed: wiki preview doesn�t work on long entries
 * Fixed: queries with multiple custom fields return no result
 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
 * Fixed: URL with ~ broken in wiki formatting
@@ -1176,7 +1286,7 @@
 
 * per project forums added
 * added the ability to archive projects
-* added “Watch” functionality on issues. It allows users to receive notifications about issue changes
+* added �Watch� functionality on issues. It allows users to receive notifications about issue changes
 * custom fields for issues can now be used as filters on issue list
 * added per user custom queries
 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
@@ -1217,7 +1327,7 @@
 * added swedish translation (Thomas Habets)
 * italian translation update (Alessio Spadaro)
 * japanese translation update (Satoru Kurashiki)
-* fixed: error on history atom feed when there’s no notes on an issue change
+* fixed: error on history atom feed when there�s no notes on an issue change
 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
 * fixed: creation of Oracle schema
 * fixed: last day of the month not included in project activity
--- a/doc/INSTALL	Fri Nov 19 14:05:24 2010 +0000
+++ b/doc/INSTALL	Thu Jan 13 14:12:06 2011 +0000
@@ -9,14 +9,16 @@
 
 * Ruby 1.8.6 or 1.8.7
 
+* RubyGems 1.3.1
+
 * Ruby on Rails 2.3.5 (official downloadable Redmine releases are packaged with
   the appropriate Rails version)
 
-* Rack 1.0.1
+* Rack 1.0.1 gem
 
-* RubyGems 1.3.1
+* Rake 0.8.3 gem
 
-* Rake 0.8.3
+* I18n 0.4.2 gem
 
 * A database:
   * MySQL (tested with MySQL 5)
--- a/extra/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra
 http://redmine.rubyforge.org/svn
 
--- a/extra/mail_handler/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/mail_handler/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/mail_handler
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/models
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/views/example/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/views/example/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/example
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/views/my/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/views/my/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/views/my/blocks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/views/my/blocks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my/blocks
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/app/views/settings/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/app/views/settings/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/settings
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/assets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/assets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/assets/images/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/assets/images/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/images
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/assets/stylesheets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/assets/stylesheets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/stylesheets
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/config/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/config/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/config/locales/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/config/locales/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config/locales
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/db/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/db/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db
 http://redmine.rubyforge.org/svn
 
--- a/extra/sample_plugin/db/migrate/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/sample_plugin/db/migrate/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db/migrate
 http://redmine.rubyforge.org/svn
 
--- a/extra/svn/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/extra/svn/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/extra/svn
 http://redmine.rubyforge.org/svn
 
--- a/files/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/files/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/files
 http://redmine.rubyforge.org/svn
 
--- a/lib/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 28
-/svn/!svn/ver/4406/trunk/lib
+/svn/!svn/ver/4688/trunk/lib
 END
 faster_csv.rb
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/4388/trunk/lib/redmine.rb
+/svn/!svn/ver/4466/trunk/lib/redmine.rb
 END
 tabular_form_builder.rb
 K 25
@@ -25,7 +25,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 41
-/svn/!svn/ver/4374/trunk/lib/redcloth3.rb
+/svn/!svn/ver/4468/trunk/lib/redcloth3.rb
 END
 ar_condition.rb
 K 25
--- a/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:24:21.989522Z
-4406
-jplang
+2011-01-11T08:41:35.993532Z
+4688
+tmaruyama
 
 
 
@@ -78,10 +78,10 @@
 
 
 
-2010-11-19T13:04:51.440969Z
-bdb16884474de1a2d37d4cc215f7f027
-2010-11-07T22:38:10.728638Z
-4388
+2011-01-13T14:11:09.000000Z
+a25bf842b86584d0d77844d95b6ab907
+2010-12-04T17:43:39.823144Z
+4466
 jplang
 has-props
 
@@ -104,7 +104,7 @@
 
 
 
-12745
+12841
 
 tabular_form_builder.rb
 file
@@ -149,10 +149,10 @@
 
 
 
-2010-11-19T13:04:51.440969Z
-d1a99a7a8d34e675199eec76eea82129
-2010-11-06T13:29:23.489999Z
-4374
+2011-01-13T14:11:09.000000Z
+d76edcf3565b73d5e63e37d3e1c72512
+2010-12-05T10:09:18.457497Z
+4468
 jplang
 has-props
 
@@ -175,7 +175,7 @@
 
 
 
-38666
+38680
 
 ar_condition.rb
 file
--- a/lib/.svn/text-base/redcloth3.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/.svn/text-base/redcloth3.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1078,7 +1078,7 @@
                         line = "<redpre##{ @pre_list.length }>"
                         first.match(/<#{ OFFTAGS }([^>]*)>/)
                         tag = $1
-                        $2.to_s.match(/(class\=\S+)/i)
+                        $2.to_s.match(/(class\=("[^"]+"|'[^']+'))/i)
                         tag << " #{$1}" if $1
                         @pre_list << "<#{ tag }>#{ aftertag }"
                     end
--- a/lib/.svn/text-base/redmine.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/.svn/text-base/redmine.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -85,7 +85,7 @@
   
   map.project_module :time_tracking do |map|
     map.permission :log_time, {:timelog => [:new, :create, :edit, :update]}, :require => :loggedin
-    map.permission :view_time_entries, :timelog => [:index], :time_entry_reports => [:report]
+    map.permission :view_time_entries, :timelog => [:index, :show], :time_entry_reports => [:report]
     map.permission :edit_time_entries, {:timelog => [:new, :create, :edit, :update, :destroy]}, :require => :member
     map.permission :edit_own_time_entries, {:timelog => [:new, :create, :edit, :update, :destroy]}, :require => :loggedin
     map.permission :manage_project_activities, {:project_enumerations => [:update, :destroy]}, :require => :member
@@ -229,3 +229,5 @@
 Redmine::WikiFormatting.map do |format|
   format.register :textile, Redmine::WikiFormatting::Textile::Formatter, Redmine::WikiFormatting::Textile::Helper
 end
+
+ActionView::Template.register_template_handler :rsb, Redmine::Views::ApiTemplateHandler
--- a/lib/SVG/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/SVG/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/SVG
 http://redmine.rubyforge.org/svn
 
--- a/lib/SVG/Graph/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/SVG/Graph/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/SVG/Graph
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin/templates
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin_controller/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin_controller/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin_controller/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin_controller/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller/templates
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin_model/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin_model/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model
 http://redmine.rubyforge.org/svn
 
--- a/lib/generators/redmine_plugin_model/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/generators/redmine_plugin_model/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model/templates
 http://redmine.rubyforge.org/svn
 
--- a/lib/plugins/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/plugins/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/plugins
 http://redmine.rubyforge.org/svn
 
--- a/lib/redcloth3.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redcloth3.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1078,7 +1078,7 @@
                         line = "<redpre##{ @pre_list.length }>"
                         first.match(/<#{ OFFTAGS }([^>]*)>/)
                         tag = $1
-                        $2.to_s.match(/(class\=\S+)/i)
+                        $2.to_s.match(/(class\=("[^"]+"|'[^']+'))/i)
                         tag << " #{$1}" if $1
                         @pre_list << "<#{ tag }>#{ aftertag }"
                     end
--- a/lib/redmine.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -85,7 +85,7 @@
   
   map.project_module :time_tracking do |map|
     map.permission :log_time, {:timelog => [:new, :create, :edit, :update]}, :require => :loggedin
-    map.permission :view_time_entries, :timelog => [:index], :time_entry_reports => [:report]
+    map.permission :view_time_entries, :timelog => [:index, :show], :time_entry_reports => [:report]
     map.permission :edit_time_entries, {:timelog => [:new, :create, :edit, :update, :destroy]}, :require => :member
     map.permission :edit_own_time_entries, {:timelog => [:new, :create, :edit, :update, :destroy]}, :require => :loggedin
     map.permission :manage_project_activities, {:project_enumerations => [:update, :destroy]}, :require => :member
@@ -229,3 +229,5 @@
 Redmine::WikiFormatting.map do |format|
   format.register :textile, Redmine::WikiFormatting::Textile::Formatter, Redmine::WikiFormatting::Textile::Helper
 end
+
+ActionView::Template.register_template_handler :rsb, Redmine::Views::ApiTemplateHandler
--- a/lib/redmine/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 36
-/svn/!svn/ver/4406/trunk/lib/redmine
+/svn/!svn/ver/4688/trunk/lib/redmine
 END
 i18n.rb
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4183/trunk/lib/redmine/i18n.rb
+/svn/!svn/ver/4516/trunk/lib/redmine/i18n.rb
 END
 pop3.rb
 K 25
@@ -15,6 +15,12 @@
 V 44
 /svn/!svn/ver/3330/trunk/lib/redmine/pop3.rb
 END
+safe_attributes.rb
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/4491/trunk/lib/redmine/safe_attributes.rb
+END
 platform.rb
 K 25
 svn:wc:ra_dav:version-url
@@ -31,13 +37,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/3710/trunk/lib/redmine/themes.rb
+/svn/!svn/ver/4559/trunk/lib/redmine/themes.rb
 END
 version.rb
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/4349/trunk/lib/redmine/version.rb
+/svn/!svn/ver/4619/trunk/lib/redmine/version.rb
 END
 imap.rb
 K 25
--- a/lib/redmine/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:24:21.989522Z
-4406
-jplang
+2011-01-11T08:41:35.993532Z
+4688
+tmaruyama
 
 
 
@@ -69,10 +69,10 @@
 
 
 
-2010-09-23T14:37:45.043748Z
-209d3f63cbc76795042695c71f6230f1
-2010-04-30T12:44:19.138265Z
-3710
+2011-01-13T14:09:39.000000Z
+23fd3a13b8bcd6b3e2547e913d5fae18
+2010-12-22T21:41:08.746858Z
+4559
 jplang
 has-props
 
@@ -95,7 +95,7 @@
 
 
 
-2311
+3420
 
 imap.rb
 file
@@ -418,11 +418,11 @@
 
 
 
-2010-11-19T13:04:51.412966Z
-f1b6f1af024068879494612c2494e865
-2010-09-26T17:13:52.794850Z
-4183
-edavis10
+2011-01-13T14:09:39.000000Z
+009b7a9ada5c3e83d6a7a26256c34951
+2010-12-17T08:34:29.830642Z
+4516
+jplang
 has-props
 
 
@@ -444,11 +444,45 @@
 
 
 
-2378
+2315
 
 scm
 dir
 
+safe_attributes.rb
+file
+
+
+
+
+2011-01-13T14:09:39.000000Z
+7f659c02de1ea89806beda1772dc4d36
+2010-12-12T13:11:53.259618Z
+4491
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2579
+
 platform.rb
 file
 
@@ -523,11 +557,11 @@
 
 
 
-2010-11-19T13:04:51.412966Z
-8241f5642ac2d1aaa38fc1625f8816e6
-2010-11-01T00:37:19.679270Z
-4349
-edavis10
+2011-01-13T14:09:39.000000Z
+599c6a070c34c23117d1176bf811988d
+2011-01-02T12:16:40.859443Z
+4619
+jplang
 has-props
 
 
@@ -795,6 +829,9 @@
 
 77
 
+default_data
+dir
+
 unified_diff.rb
 file
 
@@ -829,6 +866,3 @@
 
 5259
 
-default_data
-dir
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/prop-base/safe_attributes.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/lib/redmine/.svn/text-base/i18n.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/.svn/text-base/i18n.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -37,7 +37,7 @@
 
     def format_date(date)
       return nil unless date
-      Setting.date_format.blank? ? ::I18n.l(date.to_date, :count => date.strftime('%d')) : date.strftime(Setting.date_format)
+      Setting.date_format.blank? ? ::I18n.l(date.to_date) : date.strftime(Setting.date_format)
     end
     
     def format_time(time, include_date = true)
@@ -45,7 +45,7 @@
       time = time.to_time if time.is_a?(String)
       zone = User.current.time_zone
       local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
-      Setting.time_format.blank? ? ::I18n.l(local, :count => local.strftime('%d'), :format => (include_date ? :default : :time)) : 
+      Setting.time_format.blank? ? ::I18n.l(local, :format => (include_date ? :default : :time)) : 
                                    ((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}")
     end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/text-base/safe_attributes.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module SafeAttributes
+    def self.included(base)
+      base.extend(ClassMethods)
+    end
+    
+    module ClassMethods
+      # Declares safe attributes
+      # An optional Proc can be given for conditional inclusion
+      #
+      # Example:
+      #   safe_attributes 'title', 'pages'
+      #   safe_attributes 'isbn', :if => {|book, user| book.author == user}
+      def safe_attributes(*args)
+        @safe_attributes ||= []
+        if args.empty?
+          @safe_attributes
+        else
+          options = args.last.is_a?(Hash) ? args.pop : {}
+          @safe_attributes << [args, options]
+        end
+      end
+    end
+    
+    # Returns an array that can be safely set by user or current user
+    #
+    # Example:
+    #   book.safe_attributes # => ['title', 'pages']
+    #   book.safe_attributes(book.author) # => ['title', 'pages', 'isbn']
+    def safe_attribute_names(user=User.current)
+      names = []
+      self.class.safe_attributes.collect do |attrs, options|
+        if options[:if].nil? || options[:if].call(self, user)
+          names += attrs.collect(&:to_s)
+        end
+      end
+      names.uniq
+    end
+    
+    # Returns a hash with unsafe attributes removed
+    # from the given attrs hash
+    # 
+    # Example:
+    #   book.delete_unsafe_attributes({'title' => 'My book', 'foo' => 'bar'})
+    #   # => {'title' => 'My book'}
+    def delete_unsafe_attributes(attrs, user=User.current)
+      safe = safe_attribute_names(user)
+      attrs.dup.delete_if {|k,v| !safe.include?(k)}
+    end
+    
+    # Sets attributes from attrs that are safe
+    # attrs is a Hash with string keys
+    def safe_attributes=(attrs, user=User.current)
+      return unless attrs.is_a?(Hash)
+      self.attributes = delete_unsafe_attributes(attrs, user)
+    end
+  end
+end
--- a/lib/redmine/.svn/text-base/themes.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/.svn/text-base/themes.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,30 +29,65 @@
     end
     
     # Return theme for given id, or nil if it's not found
-    def self.theme(id)
-      themes.find {|t| t.id == id}
+    def self.theme(id, options={})
+      return nil if id.blank?
+      
+      found = themes.find {|t| t.id == id}
+      if found.nil? && options[:rescan] != false
+        rescan
+        found = theme(id, :rescan => false)
+      end
+      found
     end
   
     # Class used to represent a theme
     class Theme
-      attr_reader :name, :dir, :stylesheets
+      attr_reader :path, :name, :dir
       
       def initialize(path)
+        @path = path
         @dir = File.basename(path)
         @name = @dir.humanize
-        @stylesheets = Dir.glob("#{path}/stylesheets/*.css").collect {|f| File.basename(f).gsub(/\.css$/, '')}
+        @stylesheets = nil
+        @javascripts = nil
       end
       
       # Directory name used as the theme id
       def id; dir end
-
+      
+      def ==(theme)
+        theme.is_a?(Theme) && theme.dir == dir
+      end
+      
       def <=>(theme)
         name <=> theme.name
       end
+      
+      def stylesheets
+        @stylesheets ||= assets("stylesheets", "css")
+      end
+      
+      def javascripts
+        @javascripts ||= assets("javascripts", "js")
+      end
+      
+      def stylesheet_path(source)
+        "/themes/#{dir}/stylesheets/#{source}"
+      end
+      
+      def javascript_path(source)
+        "/themes/#{dir}/javascripts/#{source}"
+      end
+      
+      private
+      
+      def assets(dir, ext)
+        Dir.glob("#{path}/#{dir}/*.#{ext}").collect {|f| File.basename(f).gsub(/\.#{ext}$/, '')}
+      end
     end
     
     private
-        
+    
     def self.scan_themes
       dirs = Dir.glob("#{Rails.public_path}/themes/*").select do |f|
         # A theme should at least override application.css
@@ -64,13 +99,29 @@
 end
 
 module ApplicationHelper
+  def current_theme
+    unless instance_variable_defined?(:@current_theme)
+      @current_theme = Redmine::Themes.theme(Setting.ui_theme)
+    end
+    @current_theme
+  end
+  
   def stylesheet_path(source)
-    @current_theme ||= Redmine::Themes.theme(Setting.ui_theme)
-    super((@current_theme && @current_theme.stylesheets.include?(source)) ?
-      "/themes/#{@current_theme.dir}/stylesheets/#{source}" : source)
+    if current_theme && current_theme.stylesheets.include?(source)
+      super current_theme.stylesheet_path(source)
+    else
+      super
+    end
   end
   
   def path_to_stylesheet(source)
     stylesheet_path source
   end
+  
+  # Returns the header tags for the current theme
+  def heads_for_theme
+    if current_theme && current_theme.javascripts.include?('theme')
+      javascript_include_tag current_theme.javascript_path('theme')
+    end
+  end
 end
--- a/lib/redmine/.svn/text-base/version.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/.svn/text-base/version.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -3,8 +3,8 @@
 module Redmine
   module VERSION #:nodoc:
     MAJOR = 1
-    MINOR = 0
-    TINY  = 3
+    MINOR = 1
+    TINY  = 0
     
     # Branch values:
     # * official release: nil
--- a/lib/redmine/activity/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/activity/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/activity
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/core_ext/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/core_ext/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/core_ext/string/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/core_ext/string/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext/string
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/default_data/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/default_data/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/default_data
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/export/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/export/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/export
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/helpers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/helpers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4392/trunk/lib/redmine/helpers
+/svn/!svn/ver/4584/trunk/lib/redmine/helpers
 END
 gantt.rb
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/4392/trunk/lib/redmine/helpers/gantt.rb
+/svn/!svn/ver/4584/trunk/lib/redmine/helpers/gantt.rb
 END
 calendar.rb
 K 25
--- a/lib/redmine/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/helpers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-11T13:44:23.942520Z
-4392
+2010-12-30T15:04:08.033097Z
+4584
 jplang
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-11-19T13:04:51.408930Z
-3c093f4a7147fe4ebdbaed2749d602f1
-2010-11-11T13:44:23.942520Z
-4392
+2011-01-13T14:09:38.000000Z
+2c61985f04e8f13965fd9880ff9ad5dc
+2010-12-30T15:04:08.033097Z
+4584
 jplang
 has-props
 
@@ -58,7 +58,7 @@
 
 
 
-40744
+32266
 
 calendar.rb
 file
--- a/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -34,7 +34,7 @@
         end
       end
 
-      attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months
+      attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months, :truncated, :max_rows
       attr_accessor :query
       attr_accessor :project
       attr_accessor :view
@@ -67,6 +67,19 @@
         
         @date_from = Date.civil(@year_from, @month_from, 1)
         @date_to = (@date_from >> @months) - 1
+        
+        @subjects = ''
+        @lines = ''
+        @number_of_rows = nil
+        
+        @issue_ancestors = []
+        
+        @truncated = false
+        if options.has_key?(:max_rows)
+          @max_rows = options[:max_rows]
+        else
+          @max_rows = Setting.gantt_items_limit.blank? ? nil : Setting.gantt_items_limit.to_i
+        end
       end
 
       def common_params
@@ -88,13 +101,17 @@
             ### Extracted from the HTML view/helpers
       # Returns the number of rows that will be rendered on the Gantt chart
       def number_of_rows
-        if @project
-          return number_of_rows_on_project(@project)
+        return @number_of_rows if @number_of_rows
+        
+        rows = if @project
+          number_of_rows_on_project(@project)
         else
-          Project.roots.inject(0) do |total, project|
+          Project.roots.visible.has_module('issue_tracking').inject(0) do |total, project|
             total += number_of_rows_on_project(project)
           end
         end
+        
+        rows > @max_rows ? @max_rows : rows
       end
 
       # Returns the number of rows that will be used to list a project on
@@ -119,7 +136,7 @@
         end
 
         # Subprojects
-        project.children.each do |subproject|
+        project.children.visible.has_module('issue_tracking').each do |subproject|
           count += number_of_rows_on_project(subproject)
         end
 
@@ -128,34 +145,36 @@
 
       # Renders the subjects of the Gantt chart, the left side.
       def subjects(options={})
-        options = {:indent => 4, :render => :subject, :format => :html}.merge(options)
-
-        output = ''
-        if @project
-          output << render_project(@project, options)
-        else
-          Project.roots.each do |project|
-            output << render_project(project, options)
-          end
-        end
-
-        output
+        render(options.merge(:only => :subjects)) unless @subjects_rendered
+        @subjects
       end
 
       # Renders the lines of the Gantt chart, the right side
       def lines(options={})
-        options = {:indent => 4, :render => :line, :format => :html}.merge(options)
-        output = ''
-
+        render(options.merge(:only => :lines)) unless @lines_rendered
+        @lines
+      end
+      
+      def render(options={})
+        options = {:indent => 4, :render => :subject, :format => :html}.merge(options)
+        
+        @subjects = '' unless options[:only] == :lines
+        @lines = '' unless options[:only] == :subjects
+        @number_of_rows = 0
+        
         if @project
-          output << render_project(@project, options)
+          render_project(@project, options)
         else
-          Project.roots.each do |project|
-            output << render_project(project, options)
+          Project.roots.visible.has_module('issue_tracking').each do |project|
+            render_project(project, options)
+            break if abort?
           end
         end
         
-        output
+        @subjects_rendered = true unless options[:only] == :lines
+        @lines_rendered = true unless options[:only] == :subjects
+        
+        render_end(options)
       end
 
       def render_project(project, options={})
@@ -163,122 +182,96 @@
         options[:indent_increment] = 20 unless options.key? :indent_increment
         options[:top_increment] = 20 unless options.key? :top_increment
 
-        output = ''
-        # Project Header
-        project_header = if options[:render] == :subject
-                           subject_for_project(project, options)
-                         else
-                           # :line
-                           line_for_project(project, options)
-                         end
-        output << project_header if options[:format] == :html
+        subject_for_project(project, options) unless options[:only] == :lines
+        line_for_project(project, options) unless options[:only] == :subjects
         
         options[:top] += options[:top_increment]
         options[:indent] += options[:indent_increment]
+        @number_of_rows += 1
+        return if abort?
         
         # Second, Issues without a version
-        issues = project.issues.for_gantt.without_version.with_query(@query)
+        issues = project.issues.for_gantt.without_version.with_query(@query).all(:limit => current_limit)
+        sort_issues!(issues)
         if issues
-          issue_rendering = render_issues(issues, options)
-          output << issue_rendering if options[:format] == :html
+          render_issues(issues, options)
+          return if abort?
         end
 
         # Third, Versions
         project.versions.sort.each do |version|
-          version_rendering = render_version(version, options)
-          output << version_rendering if options[:format] == :html
+          render_version(version, options)
+          return if abort?
         end
 
         # Fourth, subprojects
-        project.children.each do |project|
-          subproject_rendering = render_project(project, options)
-          output << subproject_rendering if options[:format] == :html
-        end
+        project.children.visible.has_module('issue_tracking').each do |project|
+          render_project(project, options)
+          return if abort?
+        end unless project.leaf?
 
         # Remove indent to hit the next sibling
         options[:indent] -= options[:indent_increment]
-        
-        output
       end
 
       def render_issues(issues, options={})
-        output = ''
+        @issue_ancestors = []
+        
         issues.each do |i|
-          issue_rendering = if options[:render] == :subject
-                              subject_for_issue(i, options)
-                            else
-                              # :line
-                              line_for_issue(i, options)
-                            end
-          output << issue_rendering if options[:format] == :html
+          subject_for_issue(i, options) unless options[:only] == :lines
+          line_for_issue(i, options) unless options[:only] == :subjects
+          
           options[:top] += options[:top_increment]
+          @number_of_rows += 1
+          break if abort?
         end
-        output
+        
+        options[:indent] -= (options[:indent_increment] * @issue_ancestors.size)
       end
 
       def render_version(version, options={})
-        output = ''
         # Version header
-        version_rendering = if options[:render] == :subject
-                              subject_for_version(version, options)
-                            else
-                              # :line
-                              line_for_version(version, options)
-                            end
-
-        output << version_rendering if options[:format] == :html
+        subject_for_version(version, options) unless options[:only] == :lines
+        line_for_version(version, options) unless options[:only] == :subjects
         
         options[:top] += options[:top_increment]
-
+        @number_of_rows += 1
+        return if abort?
+        
         # Remove the project requirement for Versions because it will
         # restrict issues to only be on the current project.  This
         # ends up missing issues which are assigned to shared versions.
         @query.project = nil if @query.project
         
-        issues = version.fixed_issues.for_gantt.with_query(@query)
+        issues = version.fixed_issues.for_gantt.with_query(@query).all(:limit => current_limit)
         if issues
+          sort_issues!(issues)
           # Indent issues
           options[:indent] += options[:indent_increment]
-          output << render_issues(issues, options)
+          render_issues(issues, options)
           options[:indent] -= options[:indent_increment]
         end
-
-        output
+      end
+      
+      def render_end(options={})
+        case options[:format]
+        when :pdf        
+          options[:pdf].Line(15, options[:top], PDF::TotalWidth, options[:top])
+        end
       end
 
       def subject_for_project(project, options)
         case options[:format]
         when :html
-          output = ''
-
-          output << "<div class='project-name' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if project.is_a? Project
-            output << "<span class='icon icon-projects #{project.overdue? ? 'project-overdue' : ''}'>"
-            output << view.link_to_project(project)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_project was not given a project"
-            ''
-          end
-          output << "</small></div>"
-
-          output
+          subject = "<span class='icon icon-projects #{project.overdue? ? 'project-overdue' : ''}'>"
+          subject << view.link_to_project(project)
+          subject << '</span>'
+          html_subject(options, subject, :css => "project-name")
         when :image
-          
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, project.name)
+          image_subject(options, project.name)
         when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{project.name}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
-        
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
+          pdf_new_page?(options)
+          pdf_subject(options, project.name)
         end
       end
 
@@ -287,95 +280,17 @@
         if project.is_a?(Project) && project.start_date && project.due_date
           options[:zoom] ||= 1
           options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom]
-
+            
+          coords = coordinates(project.start_date, project.due_date, nil, options[:zoom])
+          label = h(project)
           
           case options[:format]
           when :html
-            output = ''
-            i_left = ((project.start_date - self.date_from)*options[:zoom]).floor
-
-            start_date = project.start_date
-            start_date ||= self.date_from
-            start_left = ((start_date - self.date_from)*options[:zoom]).floor
-
-            i_end_date = ((project.due_date <= self.date_to) ? project.due_date : self.date_to )
-            i_done_date = start_date + ((project.due_date - start_date+1)* project.completed_percent(:include_subprojects => true)/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if start_date < Date.today
-            i_end = ((i_end_date - self.date_from) * options[:zoom]).floor
-
-            i_width = (i_end - i_left + 1).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-
-            # Bar graphic
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_end > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ i_width }px;' class='task project_todo'>&nbsp;</div>"
-            end
-            
-            if l_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ l_width }px;' class='task project_late'>&nbsp;</div>"
-            end
-            if d_width > 0 && i_left <= options[:g_width]
-              output<< "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ d_width }px;' class='task project_done'>&nbsp;</div>"
-            end
-
-            
-            # Starting diamond
-            if start_left <= options[:g_width] && start_left > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:15px;' class='task project-line starting'>&nbsp;</div>"
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left + 12 }px;' class='task label'>"
-              output << "</div>"
-            end
-
-            # Ending diamond
-            # Don't show items too far ahead
-            if i_end <= options[:g_width] && i_end > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_end }px;width:15px;' class='task project-line ending'>&nbsp;</div>"
-            end
-
-            # DIsplay the Project name and %
-            if i_end <= options[:g_width]
-              # Display the status even if it's floated off to the left
-              status_px = i_end + 12 # 12px for the diamond
-              status_px = 0 if status_px <= 0
-
-              output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='task label project-name'>"
-              output << "<strong>#{h project } #{h project.completed_percent(:include_subprojects => true).to_i.to_s}%</strong>"
-              output << "</div>"
-            end
-
-            output
+            html_task(options, coords, :css => "project task", :label => label, :markers => true)
           when :image
-            options[:image].stroke('transparent')
-            i_left = options[:subject_width] + ((project.due_date - self.date_from)*options[:zoom]).floor
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > options[:subject_width]
-              options[:image].fill('blue')
-              options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6)        
-              options[:image].fill('black')
-              options[:image].text(i_left + 11, options[:top] + 1, project.name)
-            end
+            image_task(options, coords, :label => label, :markers => true, :height => 3)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            i_left = ((project.due_date - @date_from)*options[:zoom])
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(50,50,200)
-              options[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
-        
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left + 3)
-              options[:pdf].Cell(30, 2, "#{project.name}")
-            end
+            pdf_task(options, coords, :label => label, :markers => true, :height => 0.8)
           end
         else
           ActiveRecord::Base.logger.debug "Gantt#line_for_project was not given a project with a start_date"
@@ -386,34 +301,15 @@
       def subject_for_version(version, options)
         case options[:format]
         when :html
-          output = ''
-          output << "<div class='version-name' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if version.is_a? Version
-            output << "<span class='icon icon-package #{version.behind_schedule? ? 'version-behind-schedule' : ''} #{version.overdue? ? 'version-overdue' : ''}'>"
-            output << view.link_to_version(version)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_version was not given a version"
-            ''
-          end
-          output << "</small></div>"
-
-          output
+          subject = "<span class='icon icon-package #{version.behind_schedule? ? 'version-behind-schedule' : ''} #{version.overdue? ? 'version-overdue' : ''}'>"
+          subject << view.link_to_version(version)
+          subject << '</span>'
+          html_subject(options, subject, :css => "version-name")
         when :image
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, version.to_s_with_project)
+          image_subject(options, version.to_s_with_project)
         when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{version.to_s_with_project}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
-        
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
+          pdf_new_page?(options)
+          pdf_subject(options, version.to_s_with_project)
         end
       end
 
@@ -422,95 +318,18 @@
         if version.is_a?(Version) && version.start_date && version.due_date
           options[:zoom] ||= 1
           options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom]
+          
+          coords = coordinates(version.start_date, version.due_date, version.completed_pourcent, options[:zoom])
+          label = "#{h version } #{h version.completed_pourcent.to_i.to_s}%"
+          label = h("#{version.project} -") + label unless @project && @project == version.project
 
           case options[:format]
           when :html
-            output = ''
-            i_left = ((version.start_date - self.date_from)*options[:zoom]).floor
-            # TODO: or version.fixed_issues.collect(&:start_date).min
-            start_date = version.fixed_issues.minimum('start_date') if version.fixed_issues.present?
-            start_date ||= self.date_from
-            start_left = ((start_date - self.date_from)*options[:zoom]).floor
-
-            i_end_date = ((version.due_date <= self.date_to) ? version.due_date : self.date_to )
-            i_done_date = start_date + ((version.due_date - start_date+1)* version.completed_pourcent/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if start_date < Date.today
-
-            i_width = (i_left - start_left + 1).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-
-            i_end = ((i_end_date - self.date_from) * options[:zoom]).floor # Ending pixel
-
-            # Bar graphic
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ i_width }px;' class='task milestone_todo'>&nbsp;</div>"
-            end
-            if l_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ l_width }px;' class='task milestone_late'>&nbsp;</div>"
-            end
-            if d_width > 0 && i_left <= options[:g_width]
-              output<< "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ d_width }px;' class='task milestone_done'>&nbsp;</div>"
-            end
-
-            
-            # Starting diamond
-            if start_left <= options[:g_width] && start_left > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:15px;' class='task milestone starting'>&nbsp;</div>"
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left + 12 }px;background:#fff;' class='task'>"
-              output << "</div>"
-            end
-
-            # Ending diamond
-            # Don't show items too far ahead
-            if i_left <= options[:g_width] && i_end > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_end }px;width:15px;' class='task milestone ending'>&nbsp;</div>"
-            end
-
-            # Display the Version name and %
-            if i_end <= options[:g_width]
-              # Display the status even if it's floated off to the left
-              status_px = i_end + 12 # 12px for the diamond
-              status_px = 0 if status_px <= 0
-              
-              output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='task label version-name'>"
-              output << h("#{version.project} -") unless @project && @project == version.project
-              output << "<strong>#{h version } #{h version.completed_pourcent.to_i.to_s}%</strong>"
-              output << "</div>"
-            end
-
-            output
+            html_task(options, coords, :css => "version task", :label => label, :markers => true)
           when :image
-            options[:image].stroke('transparent')
-            i_left = options[:subject_width] + ((version.start_date - @date_from)*options[:zoom]).floor
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > options[:subject_width]
-              options[:image].fill('green')
-              options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6)        
-              options[:image].fill('black')
-              options[:image].text(i_left + 11, options[:top] + 1, version.name)
-            end
+            image_task(options, coords, :label => label, :markers => true, :height => 3)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            i_left = ((version.start_date - @date_from)*options[:zoom]) 
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(50,200,50)
-              options[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
-        
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left + 3)
-              options[:pdf].Cell(30, 2, "#{version.name}")
-            end
+            pdf_task(options, coords, :label => label, :markers => true, :height => 0.8)
           end
         else
           ActiveRecord::Base.logger.debug "Gantt#line_for_version was not given a version with a start_date"
@@ -519,206 +338,55 @@
       end
 
       def subject_for_issue(issue, options)
-        case options[:format]
+        while @issue_ancestors.any? && !issue.is_descendant_of?(@issue_ancestors.last)
+          @issue_ancestors.pop
+          options[:indent] -= options[:indent_increment]
+        end
+          
+        output = case options[:format]
         when :html
-          output = ''
-          output << "<div class='tooltip'>"
-          output << "<div class='issue-subject' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if issue.is_a? Issue
-            css_classes = []
-            css_classes << 'issue-overdue' if issue.overdue?
-            css_classes << 'issue-behind-schedule' if issue.behind_schedule?
-            css_classes << 'icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to
+          css_classes = ''
+          css_classes << ' issue-overdue' if issue.overdue?
+          css_classes << ' issue-behind-schedule' if issue.behind_schedule?
+          css_classes << ' icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to
+          
+          subject = "<span class='#{css_classes}'>"
+          if issue.assigned_to.present?
+            assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
+            subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
+          end
+          subject << view.link_to_issue(issue)
+          subject << '</span>'
+          html_subject(options, subject, :css => "issue-subject") + "\n"
+        when :image
+          image_subject(options, issue.subject)
+        when :pdf
+          pdf_new_page?(options)
+          pdf_subject(options, issue.subject)
+        end
 
-            if issue.assigned_to.present?
-              assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
-              output << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
-            end
-            output << "<span class='#{css_classes.join(' ')}'>"
-            output << view.link_to_issue(issue)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_issue was not given an issue"
-            ''
-          end
-          output << "</small></div>"
-
-          # Tooltip
-          if issue.is_a? Issue
-            output << "<span class='tip' style='position: absolute;top:#{ options[:top].to_i + 16 }px;left:#{ options[:indent].to_i + 20 }px;'>"
-            output << view.render_issue_tooltip(issue)
-            output << "</span>"
-          end
-
-          output << "</div>"
-          output
-        when :image
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, issue.subject)
-        when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{issue.tracker} #{issue.id}: #{issue.subject}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
+        unless issue.leaf?
+          @issue_ancestors << issue
+          options[:indent] += options[:indent_increment]
+        end
         
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
-        end
+        output
       end
 
       def line_for_issue(issue, options)
         # Skip issues that don't have a due_before (due_date or version's due_date)
         if issue.is_a?(Issue) && issue.due_before
+          coords = coordinates(issue.start_date, issue.due_before, issue.done_ratio, options[:zoom])
+          label = "#{ issue.status.name } #{ issue.done_ratio }%"
+          
           case options[:format]
           when :html
-            output = ''
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= self.date_from
-                              issue.start_date
-                            else
-                              self.date_from
-                            end
-
-            i_end_date = ((issue.due_before && issue.due_before <= self.date_to) ? issue.due_before : self.date_to )
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = ((i_start_date - self.date_from)*options[:zoom]).floor 	
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - i_start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-            css = "task " + (issue.leaf? ? 'leaf' : 'parent')
-            
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ i_width }px;' class='#{css} task_todo'>&nbsp;</div>"
-            end
-            if l_width > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ l_width }px;' class='#{css} task_late'>&nbsp;</div>"
-            end
-            if d_width > 0
-              output<< "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ d_width }px;' class='#{css} task_done'>&nbsp;</div>"
-            end
-
-            # Display the status even if it's floated off to the left
-            status_px = i_left + i_width + 5
-            status_px = 5 if status_px <= 0
-            
-            output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='#{css} label issue-name'>"
-            output << issue.status.name
-            output << ' '
-            output << (issue.done_ratio).to_i.to_s
-            output << "%"
-            output << "</div>"
-
-            output << "<div class='tooltip' style='position: absolute;top:#{ options[:top] }px;left:#{ i_left }px;width:#{ i_width }px;height:12px;'>"
-            output << '<span class="tip">'
-            output << view.render_issue_tooltip(issue)
-            output << "</span></div>"
-            output
-          
+            html_task(options, coords, :css => "task " + (issue.leaf? ? 'leaf' : 'parent'), :label => label, :issue => issue, :markers => !issue.leaf?)
           when :image
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= @date_from
-                              issue.start_date
-                            else
-                              @date_from
-                            end
-
-            i_end_date = (issue.due_before <= date_to ? issue.due_before : date_to )        
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
-            i_done_date = (i_done_date >= date_to ? date_to : i_done_date )        
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = options[:subject_width] + ((i_start_date - @date_from)*options[:zoom]).floor 	
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor                  # total width of the issue
-            d_width = ((i_done_date - i_start_date)*options[:zoom]).floor                     # done width
-            l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor : 0 # delay width
-
-            
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              options[:image].fill('grey')
-              options[:image].rectangle(i_left, options[:top], i_left + i_width, options[:top] - 6)
-              options[:image].fill('red')
-              options[:image].rectangle(i_left, options[:top], i_left + l_width, options[:top] - 6) if l_width > 0
-              options[:image].fill('blue')
-              options[:image].rectangle(i_left, options[:top], i_left + d_width, options[:top] - 6) if d_width > 0
-            end
-
-            # Show the status and % done next to the subject if it overflows
-            options[:image].fill('black')
-            if i_width > 0
-              options[:image].text(i_left + i_width + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%")
-            else
-              options[:image].text(options[:subject_width] + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%")            
-            end
-
+            image_task(options, coords, :label => label)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= @date_from
-                          issue.start_date
-                        else
-                          @date_from
-                        end
-
-            i_end_date = (issue.due_before <= @date_to ? issue.due_before : @date_to )
-            
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
-            i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = ((i_start_date - @date_from)*options[:zoom]) 
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom])
-            d_width = ((i_done_date - i_start_date)*options[:zoom])
-            l_width = ((i_late_date - i_start_date+1)*options[:zoom]) if i_late_date
-            l_width ||= 0
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(200,200,200)
-              options[:pdf].Cell(i_width, 2, "", 0, 0, "", 1)
-            end
-          
-            if l_width > 0
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(255,100,100)
-              options[:pdf].Cell(l_width, 2, "", 0, 0, "", 1)
-            end 
-            if d_width > 0
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(100,100,255)
-              options[:pdf].Cell(d_width, 2, "", 0, 0, "", 1)
-            end
-
-            options[:pdf].SetY(options[:top]+1.5)
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if (i_left + i_width) >= 0
-              options[:pdf].SetX(options[:subject_width] + i_left + i_width)
-            else
-              options[:pdf].SetX(options[:subject_width])
-            end
-            options[:pdf].Cell(30, 2, "#{issue.status} #{issue.done_ratio}%")
-          end
+            pdf_task(options, coords, :label => label)
+        end
         else
           ActiveRecord::Base.logger.debug "GanttHelper#line_for_issue was not given an issue with a due_before"
           ''
@@ -746,6 +414,7 @@
         gc = Magick::Draw.new
         
         # Subjects
+        gc.stroke('transparent')
         subjects(:image => gc, :top => (headers_heigth + 20), :indent => 4, :format => :image)
     
         # Months headers
@@ -805,7 +474,7 @@
         	(date_to - @date_from + 1).to_i.times do 
               width =  zoom
               gc.fill(wday == 6 || wday == 7 ? '#eee' : 'white')
-              gc.stroke('grey')
+              gc.stroke('#ddd')
               gc.stroke_width(1)
               gc.rectangle(left, 2*header_heigth, left + width, 2*header_heigth + g_height-1)
               left = left + width
@@ -824,7 +493,8 @@
             
         # content
         top = headers_heigth + 20
-        
+
+        gc.stroke('transparent')
         lines(:image => gc, :top => top, :zoom => zoom, :subject_width => subject_width, :format => :image)
         
         # today red line
@@ -936,39 +606,257 @@
         
         # Tasks
         top = headers_heigth + y_start
-        pdf_subjects_and_lines(pdf, {
-                                 :top => top,
-                                 :zoom => zoom,
-                                 :subject_width => subject_width,
-                                 :g_width => g_width
-                               })
-
-        
-        pdf.Line(15, top, subject_width+g_width, top)
+        options = {
+          :top => top,
+          :zoom => zoom,
+          :subject_width => subject_width,
+          :g_width => g_width,
+          :indent => 0,
+          :indent_increment => 5,
+          :top_increment => 5,
+          :format => :pdf,
+          :pdf => pdf
+        }
+        render(options)
         pdf.Output
-
-        
       end
       
       private
+      
+      def coordinates(start_date, end_date, progress, zoom=nil)
+        zoom ||= @zoom
+        
+        coords = {}
+        if start_date && end_date && start_date < self.date_to && end_date > self.date_from
+          if start_date > self.date_from
+            coords[:start] = start_date - self.date_from
+            coords[:bar_start] = start_date - self.date_from
+          else
+            coords[:bar_start] = 0
+          end
+          if end_date < self.date_to
+            coords[:end] = end_date - self.date_from
+            coords[:bar_end] = end_date - self.date_from + 1
+          else
+            coords[:bar_end] = self.date_to - self.date_from + 1
+          end
+        
+          if progress
+            progress_date = start_date + (end_date - start_date) * (progress / 100.0)
+            if progress_date > self.date_from && progress_date > start_date
+              if progress_date < self.date_to
+                coords[:bar_progress_end] = progress_date - self.date_from + 1
+              else
+                coords[:bar_progress_end] = self.date_to - self.date_from + 1
+              end
+            end
+            
+            if progress_date < Date.today
+              late_date = [Date.today, end_date].min
+              if late_date > self.date_from && late_date > start_date
+                if late_date < self.date_to
+                  coords[:bar_late_end] = late_date - self.date_from + 1
+                else
+                  coords[:bar_late_end] = self.date_to - self.date_from + 1
+                end
+              end
+            end
+          end
+        end
+        
+        # Transforms dates into pixels witdh
+        coords.keys.each do |key|
+          coords[key] = (coords[key] * zoom).floor
+        end
+        coords
+      end
 
-      # Renders both the subjects and lines of the Gantt chart for the
-      # PDF format
-      def pdf_subjects_and_lines(pdf, options = {})
-        subject_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :subject, :format => :pdf, :pdf => pdf}.merge(options)
-        line_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :line, :format => :pdf, :pdf => pdf}.merge(options)
-
-        if @project
-          render_project(@project, subject_options)
-          render_project(@project, line_options)
+      # Sorts a collection of issues by start_date, due_date, id for gantt rendering
+      def sort_issues!(issues)
+        issues.sort! { |a, b| gantt_issue_compare(a, b, issues) }
+      end
+  
+      # TODO: top level issues should be sorted by start date
+      def gantt_issue_compare(x, y, issues)
+        if x.root_id == y.root_id
+          x.lft <=> y.lft
         else
-          Project.roots.each do |project|
-            render_project(project, subject_options)
-            render_project(project, line_options)
+          x.root_id <=> y.root_id
+        end
+      end
+      
+      def current_limit
+        if @max_rows
+          @max_rows - @number_of_rows
+        else
+          nil
+        end
+      end
+      
+      def abort?
+        if @max_rows && @number_of_rows >= @max_rows
+          @truncated = true
+        end
+      end
+      
+      def pdf_new_page?(options)
+        if options[:top] > 180
+          options[:pdf].Line(15, options[:top], PDF::TotalWidth, options[:top])
+          options[:pdf].AddPage("L")
+          options[:top] = 15
+          options[:pdf].Line(15, options[:top] - 0.1, PDF::TotalWidth, options[:top] - 0.1)
+        end
+      end
+      
+      def html_subject(params, subject, options={})
+        output = "<div class=' #{options[:css] }' style='position: absolute;line-height:1.2em;height:16px;top:#{params[:top]}px;left:#{params[:indent]}px;overflow:hidden;'>"
+        output << subject
+        output << "</div>"
+        @subjects << output
+        output
+      end
+      
+      def pdf_subject(params, subject, options={})
+        params[:pdf].SetY(params[:top])
+        params[:pdf].SetX(15)
+        
+        char_limit = PDF::MaxCharactorsForSubject - params[:indent]
+        params[:pdf].Cell(params[:subject_width]-15, 5, (" " * params[:indent]) +  subject.to_s.sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
+      
+        params[:pdf].SetY(params[:top])
+        params[:pdf].SetX(params[:subject_width])
+        params[:pdf].Cell(params[:g_width], 5, "", "LR")
+      end
+      
+      def image_subject(params, subject, options={})
+        params[:image].fill('black')
+        params[:image].stroke('transparent')
+        params[:image].stroke_width(1)
+        params[:image].text(params[:indent], params[:top] + 2, subject)
+      end
+      
+      def html_task(params, coords, options={})
+        output = ''
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_todo'>&nbsp;</div>"
+          
+          if coords[:bar_late_end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_late_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_late'>&nbsp;</div>"
           end
+          if coords[:bar_progress_end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_progress_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_done'>&nbsp;</div>"
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:start] }px;width:15px;' class='#{options[:css]} marker starting'>&nbsp;</div>"
+          end
+          if coords[:end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:end] + params[:zoom] }px;width:15px;' class='#{options[:css]} marker ending'>&nbsp;</div>"
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          output << "<div style='top:#{ params[:top] }px;left:#{ (coords[:bar_end] || 0) + 8 }px;' class='#{options[:css]} label'>"
+          output << options[:label]
+          output << "</div>"
+        end
+        # Renders the tooltip
+        if options[:issue] && coords[:bar_start] && coords[:bar_end]
+          output << "<div class='tooltip' style='position: absolute;top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_end] - coords[:bar_start] }px;height:12px;'>"
+          output << '<span class="tip">'
+          output << view.render_issue_tooltip(options[:issue])
+          output << "</span></div>"
+        end
+        @lines << output
+        output
+      end
+      
+      def pdf_task(params, coords, options={})
+        height = options[:height] || 2
+        
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          params[:pdf].SetY(params[:top]+1.5)
+          params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+          params[:pdf].SetFillColor(200,200,200)
+          params[:pdf].Cell(coords[:bar_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+            
+          if coords[:bar_late_end]
+            params[:pdf].SetY(params[:top]+1.5)
+            params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+            params[:pdf].SetFillColor(255,100,100)
+            params[:pdf].Cell(coords[:bar_late_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+          end
+          if coords[:bar_progress_end]
+            params[:pdf].SetY(params[:top]+1.5)
+            params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+            params[:pdf].SetFillColor(90,200,90)
+            params[:pdf].Cell(coords[:bar_progress_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            params[:pdf].SetY(params[:top] + 1)
+            params[:pdf].SetX(params[:subject_width] + coords[:start] - 1)
+            params[:pdf].SetFillColor(50,50,200)
+            params[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
+          end
+          if coords[:end]
+            params[:pdf].SetY(params[:top] + 1)
+            params[:pdf].SetX(params[:subject_width] + coords[:end] - 1)
+            params[:pdf].SetFillColor(50,50,200)
+            params[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          params[:pdf].SetX(params[:subject_width] + (coords[:bar_end] || 0) + 5)
+          params[:pdf].Cell(30, 2, options[:label])
         end
       end
 
+      def image_task(params, coords, options={})
+        height = options[:height] || 6
+        
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          params[:image].fill('#aaa')
+          params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_end], params[:top] - height)
+ 
+          if coords[:bar_late_end]
+            params[:image].fill('#f66')
+            params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_late_end], params[:top] - height)
+          end
+          if coords[:bar_progress_end]
+            params[:image].fill('#00c600')
+            params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_progress_end], params[:top] - height)
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            x = params[:subject_width] + coords[:start]
+            y = params[:top] - height / 2
+            params[:image].fill('blue')
+            params[:image].polygon(x-4, y, x, y-4, x+4, y, x, y+4)
+          end
+          if coords[:end]
+            x = params[:subject_width] + coords[:end] + params[:zoom]
+            y = params[:top] - height / 2
+            params[:image].fill('blue')
+            params[:image].polygon(x-4, y, x, y-4, x+4, y, x, y+4)
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          params[:image].fill('black')
+          params[:image].text(params[:subject_width] + (coords[:bar_end] || 0) + 5,params[:top] + 1, options[:label])
+        end
+      end
     end
   end
 end
--- a/lib/redmine/helpers/gantt.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/helpers/gantt.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -34,7 +34,7 @@
         end
       end
 
-      attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months
+      attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months, :truncated, :max_rows
       attr_accessor :query
       attr_accessor :project
       attr_accessor :view
@@ -67,6 +67,19 @@
         
         @date_from = Date.civil(@year_from, @month_from, 1)
         @date_to = (@date_from >> @months) - 1
+        
+        @subjects = ''
+        @lines = ''
+        @number_of_rows = nil
+        
+        @issue_ancestors = []
+        
+        @truncated = false
+        if options.has_key?(:max_rows)
+          @max_rows = options[:max_rows]
+        else
+          @max_rows = Setting.gantt_items_limit.blank? ? nil : Setting.gantt_items_limit.to_i
+        end
       end
 
       def common_params
@@ -88,13 +101,17 @@
             ### Extracted from the HTML view/helpers
       # Returns the number of rows that will be rendered on the Gantt chart
       def number_of_rows
-        if @project
-          return number_of_rows_on_project(@project)
+        return @number_of_rows if @number_of_rows
+        
+        rows = if @project
+          number_of_rows_on_project(@project)
         else
-          Project.roots.inject(0) do |total, project|
+          Project.roots.visible.has_module('issue_tracking').inject(0) do |total, project|
             total += number_of_rows_on_project(project)
           end
         end
+        
+        rows > @max_rows ? @max_rows : rows
       end
 
       # Returns the number of rows that will be used to list a project on
@@ -119,7 +136,7 @@
         end
 
         # Subprojects
-        project.children.each do |subproject|
+        project.children.visible.has_module('issue_tracking').each do |subproject|
           count += number_of_rows_on_project(subproject)
         end
 
@@ -128,34 +145,36 @@
 
       # Renders the subjects of the Gantt chart, the left side.
       def subjects(options={})
-        options = {:indent => 4, :render => :subject, :format => :html}.merge(options)
-
-        output = ''
-        if @project
-          output << render_project(@project, options)
-        else
-          Project.roots.each do |project|
-            output << render_project(project, options)
-          end
-        end
-
-        output
+        render(options.merge(:only => :subjects)) unless @subjects_rendered
+        @subjects
       end
 
       # Renders the lines of the Gantt chart, the right side
       def lines(options={})
-        options = {:indent => 4, :render => :line, :format => :html}.merge(options)
-        output = ''
-
+        render(options.merge(:only => :lines)) unless @lines_rendered
+        @lines
+      end
+      
+      def render(options={})
+        options = {:indent => 4, :render => :subject, :format => :html}.merge(options)
+        
+        @subjects = '' unless options[:only] == :lines
+        @lines = '' unless options[:only] == :subjects
+        @number_of_rows = 0
+        
         if @project
-          output << render_project(@project, options)
+          render_project(@project, options)
         else
-          Project.roots.each do |project|
-            output << render_project(project, options)
+          Project.roots.visible.has_module('issue_tracking').each do |project|
+            render_project(project, options)
+            break if abort?
           end
         end
         
-        output
+        @subjects_rendered = true unless options[:only] == :lines
+        @lines_rendered = true unless options[:only] == :subjects
+        
+        render_end(options)
       end
 
       def render_project(project, options={})
@@ -163,122 +182,96 @@
         options[:indent_increment] = 20 unless options.key? :indent_increment
         options[:top_increment] = 20 unless options.key? :top_increment
 
-        output = ''
-        # Project Header
-        project_header = if options[:render] == :subject
-                           subject_for_project(project, options)
-                         else
-                           # :line
-                           line_for_project(project, options)
-                         end
-        output << project_header if options[:format] == :html
+        subject_for_project(project, options) unless options[:only] == :lines
+        line_for_project(project, options) unless options[:only] == :subjects
         
         options[:top] += options[:top_increment]
         options[:indent] += options[:indent_increment]
+        @number_of_rows += 1
+        return if abort?
         
         # Second, Issues without a version
-        issues = project.issues.for_gantt.without_version.with_query(@query)
+        issues = project.issues.for_gantt.without_version.with_query(@query).all(:limit => current_limit)
+        sort_issues!(issues)
         if issues
-          issue_rendering = render_issues(issues, options)
-          output << issue_rendering if options[:format] == :html
+          render_issues(issues, options)
+          return if abort?
         end
 
         # Third, Versions
         project.versions.sort.each do |version|
-          version_rendering = render_version(version, options)
-          output << version_rendering if options[:format] == :html
+          render_version(version, options)
+          return if abort?
         end
 
         # Fourth, subprojects
-        project.children.each do |project|
-          subproject_rendering = render_project(project, options)
-          output << subproject_rendering if options[:format] == :html
-        end
+        project.children.visible.has_module('issue_tracking').each do |project|
+          render_project(project, options)
+          return if abort?
+        end unless project.leaf?
 
         # Remove indent to hit the next sibling
         options[:indent] -= options[:indent_increment]
-        
-        output
       end
 
       def render_issues(issues, options={})
-        output = ''
+        @issue_ancestors = []
+        
         issues.each do |i|
-          issue_rendering = if options[:render] == :subject
-                              subject_for_issue(i, options)
-                            else
-                              # :line
-                              line_for_issue(i, options)
-                            end
-          output << issue_rendering if options[:format] == :html
+          subject_for_issue(i, options) unless options[:only] == :lines
+          line_for_issue(i, options) unless options[:only] == :subjects
+          
           options[:top] += options[:top_increment]
+          @number_of_rows += 1
+          break if abort?
         end
-        output
+        
+        options[:indent] -= (options[:indent_increment] * @issue_ancestors.size)
       end
 
       def render_version(version, options={})
-        output = ''
         # Version header
-        version_rendering = if options[:render] == :subject
-                              subject_for_version(version, options)
-                            else
-                              # :line
-                              line_for_version(version, options)
-                            end
-
-        output << version_rendering if options[:format] == :html
+        subject_for_version(version, options) unless options[:only] == :lines
+        line_for_version(version, options) unless options[:only] == :subjects
         
         options[:top] += options[:top_increment]
-
+        @number_of_rows += 1
+        return if abort?
+        
         # Remove the project requirement for Versions because it will
         # restrict issues to only be on the current project.  This
         # ends up missing issues which are assigned to shared versions.
         @query.project = nil if @query.project
         
-        issues = version.fixed_issues.for_gantt.with_query(@query)
+        issues = version.fixed_issues.for_gantt.with_query(@query).all(:limit => current_limit)
         if issues
+          sort_issues!(issues)
           # Indent issues
           options[:indent] += options[:indent_increment]
-          output << render_issues(issues, options)
+          render_issues(issues, options)
           options[:indent] -= options[:indent_increment]
         end
-
-        output
+      end
+      
+      def render_end(options={})
+        case options[:format]
+        when :pdf        
+          options[:pdf].Line(15, options[:top], PDF::TotalWidth, options[:top])
+        end
       end
 
       def subject_for_project(project, options)
         case options[:format]
         when :html
-          output = ''
-
-          output << "<div class='project-name' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if project.is_a? Project
-            output << "<span class='icon icon-projects #{project.overdue? ? 'project-overdue' : ''}'>"
-            output << view.link_to_project(project)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_project was not given a project"
-            ''
-          end
-          output << "</small></div>"
-
-          output
+          subject = "<span class='icon icon-projects #{project.overdue? ? 'project-overdue' : ''}'>"
+          subject << view.link_to_project(project)
+          subject << '</span>'
+          html_subject(options, subject, :css => "project-name")
         when :image
-          
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, project.name)
+          image_subject(options, project.name)
         when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{project.name}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
-        
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
+          pdf_new_page?(options)
+          pdf_subject(options, project.name)
         end
       end
 
@@ -287,95 +280,17 @@
         if project.is_a?(Project) && project.start_date && project.due_date
           options[:zoom] ||= 1
           options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom]
-
+            
+          coords = coordinates(project.start_date, project.due_date, nil, options[:zoom])
+          label = h(project)
           
           case options[:format]
           when :html
-            output = ''
-            i_left = ((project.start_date - self.date_from)*options[:zoom]).floor
-
-            start_date = project.start_date
-            start_date ||= self.date_from
-            start_left = ((start_date - self.date_from)*options[:zoom]).floor
-
-            i_end_date = ((project.due_date <= self.date_to) ? project.due_date : self.date_to )
-            i_done_date = start_date + ((project.due_date - start_date+1)* project.completed_percent(:include_subprojects => true)/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if start_date < Date.today
-            i_end = ((i_end_date - self.date_from) * options[:zoom]).floor
-
-            i_width = (i_end - i_left + 1).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-
-            # Bar graphic
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_end > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ i_width }px;' class='task project_todo'>&nbsp;</div>"
-            end
-            
-            if l_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ l_width }px;' class='task project_late'>&nbsp;</div>"
-            end
-            if d_width > 0 && i_left <= options[:g_width]
-              output<< "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ d_width }px;' class='task project_done'>&nbsp;</div>"
-            end
-
-            
-            # Starting diamond
-            if start_left <= options[:g_width] && start_left > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:15px;' class='task project-line starting'>&nbsp;</div>"
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left + 12 }px;' class='task label'>"
-              output << "</div>"
-            end
-
-            # Ending diamond
-            # Don't show items too far ahead
-            if i_end <= options[:g_width] && i_end > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_end }px;width:15px;' class='task project-line ending'>&nbsp;</div>"
-            end
-
-            # DIsplay the Project name and %
-            if i_end <= options[:g_width]
-              # Display the status even if it's floated off to the left
-              status_px = i_end + 12 # 12px for the diamond
-              status_px = 0 if status_px <= 0
-
-              output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='task label project-name'>"
-              output << "<strong>#{h project } #{h project.completed_percent(:include_subprojects => true).to_i.to_s}%</strong>"
-              output << "</div>"
-            end
-
-            output
+            html_task(options, coords, :css => "project task", :label => label, :markers => true)
           when :image
-            options[:image].stroke('transparent')
-            i_left = options[:subject_width] + ((project.due_date - self.date_from)*options[:zoom]).floor
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > options[:subject_width]
-              options[:image].fill('blue')
-              options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6)        
-              options[:image].fill('black')
-              options[:image].text(i_left + 11, options[:top] + 1, project.name)
-            end
+            image_task(options, coords, :label => label, :markers => true, :height => 3)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            i_left = ((project.due_date - @date_from)*options[:zoom])
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(50,50,200)
-              options[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
-        
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left + 3)
-              options[:pdf].Cell(30, 2, "#{project.name}")
-            end
+            pdf_task(options, coords, :label => label, :markers => true, :height => 0.8)
           end
         else
           ActiveRecord::Base.logger.debug "Gantt#line_for_project was not given a project with a start_date"
@@ -386,34 +301,15 @@
       def subject_for_version(version, options)
         case options[:format]
         when :html
-          output = ''
-          output << "<div class='version-name' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if version.is_a? Version
-            output << "<span class='icon icon-package #{version.behind_schedule? ? 'version-behind-schedule' : ''} #{version.overdue? ? 'version-overdue' : ''}'>"
-            output << view.link_to_version(version)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_version was not given a version"
-            ''
-          end
-          output << "</small></div>"
-
-          output
+          subject = "<span class='icon icon-package #{version.behind_schedule? ? 'version-behind-schedule' : ''} #{version.overdue? ? 'version-overdue' : ''}'>"
+          subject << view.link_to_version(version)
+          subject << '</span>'
+          html_subject(options, subject, :css => "version-name")
         when :image
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, version.to_s_with_project)
+          image_subject(options, version.to_s_with_project)
         when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{version.to_s_with_project}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
-        
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
+          pdf_new_page?(options)
+          pdf_subject(options, version.to_s_with_project)
         end
       end
 
@@ -422,95 +318,18 @@
         if version.is_a?(Version) && version.start_date && version.due_date
           options[:zoom] ||= 1
           options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom]
+          
+          coords = coordinates(version.start_date, version.due_date, version.completed_pourcent, options[:zoom])
+          label = "#{h version } #{h version.completed_pourcent.to_i.to_s}%"
+          label = h("#{version.project} -") + label unless @project && @project == version.project
 
           case options[:format]
           when :html
-            output = ''
-            i_left = ((version.start_date - self.date_from)*options[:zoom]).floor
-            # TODO: or version.fixed_issues.collect(&:start_date).min
-            start_date = version.fixed_issues.minimum('start_date') if version.fixed_issues.present?
-            start_date ||= self.date_from
-            start_left = ((start_date - self.date_from)*options[:zoom]).floor
-
-            i_end_date = ((version.due_date <= self.date_to) ? version.due_date : self.date_to )
-            i_done_date = start_date + ((version.due_date - start_date+1)* version.completed_pourcent/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if start_date < Date.today
-
-            i_width = (i_left - start_left + 1).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-
-            i_end = ((i_end_date - self.date_from) * options[:zoom]).floor # Ending pixel
-
-            # Bar graphic
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ i_width }px;' class='task milestone_todo'>&nbsp;</div>"
-            end
-            if l_width > 0 && i_left <= options[:g_width]
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ l_width }px;' class='task milestone_late'>&nbsp;</div>"
-            end
-            if d_width > 0 && i_left <= options[:g_width]
-              output<< "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:#{ d_width }px;' class='task milestone_done'>&nbsp;</div>"
-            end
-
-            
-            # Starting diamond
-            if start_left <= options[:g_width] && start_left > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left }px;width:15px;' class='task milestone starting'>&nbsp;</div>"
-              output << "<div style='top:#{ options[:top] }px;left:#{ start_left + 12 }px;background:#fff;' class='task'>"
-              output << "</div>"
-            end
-
-            # Ending diamond
-            # Don't show items too far ahead
-            if i_left <= options[:g_width] && i_end > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_end }px;width:15px;' class='task milestone ending'>&nbsp;</div>"
-            end
-
-            # Display the Version name and %
-            if i_end <= options[:g_width]
-              # Display the status even if it's floated off to the left
-              status_px = i_end + 12 # 12px for the diamond
-              status_px = 0 if status_px <= 0
-              
-              output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='task label version-name'>"
-              output << h("#{version.project} -") unless @project && @project == version.project
-              output << "<strong>#{h version } #{h version.completed_pourcent.to_i.to_s}%</strong>"
-              output << "</div>"
-            end
-
-            output
+            html_task(options, coords, :css => "version task", :label => label, :markers => true)
           when :image
-            options[:image].stroke('transparent')
-            i_left = options[:subject_width] + ((version.start_date - @date_from)*options[:zoom]).floor
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > options[:subject_width]
-              options[:image].fill('green')
-              options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6)        
-              options[:image].fill('black')
-              options[:image].text(i_left + 11, options[:top] + 1, version.name)
-            end
+            image_task(options, coords, :label => label, :markers => true, :height => 3)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            i_left = ((version.start_date - @date_from)*options[:zoom]) 
-
-            # Make sure negative i_left doesn't overflow the subject
-            if i_left > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(50,200,50)
-              options[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
-        
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left + 3)
-              options[:pdf].Cell(30, 2, "#{version.name}")
-            end
+            pdf_task(options, coords, :label => label, :markers => true, :height => 0.8)
           end
         else
           ActiveRecord::Base.logger.debug "Gantt#line_for_version was not given a version with a start_date"
@@ -519,206 +338,55 @@
       end
 
       def subject_for_issue(issue, options)
-        case options[:format]
+        while @issue_ancestors.any? && !issue.is_descendant_of?(@issue_ancestors.last)
+          @issue_ancestors.pop
+          options[:indent] -= options[:indent_increment]
+        end
+          
+        output = case options[:format]
         when :html
-          output = ''
-          output << "<div class='tooltip'>"
-          output << "<div class='issue-subject' style='position: absolute;line-height:1.2em;height:16px;top:#{options[:top]}px;left:#{options[:indent]}px;overflow:hidden;'><small>    "
-          if issue.is_a? Issue
-            css_classes = []
-            css_classes << 'issue-overdue' if issue.overdue?
-            css_classes << 'issue-behind-schedule' if issue.behind_schedule?
-            css_classes << 'icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to
+          css_classes = ''
+          css_classes << ' issue-overdue' if issue.overdue?
+          css_classes << ' issue-behind-schedule' if issue.behind_schedule?
+          css_classes << ' icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to
+          
+          subject = "<span class='#{css_classes}'>"
+          if issue.assigned_to.present?
+            assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
+            subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
+          end
+          subject << view.link_to_issue(issue)
+          subject << '</span>'
+          html_subject(options, subject, :css => "issue-subject") + "\n"
+        when :image
+          image_subject(options, issue.subject)
+        when :pdf
+          pdf_new_page?(options)
+          pdf_subject(options, issue.subject)
+        end
 
-            if issue.assigned_to.present?
-              assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
-              output << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
-            end
-            output << "<span class='#{css_classes.join(' ')}'>"
-            output << view.link_to_issue(issue)
-            output << '</span>'
-          else
-            ActiveRecord::Base.logger.debug "Gantt#subject_for_issue was not given an issue"
-            ''
-          end
-          output << "</small></div>"
-
-          # Tooltip
-          if issue.is_a? Issue
-            output << "<span class='tip' style='position: absolute;top:#{ options[:top].to_i + 16 }px;left:#{ options[:indent].to_i + 20 }px;'>"
-            output << view.render_issue_tooltip(issue)
-            output << "</span>"
-          end
-
-          output << "</div>"
-          output
-        when :image
-          options[:image].fill('black')
-          options[:image].stroke('transparent')
-          options[:image].stroke_width(1)
-          options[:image].text(options[:indent], options[:top] + 2, issue.subject)
-        when :pdf
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(15)
-          
-          char_limit = PDF::MaxCharactorsForSubject - options[:indent]
-          options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{issue.tracker} #{issue.id}: #{issue.subject}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
+        unless issue.leaf?
+          @issue_ancestors << issue
+          options[:indent] += options[:indent_increment]
+        end
         
-          options[:pdf].SetY(options[:top])
-          options[:pdf].SetX(options[:subject_width])
-          options[:pdf].Cell(options[:g_width], 5, "", "LR")
-        end
+        output
       end
 
       def line_for_issue(issue, options)
         # Skip issues that don't have a due_before (due_date or version's due_date)
         if issue.is_a?(Issue) && issue.due_before
+          coords = coordinates(issue.start_date, issue.due_before, issue.done_ratio, options[:zoom])
+          label = "#{ issue.status.name } #{ issue.done_ratio }%"
+          
           case options[:format]
           when :html
-            output = ''
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= self.date_from
-                              issue.start_date
-                            else
-                              self.date_from
-                            end
-
-            i_end_date = ((issue.due_before && issue.due_before <= self.date_to) ? issue.due_before : self.date_to )
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date )
-            i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = ((i_start_date - self.date_from)*options[:zoom]).floor 	
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor - 2                  # total width of the issue (- 2 for left and right borders)
-            d_width = ((i_done_date - i_start_date)*options[:zoom]).floor - 2                     # done width
-            l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor - 2 : 0 # delay width
-            css = "task " + (issue.leaf? ? 'leaf' : 'parent')
-            
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ i_width }px;' class='#{css} task_todo'>&nbsp;</div>"
-            end
-            if l_width > 0
-              output << "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ l_width }px;' class='#{css} task_late'>&nbsp;</div>"
-            end
-            if d_width > 0
-              output<< "<div style='top:#{ options[:top] }px;left:#{ i_left }px;width:#{ d_width }px;' class='#{css} task_done'>&nbsp;</div>"
-            end
-
-            # Display the status even if it's floated off to the left
-            status_px = i_left + i_width + 5
-            status_px = 5 if status_px <= 0
-            
-            output << "<div style='top:#{ options[:top] }px;left:#{ status_px }px;' class='#{css} label issue-name'>"
-            output << issue.status.name
-            output << ' '
-            output << (issue.done_ratio).to_i.to_s
-            output << "%"
-            output << "</div>"
-
-            output << "<div class='tooltip' style='position: absolute;top:#{ options[:top] }px;left:#{ i_left }px;width:#{ i_width }px;height:12px;'>"
-            output << '<span class="tip">'
-            output << view.render_issue_tooltip(issue)
-            output << "</span></div>"
-            output
-          
+            html_task(options, coords, :css => "task " + (issue.leaf? ? 'leaf' : 'parent'), :label => label, :issue => issue, :markers => !issue.leaf?)
           when :image
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= @date_from
-                              issue.start_date
-                            else
-                              @date_from
-                            end
-
-            i_end_date = (issue.due_before <= date_to ? issue.due_before : date_to )        
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
-            i_done_date = (i_done_date >= date_to ? date_to : i_done_date )        
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = options[:subject_width] + ((i_start_date - @date_from)*options[:zoom]).floor 	
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor                  # total width of the issue
-            d_width = ((i_done_date - i_start_date)*options[:zoom]).floor                     # done width
-            l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor : 0 # delay width
-
-            
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              options[:image].fill('grey')
-              options[:image].rectangle(i_left, options[:top], i_left + i_width, options[:top] - 6)
-              options[:image].fill('red')
-              options[:image].rectangle(i_left, options[:top], i_left + l_width, options[:top] - 6) if l_width > 0
-              options[:image].fill('blue')
-              options[:image].rectangle(i_left, options[:top], i_left + d_width, options[:top] - 6) if d_width > 0
-            end
-
-            # Show the status and % done next to the subject if it overflows
-            options[:image].fill('black')
-            if i_width > 0
-              options[:image].text(i_left + i_width + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%")
-            else
-              options[:image].text(options[:subject_width] + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%")            
-            end
-
+            image_task(options, coords, :label => label)
           when :pdf
-            options[:pdf].SetY(options[:top]+1.5)
-            # Handle nil start_dates, rare but can happen.
-            i_start_date =  if issue.start_date && issue.start_date >= @date_from
-                          issue.start_date
-                        else
-                          @date_from
-                        end
-
-            i_end_date = (issue.due_before <= @date_to ? issue.due_before : @date_to )
-            
-            i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor
-            i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
-            i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date )
-            
-            i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
-            
-            i_left = ((i_start_date - @date_from)*options[:zoom]) 
-            i_width = ((i_end_date - i_start_date + 1)*options[:zoom])
-            d_width = ((i_done_date - i_start_date)*options[:zoom])
-            l_width = ((i_late_date - i_start_date+1)*options[:zoom]) if i_late_date
-            l_width ||= 0
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if i_width > 0
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(200,200,200)
-              options[:pdf].Cell(i_width, 2, "", 0, 0, "", 1)
-            end
-          
-            if l_width > 0
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(255,100,100)
-              options[:pdf].Cell(l_width, 2, "", 0, 0, "", 1)
-            end 
-            if d_width > 0
-              options[:pdf].SetY(options[:top]+1.5)
-              options[:pdf].SetX(options[:subject_width] + i_left)
-              options[:pdf].SetFillColor(100,100,255)
-              options[:pdf].Cell(d_width, 2, "", 0, 0, "", 1)
-            end
-
-            options[:pdf].SetY(options[:top]+1.5)
-
-            # Make sure that negative i_left and i_width don't
-            # overflow the subject
-            if (i_left + i_width) >= 0
-              options[:pdf].SetX(options[:subject_width] + i_left + i_width)
-            else
-              options[:pdf].SetX(options[:subject_width])
-            end
-            options[:pdf].Cell(30, 2, "#{issue.status} #{issue.done_ratio}%")
-          end
+            pdf_task(options, coords, :label => label)
+        end
         else
           ActiveRecord::Base.logger.debug "GanttHelper#line_for_issue was not given an issue with a due_before"
           ''
@@ -746,6 +414,7 @@
         gc = Magick::Draw.new
         
         # Subjects
+        gc.stroke('transparent')
         subjects(:image => gc, :top => (headers_heigth + 20), :indent => 4, :format => :image)
     
         # Months headers
@@ -805,7 +474,7 @@
         	(date_to - @date_from + 1).to_i.times do 
               width =  zoom
               gc.fill(wday == 6 || wday == 7 ? '#eee' : 'white')
-              gc.stroke('grey')
+              gc.stroke('#ddd')
               gc.stroke_width(1)
               gc.rectangle(left, 2*header_heigth, left + width, 2*header_heigth + g_height-1)
               left = left + width
@@ -824,7 +493,8 @@
             
         # content
         top = headers_heigth + 20
-        
+
+        gc.stroke('transparent')
         lines(:image => gc, :top => top, :zoom => zoom, :subject_width => subject_width, :format => :image)
         
         # today red line
@@ -936,39 +606,257 @@
         
         # Tasks
         top = headers_heigth + y_start
-        pdf_subjects_and_lines(pdf, {
-                                 :top => top,
-                                 :zoom => zoom,
-                                 :subject_width => subject_width,
-                                 :g_width => g_width
-                               })
-
-        
-        pdf.Line(15, top, subject_width+g_width, top)
+        options = {
+          :top => top,
+          :zoom => zoom,
+          :subject_width => subject_width,
+          :g_width => g_width,
+          :indent => 0,
+          :indent_increment => 5,
+          :top_increment => 5,
+          :format => :pdf,
+          :pdf => pdf
+        }
+        render(options)
         pdf.Output
-
-        
       end
       
       private
+      
+      def coordinates(start_date, end_date, progress, zoom=nil)
+        zoom ||= @zoom
+        
+        coords = {}
+        if start_date && end_date && start_date < self.date_to && end_date > self.date_from
+          if start_date > self.date_from
+            coords[:start] = start_date - self.date_from
+            coords[:bar_start] = start_date - self.date_from
+          else
+            coords[:bar_start] = 0
+          end
+          if end_date < self.date_to
+            coords[:end] = end_date - self.date_from
+            coords[:bar_end] = end_date - self.date_from + 1
+          else
+            coords[:bar_end] = self.date_to - self.date_from + 1
+          end
+        
+          if progress
+            progress_date = start_date + (end_date - start_date) * (progress / 100.0)
+            if progress_date > self.date_from && progress_date > start_date
+              if progress_date < self.date_to
+                coords[:bar_progress_end] = progress_date - self.date_from + 1
+              else
+                coords[:bar_progress_end] = self.date_to - self.date_from + 1
+              end
+            end
+            
+            if progress_date < Date.today
+              late_date = [Date.today, end_date].min
+              if late_date > self.date_from && late_date > start_date
+                if late_date < self.date_to
+                  coords[:bar_late_end] = late_date - self.date_from + 1
+                else
+                  coords[:bar_late_end] = self.date_to - self.date_from + 1
+                end
+              end
+            end
+          end
+        end
+        
+        # Transforms dates into pixels witdh
+        coords.keys.each do |key|
+          coords[key] = (coords[key] * zoom).floor
+        end
+        coords
+      end
 
-      # Renders both the subjects and lines of the Gantt chart for the
-      # PDF format
-      def pdf_subjects_and_lines(pdf, options = {})
-        subject_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :subject, :format => :pdf, :pdf => pdf}.merge(options)
-        line_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :line, :format => :pdf, :pdf => pdf}.merge(options)
-
-        if @project
-          render_project(@project, subject_options)
-          render_project(@project, line_options)
+      # Sorts a collection of issues by start_date, due_date, id for gantt rendering
+      def sort_issues!(issues)
+        issues.sort! { |a, b| gantt_issue_compare(a, b, issues) }
+      end
+  
+      # TODO: top level issues should be sorted by start date
+      def gantt_issue_compare(x, y, issues)
+        if x.root_id == y.root_id
+          x.lft <=> y.lft
         else
-          Project.roots.each do |project|
-            render_project(project, subject_options)
-            render_project(project, line_options)
+          x.root_id <=> y.root_id
+        end
+      end
+      
+      def current_limit
+        if @max_rows
+          @max_rows - @number_of_rows
+        else
+          nil
+        end
+      end
+      
+      def abort?
+        if @max_rows && @number_of_rows >= @max_rows
+          @truncated = true
+        end
+      end
+      
+      def pdf_new_page?(options)
+        if options[:top] > 180
+          options[:pdf].Line(15, options[:top], PDF::TotalWidth, options[:top])
+          options[:pdf].AddPage("L")
+          options[:top] = 15
+          options[:pdf].Line(15, options[:top] - 0.1, PDF::TotalWidth, options[:top] - 0.1)
+        end
+      end
+      
+      def html_subject(params, subject, options={})
+        output = "<div class=' #{options[:css] }' style='position: absolute;line-height:1.2em;height:16px;top:#{params[:top]}px;left:#{params[:indent]}px;overflow:hidden;'>"
+        output << subject
+        output << "</div>"
+        @subjects << output
+        output
+      end
+      
+      def pdf_subject(params, subject, options={})
+        params[:pdf].SetY(params[:top])
+        params[:pdf].SetX(15)
+        
+        char_limit = PDF::MaxCharactorsForSubject - params[:indent]
+        params[:pdf].Cell(params[:subject_width]-15, 5, (" " * params[:indent]) +  subject.to_s.sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
+      
+        params[:pdf].SetY(params[:top])
+        params[:pdf].SetX(params[:subject_width])
+        params[:pdf].Cell(params[:g_width], 5, "", "LR")
+      end
+      
+      def image_subject(params, subject, options={})
+        params[:image].fill('black')
+        params[:image].stroke('transparent')
+        params[:image].stroke_width(1)
+        params[:image].text(params[:indent], params[:top] + 2, subject)
+      end
+      
+      def html_task(params, coords, options={})
+        output = ''
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_todo'>&nbsp;</div>"
+          
+          if coords[:bar_late_end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_late_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_late'>&nbsp;</div>"
           end
+          if coords[:bar_progress_end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_progress_end] - coords[:bar_start] - 2}px;' class='#{options[:css]} task_done'>&nbsp;</div>"
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:start] }px;width:15px;' class='#{options[:css]} marker starting'>&nbsp;</div>"
+          end
+          if coords[:end]
+            output << "<div style='top:#{ params[:top] }px;left:#{ coords[:end] + params[:zoom] }px;width:15px;' class='#{options[:css]} marker ending'>&nbsp;</div>"
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          output << "<div style='top:#{ params[:top] }px;left:#{ (coords[:bar_end] || 0) + 8 }px;' class='#{options[:css]} label'>"
+          output << options[:label]
+          output << "</div>"
+        end
+        # Renders the tooltip
+        if options[:issue] && coords[:bar_start] && coords[:bar_end]
+          output << "<div class='tooltip' style='position: absolute;top:#{ params[:top] }px;left:#{ coords[:bar_start] }px;width:#{ coords[:bar_end] - coords[:bar_start] }px;height:12px;'>"
+          output << '<span class="tip">'
+          output << view.render_issue_tooltip(options[:issue])
+          output << "</span></div>"
+        end
+        @lines << output
+        output
+      end
+      
+      def pdf_task(params, coords, options={})
+        height = options[:height] || 2
+        
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          params[:pdf].SetY(params[:top]+1.5)
+          params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+          params[:pdf].SetFillColor(200,200,200)
+          params[:pdf].Cell(coords[:bar_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+            
+          if coords[:bar_late_end]
+            params[:pdf].SetY(params[:top]+1.5)
+            params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+            params[:pdf].SetFillColor(255,100,100)
+            params[:pdf].Cell(coords[:bar_late_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+          end
+          if coords[:bar_progress_end]
+            params[:pdf].SetY(params[:top]+1.5)
+            params[:pdf].SetX(params[:subject_width] + coords[:bar_start])
+            params[:pdf].SetFillColor(90,200,90)
+            params[:pdf].Cell(coords[:bar_progress_end] - coords[:bar_start], height, "", 0, 0, "", 1)
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            params[:pdf].SetY(params[:top] + 1)
+            params[:pdf].SetX(params[:subject_width] + coords[:start] - 1)
+            params[:pdf].SetFillColor(50,50,200)
+            params[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
+          end
+          if coords[:end]
+            params[:pdf].SetY(params[:top] + 1)
+            params[:pdf].SetX(params[:subject_width] + coords[:end] - 1)
+            params[:pdf].SetFillColor(50,50,200)
+            params[:pdf].Cell(2, 2, "", 0, 0, "", 1) 
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          params[:pdf].SetX(params[:subject_width] + (coords[:bar_end] || 0) + 5)
+          params[:pdf].Cell(30, 2, options[:label])
         end
       end
 
+      def image_task(params, coords, options={})
+        height = options[:height] || 6
+        
+        # Renders the task bar, with progress and late
+        if coords[:bar_start] && coords[:bar_end]
+          params[:image].fill('#aaa')
+          params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_end], params[:top] - height)
+ 
+          if coords[:bar_late_end]
+            params[:image].fill('#f66')
+            params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_late_end], params[:top] - height)
+          end
+          if coords[:bar_progress_end]
+            params[:image].fill('#00c600')
+            params[:image].rectangle(params[:subject_width] + coords[:bar_start], params[:top], params[:subject_width] + coords[:bar_progress_end], params[:top] - height)
+          end
+        end
+        # Renders the markers
+        if options[:markers]
+          if coords[:start]
+            x = params[:subject_width] + coords[:start]
+            y = params[:top] - height / 2
+            params[:image].fill('blue')
+            params[:image].polygon(x-4, y, x, y-4, x+4, y, x, y+4)
+          end
+          if coords[:end]
+            x = params[:subject_width] + coords[:end] + params[:zoom]
+            y = params[:top] - height / 2
+            params[:image].fill('blue')
+            params[:image].polygon(x-4, y, x, y-4, x+4, y, x, y+4)
+          end
+        end
+        # Renders the label on the right
+        if options[:label]
+          params[:image].fill('black')
+          params[:image].text(params[:subject_width] + (coords[:bar_end] || 0) + 5,params[:top] + 1, options[:label])
+        end
+      end
     end
   end
 end
--- a/lib/redmine/i18n.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/i18n.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -37,7 +37,7 @@
 
     def format_date(date)
       return nil unless date
-      Setting.date_format.blank? ? ::I18n.l(date.to_date, :count => date.strftime('%d')) : date.strftime(Setting.date_format)
+      Setting.date_format.blank? ? ::I18n.l(date.to_date) : date.strftime(Setting.date_format)
     end
     
     def format_time(time, include_date = true)
@@ -45,7 +45,7 @@
       time = time.to_time if time.is_a?(String)
       zone = User.current.time_zone
       local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
-      Setting.time_format.blank? ? ::I18n.l(local, :count => local.strftime('%d'), :format => (include_date ? :default : :time)) : 
+      Setting.time_format.blank? ? ::I18n.l(local, :format => (include_date ? :default : :time)) : 
                                    ((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}")
     end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/safe_attributes.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module SafeAttributes
+    def self.included(base)
+      base.extend(ClassMethods)
+    end
+    
+    module ClassMethods
+      # Declares safe attributes
+      # An optional Proc can be given for conditional inclusion
+      #
+      # Example:
+      #   safe_attributes 'title', 'pages'
+      #   safe_attributes 'isbn', :if => {|book, user| book.author == user}
+      def safe_attributes(*args)
+        @safe_attributes ||= []
+        if args.empty?
+          @safe_attributes
+        else
+          options = args.last.is_a?(Hash) ? args.pop : {}
+          @safe_attributes << [args, options]
+        end
+      end
+    end
+    
+    # Returns an array that can be safely set by user or current user
+    #
+    # Example:
+    #   book.safe_attributes # => ['title', 'pages']
+    #   book.safe_attributes(book.author) # => ['title', 'pages', 'isbn']
+    def safe_attribute_names(user=User.current)
+      names = []
+      self.class.safe_attributes.collect do |attrs, options|
+        if options[:if].nil? || options[:if].call(self, user)
+          names += attrs.collect(&:to_s)
+        end
+      end
+      names.uniq
+    end
+    
+    # Returns a hash with unsafe attributes removed
+    # from the given attrs hash
+    # 
+    # Example:
+    #   book.delete_unsafe_attributes({'title' => 'My book', 'foo' => 'bar'})
+    #   # => {'title' => 'My book'}
+    def delete_unsafe_attributes(attrs, user=User.current)
+      safe = safe_attribute_names(user)
+      attrs.dup.delete_if {|k,v| !safe.include?(k)}
+    end
+    
+    # Sets attributes from attrs that are safe
+    # attrs is a Hash with string keys
+    def safe_attributes=(attrs, user=User.current)
+      return unless attrs.is_a?(Hash)
+      self.attributes = delete_unsafe_attributes(attrs, user)
+    end
+  end
+end
--- a/lib/redmine/scm/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 40
-/svn/!svn/ver/4386/trunk/lib/redmine/scm
+/svn/!svn/ver/4688/trunk/lib/redmine/scm
 END
 base.rb
 K 25
--- a/lib/redmine/scm/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T15:19:05.831621Z
-4386
-jbbarth
+2011-01-11T08:41:35.993532Z
+4688
+tmaruyama
 
 
 
--- a/lib/redmine/scm/adapters/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,37 +1,37 @@
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4386/trunk/lib/redmine/scm/adapters
+/svn/!svn/ver/4688/trunk/lib/redmine/scm/adapters
 END
 subversion_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/3800/trunk/lib/redmine/scm/adapters/subversion_adapter.rb
+/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/subversion_adapter.rb
 END
 bazaar_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3723/trunk/lib/redmine/scm/adapters/bazaar_adapter.rb
+/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/bazaar_adapter.rb
 END
 abstract_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/3469/trunk/lib/redmine/scm/adapters/abstract_adapter.rb
+/svn/!svn/ver/4613/trunk/lib/redmine/scm/adapters/abstract_adapter.rb
 END
 git_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/4386/trunk/lib/redmine/scm/adapters/git_adapter.rb
+/svn/!svn/ver/4624/trunk/lib/redmine/scm/adapters/git_adapter.rb
 END
 mercurial_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 70
-/svn/!svn/ver/3722/trunk/lib/redmine/scm/adapters/mercurial_adapter.rb
+/svn/!svn/ver/4688/trunk/lib/redmine/scm/adapters/mercurial_adapter.rb
 END
 filesystem_adapter.rb
 K 25
@@ -43,11 +43,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/2135/trunk/lib/redmine/scm/adapters/cvs_adapter.rb
+/svn/!svn/ver/4601/trunk/lib/redmine/scm/adapters/cvs_adapter.rb
 END
 darcs_adapter.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/2232/trunk/lib/redmine/scm/adapters/darcs_adapter.rb
+/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/darcs_adapter.rb
 END
--- a/lib/redmine/scm/adapters/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T15:19:05.831621Z
-4386
-jbbarth
+2011-01-11T08:41:35.993532Z
+4688
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.043748Z
-638ab1af3838c9e8d9f7688224ebf18b
-2010-06-20T16:08:26.745839Z
-3800
-edavis10
+2011-01-13T14:09:38.000000Z
+a388eb02c3afb298abad571f6f059c6b
+2010-12-18T18:12:12.584764Z
+4539
+jplang
 
 
 
@@ -58,7 +58,7 @@
 
 
 
-10736
+10741
 
 bazaar_adapter.rb
 file
@@ -66,10 +66,10 @@
 
 
 
-2010-09-23T14:37:45.039790Z
-5a2dba12961234e4853397c87cef0b5e
-2010-05-01T09:56:59.025016Z
-3723
+2011-01-13T14:09:38.000000Z
+a8512f631e43683c18d08d5ff0c8f2a3
+2010-12-18T18:12:12.584764Z
+4539
 jplang
 has-props
 
@@ -92,7 +92,7 @@
 
 
 
-7225
+7352
 
 mercurial
 dir
@@ -103,11 +103,11 @@
 
 
 
-2010-09-24T11:56:52.980004Z
-b23f6bf941ce74af0650c41e1094ba8a
-2010-02-21T14:38:34.467603Z
-3469
-jplang
+2011-01-13T14:09:38.000000Z
+b63a1e9ae95a7fb7c053bc363cf6672b
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -129,7 +129,7 @@
 
 
 
-9610
+9889
 
 git_adapter.rb
 file
@@ -137,11 +137,11 @@
 
 
 
-2010-11-19T13:04:51.245032Z
-6b1c25eff34500f43f3b7cf9c0a78bec
-2010-11-07T15:19:05.831621Z
-4386
-jbbarth
+2011-01-13T14:09:38.000000Z
+eb7d9805e215f174c53d2806a94ce1ea
+2011-01-03T10:45:00.658370Z
+4624
+tmaruyama
 has-props
 
 
@@ -163,7 +163,7 @@
 
 
 
-9867
+10102
 
 mercurial_adapter.rb
 file
@@ -171,11 +171,11 @@
 
 
 
-2010-09-24T11:56:52.992085Z
-c16d3e25388f47c99f1633eab2140ba7
-2010-05-01T09:55:40.597772Z
-3722
-jplang
+2011-01-13T14:09:38.000000Z
+c084fab581021c9e215c54af6815d6c9
+2011-01-11T08:41:35.993532Z
+4688
+tmaruyama
 has-props
 
 
@@ -197,7 +197,7 @@
 
 
 
-8130
+8611
 
 filesystem_adapter.rb
 file
@@ -239,10 +239,10 @@
 
 
 
-2010-09-23T14:37:45.039790Z
-19e0348377774a0c41b78a3f0a482284
-2008-12-14T15:57:13.349302Z
-2135
+2011-01-13T14:09:38.000000Z
+f7675b9449831276c8816fc5669245a1
+2011-01-01T11:13:33.540439Z
+4601
 jplang
 has-props
 
@@ -265,7 +265,7 @@
 
 
 
-13401
+13521
 
 darcs_adapter.rb
 file
@@ -273,10 +273,10 @@
 
 
 
-2010-09-23T14:37:45.039790Z
-dc6df25045764c81cdfcdb441997823b
-2009-01-04T13:27:48.560402Z
-2232
+2011-01-13T14:09:38.000000Z
+39ef0c99d6e5d7839059713e93624e2c
+2010-12-18T18:12:12.584764Z
+4539
 jplang
 has-props
 
@@ -299,5 +299,5 @@
 
 
 
-7515
+7575
 
--- a/lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -271,7 +271,8 @@
       end
       
       class Revision
-        attr_accessor :identifier, :scmid, :name, :author, :time, :message, :paths, :revision, :branch
+        attr_accessor :scmid, :name, :author, :time, :message, :paths, :revision, :branch
+        attr_writer :identifier
 
         def initialize(attributes={})
           self.identifier = attributes[:identifier]
@@ -285,6 +286,16 @@
           self.branch = attributes[:branch]
         end
 
+        # Returns the identifier of this revision; see also Changeset model
+        def identifier
+          (@identifier || revision).to_s
+        end
+
+        # Returns the readable identifier.
+        def format_identifier
+          identifier
+        end
+
         def save(repo)
           Changeset.transaction do
             changeset = Changeset.new(
--- a/lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -74,10 +74,10 @@
     
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path ||= ''
-          identifier_from = 'last:1' unless identifier_from and identifier_from.to_i > 0
-          identifier_to = 1 unless identifier_to and identifier_to.to_i > 0
+          identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : 'last:1'
+          identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
           revisions = Revisions.new
-          cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to.to_i}..#{identifier_from} #{target(path)}"
+          cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
           shellout(cmd) do |io|
             revision = nil
             parsing = nil
@@ -140,6 +140,9 @@
           else
             identifier_to = identifier_from.to_i - 1
           end
+          if identifier_from
+            identifier_from = identifier_from.to_i
+          end
           cmd = "#{BZR_BIN} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
           diff = []
           shellout(cmd) do |io|
--- a/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -63,7 +63,7 @@
           logger.debug "<cvs> entries '#{path}' with identifier '#{identifier}'"
           path_with_project="#{url}#{with_leading_slash(path)}"
           entries = Entries.new
-          cmd = "#{CVS_BIN} -d #{root_url} rls -e"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rls -e"
           cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
           cmd << " #{shell_quote path_with_project}"
           shellout(cmd) do |io|
@@ -108,7 +108,7 @@
           logger.debug "<cvs> revisions path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
           
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rlog"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rlog"
           cmd << " -d\">#{time_to_cvstime(identifier_from)}\"" if identifier_from
           cmd << " #{shell_quote path_with_project}"
           shellout(cmd) do |io|
@@ -229,7 +229,7 @@
         def diff(path, identifier_from, identifier_to=nil)
           logger.debug "<cvs> diff path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
           diff = []
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -244,7 +244,7 @@
           identifier = (identifier) ? identifier : "HEAD"
           logger.debug "<cvs> cat path:'#{path}',identifier #{identifier}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} co"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} co"
           cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
           cmd << " -p #{shell_quote path_with_project}"
           cat = nil
@@ -256,10 +256,10 @@
         end  
 
         def annotate(path, identifier=nil)
-          identifier = (identifier) ? identifier : "HEAD"
+          identifier = (identifier) ? identifier.to_i : "HEAD"
           logger.debug "<cvs> annotate path:'#{path}',identifier #{identifier}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
           blame = Annotate.new
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -283,6 +283,8 @@
         # convert a date/time into the CVS-format
         def time_to_cvstime(time)
           return nil if time.nil?
+          return Time.now if time == 'HEAD'
+          
           unless time.kind_of? Time
             time = Time.parse(time)
           end
--- a/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -66,7 +66,7 @@
           path_prefix = (path.blank? ? '' : "#{path}/")
           path = '.' if path.blank?
           entries = Entries.new          
-          cmd = "#{DARCS_BIN} annotate --repodir #{@url} --xml-output"
+          cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
           cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
           cmd << " #{shell_quote path}"
           shellout(cmd) do |io|
@@ -90,7 +90,7 @@
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path = '.' if path.blank?
           revisions = Revisions.new
-          cmd = "#{DARCS_BIN} changes --repodir #{@url} --xml-output"
+          cmd = "#{DARCS_BIN} changes --repodir #{shell_quote @url} --xml-output"
           cmd << " --from-match #{shell_quote("hash #{identifier_from}")}" if identifier_from
           cmd << " --last #{options[:limit].to_i}" if options[:limit]
           shellout(cmd) do |io|
@@ -116,7 +116,7 @@
         
         def diff(path, identifier_from, identifier_to=nil)
           path = '*' if path.blank?
-          cmd = "#{DARCS_BIN} diff --repodir #{@url}"
+          cmd = "#{DARCS_BIN} diff --repodir #{shell_quote @url}"
           if identifier_to.nil?
             cmd << " --match #{shell_quote("hash #{identifier_from}")}"
           else
@@ -135,7 +135,7 @@
         end
         
         def cat(path, identifier=nil)
-          cmd = "#{DARCS_BIN} show content --repodir #{@url}"
+          cmd = "#{DARCS_BIN} show content --repodir #{shell_quote @url}"
           cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
           cmd << " #{shell_quote path}"
           cat = nil
@@ -170,7 +170,7 @@
         
         # Retrieve changed paths for a single patch
         def get_paths_for_patch(hash)
-          cmd = "#{DARCS_BIN} annotate --repodir #{@url} --summary --xml-output"
+          cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
           cmd << " --match #{shell_quote("hash #{hash}")} "
           paths = []
           shellout(cmd) do |io|
--- a/lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -89,12 +89,13 @@
           cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --date=iso --pretty=fuller --no-merges -n 1 "
           cmd << " #{shell_quote rev} " if rev 
           cmd <<  "-- #{shell_quote path} " unless path.empty?
-          shellout(cmd) do |io|
-            begin
-              id = io.gets.split[1]
-              author = io.gets.match('Author:\s+(.*)$')[1]
-              2.times { io.gets }
-              time = Time.parse(io.gets.match('CommitDate:\s+(.*)$')[1]).localtime
+          lines = []
+          shellout(cmd) { |io| lines = io.readlines }
+          return nil if $? && $?.exitstatus != 0
+          begin
+              id = lines[0].split[1]
+              author = lines[1].match('Author:\s+(.*)$')[1]
+              time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1]).localtime
 
               Revision.new({
                 :identifier => id,
@@ -104,10 +105,9 @@
                 :message => nil, 
                 :paths => nil 
               })
-            rescue NoMethodError => e
+          rescue NoMethodError => e
               logger.error("The revision '#{path}' has a wrong format")
               return nil
-            end
           end
         end
 
@@ -117,7 +117,7 @@
           cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --raw --date=iso --pretty=fuller "
           cmd << " --reverse " if options[:reverse]
           cmd << " --all " if options[:all]
-          cmd << " -n #{options[:limit]} " if options[:limit]
+          cmd << " -n #{options[:limit].to_i} " if options[:limit]
           cmd << "#{shell_quote(identifier_from + '..')}" if identifier_from
           cmd << "#{shell_quote identifier_to}" if identifier_to
           cmd << " --since=#{shell_quote(options[:since].strftime("%Y-%m-%d %H:%M:%S"))}" if options[:since]
@@ -264,6 +264,13 @@
           return nil if $? && $?.exitstatus != 0
           cat
         end
+
+        class Revision < Redmine::Scm::Adapters::Revision
+          # Returns the readable identifier
+          def format_identifier
+            identifier[0,8]
+          end
+        end
       end
     end
   end
--- a/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -16,41 +16,42 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 require 'redmine/scm/adapters/abstract_adapter'
+require 'cgi'
 
 module Redmine
   module Scm
     module Adapters    
       class MercurialAdapter < AbstractAdapter
-        
+
         # Mercurial executable name
         HG_BIN = "hg"
         TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
         TEMPLATE_NAME = "hg-template"
         TEMPLATE_EXTENSION = "tmpl"
-        
+
         class << self
           def client_version
             @@client_version ||= (hgversion || [])
           end
-          
+
           def hgversion  
             # The hg version is expressed either as a
             # release number (eg 0.9.5 or 1.0) or as a revision
             # id composed of 12 hexa characters.
             theversion = hgversion_from_command_line
-            if theversion.match(/^\d+(\.\d+)+/)
-              theversion.split(".").collect(&:to_i)
+            if m = theversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+              m[2].scan(%r{\d+}).collect(&:to_i)
             end
           end
-          
+
           def hgversion_from_command_line
-            %x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1]
+            shellout("#{HG_BIN} --version") { |io| io.read }.to_s
           end
-          
+
           def template_path
             @@template_path ||= template_path_for(client_version)
           end
-          
+
           def template_path_for(version)
             if ((version <=> [0,9,5]) > 0) || version.empty?
               ver = "1.0"
@@ -60,7 +61,7 @@
             "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
           end
         end
-        
+
         def info
           cmd = "#{HG_BIN} -R #{target('')} root"
           root_url = nil
@@ -75,12 +76,12 @@
         rescue CommandFailed
           return nil
         end
-        
+
         def entries(path=nil, identifier=nil)
           path ||= ''
           entries = Entries.new
           cmd = "#{HG_BIN} -R #{target('')} --cwd #{target('')} locate"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " " + shell_quote("path:#{path}") unless path.empty?
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -100,19 +101,19 @@
           return nil if $? && $?.exitstatus != 0
           entries.sort_by_name
         end
-        
+
         # Fetch the revisions by using a template file that 
         # makes Mercurial produce a xml output.
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})  
           revisions = Revisions.new
           cmd = "#{HG_BIN} --debug --encoding utf8 -R #{target('')} log -C --style #{shell_quote self.class.template_path}"
           if identifier_from && identifier_to
-            cmd << " -r #{identifier_from.to_i}:#{identifier_to.to_i}"
+            cmd << " -r #{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
           elsif identifier_from
-            cmd << " -r #{identifier_from.to_i}:"
+            cmd << " -r #{hgrev(identifier_from)}:"
           end
           cmd << " --limit #{options[:limit].to_i}" if options[:limit]
-          cmd << " #{path}" if path
+          cmd << " #{shell_quote path}" unless path.blank?
           shellout(cmd) do |io|
             begin
               # HG doesn't close the XML Document...
@@ -127,13 +128,13 @@
                     from_rev = logentry.attributes['revision']
                   end
                   paths << {:action => path.attributes['action'],
-                    :path => "/#{path.text}",
-                    :from_path => from_path ? "/#{from_path}" : nil,
+                    :path => "/#{CGI.unescape(path.text)}",
+                    :from_path => from_path ? "/#{CGI.unescape(from_path)}" : nil,
                     :from_revision => from_rev ? from_rev : nil
                   }
                 end
                 paths.sort! { |x,y| x[:path] <=> y[:path] }
-                
+
                 revisions << Revision.new({:identifier => logentry.attributes['revision'],
                                             :scmid => logentry.attributes['node'],
                                             :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
@@ -149,17 +150,22 @@
           return nil if $? && $?.exitstatus != 0
           revisions
         end
-        
+
         def diff(path, identifier_from, identifier_to=nil)
           path ||= ''
+          diff_args = ''
+          diff = []
           if identifier_to
-            identifier_to = identifier_to.to_i 
+            diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}"
           else
-            identifier_to = identifier_from.to_i - 1
+            if self.class.client_version_above?([1, 2])
+              diff_args = "-c #{hgrev(identifier_from)}"
+            else
+              return []
+            end
           end
-          cmd = "#{HG_BIN} -R #{target('')} diff -r #{identifier_to} -r #{identifier_from} --nodates"
+          cmd = "#{HG_BIN} -R #{target('')} --config diff.git=false diff --nodates #{diff_args}"
           cmd << " -I #{target(path)}" unless path.empty?
-          diff = []
           shellout(cmd) do |io|
             io.each_line do |line|
               diff << line
@@ -168,10 +174,10 @@
           return nil if $? && $?.exitstatus != 0
           diff
         end
-        
+
         def cat(path, identifier=nil)
           cmd = "#{HG_BIN} -R #{target('')} cat"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " #{target(path)}"
           cat = nil
           shellout(cmd) do |io|
@@ -181,24 +187,38 @@
           return nil if $? && $?.exitstatus != 0
           cat
         end
-        
+
         def annotate(path, identifier=nil)
           path ||= ''
           cmd = "#{HG_BIN} -R #{target('')}"
-          cmd << " annotate -n -u"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
-          cmd << " -r #{identifier.to_i}" if identifier
+          cmd << " annotate -ncu"
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " #{target(path)}"
           blame = Annotate.new
           shellout(cmd) do |io|
             io.each_line do |line|
-              next unless line =~ %r{^([^:]+)\s(\d+):(.*)$}
-              blame.add_line($3.rstrip, Revision.new(:identifier => $2.to_i, :author => $1.strip))
+              next unless line =~ %r{^([^:]+)\s(\d+)\s([0-9a-f]+):\s(.*)$}
+              r = Revision.new(:author => $1.strip, :revision => $2, :scmid => $3,
+                               :identifier => $3)
+              blame.add_line($4.rstrip, r)
             end
           end
           return nil if $? && $?.exitstatus != 0
           blame
         end
+
+        class Revision < Redmine::Scm::Adapters::Revision
+          # Returns the readable identifier
+          def format_identifier
+            "#{revision}:#{scmid}"
+          end
+        end
+
+        # Returns correct revision identifier
+        def hgrev(identifier)
+          shell_quote(identifier.blank? ? 'tip' : identifier.to_s)
+        end
+        private :hgrev
       end
     end
   end
--- a/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -36,8 +36,8 @@
             version = nil
             shellout(cmd) do |io|
               # Read svn version in first returned line
-              if m = io.gets.to_s.match(%r{((\d+\.)+\d+)})
-                version = m[0].scan(%r{\d+}).collect(&:to_i)
+              if m = io.read.to_s.match(%r{\A(.*?)((\d+\.)+\d+)})
+                version = m[2].scan(%r{\d+}).collect(&:to_i)
               end
             end
             return nil if $? && $?.exitstatus != 0
@@ -135,8 +135,8 @@
         
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path ||= ''
-          identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
-          identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
+          identifier_from = (identifier_from && identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
+          identifier_to = (identifier_to && identifier_to.to_i > 0) ? identifier_to.to_i : 1
           revisions = Revisions.new
           cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
           cmd << credentials_string
--- a/lib/redmine/scm/adapters/abstract_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/abstract_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -271,7 +271,8 @@
       end
       
       class Revision
-        attr_accessor :identifier, :scmid, :name, :author, :time, :message, :paths, :revision, :branch
+        attr_accessor :scmid, :name, :author, :time, :message, :paths, :revision, :branch
+        attr_writer :identifier
 
         def initialize(attributes={})
           self.identifier = attributes[:identifier]
@@ -285,6 +286,16 @@
           self.branch = attributes[:branch]
         end
 
+        # Returns the identifier of this revision; see also Changeset model
+        def identifier
+          (@identifier || revision).to_s
+        end
+
+        # Returns the readable identifier.
+        def format_identifier
+          identifier
+        end
+
         def save(repo)
           Changeset.transaction do
             changeset = Changeset.new(
--- a/lib/redmine/scm/adapters/bazaar_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/bazaar_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -74,10 +74,10 @@
     
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path ||= ''
-          identifier_from = 'last:1' unless identifier_from and identifier_from.to_i > 0
-          identifier_to = 1 unless identifier_to and identifier_to.to_i > 0
+          identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : 'last:1'
+          identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
           revisions = Revisions.new
-          cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to.to_i}..#{identifier_from} #{target(path)}"
+          cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
           shellout(cmd) do |io|
             revision = nil
             parsing = nil
@@ -140,6 +140,9 @@
           else
             identifier_to = identifier_from.to_i - 1
           end
+          if identifier_from
+            identifier_from = identifier_from.to_i
+          end
           cmd = "#{BZR_BIN} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
           diff = []
           shellout(cmd) do |io|
--- a/lib/redmine/scm/adapters/cvs_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/cvs_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -63,7 +63,7 @@
           logger.debug "<cvs> entries '#{path}' with identifier '#{identifier}'"
           path_with_project="#{url}#{with_leading_slash(path)}"
           entries = Entries.new
-          cmd = "#{CVS_BIN} -d #{root_url} rls -e"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rls -e"
           cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
           cmd << " #{shell_quote path_with_project}"
           shellout(cmd) do |io|
@@ -108,7 +108,7 @@
           logger.debug "<cvs> revisions path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
           
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rlog"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rlog"
           cmd << " -d\">#{time_to_cvstime(identifier_from)}\"" if identifier_from
           cmd << " #{shell_quote path_with_project}"
           shellout(cmd) do |io|
@@ -229,7 +229,7 @@
         def diff(path, identifier_from, identifier_to=nil)
           logger.debug "<cvs> diff path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
           diff = []
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -244,7 +244,7 @@
           identifier = (identifier) ? identifier : "HEAD"
           logger.debug "<cvs> cat path:'#{path}',identifier #{identifier}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} co"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} co"
           cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
           cmd << " -p #{shell_quote path_with_project}"
           cat = nil
@@ -256,10 +256,10 @@
         end  
 
         def annotate(path, identifier=nil)
-          identifier = (identifier) ? identifier : "HEAD"
+          identifier = (identifier) ? identifier.to_i : "HEAD"
           logger.debug "<cvs> annotate path:'#{path}',identifier #{identifier}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{CVS_BIN} -d #{root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
+          cmd = "#{CVS_BIN} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
           blame = Annotate.new
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -283,6 +283,8 @@
         # convert a date/time into the CVS-format
         def time_to_cvstime(time)
           return nil if time.nil?
+          return Time.now if time == 'HEAD'
+          
           unless time.kind_of? Time
             time = Time.parse(time)
           end
--- a/lib/redmine/scm/adapters/darcs_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/darcs_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -66,7 +66,7 @@
           path_prefix = (path.blank? ? '' : "#{path}/")
           path = '.' if path.blank?
           entries = Entries.new          
-          cmd = "#{DARCS_BIN} annotate --repodir #{@url} --xml-output"
+          cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
           cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
           cmd << " #{shell_quote path}"
           shellout(cmd) do |io|
@@ -90,7 +90,7 @@
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path = '.' if path.blank?
           revisions = Revisions.new
-          cmd = "#{DARCS_BIN} changes --repodir #{@url} --xml-output"
+          cmd = "#{DARCS_BIN} changes --repodir #{shell_quote @url} --xml-output"
           cmd << " --from-match #{shell_quote("hash #{identifier_from}")}" if identifier_from
           cmd << " --last #{options[:limit].to_i}" if options[:limit]
           shellout(cmd) do |io|
@@ -116,7 +116,7 @@
         
         def diff(path, identifier_from, identifier_to=nil)
           path = '*' if path.blank?
-          cmd = "#{DARCS_BIN} diff --repodir #{@url}"
+          cmd = "#{DARCS_BIN} diff --repodir #{shell_quote @url}"
           if identifier_to.nil?
             cmd << " --match #{shell_quote("hash #{identifier_from}")}"
           else
@@ -135,7 +135,7 @@
         end
         
         def cat(path, identifier=nil)
-          cmd = "#{DARCS_BIN} show content --repodir #{@url}"
+          cmd = "#{DARCS_BIN} show content --repodir #{shell_quote @url}"
           cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
           cmd << " #{shell_quote path}"
           cat = nil
@@ -170,7 +170,7 @@
         
         # Retrieve changed paths for a single patch
         def get_paths_for_patch(hash)
-          cmd = "#{DARCS_BIN} annotate --repodir #{@url} --summary --xml-output"
+          cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
           cmd << " --match #{shell_quote("hash #{hash}")} "
           paths = []
           shellout(cmd) do |io|
--- a/lib/redmine/scm/adapters/git_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/git_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -89,12 +89,13 @@
           cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --date=iso --pretty=fuller --no-merges -n 1 "
           cmd << " #{shell_quote rev} " if rev 
           cmd <<  "-- #{shell_quote path} " unless path.empty?
-          shellout(cmd) do |io|
-            begin
-              id = io.gets.split[1]
-              author = io.gets.match('Author:\s+(.*)$')[1]
-              2.times { io.gets }
-              time = Time.parse(io.gets.match('CommitDate:\s+(.*)$')[1]).localtime
+          lines = []
+          shellout(cmd) { |io| lines = io.readlines }
+          return nil if $? && $?.exitstatus != 0
+          begin
+              id = lines[0].split[1]
+              author = lines[1].match('Author:\s+(.*)$')[1]
+              time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1]).localtime
 
               Revision.new({
                 :identifier => id,
@@ -104,10 +105,9 @@
                 :message => nil, 
                 :paths => nil 
               })
-            rescue NoMethodError => e
+          rescue NoMethodError => e
               logger.error("The revision '#{path}' has a wrong format")
               return nil
-            end
           end
         end
 
@@ -117,7 +117,7 @@
           cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --raw --date=iso --pretty=fuller "
           cmd << " --reverse " if options[:reverse]
           cmd << " --all " if options[:all]
-          cmd << " -n #{options[:limit]} " if options[:limit]
+          cmd << " -n #{options[:limit].to_i} " if options[:limit]
           cmd << "#{shell_quote(identifier_from + '..')}" if identifier_from
           cmd << "#{shell_quote identifier_to}" if identifier_to
           cmd << " --since=#{shell_quote(options[:since].strftime("%Y-%m-%d %H:%M:%S"))}" if options[:since]
@@ -264,6 +264,13 @@
           return nil if $? && $?.exitstatus != 0
           cat
         end
+
+        class Revision < Redmine::Scm::Adapters::Revision
+          # Returns the readable identifier
+          def format_identifier
+            identifier[0,8]
+          end
+        end
       end
     end
   end
--- a/lib/redmine/scm/adapters/mercurial/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,17 +1,17 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/1499/trunk/lib/redmine/scm/adapters/mercurial
+/svn/!svn/ver/4633/trunk/lib/redmine/scm/adapters/mercurial
 END
 hg-template-0.9.5.tmpl
 K 25
 svn:wc:ra_dav:version-url
 V 82
-/svn/!svn/ver/1499/trunk/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl
+/svn/!svn/ver/4633/trunk/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl
 END
 hg-template-1.0.tmpl
 K 25
 svn:wc:ra_dav:version-url
 V 80
-/svn/!svn/ver/1499/trunk/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
+/svn/!svn/ver/4633/trunk/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl
 END
--- a/lib/redmine/scm/adapters/mercurial/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters/mercurial
 http://redmine.rubyforge.org/svn
 
 
 
-2008-06-07T09:19:50.659015Z
-1499
-jplang
+2011-01-05T15:02:24.961855Z
+4633
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-24T11:56:52.980004Z
-6ba619703ae315a3683836144d19773c
-2008-06-07T09:19:50.659015Z
-1499
-jplang
+2011-01-13T14:09:38.000000Z
+961af0eb6ab17203d985cdeac685937e
+2011-01-05T15:02:24.961855Z
+4633
+tmaruyama
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-812
+824
 
 hg-template-1.0.tmpl
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-09-24T11:56:52.992085Z
-2cd7a2264dff3758a1d3340af87a615f
-2008-06-07T09:19:50.659015Z
-1499
-jplang
+2011-01-13T14:09:38.000000Z
+9d5de62ae8cdc141d3f8b970dbba07a0
+2011-01-05T15:02:24.961855Z
+4633
+tmaruyama
 has-props
 
 
@@ -92,5 +92,5 @@
 
 
 
-825
+840
 
--- a/lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-0.9.5.tmpl.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-0.9.5.tmpl.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -3,10 +3,10 @@
 changeset_verbose = 'This template must be used with --debug option\n'
 changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{files}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
 
-file = '<path action="M">{file|escape}</path>\n'
-file_add = '<path action="A">{file_add|escape}</path>\n'
-file_del = '<path action="D">{file_del|escape}</path>\n'
-file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
+file = '<path action="M">{file|urlescape}</path>\n'
+file_add = '<path action="A">{file_add|urlescape}</path>\n'
+file_del = '<path action="D">{file_del|urlescape}</path>\n'
+file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
 tag = '<tag>{tag|escape}</tag>\n'
 header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
 # footer="</log>"
\ No newline at end of file
--- a/lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-1.0.tmpl.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/text-base/hg-template-1.0.tmpl.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,12 +1,12 @@
 changeset = 'This template must be used with --debug option\n'
 changeset_quiet =  'This template must be used with --debug option\n'
 changeset_verbose = 'This template must be used with --debug option\n'
-changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
+changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodatesec}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
 
-file_mod = '<path action="M">{file_mod|escape}</path>\n'
-file_add = '<path action="A">{file_add|escape}</path>\n'
-file_del = '<path action="D">{file_del|escape}</path>\n'
-file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
+file_mod = '<path action="M">{file_mod|urlescape}</path>\n'
+file_add = '<path action="A">{file_add|urlescape}</path>\n'
+file_del = '<path action="D">{file_del|urlescape}</path>\n'
+file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
 tag = '<tag>{tag|escape}</tag>\n'
 header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
 # footer="</log>"
--- a/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl	Thu Jan 13 14:12:06 2011 +0000
@@ -3,10 +3,10 @@
 changeset_verbose = 'This template must be used with --debug option\n'
 changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{files}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
 
-file = '<path action="M">{file|escape}</path>\n'
-file_add = '<path action="A">{file_add|escape}</path>\n'
-file_del = '<path action="D">{file_del|escape}</path>\n'
-file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
+file = '<path action="M">{file|urlescape}</path>\n'
+file_add = '<path action="A">{file_add|urlescape}</path>\n'
+file_del = '<path action="D">{file_del|urlescape}</path>\n'
+file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
 tag = '<tag>{tag|escape}</tag>\n'
 header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
 # footer="</log>"
\ No newline at end of file
--- a/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl	Thu Jan 13 14:12:06 2011 +0000
@@ -1,12 +1,12 @@
 changeset = 'This template must be used with --debug option\n'
 changeset_quiet =  'This template must be used with --debug option\n'
 changeset_verbose = 'This template must be used with --debug option\n'
-changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
+changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodatesec}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
 
-file_mod = '<path action="M">{file_mod|escape}</path>\n'
-file_add = '<path action="A">{file_add|escape}</path>\n'
-file_del = '<path action="D">{file_del|escape}</path>\n'
-file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
+file_mod = '<path action="M">{file_mod|urlescape}</path>\n'
+file_add = '<path action="A">{file_add|urlescape}</path>\n'
+file_del = '<path action="D">{file_del|urlescape}</path>\n'
+file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
 tag = '<tag>{tag|escape}</tag>\n'
 header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
 # footer="</log>"
--- a/lib/redmine/scm/adapters/mercurial_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/mercurial_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -16,41 +16,42 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 require 'redmine/scm/adapters/abstract_adapter'
+require 'cgi'
 
 module Redmine
   module Scm
     module Adapters    
       class MercurialAdapter < AbstractAdapter
-        
+
         # Mercurial executable name
         HG_BIN = "hg"
         TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
         TEMPLATE_NAME = "hg-template"
         TEMPLATE_EXTENSION = "tmpl"
-        
+
         class << self
           def client_version
             @@client_version ||= (hgversion || [])
           end
-          
+
           def hgversion  
             # The hg version is expressed either as a
             # release number (eg 0.9.5 or 1.0) or as a revision
             # id composed of 12 hexa characters.
             theversion = hgversion_from_command_line
-            if theversion.match(/^\d+(\.\d+)+/)
-              theversion.split(".").collect(&:to_i)
+            if m = theversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+              m[2].scan(%r{\d+}).collect(&:to_i)
             end
           end
-          
+
           def hgversion_from_command_line
-            %x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1]
+            shellout("#{HG_BIN} --version") { |io| io.read }.to_s
           end
-          
+
           def template_path
             @@template_path ||= template_path_for(client_version)
           end
-          
+
           def template_path_for(version)
             if ((version <=> [0,9,5]) > 0) || version.empty?
               ver = "1.0"
@@ -60,7 +61,7 @@
             "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
           end
         end
-        
+
         def info
           cmd = "#{HG_BIN} -R #{target('')} root"
           root_url = nil
@@ -75,12 +76,12 @@
         rescue CommandFailed
           return nil
         end
-        
+
         def entries(path=nil, identifier=nil)
           path ||= ''
           entries = Entries.new
           cmd = "#{HG_BIN} -R #{target('')} --cwd #{target('')} locate"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " " + shell_quote("path:#{path}") unless path.empty?
           shellout(cmd) do |io|
             io.each_line do |line|
@@ -100,19 +101,19 @@
           return nil if $? && $?.exitstatus != 0
           entries.sort_by_name
         end
-        
+
         # Fetch the revisions by using a template file that 
         # makes Mercurial produce a xml output.
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})  
           revisions = Revisions.new
           cmd = "#{HG_BIN} --debug --encoding utf8 -R #{target('')} log -C --style #{shell_quote self.class.template_path}"
           if identifier_from && identifier_to
-            cmd << " -r #{identifier_from.to_i}:#{identifier_to.to_i}"
+            cmd << " -r #{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
           elsif identifier_from
-            cmd << " -r #{identifier_from.to_i}:"
+            cmd << " -r #{hgrev(identifier_from)}:"
           end
           cmd << " --limit #{options[:limit].to_i}" if options[:limit]
-          cmd << " #{path}" if path
+          cmd << " #{shell_quote path}" unless path.blank?
           shellout(cmd) do |io|
             begin
               # HG doesn't close the XML Document...
@@ -127,13 +128,13 @@
                     from_rev = logentry.attributes['revision']
                   end
                   paths << {:action => path.attributes['action'],
-                    :path => "/#{path.text}",
-                    :from_path => from_path ? "/#{from_path}" : nil,
+                    :path => "/#{CGI.unescape(path.text)}",
+                    :from_path => from_path ? "/#{CGI.unescape(from_path)}" : nil,
                     :from_revision => from_rev ? from_rev : nil
                   }
                 end
                 paths.sort! { |x,y| x[:path] <=> y[:path] }
-                
+
                 revisions << Revision.new({:identifier => logentry.attributes['revision'],
                                             :scmid => logentry.attributes['node'],
                                             :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
@@ -149,17 +150,22 @@
           return nil if $? && $?.exitstatus != 0
           revisions
         end
-        
+
         def diff(path, identifier_from, identifier_to=nil)
           path ||= ''
+          diff_args = ''
+          diff = []
           if identifier_to
-            identifier_to = identifier_to.to_i 
+            diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}"
           else
-            identifier_to = identifier_from.to_i - 1
+            if self.class.client_version_above?([1, 2])
+              diff_args = "-c #{hgrev(identifier_from)}"
+            else
+              return []
+            end
           end
-          cmd = "#{HG_BIN} -R #{target('')} diff -r #{identifier_to} -r #{identifier_from} --nodates"
+          cmd = "#{HG_BIN} -R #{target('')} --config diff.git=false diff --nodates #{diff_args}"
           cmd << " -I #{target(path)}" unless path.empty?
-          diff = []
           shellout(cmd) do |io|
             io.each_line do |line|
               diff << line
@@ -168,10 +174,10 @@
           return nil if $? && $?.exitstatus != 0
           diff
         end
-        
+
         def cat(path, identifier=nil)
           cmd = "#{HG_BIN} -R #{target('')} cat"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " #{target(path)}"
           cat = nil
           shellout(cmd) do |io|
@@ -181,24 +187,38 @@
           return nil if $? && $?.exitstatus != 0
           cat
         end
-        
+
         def annotate(path, identifier=nil)
           path ||= ''
           cmd = "#{HG_BIN} -R #{target('')}"
-          cmd << " annotate -n -u"
-          cmd << " -r " + (identifier ? identifier.to_s : "tip")
-          cmd << " -r #{identifier.to_i}" if identifier
+          cmd << " annotate -ncu"
+          cmd << " -r #{hgrev(identifier)}"
           cmd << " #{target(path)}"
           blame = Annotate.new
           shellout(cmd) do |io|
             io.each_line do |line|
-              next unless line =~ %r{^([^:]+)\s(\d+):(.*)$}
-              blame.add_line($3.rstrip, Revision.new(:identifier => $2.to_i, :author => $1.strip))
+              next unless line =~ %r{^([^:]+)\s(\d+)\s([0-9a-f]+):\s(.*)$}
+              r = Revision.new(:author => $1.strip, :revision => $2, :scmid => $3,
+                               :identifier => $3)
+              blame.add_line($4.rstrip, r)
             end
           end
           return nil if $? && $?.exitstatus != 0
           blame
         end
+
+        class Revision < Redmine::Scm::Adapters::Revision
+          # Returns the readable identifier
+          def format_identifier
+            "#{revision}:#{scmid}"
+          end
+        end
+
+        # Returns correct revision identifier
+        def hgrev(identifier)
+          shell_quote(identifier.blank? ? 'tip' : identifier.to_s)
+        end
+        private :hgrev
       end
     end
   end
--- a/lib/redmine/scm/adapters/subversion_adapter.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/scm/adapters/subversion_adapter.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -36,8 +36,8 @@
             version = nil
             shellout(cmd) do |io|
               # Read svn version in first returned line
-              if m = io.gets.to_s.match(%r{((\d+\.)+\d+)})
-                version = m[0].scan(%r{\d+}).collect(&:to_i)
+              if m = io.read.to_s.match(%r{\A(.*?)((\d+\.)+\d+)})
+                version = m[2].scan(%r{\d+}).collect(&:to_i)
               end
             end
             return nil if $? && $?.exitstatus != 0
@@ -135,8 +135,8 @@
         
         def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
           path ||= ''
-          identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
-          identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
+          identifier_from = (identifier_from && identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
+          identifier_to = (identifier_to && identifier_to.to_i > 0) ? identifier_to.to_i : 1
           revisions = Revisions.new
           cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
           cmd << credentials_string
--- a/lib/redmine/themes.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/themes.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -29,30 +29,65 @@
     end
     
     # Return theme for given id, or nil if it's not found
-    def self.theme(id)
-      themes.find {|t| t.id == id}
+    def self.theme(id, options={})
+      return nil if id.blank?
+      
+      found = themes.find {|t| t.id == id}
+      if found.nil? && options[:rescan] != false
+        rescan
+        found = theme(id, :rescan => false)
+      end
+      found
     end
   
     # Class used to represent a theme
     class Theme
-      attr_reader :name, :dir, :stylesheets
+      attr_reader :path, :name, :dir
       
       def initialize(path)
+        @path = path
         @dir = File.basename(path)
         @name = @dir.humanize
-        @stylesheets = Dir.glob("#{path}/stylesheets/*.css").collect {|f| File.basename(f).gsub(/\.css$/, '')}
+        @stylesheets = nil
+        @javascripts = nil
       end
       
       # Directory name used as the theme id
       def id; dir end
-
+      
+      def ==(theme)
+        theme.is_a?(Theme) && theme.dir == dir
+      end
+      
       def <=>(theme)
         name <=> theme.name
       end
+      
+      def stylesheets
+        @stylesheets ||= assets("stylesheets", "css")
+      end
+      
+      def javascripts
+        @javascripts ||= assets("javascripts", "js")
+      end
+      
+      def stylesheet_path(source)
+        "/themes/#{dir}/stylesheets/#{source}"
+      end
+      
+      def javascript_path(source)
+        "/themes/#{dir}/javascripts/#{source}"
+      end
+      
+      private
+      
+      def assets(dir, ext)
+        Dir.glob("#{path}/#{dir}/*.#{ext}").collect {|f| File.basename(f).gsub(/\.#{ext}$/, '')}
+      end
     end
     
     private
-        
+    
     def self.scan_themes
       dirs = Dir.glob("#{Rails.public_path}/themes/*").select do |f|
         # A theme should at least override application.css
@@ -64,13 +99,29 @@
 end
 
 module ApplicationHelper
+  def current_theme
+    unless instance_variable_defined?(:@current_theme)
+      @current_theme = Redmine::Themes.theme(Setting.ui_theme)
+    end
+    @current_theme
+  end
+  
   def stylesheet_path(source)
-    @current_theme ||= Redmine::Themes.theme(Setting.ui_theme)
-    super((@current_theme && @current_theme.stylesheets.include?(source)) ?
-      "/themes/#{@current_theme.dir}/stylesheets/#{source}" : source)
+    if current_theme && current_theme.stylesheets.include?(source)
+      super current_theme.stylesheet_path(source)
+    else
+      super
+    end
   end
   
   def path_to_stylesheet(source)
     stylesheet_path source
   end
+  
+  # Returns the header tags for the current theme
+  def heads_for_theme
+    if current_theme && current_theme.javascripts.include?('theme')
+      javascript_include_tag current_theme.javascript_path('theme')
+    end
+  end
 end
--- a/lib/redmine/version.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/version.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -3,8 +3,8 @@
 module Redmine
   module VERSION #:nodoc:
     MAJOR = 1
-    MINOR = 0
-    TINY  = 3
+    MINOR = 1
+    TINY  = 0
     
     # Branch values:
     # * official release: nil
--- a/lib/redmine/views/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/views/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 42
-/svn/!svn/ver/2659/trunk/lib/redmine/views
+/svn/!svn/ver/4489/trunk/lib/redmine/views
+END
+api_template_handler.rb
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/4452/trunk/lib/redmine/views/api_template_handler.rb
 END
 other_formats_builder.rb
 K 25
@@ -9,3 +15,9 @@
 V 67
 /svn/!svn/ver/2334/trunk/lib/redmine/views/other_formats_builder.rb
 END
+builders.rb
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4452/trunk/lib/redmine/views/builders.rb
+END
--- a/lib/redmine/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/views
 http://redmine.rubyforge.org/svn
 
 
 
-2009-04-05T13:33:54.194067Z
-2659
+2010-12-11T13:13:49.013705Z
+4489
 jplang
 
 
@@ -29,6 +29,40 @@
 my_page
 dir
 
+api_template_handler.rb
+file
+
+
+
+
+2011-01-13T14:09:39.000000Z
+e0e38b713c41ea63221dd877c6939983
+2010-12-03T11:25:21.858858Z
+4452
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1122
+
 other_formats_builder.rb
 file
 
@@ -63,3 +97,40 @@
 
 1287
 
+builders
+dir
+
+builders.rb
+file
+
+
+
+
+2011-01-13T14:11:09.000000Z
+04feeced33ca55e9fb99099efe2fdcf6
+2010-12-03T11:25:21.858858Z
+4452
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1195
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/.svn/prop-base/api_template_handler.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/.svn/prop-base/builders.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/.svn/text-base/api_template_handler.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,28 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    class ApiTemplateHandler < ActionView::TemplateHandler
+      include ActionView::TemplateHandlers::Compilable
+
+      def compile(template) 
+        "Redmine::Views::Builders.for(params[:format]) do |api|; #{template.source}; self.output_buffer = api.output; end"
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/.svn/text-base/builders.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,35 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    module Builders
+      def self.for(format, &block)
+        builder = case format
+          when 'xml',  :xml;  Builders::Xml.new
+          when 'json', :json; Builders::Json.new
+          else; raise "No builder for format #{format}"
+        end
+        if block
+          block.call(builder)
+        else
+          builder
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/api_template_handler.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,28 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    class ApiTemplateHandler < ActionView::TemplateHandler
+      include ActionView::TemplateHandlers::Compilable
+
+      def compile(template) 
+        "Redmine::Views::Builders.for(params[:format]) do |api|; #{template.source}; self.output_buffer = api.output; end"
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,35 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    module Builders
+      def self.for(format, &block)
+        builder = case format
+          when 'xml',  :xml;  Builders::Xml.new
+          when 'json', :json; Builders::Json.new
+          else; raise "No builder for format #{format}"
+        end
+        if block
+          block.call(builder)
+        else
+          builder
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/4489/trunk/lib/redmine/views/builders
+END
+structure.rb
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/4489/trunk/lib/redmine/views/builders/structure.rb
+END
+xml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svn/!svn/ver/4489/trunk/lib/redmine/views/builders/xml.rb
+END
+json.rb
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/4452/trunk/lib/redmine/views/builders/json.rb
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,130 @@
+10
+
+dir
+4707
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/builders
+http://redmine.rubyforge.org/svn
+
+
+
+2010-12-11T13:13:49.013705Z
+4489
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+structure.rb
+file
+
+
+
+
+2011-01-13T14:11:09.000000Z
+8816150c9264dfa6e639af165670cbb1
+2010-12-11T13:13:49.013705Z
+4489
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2361
+
+xml.rb
+file
+
+
+
+
+2011-01-13T14:11:09.000000Z
+f9654f4bc43dbb5c01d5be2d6b045dd7
+2010-12-11T13:13:49.013705Z
+4489
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1405
+
+json.rb
+file
+
+
+
+
+2011-01-13T14:11:09.000000Z
+4b47e2fa5030d1cdad48f3abb5ab7c44
+2010-12-03T11:25:21.858858Z
+4452
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+989
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/prop-base/json.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/prop-base/structure.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/prop-base/xml.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/text-base/json.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,30 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require 'blankslate'
+
+module Redmine
+  module Views
+    module Builders
+      class Json < Structure
+        def output
+          @struct.first.to_json
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/text-base/structure.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require 'blankslate'
+
+module Redmine
+  module Views
+    module Builders
+      class Structure < BlankSlate
+        def initialize
+          @struct = [{}]
+        end
+        
+        def array(tag, options={}, &block)
+          @struct << []
+          block.call(self)
+          ret = @struct.pop
+          @struct.last[tag] = ret
+          @struct.last.merge!(options) if options
+        end
+        
+        def method_missing(sym, *args, &block)
+          if args.any?
+            if args.first.is_a?(Hash)
+              if @struct.last.is_a?(Array)
+                @struct.last << args.first unless block
+              else
+                @struct.last[sym] = args.first
+              end
+            else
+              if @struct.last.is_a?(Array)
+                @struct.last << (args.last || {}).merge(:value => args.first)
+              else
+                @struct.last[sym] = args.first
+              end
+            end
+          end
+          
+          if block
+            @struct << (args.first.is_a?(Hash) ? args.first : {})
+            block.call(self)
+            ret = @struct.pop
+            if @struct.last.is_a?(Array)
+              @struct.last << ret
+            else
+              if @struct.last.has_key?(sym) && @struct.last[sym].is_a?(Hash)
+                @struct.last[sym].merge! ret
+              else
+                @struct.last[sym] = ret
+              end
+            end
+          end
+        end
+        
+        def output
+          raise "Need to implement #{self.class.name}#output"
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/.svn/text-base/xml.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,45 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    module Builders
+      class Xml < ::Builder::XmlMarkup
+        def initialize
+          super
+          instruct!
+        end
+        
+        def output
+          target!
+        end
+        
+        def method_missing(sym, *args, &block)
+          if args.size == 1 && args.first.is_a?(Time)
+            __send__ sym, args.first.xmlschema, &block
+          else
+            super
+          end
+        end
+        
+        def array(name, options={}, &block)
+          __send__ name, (options || {}).merge(:type => 'array'), &block
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/json.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,30 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require 'blankslate'
+
+module Redmine
+  module Views
+    module Builders
+      class Json < Structure
+        def output
+          @struct.first.to_json
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/structure.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require 'blankslate'
+
+module Redmine
+  module Views
+    module Builders
+      class Structure < BlankSlate
+        def initialize
+          @struct = [{}]
+        end
+        
+        def array(tag, options={}, &block)
+          @struct << []
+          block.call(self)
+          ret = @struct.pop
+          @struct.last[tag] = ret
+          @struct.last.merge!(options) if options
+        end
+        
+        def method_missing(sym, *args, &block)
+          if args.any?
+            if args.first.is_a?(Hash)
+              if @struct.last.is_a?(Array)
+                @struct.last << args.first unless block
+              else
+                @struct.last[sym] = args.first
+              end
+            else
+              if @struct.last.is_a?(Array)
+                @struct.last << (args.last || {}).merge(:value => args.first)
+              else
+                @struct.last[sym] = args.first
+              end
+            end
+          end
+          
+          if block
+            @struct << (args.first.is_a?(Hash) ? args.first : {})
+            block.call(self)
+            ret = @struct.pop
+            if @struct.last.is_a?(Array)
+              @struct.last << ret
+            else
+              if @struct.last.has_key?(sym) && @struct.last[sym].is_a?(Hash)
+                @struct.last[sym].merge! ret
+              else
+                @struct.last[sym] = ret
+              end
+            end
+          end
+        end
+        
+        def output
+          raise "Need to implement #{self.class.name}#output"
+        end
+      end
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/views/builders/xml.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,45 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+module Redmine
+  module Views
+    module Builders
+      class Xml < ::Builder::XmlMarkup
+        def initialize
+          super
+          instruct!
+        end
+        
+        def output
+          target!
+        end
+        
+        def method_missing(sym, *args, &block)
+          if args.size == 1 && args.first.is_a?(Time)
+            __send__ sym, args.first.xmlschema, &block
+          else
+            super
+          end
+        end
+        
+        def array(name, options={}, &block)
+          __send__ name, (options || {}).merge(:type => 'array'), &block
+        end
+      end
+    end
+  end
+end
--- a/lib/redmine/views/my_page/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/views/my_page/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/my_page
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/wiki_formatting/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/wiki_formatting/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting
 http://redmine.rubyforge.org/svn
 
--- a/lib/redmine/wiki_formatting/textile/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/redmine/wiki_formatting/textile/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting/textile
 http://redmine.rubyforge.org/svn
 
--- a/lib/tasks/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 34
-/svn/!svn/ver/4405/trunk/lib/tasks
+/svn/!svn/ver/4687/trunk/lib/tasks
 END
 deprecated.rake
 K 25
@@ -27,18 +27,18 @@
 V 48
 /svn/!svn/ver/4167/trunk/lib/tasks/reminder.rake
 END
+metrics.rake
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/2825/trunk/lib/tasks/metrics.rake
+END
 initializers.rake
 K 25
 svn:wc:ra_dav:version-url
 V 52
 /svn/!svn/ver/4405/trunk/lib/tasks/initializers.rake
 END
-metrics.rake
-K 25
-svn:wc:ra_dav:version-url
-V 47
-/svn/!svn/ver/2825/trunk/lib/tasks/metrics.rake
-END
 permissions.rake
 K 25
 svn:wc:ra_dav:version-url
@@ -55,7 +55,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/3060/trunk/lib/tasks/testing.rake
+/svn/!svn/ver/4687/trunk/lib/tasks/testing.rake
 END
 watchers.rake
 K 25
@@ -63,18 +63,18 @@
 V 48
 /svn/!svn/ver/3167/trunk/lib/tasks/watchers.rake
 END
+plugins.rake
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/1786/trunk/lib/tasks/plugins.rake
+END
 yardoc.rake
 K 25
 svn:wc:ra_dav:version-url
 V 46
 /svn/!svn/ver/3922/trunk/lib/tasks/yardoc.rake
 END
-plugins.rake
-K 25
-svn:wc:ra_dav:version-url
-V 47
-/svn/!svn/ver/1786/trunk/lib/tasks/plugins.rake
-END
 locales.rake
 K 25
 svn:wc:ra_dav:version-url
@@ -85,13 +85,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/3517/trunk/lib/tasks/migrate_from_trac.rake
+/svn/!svn/ver/4599/trunk/lib/tasks/migrate_from_trac.rake
 END
 migrate_from_mantis.rake
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4403/trunk/lib/tasks/migrate_from_mantis.rake
+/svn/!svn/ver/4599/trunk/lib/tasks/migrate_from_mantis.rake
 END
 email.rake
 K 25
@@ -109,7 +109,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 42
-/svn/!svn/ver/3919/trunk/lib/tasks/ci.rake
+/svn/!svn/ver/4643/trunk/lib/tasks/ci.rake
 END
 fetch_changesets.rake
 K 25
--- a/lib/tasks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/lib/tasks
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T15:14:19.280754Z
-4405
-jplang
+2011-01-11T08:41:11.973101Z
+4687
+tmaruyama
 
 
 
@@ -162,6 +162,40 @@
 
 1606
 
+metrics.rake
+file
+
+
+
+
+2010-09-23T14:37:45.063748Z
+0254f4ee916dee0a2572e63e947f8a1b
+2009-07-27T00:55:43.057910Z
+2825
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+113
+
 initializers.rake
 file
 
@@ -196,40 +230,6 @@
 
 1343
 
-metrics.rake
-file
-
-
-
-
-2010-09-23T14:37:45.063748Z
-0254f4ee916dee0a2572e63e947f8a1b
-2009-07-27T00:55:43.057910Z
-2825
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-113
-
 permissions.rake
 file
 
@@ -304,11 +304,11 @@
 
 
 
-2010-09-23T14:37:45.067787Z
-5d4cbb1125484cf9c8f3f693c53f8fd1
-2009-11-15T13:43:31.750664Z
-3060
-jplang
+2011-01-13T14:11:09.000000Z
+62ce14359d5062666d86230adc5ba695
+2011-01-11T08:41:11.973101Z
+4687
+tmaruyama
 
 
 
@@ -330,7 +330,7 @@
 
 
 
-1419
+3280
 
 watchers.rake
 file
@@ -366,6 +366,40 @@
 
 180
 
+plugins.rake
+file
+
+
+
+
+2010-09-23T14:37:45.067787Z
+f27a83cf3f04d7906ac2f3ca40d01a20
+2008-09-05T10:31:06.632668Z
+1786
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1256
+
 yardoc.rake
 file
 
@@ -400,40 +434,6 @@
 
 578
 
-plugins.rake
-file
-
-
-
-
-2010-09-23T14:37:45.067787Z
-f27a83cf3f04d7906ac2f3ca40d01a20
-2008-09-05T10:31:06.632668Z
-1786
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1256
-
 locales.rake
 file
 
@@ -474,10 +474,10 @@
 
 
 
-2010-09-23T14:37:45.063748Z
-6e8b343999b28febc71dd621a519ce9d
-2010-02-28T16:51:36.195546Z
-3517
+2011-01-13T14:11:09.000000Z
+db60f05f7cd325cbdd984f0b6d7b42ea
+2010-12-31T15:30:50.544770Z
+4599
 jplang
 has-props
 
@@ -500,7 +500,7 @@
 
 
 
-30294
+30358
 
 migrate_from_mantis.rake
 file
@@ -508,10 +508,10 @@
 
 
 
-2010-11-19T13:04:51.424933Z
-d58affc991ec64b615bcbf3f9a1bb176
-2010-11-14T13:16:39.968867Z
-4403
+2011-01-13T14:11:09.000000Z
+3155277c35e0978585a77b55a40901fb
+2010-12-31T15:30:50.544770Z
+4599
 jplang
 
 
@@ -534,7 +534,7 @@
 
 
 
-19253
+19137
 
 email.rake
 file
@@ -610,11 +610,11 @@
 
 
 
-2010-09-23T14:37:45.063748Z
-ad1435c02c82525ceb302114492c28f8
-2010-08-06T20:46:44.980912Z
-3919
-edavis10
+2011-01-13T14:11:09.000000Z
+93f8964aea856c06fb2eaa62ca2023c2
+2011-01-06T18:52:37.169690Z
+4643
+jplang
 
 
 
@@ -636,7 +636,7 @@
 
 
 
-1077
+1118
 
 fetch_changesets.rake
 file
--- a/lib/tasks/.svn/text-base/ci.rake.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/text-base/ci.rake.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,7 @@
     Rake::Task["db:create"].invoke
     Rake::Task["db:migrate"].invoke
     Rake::Task["db:schema:dump"].invoke
+    Rake::Task["test:scm:update"].invoke
   end
 
   desc "Build Redmine"
--- a/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -88,13 +88,11 @@
       
       def firstname
         @firstname = realname.blank? ? username : realname.split.first[0..29]
-        @firstname.gsub!(/[^\w\s\'\-]/i, '')
         @firstname
       end
       
       def lastname
         @lastname = realname.blank? ? '-' : realname.split[1..-1].join(' ')[0..29]
-        @lastname.gsub!(/[^\w\s\'\-]/i, '')
         @lastname = '-' if @lastname.blank?
         @lastname
       end
@@ -224,7 +222,7 @@
       end
       
       def name
-        read_attribute(:name)[0..29].gsub(/[^\w\s\'\-]/, '-')
+        read_attribute(:name)[0..29]
       end
     end
     
--- a/lib/tasks/.svn/text-base/migrate_from_trac.rake.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/text-base/migrate_from_trac.rake.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -167,7 +167,7 @@
         has_many :attachments, :class_name => "TracAttachment",
                                :finder_sql => "SELECT DISTINCT attachment.* FROM #{TracMigrate::TracAttachment.table_name}" +
                                               " WHERE #{TracMigrate::TracAttachment.table_name}.type = 'ticket'" +
-                                              ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{id}\''
+                                              ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{TracMigrate::TracAttachment.connection.quote_string(id.to_s)}\''
         has_many :customs, :class_name => "TracTicketCustom", :foreign_key => :ticket
 
         def ticket_type
@@ -207,7 +207,7 @@
         has_many :attachments, :class_name => "TracAttachment",
                                :finder_sql => "SELECT DISTINCT attachment.* FROM #{TracMigrate::TracAttachment.table_name}" +
                                       " WHERE #{TracMigrate::TracAttachment.table_name}.type = 'wiki'" +
-                                      ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{id}\''
+                                      ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{TracMigrate::TracAttachment.connection.quote_string(id.to_s)}\''
 
         def self.columns
           # Hides readonly Trac field to prevent clash with AR readonly? method (Rails 2.0)
@@ -246,8 +246,8 @@
           ln = ($2 || '-').strip
 
           u = User.new :mail => mail.gsub(/[^-@a-z0-9\.]/i, '-'),
-                       :firstname => fn[0, limit_for(User, 'firstname')].gsub(/[^\w\s\'\-]/i, '-'),
-                       :lastname => ln[0, limit_for(User, 'lastname')].gsub(/[^\w\s\'\-]/i, '-')
+                       :firstname => fn[0, limit_for(User, 'firstname')],
+                       :lastname => ln[0, limit_for(User, 'lastname')]
 
           u.login = username[0,limit_for(User, 'login')].gsub(/[^a-z0-9_\-@\.]/i, '-')
           u.password = 'trac'
--- a/lib/tasks/.svn/text-base/testing.rake.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/.svn/text-base/testing.rake.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,41 +1,90 @@
-### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
-
-namespace :test do
-  desc 'Measures test coverage'
-  task :coverage do
-    rm_f "coverage"
-    rm_f "coverage.data"
-    rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
-    files = Dir.glob("test/**/*_test.rb").join(" ")
-    system("#{rcov} #{files}")
-    system("open coverage/index.html") if PLATFORM['darwin']
-  end
-
-  namespace :scm do
-    namespace :setup do
-      desc "Creates directory for test repositories"
-      task :create_dir do
-        FileUtils.mkdir_p Rails.root + '/tmp/test'
-      end
-      
-      supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
-      
-      desc "Creates a test subversion repository"
-      task :subversion => :create_dir do
-        repo_path = "tmp/test/subversion_repository"
-        system "svnadmin create #{repo_path}"
-        system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
-      end
-      
-      (supported_scms - [:subversion]).each do |scm|
-        desc "Creates a test #{scm} repository"
-        task scm => :create_dir do
-          system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
-        end
-      end
-      
-      desc "Creates all test repositories"
-      task :all => supported_scms
-    end
-  end
-end
+### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
+
+namespace :test do
+  desc 'Measures test coverage'
+  task :coverage do
+    rm_f "coverage"
+    rm_f "coverage.data"
+    rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
+    files = Dir.glob("test/**/*_test.rb").join(" ")
+    system("#{rcov} #{files}")
+    system("open coverage/index.html") if PLATFORM['darwin']
+  end
+
+  desc 'Run unit and functional scm tests'
+  task :scm do
+    errors = %w(test:scm:units test:scm:functionals).collect do |task|
+      begin
+        Rake::Task[task].invoke
+        nil
+      rescue => e
+        task
+      end
+    end.compact
+    abort "Errors running #{errors.to_sentence(:locale => :en)}!" if errors.any?
+  end
+
+  namespace :scm do
+    namespace :setup do
+      desc "Creates directory for test repositories"
+      task :create_dir do
+        FileUtils.mkdir_p Rails.root + '/tmp/test'
+      end
+      
+      supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
+      
+      desc "Creates a test subversion repository"
+      task :subversion => :create_dir do
+        repo_path = "tmp/test/subversion_repository"
+        system "svnadmin create #{repo_path}"
+        system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
+      end
+      
+      desc "Creates a test mercurial repository"
+      task :mercurial => :create_dir do
+        repo_path = "tmp/test/mercurial_repository"
+        bundle_path = "test/fixtures/repositories/mercurial_repository.hg"
+        system "hg init #{repo_path}"
+        system "hg -R #{repo_path} pull #{bundle_path}"
+      end
+      
+      (supported_scms - [:subversion, :mercurial]).each do |scm|
+        desc "Creates a test #{scm} repository"
+        task scm => :create_dir do
+          system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+        end
+      end
+      
+      desc "Creates all test repositories"
+      task :all => supported_scms
+    end
+      
+    desc "Updates installed test repositories"
+    task :update do
+      require 'fileutils'
+      Dir.glob("tmp/test/*_repository").each do |dir|
+        next unless File.basename(dir) =~ %r{^(.+)_repository$} && File.directory?(dir)
+        scm = $1
+        next unless fixture = Dir.glob("test/fixtures/repositories/#{scm}_repository.*").first
+        next if File.stat(dir).ctime > File.stat(fixture).mtime
+        
+        FileUtils.rm_rf dir
+        Rake::Task["test:scm:setup:#{scm}"].execute
+      end
+    end
+    
+    Rake::TestTask.new(:units => "db:test:prepare") do |t|
+      t.libs << "test"
+      t.verbose = true
+      t.test_files = FileList['test/unit/repository*_test.rb'] + FileList['test/unit/lib/redmine/scm/**/*_test.rb']
+    end
+    Rake::Task['test:scm:units'].comment = "Run the scm unit tests"
+    
+    Rake::TestTask.new(:functionals => "db:test:prepare") do |t|
+      t.libs << "test"
+      t.verbose = true
+      t.test_files = FileList['test/functional/repositories*_test.rb']
+    end
+    Rake::Task['test:scm:functionals'].comment = "Run the scm functional tests"
+  end
+end
--- a/lib/tasks/ci.rake	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/ci.rake	Thu Jan 13 14:12:06 2011 +0000
@@ -16,6 +16,7 @@
     Rake::Task["db:create"].invoke
     Rake::Task["db:migrate"].invoke
     Rake::Task["db:schema:dump"].invoke
+    Rake::Task["test:scm:update"].invoke
   end
 
   desc "Build Redmine"
--- a/lib/tasks/migrate_from_mantis.rake	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/migrate_from_mantis.rake	Thu Jan 13 14:12:06 2011 +0000
@@ -88,13 +88,11 @@
       
       def firstname
         @firstname = realname.blank? ? username : realname.split.first[0..29]
-        @firstname.gsub!(/[^\w\s\'\-]/i, '')
         @firstname
       end
       
       def lastname
         @lastname = realname.blank? ? '-' : realname.split[1..-1].join(' ')[0..29]
-        @lastname.gsub!(/[^\w\s\'\-]/i, '')
         @lastname = '-' if @lastname.blank?
         @lastname
       end
@@ -224,7 +222,7 @@
       end
       
       def name
-        read_attribute(:name)[0..29].gsub(/[^\w\s\'\-]/, '-')
+        read_attribute(:name)[0..29]
       end
     end
     
--- a/lib/tasks/migrate_from_trac.rake	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/migrate_from_trac.rake	Thu Jan 13 14:12:06 2011 +0000
@@ -167,7 +167,7 @@
         has_many :attachments, :class_name => "TracAttachment",
                                :finder_sql => "SELECT DISTINCT attachment.* FROM #{TracMigrate::TracAttachment.table_name}" +
                                               " WHERE #{TracMigrate::TracAttachment.table_name}.type = 'ticket'" +
-                                              ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{id}\''
+                                              ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{TracMigrate::TracAttachment.connection.quote_string(id.to_s)}\''
         has_many :customs, :class_name => "TracTicketCustom", :foreign_key => :ticket
 
         def ticket_type
@@ -207,7 +207,7 @@
         has_many :attachments, :class_name => "TracAttachment",
                                :finder_sql => "SELECT DISTINCT attachment.* FROM #{TracMigrate::TracAttachment.table_name}" +
                                       " WHERE #{TracMigrate::TracAttachment.table_name}.type = 'wiki'" +
-                                      ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{id}\''
+                                      ' AND #{TracMigrate::TracAttachment.table_name}.id = \'#{TracMigrate::TracAttachment.connection.quote_string(id.to_s)}\''
 
         def self.columns
           # Hides readonly Trac field to prevent clash with AR readonly? method (Rails 2.0)
@@ -246,8 +246,8 @@
           ln = ($2 || '-').strip
 
           u = User.new :mail => mail.gsub(/[^-@a-z0-9\.]/i, '-'),
-                       :firstname => fn[0, limit_for(User, 'firstname')].gsub(/[^\w\s\'\-]/i, '-'),
-                       :lastname => ln[0, limit_for(User, 'lastname')].gsub(/[^\w\s\'\-]/i, '-')
+                       :firstname => fn[0, limit_for(User, 'firstname')],
+                       :lastname => ln[0, limit_for(User, 'lastname')]
 
           u.login = username[0,limit_for(User, 'login')].gsub(/[^a-z0-9_\-@\.]/i, '-')
           u.password = 'trac'
--- a/lib/tasks/testing.rake	Fri Nov 19 14:05:24 2010 +0000
+++ b/lib/tasks/testing.rake	Thu Jan 13 14:12:06 2011 +0000
@@ -1,41 +1,90 @@
-### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
-
-namespace :test do
-  desc 'Measures test coverage'
-  task :coverage do
-    rm_f "coverage"
-    rm_f "coverage.data"
-    rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
-    files = Dir.glob("test/**/*_test.rb").join(" ")
-    system("#{rcov} #{files}")
-    system("open coverage/index.html") if PLATFORM['darwin']
-  end
-
-  namespace :scm do
-    namespace :setup do
-      desc "Creates directory for test repositories"
-      task :create_dir do
-        FileUtils.mkdir_p Rails.root + '/tmp/test'
-      end
-      
-      supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
-      
-      desc "Creates a test subversion repository"
-      task :subversion => :create_dir do
-        repo_path = "tmp/test/subversion_repository"
-        system "svnadmin create #{repo_path}"
-        system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
-      end
-      
-      (supported_scms - [:subversion]).each do |scm|
-        desc "Creates a test #{scm} repository"
-        task scm => :create_dir do
-          system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
-        end
-      end
-      
-      desc "Creates all test repositories"
-      task :all => supported_scms
-    end
-  end
-end
+### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
+
+namespace :test do
+  desc 'Measures test coverage'
+  task :coverage do
+    rm_f "coverage"
+    rm_f "coverage.data"
+    rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
+    files = Dir.glob("test/**/*_test.rb").join(" ")
+    system("#{rcov} #{files}")
+    system("open coverage/index.html") if PLATFORM['darwin']
+  end
+
+  desc 'Run unit and functional scm tests'
+  task :scm do
+    errors = %w(test:scm:units test:scm:functionals).collect do |task|
+      begin
+        Rake::Task[task].invoke
+        nil
+      rescue => e
+        task
+      end
+    end.compact
+    abort "Errors running #{errors.to_sentence(:locale => :en)}!" if errors.any?
+  end
+
+  namespace :scm do
+    namespace :setup do
+      desc "Creates directory for test repositories"
+      task :create_dir do
+        FileUtils.mkdir_p Rails.root + '/tmp/test'
+      end
+      
+      supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
+      
+      desc "Creates a test subversion repository"
+      task :subversion => :create_dir do
+        repo_path = "tmp/test/subversion_repository"
+        system "svnadmin create #{repo_path}"
+        system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
+      end
+      
+      desc "Creates a test mercurial repository"
+      task :mercurial => :create_dir do
+        repo_path = "tmp/test/mercurial_repository"
+        bundle_path = "test/fixtures/repositories/mercurial_repository.hg"
+        system "hg init #{repo_path}"
+        system "hg -R #{repo_path} pull #{bundle_path}"
+      end
+      
+      (supported_scms - [:subversion, :mercurial]).each do |scm|
+        desc "Creates a test #{scm} repository"
+        task scm => :create_dir do
+          system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+        end
+      end
+      
+      desc "Creates all test repositories"
+      task :all => supported_scms
+    end
+      
+    desc "Updates installed test repositories"
+    task :update do
+      require 'fileutils'
+      Dir.glob("tmp/test/*_repository").each do |dir|
+        next unless File.basename(dir) =~ %r{^(.+)_repository$} && File.directory?(dir)
+        scm = $1
+        next unless fixture = Dir.glob("test/fixtures/repositories/#{scm}_repository.*").first
+        next if File.stat(dir).ctime > File.stat(fixture).mtime
+        
+        FileUtils.rm_rf dir
+        Rake::Task["test:scm:setup:#{scm}"].execute
+      end
+    end
+    
+    Rake::TestTask.new(:units => "db:test:prepare") do |t|
+      t.libs << "test"
+      t.verbose = true
+      t.test_files = FileList['test/unit/repository*_test.rb'] + FileList['test/unit/lib/redmine/scm/**/*_test.rb']
+    end
+    Rake::Task['test:scm:units'].comment = "Run the scm unit tests"
+    
+    Rake::TestTask.new(:functionals => "db:test:prepare") do |t|
+      t.libs << "test"
+      t.verbose = true
+      t.test_files = FileList['test/functional/repositories*_test.rb']
+    end
+    Rake::Task['test:scm:functionals'].comment = "Run the scm functional tests"
+  end
+end
--- a/log/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/log/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/log
 http://redmine.rubyforge.org/svn
 
--- a/public/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 31
-/svn/!svn/ver/4377/trunk/public
+/svn/!svn/ver/4702/trunk/public
 END
 dispatch.fcgi.example
 K 25
--- a/public/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T18:52:07.556711Z
-4377
+2011-01-11T20:37:31.480170Z
+4702
 jplang
 has-props
 
--- a/public/help/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/help/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/help
 http://redmine.rubyforge.org/svn
 
--- a/public/images/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/images/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 38
-/svn/!svn/ver/4072/trunk/public/images
+/svn/!svn/ver/4534/trunk/public/images
 END
 time.png
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/3573/trunk/public/images/task_parent_end.png
+/svn/!svn/ver/4534/trunk/public/images/task_parent_end.png
 END
 arrow_expanded.png
 K 25
@@ -27,11 +27,11 @@
 V 62
 /svn/!svn/ver/3419/trunk/public/images/bullet_toggle_minus.png
 END
-2downarrow.png
+milestone_late.png
 K 25
 svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/3419/trunk/public/images/2downarrow.png
+V 57
+/svn/!svn/ver/4072/trunk/public/images/milestone_late.png
 END
 folder_open_add.png
 K 25
@@ -39,11 +39,11 @@
 V 58
 /svn/!svn/ver/3419/trunk/public/images/folder_open_add.png
 END
-milestone_late.png
+2downarrow.png
 K 25
 svn:wc:ra_dav:version-url
-V 57
-/svn/!svn/ver/4072/trunk/public/images/milestone_late.png
+V 53
+/svn/!svn/ver/3419/trunk/public/images/2downarrow.png
 END
 warning.png
 K 25
@@ -51,11 +51,11 @@
 V 50
 /svn/!svn/ver/3419/trunk/public/images/warning.png
 END
-fav_off.png
+reload.png
 K 25
 svn:wc:ra_dav:version-url
-V 50
-/svn/!svn/ver/3419/trunk/public/images/fav_off.png
+V 49
+/svn/!svn/ver/3430/trunk/public/images/reload.png
 END
 move.png
 K 25
@@ -63,11 +63,11 @@
 V 47
 /svn/!svn/ver/3419/trunk/public/images/move.png
 END
-reload.png
+fav_off.png
 K 25
 svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/3430/trunk/public/images/reload.png
+V 50
+/svn/!svn/ver/3419/trunk/public/images/fav_off.png
 END
 project_marker.png
 K 25
@@ -81,18 +81,18 @@
 V 54
 /svn/!svn/ver/3419/trunk/public/images/ticket_note.png
 END
+copy.png
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/3419/trunk/public/images/copy.png
+END
 zoom_in.png
 K 25
 svn:wc:ra_dav:version-url
 V 50
 /svn/!svn/ver/3419/trunk/public/images/zoom_in.png
 END
-copy.png
-K 25
-svn:wc:ra_dav:version-url
-V 47
-/svn/!svn/ver/3419/trunk/public/images/copy.png
-END
 news.png
 K 25
 svn:wc:ra_dav:version-url
@@ -189,18 +189,18 @@
 V 52
 /svn/!svn/ver/4072/trunk/public/images/task_done.png
 END
+text_list_bullets.png
+K 25
+svn:wc:ra_dav:version-url
+V 60
+/svn/!svn/ver/3419/trunk/public/images/text_list_bullets.png
+END
 bullet_delete.png
 K 25
 svn:wc:ra_dav:version-url
 V 56
 /svn/!svn/ver/3419/trunk/public/images/bullet_delete.png
 END
-text_list_bullets.png
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn/!svn/ver/3419/trunk/public/images/text_list_bullets.png
-END
 bullet_arrow_left.png
 K 25
 svn:wc:ra_dav:version-url
@@ -249,47 +249,53 @@
 V 61
 /svn/!svn/ver/3419/trunk/public/images/folder_open_orange.png
 END
+attachment.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/3419/trunk/public/images/attachment.png
+END
 textfield.png
 K 25
 svn:wc:ra_dav:version-url
 V 52
 /svn/!svn/ver/3419/trunk/public/images/textfield.png
 END
-attachment.png
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/3419/trunk/public/images/attachment.png
-END
 false.png
 K 25
 svn:wc:ra_dav:version-url
 V 48
 /svn/!svn/ver/3419/trunk/public/images/false.png
 END
+bullet_toggle_plus.png
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/3419/trunk/public/images/bullet_toggle_plus.png
+END
 unlock.png
 K 25
 svn:wc:ra_dav:version-url
 V 49
 /svn/!svn/ver/3430/trunk/public/images/unlock.png
 END
-bullet_toggle_plus.png
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/3419/trunk/public/images/bullet_toggle_plus.png
-END
 group.png
 K 25
 svn:wc:ra_dav:version-url
 V 48
 /svn/!svn/ver/3419/trunk/public/images/group.png
 END
-save.png
+plugin.png
 K 25
 svn:wc:ra_dav:version-url
-V 47
-/svn/!svn/ver/3419/trunk/public/images/save.png
+V 49
+/svn/!svn/ver/3419/trunk/public/images/plugin.png
+END
+loading.gif
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/67/trunk/public/images/loading.gif
 END
 bullet_blue.png
 K 25
@@ -297,17 +303,11 @@
 V 54
 /svn/!svn/ver/3419/trunk/public/images/bullet_blue.png
 END
-loading.gif
+save.png
 K 25
 svn:wc:ra_dav:version-url
-V 48
-/svn/!svn/ver/67/trunk/public/images/loading.gif
-END
-plugin.png
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/3419/trunk/public/images/plugin.png
+V 47
+/svn/!svn/ver/3419/trunk/public/images/save.png
 END
 bullet_add.png
 K 25
@@ -321,29 +321,29 @@
 V 48
 /svn/!svn/ver/3419/trunk/public/images/draft.png
 END
+milestone_done.png
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/4072/trunk/public/images/milestone_done.png
+END
 exclamation.png
 K 25
 svn:wc:ra_dav:version-url
 V 54
 /svn/!svn/ver/3419/trunk/public/images/exclamation.png
 END
-milestone_done.png
-K 25
-svn:wc:ra_dav:version-url
-V 57
-/svn/!svn/ver/4072/trunk/public/images/milestone_done.png
-END
 ticket_go.png
 K 25
 svn:wc:ra_dav:version-url
 V 52
 /svn/!svn/ver/3419/trunk/public/images/ticket_go.png
 END
-zoom_out.png
+folder.png
 K 25
 svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/3419/trunk/public/images/zoom_out.png
+V 49
+/svn/!svn/ver/3419/trunk/public/images/folder.png
 END
 report.png
 K 25
@@ -351,11 +351,11 @@
 V 49
 /svn/!svn/ver/3419/trunk/public/images/report.png
 END
-folder.png
+zoom_out.png
 K 25
 svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/3419/trunk/public/images/folder.png
+V 51
+/svn/!svn/ver/3419/trunk/public/images/zoom_out.png
 END
 fav.png
 K 25
@@ -363,18 +363,18 @@
 V 46
 /svn/!svn/ver/3419/trunk/public/images/fav.png
 END
+document.png
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/3419/trunk/public/images/document.png
+END
 bullet_purple.png
 K 25
 svn:wc:ra_dav:version-url
 V 56
 /svn/!svn/ver/3419/trunk/public/images/bullet_purple.png
 END
-document.png
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/3419/trunk/public/images/document.png
-END
 true.png
 K 25
 svn:wc:ra_dav:version-url
--- a/public/images/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/images/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/images
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
+2010-12-18T16:06:20.343240Z
+4534
+jplang
 
 
 
@@ -66,10 +66,10 @@
 
 
 
-2010-09-23T14:37:45.159811Z
-9016fc5be8e81d6a41a1fd6312b05f39
-2010-03-13T14:56:49.379682Z
-3573
+2011-01-13T14:11:09.000000Z
+7042481efe0084860d2a7b176086b306
+2010-12-18T16:06:20.343240Z
+4534
 jplang
 has-props
 
@@ -92,7 +92,7 @@
 
 
 
-165
+224
 
 arrow_expanded.png
 file
@@ -162,39 +162,39 @@
 
 218
 
-milestone_late.png
+folder_open_add.png
 file
 
 
 
 
-2010-09-24T12:48:29.823793Z
-ecc1979ed435769c700725495428359f
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-160
+2010-09-23T14:37:45.139758Z
+8ae3a2d9ef884ed73a4157cd9c0465b8
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+375
 
 2downarrow.png
 file
@@ -230,39 +230,39 @@
 
 282
 
-folder_open_add.png
+milestone_late.png
 file
 
 
 
 
-2010-09-23T14:37:45.139758Z
-8ae3a2d9ef884ed73a4157cd9c0465b8
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-375
+2010-09-24T12:48:29.823793Z
+ecc1979ed435769c700725495428359f
+2010-09-10T03:09:02.311267Z
+4072
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+160
 
 warning.png
 file
@@ -298,6 +298,74 @@
 
 613
 
+reload.png
+file
+
+
+
+
+2010-09-23T14:37:45.155802Z
+a20844852ce8909ed4a19ccb0f6c6518
+2010-02-14T13:13:16.743297Z
+3430
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+549
+
+move.png
+file
+
+
+
+
+2010-09-23T14:37:45.155802Z
+0a2ceb01cbc3c01186fdcc25ced8eb0d
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+321
+
 fav_off.png
 file
 
@@ -332,74 +400,6 @@
 
 211
 
-move.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-0a2ceb01cbc3c01186fdcc25ced8eb0d
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-321
-
-reload.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-a20844852ce8909ed4a19ccb0f6c6518
-2010-02-14T13:13:16.743297Z
-3430
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-549
-
 project_marker.png
 file
 
@@ -468,6 +468,40 @@
 
 641
 
+copy.png
+file
+
+
+
+
+2010-09-23T14:37:45.127811Z
+acd6a5a422b44466803829ce8a12fd9a
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+925
+
 zoom_in.png
 file
 
@@ -502,40 +536,6 @@
 
 461
 
-copy.png
-file
-
-
-
-
-2010-09-23T14:37:45.127811Z
-acd6a5a422b44466803829ce8a12fd9a
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-925
-
 news.png
 file
 
@@ -1083,6 +1083,40 @@
 
 137
 
+text_list_bullets.png
+file
+
+
+
+
+2010-09-23T14:37:45.159811Z
+01c137e009015642700b935edb321a89
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+291
+
 bullet_delete.png
 file
 
@@ -1117,40 +1151,6 @@
 
 255
 
-text_list_bullets.png
-file
-
-
-
-
-2010-09-23T14:37:45.159811Z
-01c137e009015642700b935edb321a89
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-291
-
 bullet_arrow_left.png
 file
 
@@ -1423,6 +1423,40 @@
 
 403
 
+attachment.png
+file
+
+
+
+
+2010-09-23T14:37:45.123788Z
+0a35d4eaddb2292fed7062295ee0dcd8
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+939
+
 textfield.png
 file
 
@@ -1457,40 +1491,6 @@
 
 100
 
-attachment.png
-file
-
-
-
-
-2010-09-23T14:37:45.123788Z
-0a35d4eaddb2292fed7062295ee0dcd8
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-939
-
 false.png
 file
 
@@ -1525,6 +1525,40 @@
 
 459
 
+bullet_toggle_plus.png
+file
+
+
+
+
+2010-09-23T14:37:45.127811Z
+06cbf5da7daca348a87a6299a4112d71
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+217
+
 unlock.png
 file
 
@@ -1559,40 +1593,6 @@
 
 448
 
-bullet_toggle_plus.png
-file
-
-
-
-
-2010-09-23T14:37:45.127811Z
-06cbf5da7daca348a87a6299a4112d71
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-217
-
 group.png
 file
 
@@ -1627,6 +1627,108 @@
 
 700
 
+plugin.png
+file
+
+
+
+
+2010-09-23T14:37:45.155802Z
+e019855b07d30f1ce1baf59b9df27125
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+538
+
+loading.gif
+file
+
+
+
+
+2010-09-23T14:37:45.151760Z
+03ce3dcc84af110e9da8699a841e5200
+2006-12-03T19:55:45.161980Z
+62
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1553
+
+bullet_blue.png
+file
+
+
+
+
+2010-09-23T14:37:45.123788Z
+3363f60299360fb5539b769d089e145f
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+241
+
 save.png
 file
 
@@ -1661,108 +1763,6 @@
 
 440
 
-bullet_blue.png
-file
-
-
-
-
-2010-09-23T14:37:45.123788Z
-3363f60299360fb5539b769d089e145f
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-241
-
-loading.gif
-file
-
-
-
-
-2010-09-23T14:37:45.151760Z
-03ce3dcc84af110e9da8699a841e5200
-2006-12-03T19:55:45.161980Z
-62
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1553
-
-plugin.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-e019855b07d30f1ce1baf59b9df27125
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-538
-
 bullet_add.png
 file
 
@@ -1831,40 +1831,6 @@
 
 1885
 
-milestone_done.png
-file
-
-
-
-
-2010-09-24T12:48:29.823793Z
-40c58172e0c52eee4deb5227ec37f0cf
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-137
-
 exclamation.png
 file
 
@@ -1899,6 +1865,40 @@
 
 648
 
+milestone_done.png
+file
+
+
+
+
+2010-09-24T12:48:29.823793Z
+40c58172e0c52eee4deb5227ec37f0cf
+2010-09-10T03:09:02.311267Z
+4072
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+137
+
 ticket_go.png
 file
 
@@ -1933,6 +1933,74 @@
 
 608
 
+folder.png
+file
+
+
+
+
+2010-09-23T14:37:45.139758Z
+59f2dc025632f00403490176e7f42bfc
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+
+report.png
+file
+
+
+
+
+2010-09-23T14:37:45.155802Z
+8d8ec49f5773997411ff708a82e40568
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1014
+
 zoom_out.png
 file
 
@@ -1967,74 +2035,6 @@
 
 461
 
-report.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-8d8ec49f5773997411ff708a82e40568
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1014
-
-folder.png
-file
-
-
-
-
-2010-09-23T14:37:45.139758Z
-59f2dc025632f00403490176e7f42bfc
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-970
-
 fav.png
 file
 
@@ -2069,6 +2069,40 @@
 
 378
 
+document.png
+file
+
+
+
+
+2010-09-23T14:37:45.127811Z
+97c12039afee2ea9c5a13e74f6fa5c0c
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+333
+
 bullet_purple.png
 file
 
@@ -2103,40 +2137,6 @@
 
 244
 
-document.png
-file
-
-
-
-
-2010-09-23T14:37:45.127811Z
-97c12039afee2ea9c5a13e74f6fa5c0c
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-333
-
 true.png
 file
 
Binary file public/images/.svn/text-base/task_parent_end.png.svn-base has changed
--- a/public/images/files/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/images/files/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/images/files
 http://redmine.rubyforge.org/svn
 
--- a/public/images/jstoolbar/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/images/jstoolbar/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/images/jstoolbar
 http://redmine.rubyforge.org/svn
 
@@ -94,6 +94,74 @@
 
 252
 
+bt_ol.png
+file
+
+
+
+
+2010-09-23T14:37:45.151760Z
+5477ff20be77ab65aa6b75f47778234e
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+248
+
+bt_h3.png
+file
+
+
+
+
+2010-09-23T14:37:45.151760Z
+cb940b592da5ed0367305cb0514d5684
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+261
+
 bt_code.png
 file
 
@@ -128,14 +196,14 @@
 
 927
 
-bt_h3.png
+bt_strong.png
 file
 
 
 
 
 2010-09-23T14:37:45.151760Z
-cb940b592da5ed0367305cb0514d5684
+f9d7446ceaa5142a5030e9430b3a2bb4
 2010-02-13T09:08:12.698526Z
 3419
 jplang
@@ -160,41 +228,7 @@
 
 
 
-261
-
-bt_ol.png
-file
-
-
-
-
-2010-09-23T14:37:45.151760Z
-5477ff20be77ab65aa6b75f47778234e
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-248
+244
 
 bt_img.png
 file
@@ -230,40 +264,6 @@
 
 1027
 
-bt_strong.png
-file
-
-
-
-
-2010-09-23T14:37:45.151760Z
-f9d7446ceaa5142a5030e9430b3a2bb4
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-244
-
 bt_bq_remove.png
 file
 
Binary file public/images/task_parent_end.png has changed
--- a/public/javascripts/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/4222/trunk/public/javascripts
+/svn/!svn/ver/4648/trunk/public/javascripts
 END
 prototype.js
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3544/trunk/public/javascripts/context_menu.js
+/svn/!svn/ver/4504/trunk/public/javascripts/context_menu.js
 END
 repository_navigation.js
 K 25
@@ -43,7 +43,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4222/trunk/public/javascripts/application.js
+/svn/!svn/ver/4648/trunk/public/javascripts/application.js
 END
 controls.js
 K 25
--- a/public/javascripts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/javascripts
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-28T21:09:06.467392Z
-4222
-edavis10
+2011-01-06T21:02:19.982329Z
+4648
+jplang
 
 
 
@@ -69,10 +69,10 @@
 
 
 
-2010-09-23T14:37:45.207758Z
-94d0e70a6ed4354a44ddb78ac6e15869
-2010-03-04T19:09:14.637225Z
-3544
+2011-01-13T14:11:09.000000Z
+d8370dbea2b172789fa1683412c110a5
+2010-12-12T16:26:24.102027Z
+4504
 jplang
 has-props
 
@@ -95,7 +95,7 @@
 
 
 
-6999
+7021
 
 calendar
 dir
@@ -242,11 +242,11 @@
 
 
 
-2010-11-19T13:04:51.565792Z
-cff005d7bada484046dc85e1caaeebe2
-2010-09-28T21:09:06.467392Z
-4222
-edavis10
+2011-01-13T14:11:09.000000Z
+d9adfbc01d7b99bb5de20d5e9fb145a6
+2011-01-06T21:02:19.982329Z
+4648
+jplang
 has-props
 
 
@@ -268,7 +268,7 @@
 
 
 
-6581
+7727
 
 controls.js
 file
--- a/public/javascripts/.svn/text-base/application.js.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/.svn/text-base/application.js.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -218,6 +218,38 @@
                            }});
 }
 
+function observeRelatedIssueField(url) {
+  new Ajax.Autocompleter('relation_issue_to_id',
+                         'related_issue_candidates',
+                         url,
+                         { minChars: 3,
+                           frequency: 0.5,
+                           paramName: 'q',
+                           updateElement: function(value) {
+                             document.getElementById('relation_issue_to_id').value = value.id;
+                           },
+                           parameters: 'scope=all'
+                           });
+}
+
+function setVisible(id, visible) {
+  var el = $(id);
+  if (el) {if (visible) {el.show();} else {el.hide();}}
+}
+
+function observeProjectModules() {
+  var f = function() {
+    /* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */
+    var c = ($('project_enabled_module_names_issue_tracking').checked == true);
+    setVisible('project_trackers', c);
+    setVisible('project_issue_custom_fields', c);
+  };
+  
+  Event.observe(window, 'load', f);
+  Event.observe('project_enabled_module_names_issue_tracking', 'change', f);
+}
+
+
 /* shows and hides ajax indicator */
 Ajax.Responders.register({
     onCreate: function(){
--- a/public/javascripts/.svn/text-base/context_menu.js.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/.svn/text-base/context_menu.js.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -121,6 +121,7 @@
 
     new Ajax.Updater({success:'context-menu'}, this.url, 
       {asynchronous:true,
+       method: 'get',
        evalScripts:true,
        parameters:Form.serialize(Event.findElement(e, 'form')),
        onComplete:function(request){
--- a/public/javascripts/application.js	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/application.js	Thu Jan 13 14:12:06 2011 +0000
@@ -218,6 +218,38 @@
                            }});
 }
 
+function observeRelatedIssueField(url) {
+  new Ajax.Autocompleter('relation_issue_to_id',
+                         'related_issue_candidates',
+                         url,
+                         { minChars: 3,
+                           frequency: 0.5,
+                           paramName: 'q',
+                           updateElement: function(value) {
+                             document.getElementById('relation_issue_to_id').value = value.id;
+                           },
+                           parameters: 'scope=all'
+                           });
+}
+
+function setVisible(id, visible) {
+  var el = $(id);
+  if (el) {if (visible) {el.show();} else {el.hide();}}
+}
+
+function observeProjectModules() {
+  var f = function() {
+    /* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */
+    var c = ($('project_enabled_module_names_issue_tracking').checked == true);
+    setVisible('project_trackers', c);
+    setVisible('project_issue_custom_fields', c);
+  };
+  
+  Event.observe(window, 'load', f);
+  Event.observe('project_enabled_module_names_issue_tracking', 'change', f);
+}
+
+
 /* shows and hides ajax indicator */
 Ajax.Responders.register({
     onCreate: function(){
--- a/public/javascripts/calendar/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/calendar/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar
 http://redmine.rubyforge.org/svn
 
--- a/public/javascripts/calendar/lang/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/calendar/lang/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar/lang
 http://redmine.rubyforge.org/svn
 
@@ -570,40 +570,6 @@
 
 3845
 
-calendar-gl.js
-file
-
-
-
-
-2010-09-23T14:37:45.195758Z
-c4f74e36f6a3debcf8ec065bc6886f04
-2009-01-23T15:37:59.406714Z
-2296
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3855
-
 calendar-en.js
 file
 
@@ -638,6 +604,40 @@
 
 3600
 
+calendar-gl.js
+file
+
+
+
+
+2010-09-23T14:37:45.195758Z
+c4f74e36f6a3debcf8ec065bc6886f04
+2009-01-23T15:37:59.406714Z
+2296
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3855
+
 calendar-fr.js
 file
 
@@ -672,6 +672,74 @@
 
 3870
 
+calendar-nl.js
+file
+
+
+
+
+2010-09-23T14:37:45.199778Z
+c029bd9c4867bb39e86d1d6efada6d58
+2007-05-24T17:29:11.682821Z
+539
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3701
+
+calendar-hr.js
+file
+
+
+
+
+2010-09-23T14:37:45.195758Z
+f8d0daa275cf612206c43d4c9be95d08
+2010-01-17T10:33:30.937961Z
+3320
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3646
+
 calendar-zh-tw.js
 file
 
@@ -706,74 +774,6 @@
 
 3841
 
-calendar-hr.js
-file
-
-
-
-
-2010-09-23T14:37:45.195758Z
-f8d0daa275cf612206c43d4c9be95d08
-2010-01-17T10:33:30.937961Z
-3320
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3646
-
-calendar-nl.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-c029bd9c4867bb39e86d1d6efada6d58
-2007-05-24T17:29:11.682821Z
-539
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3701
-
 calendar-mn.js
 file
 
@@ -808,6 +808,40 @@
 
 3904
 
+calendar-pl.js
+file
+
+
+
+
+2010-09-23T14:37:45.199778Z
+eabf711c28d30bb9474f3f505766f286
+2007-09-22T14:56:09.057923Z
+749
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3974
+
 calendar-th.js
 file
 
@@ -842,40 +876,6 @@
 
 4417
 
-calendar-pl.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-eabf711c28d30bb9474f3f505766f286
-2007-09-22T14:56:09.057923Z
-749
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3974
-
 calendar-it.js
 file
 
@@ -978,6 +978,40 @@
 
 3909
 
+calendar-lv.js
+file
+
+
+
+
+2010-09-23T14:37:45.199778Z
+b260d88c13c01ebf4e7c94b9cb022930
+2010-05-14T18:15:41.754813Z
+3737
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3803
+
 calendar-zh.js
 file
 
@@ -1012,40 +1046,6 @@
 
 3600
 
-calendar-lv.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-b260d88c13c01ebf4e7c94b9cb022930
-2010-05-14T18:15:41.754813Z
-3737
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3803
-
 calendar-ca.js
 file
 
--- a/public/javascripts/context_menu.js	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/context_menu.js	Thu Jan 13 14:12:06 2011 +0000
@@ -121,6 +121,7 @@
 
     new Ajax.Updater({success:'context-menu'}, this.url, 
       {asynchronous:true,
+       method: 'get',
        evalScripts:true,
        parameters:Form.serialize(Event.findElement(e, 'form')),
        onComplete:function(request){
--- a/public/javascripts/jstoolbar/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/jstoolbar/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar
 http://redmine.rubyforge.org/svn
 
--- a/public/javascripts/jstoolbar/lang/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar/lang
 http://redmine.rubyforge.org/svn
 
@@ -570,6 +570,74 @@
 
 753
 
+jstoolbar-nl.js
+file
+
+
+
+
+2010-09-23T14:37:45.235815Z
+b1bc7a04b7b466073845dd2c81bbbf23
+2009-01-20T15:53:09.750096Z
+2291
+winterheart
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+753
+
+jstoolbar-hr.js
+file
+
+
+
+
+2010-09-23T14:37:45.231813Z
+f13f0553753c4b53bd96c294ca6ce15e
+2010-01-17T10:33:30.937961Z
+3320
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+721
+
 jstoolbar-zh-tw.js
 file
 
@@ -604,74 +672,6 @@
 
 716
 
-jstoolbar-hr.js
-file
-
-
-
-
-2010-09-23T14:37:45.231813Z
-f13f0553753c4b53bd96c294ca6ce15e
-2010-01-17T10:33:30.937961Z
-3320
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-721
-
-jstoolbar-nl.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-b1bc7a04b7b466073845dd2c81bbbf23
-2009-01-20T15:53:09.750096Z
-2291
-winterheart
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-753
-
 jstoolbar-mn.js
 file
 
@@ -706,6 +706,40 @@
 
 916
 
+jstoolbar-pl.js
+file
+
+
+
+
+2010-09-23T14:37:45.235815Z
+1d2b7d7c66953806ca428f91a95d2eaa
+2008-10-07T17:41:16.515762Z
+1928
+winterheart
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+851
+
 jstoolbar-th.js
 file
 
@@ -740,40 +774,6 @@
 
 931
 
-jstoolbar-pl.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-1d2b7d7c66953806ca428f91a95d2eaa
-2008-10-07T17:41:16.515762Z
-1928
-winterheart
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-851
-
 jstoolbar-it.js
 file
 
@@ -876,6 +876,40 @@
 
 754
 
+jstoolbar-lv.js
+file
+
+
+
+
+2010-09-23T14:37:45.235815Z
+5a44b7a9bd5b7db86d0a7398ee5bc779
+2010-05-14T18:15:41.754813Z
+3737
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+836
+
 jstoolbar-zh.js
 file
 
@@ -910,74 +944,6 @@
 
 722
 
-jstoolbar-lv.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-5a44b7a9bd5b7db86d0a7398ee5bc779
-2010-05-14T18:15:41.754813Z
-3737
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-836
-
-jstoolbar-ca.js
-file
-
-
-
-
-2010-09-23T14:37:45.231813Z
-6aacb53ed49e6e14831baf8c38096662
-2008-09-15T16:07:30.857601Z
-1865
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-763
-
 jstoolbar-pt.js
 file
 
@@ -1012,6 +978,74 @@
 
 823
 
+jstoolbar-ca.js
+file
+
+
+
+
+2010-09-23T14:37:45.231813Z
+6aacb53ed49e6e14831baf8c38096662
+2008-09-15T16:07:30.857601Z
+1865
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+763
+
+jstoolbar-pt-br.js
+file
+
+
+
+
+2010-09-23T14:37:45.235815Z
+37aed8a5fce8e7f2030ac37e3d635068
+2008-05-30T16:35:36.510811Z
+1479
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+819
+
 jstoolbar-da.js
 file
 
@@ -1046,40 +1080,6 @@
 
 746
 
-jstoolbar-pt-br.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-37aed8a5fce8e7f2030ac37e3d635068
-2008-05-30T16:35:36.510811Z
-1479
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-819
-
 jstoolbar-sr.js
 file
 
--- a/public/stylesheets/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/stylesheets/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 43
-/svn/!svn/ver/4377/trunk/public/stylesheets
+/svn/!svn/ver/4702/trunk/public/stylesheets
 END
 context_menu.css
 K 25
@@ -49,5 +49,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4377/trunk/public/stylesheets/application.css
+/svn/!svn/ver/4702/trunk/public/stylesheets/application.css
 END
--- a/public/stylesheets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/stylesheets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/stylesheets
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T18:52:07.556711Z
-4377
+2011-01-11T20:37:31.480170Z
+4702
 jplang
 
 
@@ -271,9 +271,9 @@
 
 
 
-d7fddb955f6ccbe8119b5ba02b0fc466
-2010-11-06T18:52:07.556711Z
-4377
+b268a66dce14ef4250f269776b4ddcde
+2011-01-11T20:37:31.480170Z
+4702
 jplang
 has-props
 
--- a/public/stylesheets/.svn/text-base/application.css.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/stylesheets/.svn/text-base/application.css.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,3 +1,4 @@
+html {overflow-y:scroll;}
 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
 
 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
@@ -178,6 +179,8 @@
 tr.user.locked, tr.user.registered { color: #aaa; }
 tr.user.locked a, tr.user.registered a { color: #aaa; }
 
+tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
+
 tr.time-entry { text-align: center; white-space: nowrap; }
 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
@@ -663,6 +666,7 @@
 }
 
 #parent_issue_candidates ul li {width: 500px;}
+#related_issue_candidates ul li {width: 500px;}
 
 /***** Diff *****/
 .diff_out { background: #fcc; }
@@ -778,6 +782,8 @@
   overflow: hidden;
 }
 
+.gantt_subjects { font-size: 0.8em; }
+
 .task {
   position: absolute;
   height:8px;
@@ -790,24 +796,26 @@
 }
 
 .task.label {width:100%;}
+.task.label.project, .task.label.version { font-weight: bold; }
 
 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
 .task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; }  
 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
 
-.task_todo.parent { background: #888; border: 1px solid #888; height: 6px;}
+.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
 .task_late.parent, .task_done.parent { height: 3px;}
-.task_todo.parent .left  { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;}
-.task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;}
+.task.parent.marker.starting  { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
+.task.parent.marker.ending { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
 
-.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; }
-.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
-.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; }
-.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.version.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.version.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.marker { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.project.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.project.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.project.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.project.marker { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
 
 .version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
 .version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
@@ -833,7 +841,6 @@
 .icon-folder { background-image: url(../images/folder.png); }
 .open .icon-folder { background-image: url(../images/folder_open.png); }
 .icon-package { background-image: url(../images/package.png); }
-.icon-home { background-image: url(../images/home.png); }
 .icon-user { background-image: url(../images/user.png); }
 .icon-projects { background-image: url(../images/projects.png); }
 .icon-help { background-image: url(../images/help.png); }
@@ -906,8 +913,8 @@
 }
 
 td.username img.gravatar {
-	float: left;
-	margin: 0 1em 0 0;
+	margin: 0 0.5em 0 0;
+	vertical-align: top;
 }
 
 #activity dt img.gravatar {
--- a/public/stylesheets/application.css	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/stylesheets/application.css	Thu Jan 13 14:12:06 2011 +0000
@@ -1,3 +1,4 @@
+html {overflow-y:scroll;}
 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
 
 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
@@ -178,6 +179,8 @@
 tr.user.locked, tr.user.registered { color: #aaa; }
 tr.user.locked a, tr.user.registered a { color: #aaa; }
 
+tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
+
 tr.time-entry { text-align: center; white-space: nowrap; }
 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
@@ -663,6 +666,7 @@
 }
 
 #parent_issue_candidates ul li {width: 500px;}
+#related_issue_candidates ul li {width: 500px;}
 
 /***** Diff *****/
 .diff_out { background: #fcc; }
@@ -778,6 +782,8 @@
   overflow: hidden;
 }
 
+.gantt_subjects { font-size: 0.8em; }
+
 .task {
   position: absolute;
   height:8px;
@@ -790,24 +796,26 @@
 }
 
 .task.label {width:100%;}
+.task.label.project, .task.label.version { font-weight: bold; }
 
 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
 .task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; }  
 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
 
-.task_todo.parent { background: #888; border: 1px solid #888; height: 6px;}
+.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
 .task_late.parent, .task_done.parent { height: 3px;}
-.task_todo.parent .left  { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;}
-.task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;}
+.task.parent.marker.starting  { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
+.task.parent.marker.ending { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
 
-.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; }
-.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
-.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; }
-.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.version.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.version.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.marker { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.project.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.project.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.project.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.project.marker { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
 
 .version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
 .version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
@@ -833,7 +841,6 @@
 .icon-folder { background-image: url(../images/folder.png); }
 .open .icon-folder { background-image: url(../images/folder_open.png); }
 .icon-package { background-image: url(../images/package.png); }
-.icon-home { background-image: url(../images/home.png); }
 .icon-user { background-image: url(../images/user.png); }
 .icon-projects { background-image: url(../images/projects.png); }
 .icon-help { background-image: url(../images/help.png); }
@@ -906,8 +913,8 @@
 }
 
 td.username img.gravatar {
-	float: left;
-	margin: 0 1em 0 0;
+	margin: 0 0.5em 0 0;
+	vertical-align: top;
 }
 
 #activity dt img.gravatar {
--- a/public/themes/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes
 http://redmine.rubyforge.org/svn
 
--- a/public/themes/alternate/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/alternate/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes/alternate
 http://redmine.rubyforge.org/svn
 
--- a/public/themes/alternate/stylesheets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/alternate/stylesheets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes/alternate/stylesheets
 http://redmine.rubyforge.org/svn
 
--- a/public/themes/classic/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/classic/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes/classic
 http://redmine.rubyforge.org/svn
 
--- a/public/themes/classic/images/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/classic/images/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes/classic/images
 http://redmine.rubyforge.org/svn
 
--- a/public/themes/classic/stylesheets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/public/themes/classic/stylesheets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/public/themes/classic/stylesheets
 http://redmine.rubyforge.org/svn
 
--- a/script/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/script/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/script
 http://redmine.rubyforge.org/svn
 
--- a/script/performance/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/script/performance/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/script/performance
 http://redmine.rubyforge.org/svn
 
--- a/script/process/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/script/process/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/script/process
 http://redmine.rubyforge.org/svn
 
--- a/test/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 29
-/svn/!svn/ver/4411/trunk/test
+/svn/!svn/ver/4705/trunk/test
 END
 object_daddy_helpers.rb
 K 25
@@ -13,7 +13,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/4366/trunk/test/test_helper.rb
+/svn/!svn/ver/4603/trunk/test/test_helper.rb
 END
 helper_testcase.rb
 K 25
--- a/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
@@ -72,11 +72,11 @@
 
 
 
-2010-11-19T13:04:46.868876Z
-cc87df32bc2794f57f75ec6b0ed7e373
-2010-11-05T17:49:20.446583Z
-4366
-edavis10
+2011-01-13T14:09:10.000000Z
+07898564890be4ff9e6c039fa6aa9d41
+2011-01-01T12:24:18.924489Z
+4603
+jplang
 has-props
 
 
@@ -98,7 +98,7 @@
 
 
 
-16405
+16997
 
 functional
 dir
--- a/test/.svn/text-base/test_helper.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/.svn/text-base/test_helper.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -59,7 +59,7 @@
   end
   
   def uploaded_test_file(name, mime)
-    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime)
+    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime, true)
   end
 
   # Mock out a file
@@ -115,7 +115,7 @@
   end
   
   def assert_error_tag(options={})
-    assert_tag({:tag => 'p', :attributes => { :id => 'errorExplanation' }}.merge(options))
+    assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
   end
 
   # Shoulda macros
@@ -361,6 +361,20 @@
       end
     end
     
+    context "should allow key based auth using X-Redmine-API-Key header for #{http_method} #{url}" do
+      setup do
+        @user = User.generate_with_protected!(:admin => true)
+        @token = Token.generate!(:user => @user, :action => 'api')
+        send(http_method, url, parameters, {'X-Redmine-API-Key' => @token.value.to_s})
+      end
+      
+      should_respond_with success_code
+      should_respond_with_content_type_based_on_url(url)
+      should_be_a_valid_response_string_based_on_url(url)
+      should "login as the user" do
+        assert_equal @user, User.current
+      end
+    end
   end
 
   # Uses should_respond_with_content_type based on what's in the url:
--- a/test/exemplars/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/exemplars/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/exemplars
 http://redmine.rubyforge.org/svn
 
@@ -774,6 +774,40 @@
 
 481
 
+member_role_exemplar.rb
+file
+
+
+
+
+2010-09-23T14:37:45.291809Z
+d1bdf1810c216ecde56d0750f78bea10
+2010-01-27T18:29:03.119133Z
+3340
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+250
+
 issue_exemplar.rb
 file
 
@@ -808,16 +842,16 @@
 
 449
 
-member_role_exemplar.rb
+tracker_exemplar.rb
 file
 
 
 
 
 2010-09-23T14:37:45.291809Z
-d1bdf1810c216ecde56d0750f78bea10
-2010-01-27T18:29:03.119133Z
-3340
+94aed9cd40bd95ab8d8c2f51bfc097cf
+2009-10-18T22:25:00.956502Z
+2930
 edavis10
 
 
@@ -840,7 +874,7 @@
 
 
 
-250
+179
 
 issue_status_exemplar.rb
 file
@@ -876,14 +910,14 @@
 
 182
 
-tracker_exemplar.rb
+time_entry_activity.rb
 file
 
 
 
 
 2010-09-23T14:37:45.291809Z
-94aed9cd40bd95ab8d8c2f51bfc097cf
+74f5207a054732dd9be1b3184340ca77
 2009-10-18T22:25:00.956502Z
 2930
 edavis10
@@ -908,7 +942,7 @@
 
 
 
-179
+236
 
 subversion_repository_exemplar.rb
 file
@@ -944,14 +978,14 @@
 
 235
 
-time_entry_activity.rb
+role_exemplar.rb
 file
 
 
 
 
 2010-09-23T14:37:45.291809Z
-74f5207a054732dd9be1b3184340ca77
+9c97ca570fa9b00ab1ecebd226f52f66
 2009-10-18T22:25:00.956502Z
 2930
 edavis10
@@ -976,7 +1010,7 @@
 
 
 
-236
+157
 
 changeset_exemplar.rb
 file
@@ -1012,40 +1046,6 @@
 
 377
 
-role_exemplar.rb
-file
-
-
-
-
-2010-09-23T14:37:45.291809Z
-9c97ca570fa9b00ab1ecebd226f52f66
-2009-10-18T22:25:00.956502Z
-2930
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-157
-
 comment_exemplar.rb
 file
 
--- a/test/fixtures/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 38
-/svn/!svn/ver/4404/trunk/test/fixtures
+/svn/!svn/ver/4681/trunk/test/fixtures
 END
 journal_details.yml
 K 25
@@ -19,13 +19,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/2898/trunk/test/fixtures/changesets.yml
+/svn/!svn/ver/4470/trunk/test/fixtures/changesets.yml
 END
 roles.yml
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/3573/trunk/test/fixtures/roles.yml
+/svn/!svn/ver/4645/trunk/test/fixtures/roles.yml
 END
 wikis.yml
 K 25
@@ -61,7 +61,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/4382/trunk/test/fixtures/custom_values.yml
+/svn/!svn/ver/4488/trunk/test/fixtures/custom_values.yml
 END
 issue_categories.yml
 K 25
@@ -127,7 +127,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4186/trunk/test/fixtures/issues.yml
+/svn/!svn/ver/4482/trunk/test/fixtures/issues.yml
 END
 queries.yml
 K 25
@@ -145,19 +145,19 @@
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/3412/trunk/test/fixtures/wiki_contents.yml
+/svn/!svn/ver/4681/trunk/test/fixtures/wiki_contents.yml
 END
 enabled_modules.yml
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4013/trunk/test/fixtures/enabled_modules.yml
+/svn/!svn/ver/4505/trunk/test/fixtures/enabled_modules.yml
 END
 wiki_pages.yml
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/3412/trunk/test/fixtures/wiki_pages.yml
+/svn/!svn/ver/4680/trunk/test/fixtures/wiki_pages.yml
 END
 wiki_content_versions.yml
 K 25
@@ -235,13 +235,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 54
-/svn/!svn/ver/3123/trunk/test/fixtures/attachments.yml
+/svn/!svn/ver/4604/trunk/test/fixtures/attachments.yml
 END
 news.yml
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/2895/trunk/test/fixtures/news.yml
+/svn/!svn/ver/4505/trunk/test/fixtures/news.yml
 END
 trackers.yml
 K 25
--- a/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T13:48:01.671461Z
-4404
+2011-01-10T19:45:20.108166Z
+4681
 jplang
 
 
@@ -106,10 +106,10 @@
 
 
 
-2010-09-23T14:37:45.315821Z
-1e9bc92faf43a6d556aea8f33ea974b0
-2009-09-20T15:20:22.385253Z
-2898
+2011-01-13T14:09:10.000000Z
+d3a777560e5a963bc848b30547a65d4b
+2010-12-05T11:45:09.061840Z
+4470
 jplang
 has-props
 
@@ -132,7 +132,7 @@
 
 
 
-2178
+2180
 
 roles.yml
 file
@@ -140,10 +140,10 @@
 
 
 
-2010-09-23T14:37:45.351765Z
-5b2ffc98605c1c36dc346f3be44a9985
-2010-03-13T14:56:49.379682Z
-3573
+2011-01-13T14:09:10.000000Z
+15f318dd68723b4c4dab1e1ca66dd044
+2011-01-06T20:36:31.826591Z
+4645
 jplang
 has-props
 
@@ -166,7 +166,7 @@
 
 
 
-3691
+3721
 
 encoding
 dir
@@ -313,10 +313,10 @@
 
 
 
-2010-11-19T13:04:46.864726Z
-4d480d87e42663a5e874353649c86039
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:10.000000Z
+342c09046e9942f00cced7e066066202
+2010-12-11T10:47:00.859736Z
+4488
 jplang
 has-props
 
@@ -693,11 +693,11 @@
 
 
 
-2010-11-19T13:04:46.864726Z
-6d21fa7811e1d7b4a1db0f4062fcba45
-2010-09-26T18:13:31.522853Z
-4186
-edavis10
+2011-01-13T14:09:10.000000Z
+a8c37ca171bb5f39ffbc6cd3ffcf0c52
+2010-12-10T11:06:21.419457Z
+4482
+jplang
 has-props
 
 
@@ -719,7 +719,7 @@
 
 
 
-5661
+5656
 
 member_roles.yml
 file
@@ -795,10 +795,10 @@
 
 
 
-2010-09-23T14:37:45.355763Z
-8e7549cddb3ed2eb4c5778e3506e3e0c
-2010-02-11T19:30:53.136370Z
-3412
+2011-01-13T14:09:10.000000Z
+595d0f0964e3c3f8ce7edb4b07941ffa
+2011-01-10T19:45:20.108166Z
+4681
 jplang
 has-props
 
@@ -821,7 +821,7 @@
 
 
 
-1795
+1953
 
 watchers.yml
 file
@@ -863,11 +863,11 @@
 
 
 
-2010-09-23T14:37:45.319762Z
-8a815e166641ad170ffddcf33646ca04
-2010-08-22T18:42:00.112555Z
-4013
-edavis10
+2011-01-13T14:09:10.000000Z
+c1fe3d9f5bbcbf5cf73c684b744d0c7a
+2010-12-12T17:00:52.100205Z
+4505
+jplang
 has-props
 
 
@@ -889,7 +889,7 @@
 
 
 
-1539
+1600
 
 wiki_pages.yml
 file
@@ -897,10 +897,10 @@
 
 
 
-2010-09-23T14:37:45.355763Z
-f32671fee76259eb7dbe8f57ed503c99
-2010-02-11T19:30:53.136370Z
-3412
+2011-01-13T14:09:10.000000Z
+8d80a417fe13f7041cdec04f3206169e
+2011-01-10T18:32:04.408692Z
+4680
 jplang
 has-props
 
@@ -923,7 +923,7 @@
 
 
 
-1227
+1381
 
 comments.yml
 file
@@ -1345,10 +1345,10 @@
 
 
 
-2010-09-23T14:37:45.315821Z
-58f19425b758eec08d68749a9408b258
-2009-12-06T10:28:20.099964Z
-3123
+2011-01-13T14:09:10.000000Z
+c91798950ab5d71a04f10a60ad9e5259
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 has-props
 
@@ -1371,7 +1371,7 @@
 
 
 
-3692
+4320
 
 news.yml
 file
@@ -1379,10 +1379,10 @@
 
 
 
-2010-09-23T14:37:45.343799Z
-f926570b0d32ca1702d16de3f57e0262
-2009-09-20T14:06:57.257282Z
-2895
+2011-01-13T14:09:10.000000Z
+3106fd060b768ea17e35b5ea975e0aca
+2010-12-12T17:00:52.100205Z
+4505
 jplang
 has-props
 
@@ -1405,7 +1405,7 @@
 
 
 
-558
+753
 
 trackers.yml
 file
--- a/test/fixtures/.svn/text-base/attachments.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/attachments.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -54,11 +54,11 @@
   container_type: Issue
   container_id: 3
   downloads: 0
-  disk_filename: 060719210727_changeset.diff
+  disk_filename: 060719210727_changeset_iso8859-1.diff
   digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
   id: 5
   filesize: 687
-  filename: changeset.diff
+  filename: changeset_iso8859-1.diff
   author_id: 2
   content_type: text/x-diff
 attachments_006: 
@@ -145,3 +145,27 @@
   filename: version_file.zip
   author_id: 2
   content_type: application/octet-stream
+attachments_013:
+  created_on: 2006-07-19 21:07:27 +02:00
+  container_type: Message
+  container_id: 1
+  downloads: 0
+  disk_filename: 060719210727_foo.zip
+  digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+  id: 13
+  filesize: 452
+  filename: foo.zip
+  author_id: 2
+  content_type: application/octet-stream
+attachments_014: 
+  created_on: 2006-07-19 21:07:27 +02:00
+  container_type: Issue
+  container_id: 3
+  downloads: 0
+  disk_filename: 060719210727_changeset_utf8.diff
+  digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+  id: 14
+  filesize: 687
+  filename: changeset_utf8.diff
+  author_id: 2
+  content_type: text/x-diff
--- a/test/fixtures/.svn/text-base/changesets.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/changesets.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -24,7 +24,7 @@
   id: 102
   comments: |-
     A commit with wrong issue ids
-    IssueID 666 3
+    IssueID #666 #3
   repository_id: 10
   committer: dlopper
   user_id: 3
--- a/test/fixtures/.svn/text-base/custom_values.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/custom_values.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -50,7 +50,7 @@
 custom_values_009: 
   customized_type: Issue
   custom_field_id: 2
-  customized_id: 3
+  customized_id: 7
   id: 9
   value: "this is a stringforcustomfield search"
 custom_values_010: 
--- a/test/fixtures/.svn/text-base/enabled_modules.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/enabled_modules.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -95,3 +95,7 @@
   name: gantt 
   project_id: 5
   id: 24
+enabled_modules_025: 
+  name: news 
+  project_id: 2
+  id: 25
--- a/test/fixtures/.svn/text-base/issues.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/issues.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -53,8 +53,8 @@
   assigned_to_id: 3
   author_id: 2
   status_id: 1
-  start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
-  due_date: <%= 40.day.ago.to_date.to_s(:db) %>
+  start_date: <%= 15.day.ago.to_date.to_s(:db) %>
+  due_date: <%= 5.day.ago.to_date.to_s(:db) %>
   root_id: 3
   lft: 1
   rgt: 2
--- a/test/fixtures/.svn/text-base/news.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/news.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -20,3 +20,12 @@
   summary: eCookbook 1.0 have downloaded 100,000 times
   author_id: 2
   comments_count: 0
+news_003: 
+  created_on: 2006-07-19 22:42:58 +02:00
+  project_id: 2
+  title: News on a private project
+  id: 3
+  description: This is a private news
+  summary:
+  author_id: 2
+  comments_count: 0
--- a/test/fixtures/.svn/text-base/roles.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/roles.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -7,6 +7,7 @@
     --- 
     - :add_project
     - :edit_project
+    - :select_project_modules
     - :manage_members
     - :manage_versions
     - :manage_categories
--- a/test/fixtures/.svn/text-base/wiki_contents.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/wiki_contents.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -95,4 +95,12 @@
   version: 1
   author_id: 1
   comments: 
+wiki_contents_010: 
+  text: Page with cyrillic title
+  updated_on: 2007-03-08 00:18:07 +01:00
+  page_id: 10
+  id: 10
+  version: 1
+  author_id: 1
+  comments: 
   
\ No newline at end of file
--- a/test/fixtures/.svn/text-base/wiki_pages.yml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/.svn/text-base/wiki_pages.yml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -62,4 +62,10 @@
   wiki_id: 2
   protected: false
   parent_id: 8
-  
\ No newline at end of file
+wiki_pages_010: 
+  created_on: 2007-03-08 00:18:07 +01:00
+  title: Этика_менеджмента
+  id: 10
+  wiki_id: 1
+  protected: false
+  parent_id: 
--- a/test/fixtures/attachments.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/attachments.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -54,11 +54,11 @@
   container_type: Issue
   container_id: 3
   downloads: 0
-  disk_filename: 060719210727_changeset.diff
+  disk_filename: 060719210727_changeset_iso8859-1.diff
   digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
   id: 5
   filesize: 687
-  filename: changeset.diff
+  filename: changeset_iso8859-1.diff
   author_id: 2
   content_type: text/x-diff
 attachments_006: 
@@ -145,3 +145,27 @@
   filename: version_file.zip
   author_id: 2
   content_type: application/octet-stream
+attachments_013:
+  created_on: 2006-07-19 21:07:27 +02:00
+  container_type: Message
+  container_id: 1
+  downloads: 0
+  disk_filename: 060719210727_foo.zip
+  digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+  id: 13
+  filesize: 452
+  filename: foo.zip
+  author_id: 2
+  content_type: application/octet-stream
+attachments_014: 
+  created_on: 2006-07-19 21:07:27 +02:00
+  container_type: Issue
+  container_id: 3
+  downloads: 0
+  disk_filename: 060719210727_changeset_utf8.diff
+  digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
+  id: 14
+  filesize: 687
+  filename: changeset_utf8.diff
+  author_id: 2
+  content_type: text/x-diff
--- a/test/fixtures/changesets.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/changesets.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -24,7 +24,7 @@
   id: 102
   comments: |-
     A commit with wrong issue ids
-    IssueID 666 3
+    IssueID #666 #3
   repository_id: 10
   committer: dlopper
   user_id: 3
--- a/test/fixtures/custom_values.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/custom_values.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -50,7 +50,7 @@
 custom_values_009: 
   customized_type: Issue
   custom_field_id: 2
-  customized_id: 3
+  customized_id: 7
   id: 9
   value: "this is a stringforcustomfield search"
 custom_values_010: 
--- a/test/fixtures/diffs/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/diffs/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/diffs
 http://redmine.rubyforge.org/svn
 
--- a/test/fixtures/enabled_modules.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/enabled_modules.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -95,3 +95,7 @@
   name: gantt 
   project_id: 5
   id: 24
+enabled_modules_025: 
+  name: news 
+  project_id: 2
+  id: 25
--- a/test/fixtures/encoding/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/encoding/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/encoding
 http://redmine.rubyforge.org/svn
 
--- a/test/fixtures/files/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/files/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,13 +1,19 @@
 K 25
 svn:wc:ra_dav:version-url
 V 44
-/svn/!svn/ver/2085/trunk/test/fixtures/files
+/svn/!svn/ver/4604/trunk/test/fixtures/files
 END
-060719210727_changeset.diff
+060719210727_changeset_iso8859-1.diff
 K 25
 svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/1520/trunk/test/fixtures/files/060719210727_changeset.diff
+V 82
+/svn/!svn/ver/4604/trunk/test/fixtures/files/060719210727_changeset_iso8859-1.diff
+END
+060719210727_changeset_utf8.diff
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/4604/trunk/test/fixtures/files/060719210727_changeset_utf8.diff
 END
 060719210727_archive.zip
 K 25
--- a/test/fixtures/files/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/files/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/files
 http://redmine.rubyforge.org/svn
 
 
 
-2008-12-02T17:57:13.240321Z
-2085
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 
 
@@ -26,16 +26,16 @@
 
 e93f8b46-1217-0410-a6f0-8f06a7374b81
 
-060719210727_changeset.diff
+060719210727_changeset_iso8859-1.diff
 file
 
 
 
 
-2010-09-23T14:37:45.323763Z
-15a82d7463bda303b58595b5d05d8f05
-2008-06-09T18:40:59.518583Z
-1520
+2011-01-13T14:09:10.000000Z
+8ab69915b7f66c8199e6d137073d9ffe
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 has-props
 
@@ -58,7 +58,41 @@
 
 
 
-687
+686
+
+060719210727_changeset_utf8.diff
+file
+
+
+
+
+2011-01-13T14:09:10.000000Z
+69b7e1bc8546406b1ddc3719d879254c
+2011-01-01T13:40:36.520874Z
+4604
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+704
 
 060719210727_archive.zip
 file
--- a/test/fixtures/files/.svn/prop-base/060719210727_changeset.diff.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
--- a/test/fixtures/files/.svn/text-base/060719210727_changeset.diff.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-Index: trunk/app/controllers/issues_controller.rb
-===================================================================
---- trunk/app/controllers/issues_controller.rb	(r‚vision 1483)
-+++ trunk/app/controllers/issues_controller.rb	(r‚vision 1484)
-@@ -149,7 +149,7 @@
-         attach_files(@issue, params[:attachments])
-         flash[:notice] = l(:notice_successful_create)
-         Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
--        redirect_to :controller => 'issues', :action => 'show', :id => @issue,  :project_id => @project
-+        redirect_to :controller => 'issues', :action => 'show', :id => @issue
-         return
-       end		
-     end	
--- a/test/fixtures/files/060719210727_changeset.diff	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-Index: trunk/app/controllers/issues_controller.rb
-===================================================================
---- trunk/app/controllers/issues_controller.rb	(r‚vision 1483)
-+++ trunk/app/controllers/issues_controller.rb	(r‚vision 1484)
-@@ -149,7 +149,7 @@
-         attach_files(@issue, params[:attachments])
-         flash[:notice] = l(:notice_successful_create)
-         Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
--        redirect_to :controller => 'issues', :action => 'show', :id => @issue,  :project_id => @project
-+        redirect_to :controller => 'issues', :action => 'show', :id => @issue
-         return
-       end		
-     end	
--- a/test/fixtures/issues.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/issues.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -53,8 +53,8 @@
   assigned_to_id: 3
   author_id: 2
   status_id: 1
-  start_date: <%= 1.day.from_now.to_date.to_s(:db) %>
-  due_date: <%= 40.day.ago.to_date.to_s(:db) %>
+  start_date: <%= 15.day.ago.to_date.to_s(:db) %>
+  due_date: <%= 5.day.ago.to_date.to_s(:db) %>
   root_id: 3
   lft: 1
   rgt: 2
--- a/test/fixtures/ldap/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/ldap/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/ldap
 http://redmine.rubyforge.org/svn
 
--- a/test/fixtures/mail_handler/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/mail_handler/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/4404/trunk/test/fixtures/mail_handler
+/svn/!svn/ver/4575/trunk/test/fixtures/mail_handler
 END
 message_reply_by_subject.eml
 K 25
@@ -91,7 +91,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 80
-/svn/!svn/ver/4394/trunk/test/fixtures/mail_handler/ticket_reply_with_status.eml
+/svn/!svn/ver/4575/trunk/test/fixtures/mail_handler/ticket_reply_with_status.eml
 END
 ticket_on_given_project.eml
 K 25
--- a/test/fixtures/mail_handler/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/mail_handler/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/mail_handler
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T13:48:01.671461Z
-4404
+2010-12-29T17:36:01.998670Z
+4575
 jplang
 
 
@@ -508,10 +508,10 @@
 
 
 
-2010-11-19T13:04:46.204713Z
-88a90b088de41d263e9135d1810cf58c
-2010-11-12T11:34:53.754717Z
-4394
+2011-01-13T14:09:08.000000Z
+f1b76e664d73fd54d9e346c2329d94a9
+2010-12-29T17:36:01.998670Z
+4575
 jplang
 
 
@@ -534,7 +534,7 @@
 
 
 
-2065
+2044
 
 ticket_on_given_project.eml
 file
--- a/test/fixtures/mail_handler/.svn/text-base/ticket_reply_with_status.eml.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/mail_handler/.svn/text-base/ticket_reply_with_status.eml.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -29,7 +29,7 @@
 due date: 2010-12-31
 Start Date:2010-01-01
 Assigned to: jsmith@somenet.foo
-searchable field: Updated custom value
+float field: 52.6
 
 ------=_NextPart_000_0067_01C8D3CE.711F9CC0
 Content-Type: text/html;
--- a/test/fixtures/mail_handler/ticket_reply_with_status.eml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/mail_handler/ticket_reply_with_status.eml	Thu Jan 13 14:12:06 2011 +0000
@@ -29,7 +29,7 @@
 due date: 2010-12-31
 Start Date:2010-01-01
 Assigned to: jsmith@somenet.foo
-searchable field: Updated custom value
+float field: 52.6
 
 ------=_NextPart_000_0067_01C8D3CE.711F9CC0
 Content-Type: text/html;
--- a/test/fixtures/mailer/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/mailer/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/mailer
 http://redmine.rubyforge.org/svn
 
--- a/test/fixtures/news.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/news.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -20,3 +20,12 @@
   summary: eCookbook 1.0 have downloaded 100,000 times
   author_id: 2
   comments_count: 0
+news_003: 
+  created_on: 2006-07-19 22:42:58 +02:00
+  project_id: 2
+  title: News on a private project
+  id: 3
+  description: This is a private news
+  summary:
+  author_id: 2
+  comments_count: 0
--- a/test/fixtures/repositories/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/repositories/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/4310/trunk/test/fixtures/repositories
+/svn/!svn/ver/4676/trunk/test/fixtures/repositories
 END
 darcs_repository.tar.gz
 K 25
@@ -9,6 +9,12 @@
 V 75
 /svn/!svn/ver/1236/trunk/test/fixtures/repositories/darcs_repository.tar.gz
 END
+mercurial_repository.hg
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/4676/trunk/test/fixtures/repositories/mercurial_repository.hg
+END
 subversion_repository.dump.gz
 K 25
 svn:wc:ra_dav:version-url
@@ -27,12 +33,6 @@
 V 73
 /svn/!svn/ver/4310/trunk/test/fixtures/repositories/git_repository.tar.gz
 END
-mercurial_repository.tar.gz
-K 25
-svn:wc:ra_dav:version-url
-V 78
-/svn/!svn/ver/991/trunk/test/fixtures/repositories/mercurial_repository.tar.gz
-END
 filesystem_repository.tar.gz
 K 25
 svn:wc:ra_dav:version-url
--- a/test/fixtures/repositories/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/repositories/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/fixtures/repositories
 http://redmine.rubyforge.org/svn
 
 
 
-2010-10-29T23:21:57.240368Z
-4310
-jbbarth
+2011-01-10T17:43:01.353336Z
+4676
+jplang
 
 
 
@@ -60,6 +60,40 @@
 
 8075
 
+mercurial_repository.hg
+file
+
+
+
+
+2011-01-13T14:09:10.000000Z
+2436fc3d3aefeb07b291d5660396ca8d
+2011-01-10T17:43:01.353336Z
+4676
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7104
+
 subversion_repository.dump.gz
 file
 
@@ -162,40 +196,6 @@
 
 20730
 
-mercurial_repository.tar.gz
-file
-
-
-
-
-2010-09-23T14:37:45.351765Z
-48c6f19f8c3123c7e143e4516669f700
-2007-12-14T17:46:45.448946Z
-991
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7827
-
 filesystem_repository.tar.gz
 file
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/repositories/.svn/prop-base/mercurial_repository.hg.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
--- a/test/fixtures/repositories/.svn/prop-base/mercurial_repository.tar.gz.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:mime-type
-V 24
-application/octet-stream
-END
Binary file test/fixtures/repositories/.svn/text-base/mercurial_repository.hg.svn-base has changed
Binary file test/fixtures/repositories/.svn/text-base/mercurial_repository.tar.gz.svn-base has changed
Binary file test/fixtures/repositories/mercurial_repository.hg has changed
Binary file test/fixtures/repositories/mercurial_repository.tar.gz has changed
--- a/test/fixtures/roles.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/roles.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -7,6 +7,7 @@
     --- 
     - :add_project
     - :edit_project
+    - :select_project_modules
     - :manage_members
     - :manage_versions
     - :manage_categories
--- a/test/fixtures/wiki_contents.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/wiki_contents.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -95,4 +95,12 @@
   version: 1
   author_id: 1
   comments: 
+wiki_contents_010: 
+  text: Page with cyrillic title
+  updated_on: 2007-03-08 00:18:07 +01:00
+  page_id: 10
+  id: 10
+  version: 1
+  author_id: 1
+  comments: 
   
\ No newline at end of file
--- a/test/fixtures/wiki_pages.yml	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/fixtures/wiki_pages.yml	Thu Jan 13 14:12:06 2011 +0000
@@ -62,4 +62,10 @@
   wiki_id: 2
   protected: false
   parent_id: 8
-  
\ No newline at end of file
+wiki_pages_010: 
+  created_on: 2007-03-08 00:18:07 +01:00
+  title: Этика_менеджмента
+  id: 10
+  wiki_id: 1
+  protected: false
+  parent_id: 
--- a/test/functional/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,163 +1,163 @@
 K 25
 svn:wc:ra_dav:version-url
 V 40
-/svn/!svn/ver/4411/trunk/test/functional
+/svn/!svn/ver/4704/trunk/test/functional
 END
 issues_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/4411/trunk/test/functional/issues_controller_test.rb
+/svn/!svn/ver/4530/trunk/test/functional/issues_controller_test.rb
 END
 news_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/4407/trunk/test/functional/news_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/news_controller_test.rb
 END
 queries_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/2887/trunk/test/functional/queries_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/queries_controller_test.rb
 END
 trackers_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/3437/trunk/test/functional/trackers_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/trackers_controller_test.rb
 END
 mail_handler_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 72
-/svn/!svn/ver/2887/trunk/test/functional/mail_handler_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/mail_handler_controller_test.rb
 END
 auto_completes_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 74
-/svn/!svn/ver/3945/trunk/test/functional/auto_completes_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/auto_completes_controller_test.rb
 END
 roles_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4407/trunk/test/functional/roles_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/roles_controller_test.rb
 END
 my_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/4407/trunk/test/functional/my_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/my_controller_test.rb
 END
 comments_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4407/trunk/test/functional/comments_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/comments_controller_test.rb
 END
 wikis_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/3687/trunk/test/functional/wikis_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/wikis_controller_test.rb
 END
 admin_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/3799/trunk/test/functional/admin_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/admin_controller_test.rb
 END
 welcome_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3719/trunk/test/functional/welcome_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/welcome_controller_test.rb
 END
 context_menus_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 73
-/svn/!svn/ver/4242/trunk/test/functional/context_menus_controller_test.rb
+/svn/!svn/ver/4673/trunk/test/functional/context_menus_controller_test.rb
 END
 account_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/4407/trunk/test/functional/account_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/account_controller_test.rb
 END
 calendars_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/4245/trunk/test/functional/calendars_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/calendars_controller_test.rb
 END
 journals_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4034/trunk/test/functional/journals_controller_test.rb
+/svn/!svn/ver/4535/trunk/test/functional/journals_controller_test.rb
 END
 workflows_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/3188/trunk/test/functional/workflows_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/workflows_controller_test.rb
 END
 time_entry_reports_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 78
-/svn/!svn/ver/4232/trunk/test/functional/time_entry_reports_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/time_entry_reports_controller_test.rb
 END
 project_enumerations_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 80
-/svn/!svn/ver/4407/trunk/test/functional/project_enumerations_controller_test.rb
+/svn/!svn/ver/4600/trunk/test/functional/project_enumerations_controller_test.rb
 END
 gantts_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/4280/trunk/test/functional/gantts_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/gantts_controller_test.rb
 END
 users_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4382/trunk/test/functional/users_controller_test.rb
+/svn/!svn/ver/4544/trunk/test/functional/users_controller_test.rb
 END
 issue_moves_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/4407/trunk/test/functional/issue_moves_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/issue_moves_controller_test.rb
 END
 repositories_cvs_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svn/!svn/ver/4289/trunk/test/functional/repositories_cvs_controller_test.rb
+/svn/!svn/ver/4577/trunk/test/functional/repositories_cvs_controller_test.rb
 END
 application_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/2895/trunk/test/functional/application_controller_test.rb
+/svn/!svn/ver/4571/trunk/test/functional/application_controller_test.rb
 END
 activities_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 70
-/svn/!svn/ver/4047/trunk/test/functional/activities_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/activities_controller_test.rb
 END
 search_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/4407/trunk/test/functional/search_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/search_controller_test.rb
 END
 ldap_auth_sources_controller.rb
 K 25
@@ -169,173 +169,173 @@
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4407/trunk/test/functional/messages_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/messages_controller_test.rb
 END
 repositories_bazaar_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 79
-/svn/!svn/ver/2887/trunk/test/functional/repositories_bazaar_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/repositories_bazaar_controller_test.rb
 END
 attachments_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/4407/trunk/test/functional/attachments_controller_test.rb
+/svn/!svn/ver/4604/trunk/test/functional/attachments_controller_test.rb
 END
 sys_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/3201/trunk/test/functional/sys_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/sys_controller_test.rb
 END
 groups_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/4407/trunk/test/functional/groups_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/groups_controller_test.rb
 END
 issues_controller_transaction_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 78
-/svn/!svn/ver/3701/trunk/test/functional/issues_controller_transaction_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/issues_controller_transaction_test.rb
 END
 watchers_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/3170/trunk/test/functional/watchers_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/watchers_controller_test.rb
 END
 issue_statuses_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 74
-/svn/!svn/ver/3415/trunk/test/functional/issue_statuses_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/issue_statuses_controller_test.rb
 END
 repositories_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 72
-/svn/!svn/ver/4407/trunk/test/functional/repositories_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/repositories_controller_test.rb
 END
 projects_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4407/trunk/test/functional/projects_controller_test.rb
+/svn/!svn/ver/4647/trunk/test/functional/projects_controller_test.rb
 END
 repositories_git_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svn/!svn/ver/4289/trunk/test/functional/repositories_git_controller_test.rb
+/svn/!svn/ver/4703/trunk/test/functional/repositories_git_controller_test.rb
 END
 members_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3749/trunk/test/functional/members_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/members_controller_test.rb
 END
 repositories_mercurial_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 82
-/svn/!svn/ver/2887/trunk/test/functional/repositories_mercurial_controller_test.rb
+/svn/!svn/ver/4704/trunk/test/functional/repositories_mercurial_controller_test.rb
 END
 issue_categories_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svn/!svn/ver/3687/trunk/test/functional/issue_categories_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/issue_categories_controller_test.rb
 END
 reports_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3396/trunk/test/functional/reports_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/reports_controller_test.rb
 END
 custom_fields_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 73
-/svn/!svn/ver/2895/trunk/test/functional/custom_fields_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/custom_fields_controller_test.rb
 END
 settings_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4407/trunk/test/functional/settings_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/settings_controller_test.rb
 END
 timelog_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/4250/trunk/test/functional/timelog_controller_test.rb
+/svn/!svn/ver/4511/trunk/test/functional/timelog_controller_test.rb
 END
 documents_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/4407/trunk/test/functional/documents_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/documents_controller_test.rb
 END
 files_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4407/trunk/test/functional/files_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/files_controller_test.rb
 END
 repositories_darcs_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 78
-/svn/!svn/ver/2887/trunk/test/functional/repositories_darcs_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/repositories_darcs_controller_test.rb
 END
 wiki_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/4375/trunk/test/functional/wiki_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/wiki_controller_test.rb
 END
 auth_sources_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 72
-/svn/!svn/ver/3913/trunk/test/functional/auth_sources_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/auth_sources_controller_test.rb
 END
 previews_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4174/trunk/test/functional/previews_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/previews_controller_test.rb
 END
 repositories_subversion_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 83
-/svn/!svn/ver/4289/trunk/test/functional/repositories_subversion_controller_test.rb
+/svn/!svn/ver/4703/trunk/test/functional/repositories_subversion_controller_test.rb
 END
 issue_relations_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 75
-/svn/!svn/ver/3687/trunk/test/functional/issue_relations_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/issue_relations_controller_test.rb
 END
 versions_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4354/trunk/test/functional/versions_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/versions_controller_test.rb
 END
 enumerations_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 72
-/svn/!svn/ver/2887/trunk/test/functional/enumerations_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/enumerations_controller_test.rb
 END
 boards_controller_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/3687/trunk/test/functional/boards_controller_test.rb
+/svn/!svn/ver/4509/trunk/test/functional/boards_controller_test.rb
 END
--- a/test/functional/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/functional
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-17T18:27:38.712585Z
-4411
-jplang
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-11-19T13:04:41.460658Z
-63b42848e4b9c141f6081fb9b5187e91
-2010-11-17T18:27:38.712585Z
-4411
+2011-01-13T14:09:08.000000Z
+1831ada3aea1c4ecb568cb55a718eec9
+2010-12-18T13:40:50.641112Z
+4530
 jplang
 has-props
 
@@ -58,7 +58,7 @@
 
 
 
-46917
+47451
 
 news_controller_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-11-19T13:04:41.460658Z
-0673b926675d6ac108f0af70a8f609f4
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+b42af2a4997da321fbe322b3d4ef47da
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -92,7 +92,7 @@
 
 
 
-3948
+3953
 
 queries_controller_test.rb
 file
@@ -100,11 +100,11 @@
 
 
 
-2010-09-23T14:37:45.419982Z
-2f589d132099d0c2c64ff100dee38e77
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+60c22807824b3989da92a03d4be0a1e6
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -126,7 +126,7 @@
 
 
 
-10563
+10568
 
 trackers_controller_test.rb
 file
@@ -134,11 +134,11 @@
 
 
 
-2010-09-23T14:37:45.423771Z
-4086611a8939740adbcbf1ec5fe907e9
-2010-02-15T16:41:27.289923Z
-3437
-edavis10
+2011-01-13T14:09:08.000000Z
+f7c1328f2c586830c64233c2db054f0a
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -160,7 +160,7 @@
 
 
 
-4205
+4210
 
 mail_handler_controller_test.rb
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-c48a1796b2dc76ac1fa2eb64d663ceb3
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+e6efbfdb394b5a3d4c8f5430c202a5b0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-2033
+2038
 
 auto_completes_controller_test.rb
 file
@@ -202,33 +202,33 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-e41b4da40ff4371adb4245f59610b1f5
-2010-08-17T15:03:58.074505Z
-3945
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-628
+2011-01-13T14:09:08.000000Z
+145c16cdb388cc98a1223c6f6dd6fb17
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1218
 
 roles_controller_test.rb
 file
@@ -236,11 +236,11 @@
 
 
 
-2010-11-19T13:04:41.460658Z
-7258b2945e07b02349515daea0f85ce7
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+69809abf0a26741f5ca07db44aa223c0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -262,7 +262,7 @@
 
 
 
-6089
+6094
 
 my_controller_test.rb
 file
@@ -270,11 +270,11 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-cbb9551bd925ce88a319d20ca2b127ab
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+cc837387e8b85884334a89e8bf935118
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -296,7 +296,7 @@
 
 
 
-6207
+6250
 
 comments_controller_test.rb
 file
@@ -304,33 +304,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-8a36a09743e192b6be46bb008ac7297e
-2010-11-14T16:45:32.457767Z
-4407
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2030
+2011-01-13T14:09:08.000000Z
+b68039337f934e7e49f4a06cda5e2b12
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2035
 
 wikis_controller_test.rb
 file
@@ -338,11 +338,11 @@
 
 
 
-2010-09-23T14:37:45.427769Z
-1ef7d2c3fc8722945322a7d5bb1cbcf4
-2010-04-21T16:02:55.125733Z
-3687
-edavis10
+2011-01-13T14:09:08.000000Z
+0798c1198c6db7754d04c79144c449c0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -364,7 +364,7 @@
 
 
 
-2000
+2005
 
 admin_controller_test.rb
 file
@@ -372,11 +372,11 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-3615890cd8778917fbde968473a229bc
-2010-06-20T16:08:20.636341Z
-3799
-edavis10
+2011-01-13T14:09:08.000000Z
+744fc8a1d2a4cdf6e8aa3ad0caa0fe4a
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -398,7 +398,7 @@
 
 
 
-4081
+4086
 
 welcome_controller_test.rb
 file
@@ -406,11 +406,11 @@
 
 
 
-2010-09-23T14:37:45.427769Z
-eeaeea8886e01297d20b839352a22fe2
-2010-04-30T18:08:40.324496Z
-3719
-jplang
+2011-01-13T14:09:08.000000Z
+bf75948e1edceb4241e67a84731477f6
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -432,7 +432,7 @@
 
 
 
-2374
+2379
 
 context_menus_controller_test.rb
 file
@@ -440,33 +440,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-96877cbbea85ba3fd99502907477340f
-2010-10-08T03:09:51.863032Z
-4242
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6032
+2011-01-13T14:09:08.000000Z
+d3363951aa9a6c2a59c32d83d2483226
+2011-01-09T21:01:40.583303Z
+4673
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6411
 
 account_controller_test.rb
 file
@@ -474,11 +474,11 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-a907569b5ac8764a0d6db597aa736851
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+f6ad0bbad8d30d8ea41eb0b7ecaf32b6
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -500,7 +500,7 @@
 
 
 
-7335
+7340
 
 calendars_controller_test.rb
 file
@@ -508,33 +508,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-ff8293f6d80647d3d03c66072bde5c98
-2010-10-10T21:17:10.784165Z
-4245
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2385
+2011-01-13T14:09:08.000000Z
+a7eb2ff041caaed4c7c09ad8f9fe3719
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2390
 
 workflows_controller_test.rb
 file
@@ -542,11 +542,11 @@
 
 
 
-2010-09-23T14:37:45.427769Z
-be835c79372fac52c849870791d982ff
-2009-12-18T15:41:32.828284Z
-3188
-jplang
+2011-01-13T14:09:08.000000Z
+e99e1deab48be8515101e664af4d55da
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -568,7 +568,7 @@
 
 
 
-6668
+6673
 
 journals_controller_test.rb
 file
@@ -576,11 +576,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-6b5c1ff2e3aceda0f29c829b1137f8a3
-2010-08-23T15:04:36.844654Z
-4034
-edavis10
+2011-01-13T14:09:08.000000Z
+04e54620db6899c02b7e7a9e2645d0a6
+2010-12-18T17:11:41.680297Z
+4535
+jplang
 has-props
 
 
@@ -602,7 +602,7 @@
 
 
 
-2642
+2783
 
 time_entry_reports_controller_test.rb
 file
@@ -610,33 +610,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-89c906bd5446b26ea9463b90cebaa807
-2010-10-05T16:07:17.015270Z
-4232
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5419
+2011-01-13T14:09:08.000000Z
+e21197e1c3590e65b300103bf8e16efe
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5424
 
 project_enumerations_controller_test.rb
 file
@@ -644,10 +644,10 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-37775addcfb51a3ce3d8cddc3b1e907a
-2010-11-14T16:45:32.457767Z
-4407
+2011-01-13T14:09:08.000000Z
+11b0d808c1b8f003db130d54022dbab0
+2010-12-31T15:45:35.200558Z
+4600
 jplang
 
 
@@ -670,7 +670,7 @@
 
 
 
-9534
+9545
 
 gantts_controller_test.rb
 file
@@ -678,33 +678,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-3037031df4af4a9e2e77bd75083a4bcc
-2010-10-22T22:13:39.617506Z
-4280
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2272
+2011-01-13T14:09:08.000000Z
+b1aac6fc8fdaa84c3e3652849721bfa5
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2663
 
 issue_moves_controller_test.rb
 file
@@ -712,33 +712,33 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-79f29b51a76072a1272e3ec50bec0e0f
-2010-11-14T16:45:32.457767Z
-4407
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5098
+2011-01-13T14:09:08.000000Z
+539d0852190ec556b2284bfe678e8523
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5131
 
 users_controller_test.rb
 file
@@ -746,10 +746,10 @@
 
 
 
-2010-11-19T13:04:41.464645Z
-79742c00eadbe609d9abb6317856022f
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:08.000000Z
+ff3d61c5d3a3a0a4a4f2e483f12448dc
+2010-12-20T17:45:09.037597Z
+4544
 jplang
 has-props
 
@@ -772,7 +772,7 @@
 
 
 
-7363
+8526
 
 repositories_cvs_controller_test.rb
 file
@@ -780,11 +780,11 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-e01a04614a9b23c31bb216e61c81759d
-2010-10-25T15:42:41.795656Z
-4289
-edavis10
+2011-01-13T14:09:08.000000Z
+1d8cb0fdead69e39081ca4d0f7c68e51
+2010-12-29T17:46:47.689075Z
+4577
+jplang
 has-props
 
 
@@ -806,7 +806,7 @@
 
 
 
-6562
+6662
 
 application_controller_test.rb
 file
@@ -814,10 +814,10 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-3efeaca5179a579dcbdd89cab5f48e3f
-2009-09-20T14:06:57.257282Z
-2895
+2011-01-13T14:09:08.000000Z
+278a104110d269c64def6c487219db07
+2010-12-23T13:33:01.454946Z
+4571
 jplang
 has-props
 
@@ -840,7 +840,7 @@
 
 
 
-1656
+3502
 
 activities_controller_test.rb
 file
@@ -848,33 +848,33 @@
 
 
 
-2010-09-24T12:48:25.875739Z
-48dce7788c0aa338add086c8cfd15618
-2010-08-27T14:05:54.014502Z
-4047
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2695
+2011-01-13T14:09:08.000000Z
+10667cf5e4dc66eea96b196643c93a42
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2700
 
 search_controller_test.rb
 file
@@ -882,11 +882,11 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-2e14f0628773a6ad6b3b59b3429d187d
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+ce03a18446664d9bc073791097735811
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -908,7 +908,7 @@
 
 
 
-4675
+4680
 
 ldap_auth_sources_controller.rb
 file
@@ -950,11 +950,11 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-4514c9f19bf7270410fbf05098128346
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+887437d272f8b8eba93dbf8bd5645868
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -976,7 +976,7 @@
 
 
 
-5042
+5047
 
 repositories_bazaar_controller_test.rb
 file
@@ -984,11 +984,11 @@
 
 
 
-2010-09-23T14:37:45.419982Z
-0c80080549f9968528fce0326c4586e5
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+c7a720bd5851fd9afe177432179cd921
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1010,7 +1010,7 @@
 
 
 
-5054
+5059
 
 attachments_controller_test.rb
 file
@@ -1018,10 +1018,10 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-06a5a66df669f08e5f357931edb12db1
-2010-11-14T16:45:32.457767Z
-4407
+2011-01-13T14:09:08.000000Z
+00941bda584b7f5b7b636e48635d83dd
+2011-01-01T13:40:36.520874Z
+4604
 jplang
 has-props
 
@@ -1044,7 +1044,7 @@
 
 
 
-4245
+5027
 
 sys_controller_test.rb
 file
@@ -1052,11 +1052,11 @@
 
 
 
-2010-09-23T14:37:45.423771Z
-c8d71d4092b4fd39bfada4e8c8ddb99d
-2009-12-20T09:44:28.044710Z
-3201
-jplang
+2011-01-13T14:09:08.000000Z
+893a5cfefe3652680d241de9a657652c
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1078,7 +1078,7 @@
 
 
 
-2971
+2976
 
 groups_controller_test.rb
 file
@@ -1086,11 +1086,11 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-708f3fdb0cee16797fdd197cc5de756e
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+39db66894beef1baa1696d6aee75f45d
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1112,7 +1112,7 @@
 
 
 
-3017
+3022
 
 issues_controller_transaction_test.rb
 file
@@ -1120,11 +1120,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-672253b026d9eb645162edff0625071d
-2010-04-30T10:06:51.078244Z
-3701
-jplang
+2011-01-13T14:09:08.000000Z
+c8fa245738b58d9f87afc40fc1b71f94
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1146,7 +1146,7 @@
 
 
 
-2819
+2824
 
 watchers_controller_test.rb
 file
@@ -1154,11 +1154,11 @@
 
 
 
-2010-09-23T14:37:45.423771Z
-8dfee17a862ab3d8ec007dca2a6dbbe6
-2009-12-13T14:48:28.692743Z
-3170
-jplang
+2011-01-13T14:09:08.000000Z
+d50a042e5cc7e5d43cbb9be02b82aaf6
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1180,7 +1180,7 @@
 
 
 
-4027
+4032
 
 issue_statuses_controller_test.rb
 file
@@ -1188,11 +1188,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-3cc86236a5979749a87f4459a6dcd435
-2010-02-12T19:15:33.815978Z
-3415
-edavis10
+2011-01-13T14:09:08.000000Z
+3ed28603b2a3697d060e06d90dd7b118
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1214,7 +1214,7 @@
 
 
 
-2551
+2556
 
 repositories_controller_test.rb
 file
@@ -1222,11 +1222,11 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-8e3650db9518fe44471fc80fbb6dbd21
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+f5552cd43c853f04daaadb5d6c7bf159
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1248,7 +1248,7 @@
 
 
 
-4570
+4575
 
 projects_controller_test.rb
 file
@@ -1256,10 +1256,10 @@
 
 
 
-2010-11-19T13:04:41.468647Z
-c4b243a5a18c509cc65794be84ffd752
-2010-11-14T16:45:32.457767Z
-4407
+2011-01-13T14:09:08.000000Z
+dbbc4feeecbff202aa7569d4a17beaa1
+2011-01-06T20:57:17.003359Z
+4647
 jplang
 has-props
 
@@ -1282,7 +1282,7 @@
 
 
 
-15977
+17590
 
 members_controller_test.rb
 file
@@ -1290,11 +1290,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-6a53b76f859d219bcf1289e818aec610
-2010-05-24T20:21:16.271499Z
-3749
-edavis10
+2011-01-13T14:09:08.000000Z
+7cdb2ab302fb93f982b33fb6460d48c3
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1316,7 +1316,7 @@
 
 
 
-3796
+3801
 
 repositories_git_controller_test.rb
 file
@@ -1324,11 +1324,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-f64a33705a8376f5a398502f116c0db4
-2010-10-25T15:42:41.795656Z
-4289
-edavis10
+2011-01-13T14:09:08.000000Z
+d3ab8bf4bd1d048f997374ef5d0bedb8
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -1350,7 +1350,7 @@
 
 
 
-6689
+7824
 
 repositories_mercurial_controller_test.rb
 file
@@ -1358,11 +1358,11 @@
 
 
 
-2010-09-23T14:37:45.423771Z
-59ebfd6923ea8a7275a668f8168c9b3b
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+ae9ab8d9a4487fdab4136d3004ab3f95
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 has-props
 
 
@@ -1384,7 +1384,7 @@
 
 
 
-5113
+7541
 
 issue_categories_controller_test.rb
 file
@@ -1392,11 +1392,11 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-911b8361d2bf4ca21e1bc8270c957d17
-2010-04-21T16:02:55.125733Z
-3687
-edavis10
+2011-01-13T14:09:08.000000Z
+eff59ff8c4c616a1773223454b960363
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1418,7 +1418,7 @@
 
 
 
-3497
+3502
 
 reports_controller_test.rb
 file
@@ -1426,11 +1426,11 @@
 
 
 
-2010-09-23T14:37:45.419982Z
-3ae997d09c86108692ceb438576171d7
-2010-02-08T17:53:58.327631Z
-3396
-edavis10
+2011-01-13T14:09:08.000000Z
+d91b8b56b5bd1fd602e96842dfabab72
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1452,7 +1452,7 @@
 
 
 
-2537
+2542
 
 custom_fields_controller_test.rb
 file
@@ -1460,11 +1460,11 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-663e111e99486095033d1f3d635cf2c8
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:09:08.000000Z
+df6f548bb7fbdaeb235c5e8d3c1be576
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1486,7 +1486,7 @@
 
 
 
-2565
+2570
 
 settings_controller_test.rb
 file
@@ -1494,11 +1494,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-cc2bc5f554f121c21ba82c60216f01d5
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+f3101a3b1343baa274ce471911aa0e96
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1520,7 +1520,7 @@
 
 
 
-2122
+2127
 
 timelog_controller_test.rb
 file
@@ -1528,11 +1528,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-be5f7d864581bed744c8991964a97ae6
-2010-10-12T15:55:21.984670Z
-4250
-edavis10
+2011-01-13T14:09:08.000000Z
+00f79a248e4bf77814823526e38ee630
+2010-12-14T18:29:24.891563Z
+4511
+jplang
 has-props
 
 
@@ -1554,7 +1554,7 @@
 
 
 
-8487
+9325
 
 documents_controller_test.rb
 file
@@ -1562,11 +1562,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-e92d7b72633aaca649a4df81ea39305a
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+8c664ac03cac7930264318af932f46e0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1588,7 +1588,7 @@
 
 
 
-4672
+4677
 
 files_controller_test.rb
 file
@@ -1596,33 +1596,33 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-1682b4116f36633c8816d1dff0d49cb5
-2010-11-14T16:45:32.457767Z
-4407
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2308
+2011-01-13T14:09:08.000000Z
+190cbeea6f926cc615d6d2918a50e909
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2313
 
 repositories_darcs_controller_test.rb
 file
@@ -1630,11 +1630,11 @@
 
 
 
-2010-09-23T14:37:45.423771Z
-8c2b79df7a048945eb57f12ca4e804aa
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+ac4fd4943d72406872230aa7bad0213c
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1656,7 +1656,7 @@
 
 
 
-3839
+3844
 
 wiki_controller_test.rb
 file
@@ -1664,11 +1664,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-35fe09d5b7c9ad179df6c1aa5d09e25d
-2010-11-06T14:30:32.528294Z
-4375
-jplang
+2011-01-13T14:09:08.000000Z
+33e64585bc7591ba6089135bbadb817e
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1690,7 +1690,7 @@
 
 
 
-16321
+17903
 
 auth_sources_controller_test.rb
 file
@@ -1698,33 +1698,33 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-e649d3fb9fe2388f5e0c464529b2e42e
-2010-08-04T15:04:30.993800Z
-3913
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1956
+2011-01-13T14:09:08.000000Z
+017010de8f7353d064e6b866e9dbb0c3
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1961
 
 previews_controller_test.rb
 file
@@ -1732,33 +1732,33 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-055c4c3716d7eb1d123482c20d453a67
-2010-09-24T16:26:46.819682Z
-4174
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1101
+2011-01-13T14:09:08.000000Z
+c262b8203846b82045458a273da221fc
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1106
 
 repositories_subversion_controller_test.rb
 file
@@ -1766,11 +1766,11 @@
 
 
 
-2010-11-19T13:04:41.472627Z
-78fad597ea49ad0dfc7d71f2d33c381f
-2010-10-25T15:42:41.795656Z
-4289
-edavis10
+2011-01-13T14:09:08.000000Z
+5facf93b387f236dac4c2de0e4250fa9
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -1792,7 +1792,7 @@
 
 
 
-8796
+9276
 
 issue_relations_controller_test.rb
 file
@@ -1800,11 +1800,11 @@
 
 
 
-2010-09-23T14:37:45.387766Z
-fbfd116126fdb8c31552dbe76c070b5e
-2010-04-21T16:02:55.125733Z
-3687
-edavis10
+2011-01-13T14:09:08.000000Z
+71066c7d539a973325b545d1d8183fe5
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1826,7 +1826,7 @@
 
 
 
-2160
+2165
 
 versions_controller_test.rb
 file
@@ -1834,11 +1834,11 @@
 
 
 
-2010-11-19T13:04:41.476627Z
-dcafef0668ab2fa1356e11ec2651965e
-2010-11-01T13:13:32.982466Z
-4354
-jplang
+2011-01-13T14:09:08.000000Z
+2e73f89630c087f8170f62f3f79079c0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1860,7 +1860,7 @@
 
 
 
-5338
+5343
 
 enumerations_controller_test.rb
 file
@@ -1868,11 +1868,11 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-a977083603a7f66240b9b9f93087bb13
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+4194cdc2f733e6e1a38bedb7a6af05c8
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1894,7 +1894,7 @@
 
 
 
-2170
+2175
 
 boards_controller_test.rb
 file
@@ -1902,11 +1902,11 @@
 
 
 
-2010-09-23T14:37:45.383766Z
-5a2d553a517d649e9848805cb18abb4a
-2010-04-21T16:02:55.125733Z
-3687
-edavis10
+2011-01-13T14:09:08.000000Z
+770100e7a7049e202c8a1ea476659a30
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1928,5 +1928,5 @@
 
 
 
-3257
+3262
 
--- a/test/functional/.svn/text-base/account_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/account_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'account_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/activities_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/activities_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ActivitiesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/.svn/text-base/admin_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/admin_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'admin_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/application_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/application_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'application_controller'
 
 # Re-raise errors caught by the controller.
@@ -43,4 +43,61 @@
   def test_call_hook_mixed_in
     assert @controller.respond_to?(:call_hook)
   end
+  
+  context "test_api_offset_and_limit" do
+    context "without params" do
+      should "return 0, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({})
+      end
+    end
+    
+    context "with limit" do
+      should "return 0, limit" do
+        assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30})
+      end
+      
+      should "not exceed 100" do
+        assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10})
+      end
+    end
+    
+    context "with offset" do
+      should "return offset, 25" do
+        assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50})
+        end
+      end
+    end
+    
+    context "with page" do
+      should "return offset, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1})
+        assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0})
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
+          assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
+        end
+      end
+    end
+  end
 end
--- a/test/functional/.svn/text-base/attachments_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/attachments_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,7 @@
-# redMine - project management software
-# Copyright (C) 2006-2008  Jean-Philippe Lang
+# encoding: utf-8
+#
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -15,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'attachments_controller'
 
 # Re-raise errors caught by the controller.
@@ -35,10 +37,31 @@
   end
   
   def test_show_diff
-    get :show, :id => 5
+    get :show, :id => 14 # 060719210727_changeset_utf8.diff
     assert_response :success
     assert_template 'diff'
     assert_equal 'text/html', @response.content_type
+    
+    assert_tag 'th',
+      :attributes => {:class => /filename/},
+      :content => /issues_controller.rb\t\(révision 1484\)/
+    assert_tag 'td',
+      :attributes => {:class => /line-code/},
+      :content => /Demande créée avec succès/
+  end
+  
+  def test_show_diff_should_strip_non_utf8_content
+    get :show, :id => 5 # 060719210727_changeset_iso8859-1.diff
+    assert_response :success
+    assert_template 'diff'
+    assert_equal 'text/html', @response.content_type
+    
+    assert_tag 'th',
+      :attributes => {:class => /filename/},
+      :content => /issues_controller.rb\t\(rvision 1484\)/
+    assert_tag 'td',
+      :attributes => {:class => /line-code/},
+      :content => /Demande cre avec succs/
   end
   
   def test_show_text_file
--- a/test/functional/.svn/text-base/auth_sources_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/auth_sources_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AuthSourcesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/.svn/text-base/auto_completes_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/auto_completes_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AutoCompletesControllerTest < ActionController::TestCase
   fixtures :all
@@ -17,4 +17,18 @@
     assert assigns(:issues).include?(Issue.find(13))
   end
   
+  def test_auto_complete_with_scope_all_and_cross_project_relations
+    Setting.cross_project_issue_relations = '1'
+    get :issues, :project_id => 'ecookbook', :q => '13', :scope => 'all'
+    assert_response :success
+    assert_not_nil assigns(:issues)
+    assert assigns(:issues).include?(Issue.find(13))
+  end
+     
+  def test_auto_complete_with_scope_all_without_cross_project_relations
+    Setting.cross_project_issue_relations = '0'
+    get :issues, :project_id => 'ecookbook', :q => '13', :scope => 'all'
+    assert_response :success
+    assert_equal [], assigns(:issues)
+  end
 end
--- a/test/functional/.svn/text-base/boards_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/boards_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'boards_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/calendars_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/calendars_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CalendarsControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/.svn/text-base/comments_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/comments_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CommentsControllerTest < ActionController::TestCase
   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
--- a/test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ContextMenusControllerTest < ActionController::TestCase
   fixtures :all
@@ -56,26 +56,30 @@
     get :issues, :ids => [1, 2]
     assert_response :success
     assert_template 'context_menu'
+    assert_not_nil assigns(:issues)
+    assert_equal [1, 2], assigns(:issues).map(&:id).sort
+                              
+    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
     assert_tag :tag => 'a', :content => 'Edit',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}",
                                              :class => 'icon-edit' }
     assert_tag :tag => 'a', :content => 'Closed',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bstatus_id%5D=5',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Immediate',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bpriority_id%5D=8',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Dave Lopper',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bassigned_to_id%5D=3',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Copy',
-                            :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&amp;ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&amp;#{ids}",
                                              :class => 'icon-copy' }
     assert_tag :tag => 'a', :content => 'Move',
-                            :attributes => { :href => '/issues/move/new?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/move/new?#{ids}",
                                              :class => 'icon-move' }
     assert_tag :tag => 'a', :content => 'Delete',
-                            :attributes => { :href => '/issues/destroy?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/destroy?#{ids}",
                                              :class => 'icon-del' }
   end
 
@@ -84,7 +88,10 @@
     get :issues, :ids => [1, 2, 6]
     assert_response :success
     assert_template 'context_menu'
-    ids = "ids%5B%5D=1&amp;ids%5B%5D=2&amp;ids%5B%5D=6"
+    assert_not_nil assigns(:issues)
+    assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
+    
+    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
     assert_tag :tag => 'a', :content => 'Edit',
                             :attributes => { :href => "/issues/bulk_edit?#{ids}",
                                              :class => 'icon-edit' }
@@ -102,4 +109,10 @@
                                              :class => 'icon-del' }
   end
   
+  def test_context_menu_issue_visibility
+    get :issues, :ids => [1, 4]
+    assert_response :success
+    assert_template 'context_menu'
+    assert_equal [1], assigns(:issues).collect(&:id)
+  end
 end
--- a/test/functional/.svn/text-base/custom_fields_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/custom_fields_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'custom_fields_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/documents_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/documents_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'documents_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/enumerations_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/enumerations_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'enumerations_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/files_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/files_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class FilesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/.svn/text-base/gantts_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/gantts_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class GanttsControllerTest < ActionController::TestCase
   fixtures :all
@@ -49,6 +49,18 @@
       assert_nil assigns(:gantt).project
     end
 
+    should "not disclose private projects" do
+      get :show
+      assert_response :success
+      assert_template 'show.html.erb'
+      
+      assert_tag 'a', :content => /eCookbook/
+      # Root private project
+      assert_no_tag 'a', {:content => /OnlineStore/}
+      # Private children of a public project
+      assert_no_tag 'a', :content => /Private child of eCookbook/
+    end
+
     should "export to pdf" do
       get :show, :project_id => 1, :format => 'pdf'
       assert_response :success
--- a/test/functional/.svn/text-base/groups_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/groups_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'groups_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/issue_categories_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issue_categories_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_categories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/issue_moves_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issue_moves_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueMovesControllerTest < ActionController::TestCase
   fixtures :all
@@ -58,8 +58,8 @@
       post :create, :ids => [1, 2], :notes => 'Moving two issues'
 
       assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook'
-      assert_equal 'Moving two issues', Issue.find(1).journals.last.notes
-      assert_equal 'Moving two issues', Issue.find(2).journals.last.notes
+      assert_equal 'Moving two issues', Issue.find(1).journals.sort_by(&:id).last.notes
+      assert_equal 'Moving two issues', Issue.find(2).journals.sort_by(&:id).last.notes
 
     end
     
--- a/test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_relations_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/issue_statuses_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issue_statuses_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_statuses_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/issues_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issues_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issues_controller'
 
 # Re-raise errors caught by the controller.
@@ -281,6 +281,9 @@
     get :show, :id => 1
     assert_response :success
     
+    assert_tag :tag => 'a',
+      :content => /Quote/
+    
     assert_tag :tag => 'form',
                :descendant => { :tag => 'fieldset',
                                 :child => { :tag => 'legend', 
@@ -525,6 +528,20 @@
     assert_not_nil issue
     assert_equal Issue.find(2), issue.parent
   end
+
+  def test_post_create_subissue_with_non_numeric_parent_id
+    @request.session[:user_id] = 2
+    
+    assert_difference 'Issue.count' do
+      post :create, :project_id => 1, 
+                 :issue => {:tracker_id => 1,
+                            :subject => 'This is a child issue',
+                            :parent_issue_id => 'ABC'}
+    end
+    issue = Issue.find_by_subject('This is a child issue')
+    assert_not_nil issue
+    assert_nil issue.parent
+  end
   
   def test_post_create_should_send_a_notification
     ActionMailer::Base.deliveries.clear
--- a/test/functional/.svn/text-base/issues_controller_transaction_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/issues_controller_transaction_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issues_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/journals_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/journals_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'journals_controller'
 
 # Re-raise errors caught by the controller.
@@ -40,14 +40,20 @@
   
   def test_reply_to_issue
     @request.session[:user_id] = 2
-    get :new, :id => 1
+    get :new, :id => 6
     assert_response :success
     assert_select_rjs :show, "update"
   end
+  
+  def test_reply_to_issue_without_permission
+    @request.session[:user_id] = 7
+    get :new, :id => 6
+    assert_response 403
+  end
 
   def test_reply_to_note
     @request.session[:user_id] = 2
-    get :new, :id => 1, :journal_id => 2
+    get :new, :id => 6, :journal_id => 4
     assert_response :success
     assert_select_rjs :show, "update"
   end
--- a/test/functional/.svn/text-base/mail_handler_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/mail_handler_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'mail_handler_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/members_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/members_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'members_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/messages_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/messages_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'messages_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/my_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/my_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'my_controller'
 
 # Re-raise errors caught by the controller.
@@ -64,17 +64,24 @@
   end
 
   def test_update_account
-    post :account, :user => {:firstname => "Joe",
-                             :login => "root",
-                             :admin => 1,
-                             :custom_field_values => {"4" => "0100562500"}}
+    post :account,
+      :user => {
+        :firstname => "Joe",
+        :login => "root",
+        :admin => 1,
+        :group_ids => ['10'],
+        :custom_field_values => {"4" => "0100562500"}
+      }
+    
     assert_redirected_to '/my/account'
     user = User.find(2)
     assert_equal user, assigns(:user)
     assert_equal "Joe", user.firstname
     assert_equal "jsmith", user.login
     assert_equal "0100562500", user.custom_value_for(4).value
+    # ignored
     assert !user.admin?
+    assert user.groups.empty?
   end
   
   def test_change_password
--- a/test/functional/.svn/text-base/news_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/news_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'news_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/previews_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/previews_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class PreviewsControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/.svn/text-base/project_enumerations_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/project_enumerations_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectEnumerationsControllerTest < ActionController::TestCase
   fixtures :all
@@ -175,7 +175,7 @@
                                              })
     assert project_activity.save
     assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9])
-    assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size
+    assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size
     
     delete :destroy, :project_id => 1
     assert_response :redirect
--- a/test/functional/.svn/text-base/projects_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/projects_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'projects_controller'
 
 # Re-raise errors caught by the controller.
@@ -144,19 +144,32 @@
       end
       
       should "create a new project" do
-        post :create, :project => { :name => "blog", 
-                                 :description => "weblog",
-                                 :identifier => "blog",
-                                 :is_public => 1,
-                                 :custom_field_values => { '3' => 'Beta' }
-                                }
+        post :create,
+          :project => {
+            :name => "blog", 
+            :description => "weblog",
+            :homepage => 'http://weblog',
+            :identifier => "blog",
+            :is_public => 1,
+            :custom_field_values => { '3' => 'Beta' },
+            :tracker_ids => ['1', '3'],
+            # an issue custom field that is not for all project
+            :issue_custom_field_ids => ['9'],
+            :enabled_module_names => ['issue_tracking', 'news', 'repository']
+          }
         assert_redirected_to '/projects/blog/settings'
         
         project = Project.find_by_name('blog')
         assert_kind_of Project, project
+        assert project.active?
         assert_equal 'weblog', project.description 
+        assert_equal 'http://weblog', project.homepage
         assert_equal true, project.is_public?
         assert_nil project.parent
+        assert_equal 'Beta', project.custom_value_for(3).value
+        assert_equal [1, 3], project.trackers.map(&:id).sort
+        assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
+        assert project.issue_custom_fields.include?(IssueCustomField.find(9))
       end
       
       should "create a new subproject" do
@@ -186,7 +199,9 @@
                                  :description => "weblog",
                                  :identifier => "blog",
                                  :is_public => 1,
-                                 :custom_field_values => { '3' => 'Beta' }
+                                 :custom_field_values => { '3' => 'Beta' },
+                                 :tracker_ids => ['1', '3'],
+                                 :enabled_module_names => ['issue_tracking', 'news', 'repository']
                                 }
         
         assert_redirected_to '/projects/blog/settings'
@@ -195,6 +210,8 @@
         assert_kind_of Project, project
         assert_equal 'weblog', project.description 
         assert_equal true, project.is_public?
+        assert_equal [1, 3], project.trackers.map(&:id).sort
+        assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
         
         # User should be added as a project member
         assert User.find(9).member_of?(project)
@@ -271,6 +288,12 @@
     end
   end
   
+  def test_create_should_not_accept_get
+    @request.session[:user_id] = 1
+    get :create
+    assert_response :method_not_allowed
+  end
+  
   def test_show_by_id
     get :show, :id => 1
     assert_response :success
@@ -348,6 +371,21 @@
     project = Project.find(1)
     assert_equal 'Test changed name', project.name
   end
+
+  def test_modules
+    @request.session[:user_id] = 2
+    Project.find(1).enabled_module_names = ['issue_tracking', 'news']
+    
+    post :modules, :id => 1, :enabled_module_names => ['issue_tracking', 'repository', 'documents']
+    assert_redirected_to '/projects/ecookbook/settings/modules'
+    assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort
+  end
+
+  def test_modules_should_not_allow_get
+    @request.session[:user_id] = 1
+    get :modules, :id => 1
+    assert_response :method_not_allowed
+  end
   
   def test_get_destroy
     @request.session[:user_id] = 1 # admin
@@ -418,7 +456,7 @@
       @request.session[:user_id] = 1 # admin
       post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
       assert_response :redirect
-      assert_redirected_to :controller => 'projects', :action => 'settings'
+      assert_redirected_to :controller => 'projects', :action => 'settings', :id => 'unique-copy'
     end
   end
 
--- a/test/functional/.svn/text-base/queries_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/queries_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'queries_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/reports_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/reports_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'reports_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/repositories_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,13 +15,14 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
 class RepositoriesController; def rescue_action(e) raise e end; end
 
 class RepositoriesCvsControllerTest < ActionController::TestCase
+  fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
 
   # No '..' in the repository path
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
--- a/test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -33,9 +33,10 @@
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     User.current = nil
-    Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    @repository = Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    assert @repository
   end
-  
+
   if File.directory?(REPOSITORY_PATH)
     def test_show
       get :show, :id => 3
@@ -126,8 +127,11 @@
       assert_not_nil assigns(:entry)
       assert_equal 'sources', assigns(:entry).name
     end
-    
+
     def test_diff
+      @repository.fetch_changesets
+      @repository.reload
+
       # Full diff of changeset 2f9c0091
       get :diff, :id => 3, :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
       assert_response :success
@@ -138,6 +142,21 @@
                  :sibling => { :tag => 'td', 
                                :attributes => { :class => /diff_out/ },
                                :content => /def remove/ }
+      assert_tag :tag => 'h2', :content => /2f9c0091/
+    end
+
+    def test_diff_two_revs
+      @repository.fetch_changesets
+      @repository.reload
+
+      get :diff, :id => 3, :rev    => '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
+                           :rev_to => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+      assert_response :success
+      assert_template 'diff'
+
+      diff = assigns(:diff)
+      assert_not_nil diff
+      assert_tag :tag => 'h2', :content => /2f9c0091:61b685fb/
     end
 
     def test_annotate
@@ -150,13 +169,33 @@
                  :sibling => { :tag => 'td', :content => /jsmith/ },
                  :sibling => { :tag => 'td', :content => /watcher =/ }
     end
-    
+
     def test_annotate_binary_file
       get :annotate, :id => 3, :path => ['images', 'edit.png']
       assert_response 500
       assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
                                 :content => /can not be annotated/
     end
+
+    def test_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['61b685fbe55ab05b5ac68402d5720c1a6ac973d1', '61b685f'].each do |r|
+        get :revision, :id => 3, :rev => r
+        assert_response :success
+        assert_template 'revision'
+      end
+    end
+
+    def test_empty_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
   else
     puts "Git test repository NOT FOUND. Skipping functional tests !!!"
     def test_fake; assert true end
--- a/test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -32,9 +32,10 @@
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     User.current = nil
-    Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    @repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    assert @repository
   end
-  
+
   if File.directory?(REPOSITORY_PATH)
     def test_show
       get :show, :id => 3
@@ -49,10 +50,10 @@
       assert_response :success
       assert_template 'show'
       assert_not_nil assigns(:entries)
-      assert_equal 3, assigns(:entries).size
-      assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
+      assert_equal 4, assigns(:entries).size
+      assert assigns(:entries).detect {|e| e.name == 'images'  && e.kind == 'dir'}
       assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
-      assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
+      assert assigns(:entries).detect {|e| e.name == 'README'  && e.kind == 'file'}
     end
     
     def test_show_directory
@@ -66,15 +67,33 @@
       assert_equal 'file', entry.kind
       assert_equal 'images/edit.png', entry.path
     end
-    
+
     def test_show_at_given_revision
-      get :show, :id => 3, :path => ['images'], :rev => 0
-      assert_response :success
-      assert_template 'show'
-      assert_not_nil assigns(:entries)
-      assert_equal ['delete.png'], assigns(:entries).collect(&:name)
+      [0, '0', '0885933ad4f6'].each do |r1|
+        get :show, :id => 3, :path => ['images'], :rev => r1
+        assert_response :success
+        assert_template 'show'
+        assert_not_nil assigns(:entries)
+        assert_equal ['delete.png'], assigns(:entries).collect(&:name)
+      end
     end
-    
+
+    def test_show_directory_sql_escape_percent
+      [13, '13', '3a330eb32958'].each do |r1|
+        get :show, :id => 3, :path => ['sql_escape', 'percent%dir'], :rev => r1
+        assert_response :success
+        assert_template 'show'
+
+        assert_not_nil assigns(:entries)
+        assert_equal ['percent%file1.txt', 'percentfile1.txt'], assigns(:entries).collect(&:name)
+        changesets = assigns(:changesets)
+
+        ## This is not yet implemented.
+        # assert_not_nil changesets
+        # assert_equal %w(13 11 10 9), changesets.collect(&:revision)
+      end
+    end
+
     def test_changes
       get :changes, :id => 3, :path => ['images', 'edit.png']
       assert_response :success
@@ -86,10 +105,10 @@
       get :entry, :id => 3, :path => ['sources', 'watchers_controller.rb']
       assert_response :success
       assert_template 'entry'
-      # Line 19
+      # Line 10
       assert_tag :tag => 'th',
-                 :content => /10/,
-                 :attributes => { :class => /line-num/ },
+                 :content => '10',
+                 :attributes => { :class => 'line-num' },
                  :sibling => { :tag => 'td', :content => /WITHOUT ANY WARRANTY/ }
     end
     
@@ -109,28 +128,83 @@
     end
     
     def test_diff
-      # Full diff of changeset 4
-      get :diff, :id => 3, :rev => 4
-      assert_response :success
-      assert_template 'diff'
-      # Line 22 removed
-      assert_tag :tag => 'th',
-                 :content => /22/,
-                 :sibling => { :tag => 'td', 
-                               :attributes => { :class => /diff_out/ },
-                               :content => /def remove/ }
+      @repository.fetch_changesets
+      @repository.reload
+
+      [4, '4', 'def6d2f1254a'].each do |r1|
+        # Full diff of changeset 4
+        get :diff, :id => 3, :rev => 4
+        assert_response :success
+        assert_template 'diff'
+
+        if @repository.scm.class.client_version_above?([1, 2])
+          # Line 22 removed
+          assert_tag :tag => 'th',
+                     :content => '22',
+                     :sibling => { :tag => 'td', 
+                                   :attributes => { :class => /diff_out/ },
+                                   :content => /def remove/ }
+          assert_tag :tag => 'h2', :content => /4:def6d2f1254a/
+        end
+      end
     end
-    
+
+    def test_diff_two_revs
+      @repository.fetch_changesets
+      @repository.reload
+
+      [2, '400bb8672109', '400', 400].each do |r1|
+        [4, 'def6d2f1254a'].each do |r2|
+          get :diff, :id => 3, :rev    => r1,
+                               :rev_to => r2
+          assert_response :success
+          assert_template 'diff'
+
+          diff = assigns(:diff)
+          assert_not_nil diff
+          assert_tag :tag => 'h2', :content => /4:def6d2f1254a 2:400bb8672109/
+        end
+      end
+    end
+
     def test_annotate
       get :annotate, :id => 3, :path => ['sources', 'watchers_controller.rb']
       assert_response :success
       assert_template 'annotate'
-      # Line 23, revision 4
-      assert_tag :tag => 'th', :content => /23/,
-                 :sibling => { :tag => 'td', :child => { :tag => 'a', :content => /4/ } },
-                 :sibling => { :tag => 'td', :content => /jsmith/ },
+      # Line 23, revision 4:def6d2f1254a
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
+                 :sibling =>
+                       {
+                         :tag => 'td',
+                         :attributes => { :class => 'revision' },
+                         :child => { :tag => 'a', :content => '4:def6d2f1254a' }
+                       }
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
+                 :sibling =>
+                       {
+                          :tag     => 'td'    ,
+                          :content => 'jsmith' ,
+                          :attributes => { :class   => 'author' },
+                        }
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
                  :sibling => { :tag => 'td', :content => /watcher =/ }
     end
+
+    def test_empty_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
   else
     puts "Mercurial test repository NOT FOUND. Skipping functional tests !!!"
     def test_fake; assert true end
--- a/test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -166,6 +166,20 @@
                             }
     end
     
+    def test_invalid_revision
+      get :revision, :id => 1, :rev => 'something_weird'
+      assert_response 500
+      assert_error_tag :content => /was not found/
+    end
+
+    def test_empty_revision
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
+
     def test_revision_with_repository_pointing_to_a_subdirectory
       r = Project.find(1).repository
       # Changes repository url to a subdirectory
@@ -192,6 +206,8 @@
       get :diff, :id => 1, :rev => 3
       assert_response :success
       assert_template 'diff'
+
+      assert_tag :tag => 'h2', :content => /3/
     end
 
     def test_directory_diff
@@ -203,6 +219,8 @@
       assert_not_nil diff
       # 2 files modified
       assert_equal 2, Redmine::UnifiedDiff.new(diff).size
+
+      assert_tag :tag => 'h2', :content => /2:6/
     end
     
     def test_annotate
--- a/test/functional/.svn/text-base/roles_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/roles_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'roles_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/search_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/search_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'search_controller'
 
 # Re-raise errors caught by the controller.
@@ -83,7 +83,7 @@
     results = assigns(:results)
     assert_not_nil results
     assert_equal 1, results.size
-    assert results.include?(Issue.find(3))
+    assert results.include?(Issue.find(7))
   end
   
   def test_search_all_words
--- a/test/functional/.svn/text-base/settings_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/settings_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'settings_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/sys_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/sys_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'sys_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/time_entry_reports_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/time_entry_reports_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryReportsControllerTest < ActionController::TestCase
   fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
--- a/test/functional/.svn/text-base/timelog_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/timelog_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -16,7 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'timelog_controller'
 
 # Re-raise errors caught by the controller.
@@ -94,6 +94,26 @@
     assert_equal i, t.issue
     assert_equal i.project, t.project
   end
+
+  def test_post_create_with_blank_issue
+    # TODO: should POST to issues’ time log instead of project. change form
+    # and routing
+    @request.session[:user_id] = 3
+    post :create, :project_id => 1,
+                :time_entry => {:comments => 'Some work on TimelogControllerTest',
+                                # Not the default activity
+                                :activity_id => '11',
+                                :issue_id => '',
+                                :spent_on => '2008-03-14',
+                                :hours => '7.3'}
+    assert_redirected_to :action => 'index', :project_id => 'ecookbook'
+    
+    t = TimeEntry.find_by_comments('Some work on TimelogControllerTest')
+    assert_not_nil t
+    assert_equal 11, t.activity_id
+    assert_equal 7.3, t.hours
+    assert_equal 3, t.user_id
+  end
   
   def test_update
     entry = TimeEntry.find(1)
--- a/test/functional/.svn/text-base/trackers_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/trackers_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'trackers_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/users_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/users_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'users_controller'
 
 # Re-raise errors caught by the controller.
@@ -119,64 +119,108 @@
     project_ids = memberships.map(&:project_id)
     assert project_ids.include?(2) #private project admin can see
   end
-
-  context "GET :new" do
-    setup do
-      get :new
+  
+  def test_show_current_should_require_authentication
+    @request.session[:user_id] = nil
+    get :show, :id => 'current'
+    assert_response 302
+  end
+  
+  def test_show_current
+    @request.session[:user_id] = 2
+    get :show, :id => 'current'
+    assert_response :success
+    assert_template 'show'
+    assert_equal User.find(2), assigns(:user)
+  end
+  
+  def test_new
+    get :new
+    
+    assert_response :success
+    assert_template :new
+    assert assigns(:user)
+  end
+  
+  def test_create
+    Setting.bcc_recipients = '1'
+    
+    assert_difference 'User.count' do
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        post :create,
+          :user => {
+            :firstname => 'John',
+            :lastname => 'Doe',
+            :login => 'jdoe',
+            :password => 'secret',
+            :password_confirmation => 'secret',
+            :mail => 'jdoe@gmail.com',
+            :mail_notification => 'none'
+          },
+          :send_information => '1'
+      end
     end
-
-    should_assign_to :user
-    should_respond_with :success
-    should_render_template :new
+    
+    user = User.first(:order => 'id DESC')
+    assert_redirected_to :controller => 'users', :action => 'edit', :id => user.id
+    
+    assert_equal 'John', user.firstname
+    assert_equal 'Doe', user.lastname
+    assert_equal 'jdoe', user.login
+    assert_equal 'jdoe@gmail.com', user.mail
+    assert_equal 'none', user.mail_notification
+    assert user.check_password?('secret')
+    
+    mail = ActionMailer::Base.deliveries.last
+    assert_not_nil mail
+    assert_equal [user.mail], mail.bcc
+    assert mail.body.include?('secret')
+  end
+  
+  def test_create_with_failure
+    assert_no_difference 'User.count' do
+      post :create, :user => {}
+    end
+    
+    assert_response :success
+    assert_template 'new'
   end
 
-  context "POST :create" do
-    context "when successful" do
-      setup do
-        post :create, :user => {
-          :firstname => 'John',
-          :lastname => 'Doe',
-          :login => 'jdoe',
-          :password => 'test',
-          :password_confirmation => 'test',
-          :mail => 'jdoe@gmail.com'
-        },
-        :notification_option => 'none'
-      end
-
-      should_assign_to :user
-      should_respond_with :redirect
-      should_redirect_to('user edit') { {:controller => 'users', :action => 'edit', :id => User.find_by_login('jdoe')}}
-
-      should 'set the users mail notification' do
-        user = User.last
-        assert_equal 'none', user.mail_notification
-      end
-    end
-
-    context "when unsuccessful" do
-      setup do
-        post :create, :user => {}
-      end
-
-      should_assign_to :user
-      should_respond_with :success
-      should_render_template :new
-    end
-
+  def test_edit
+    get :edit, :id => 2
+    
+    assert_response :success
+    assert_template 'edit'
+    assert_equal User.find(2), assigns(:user)
   end
 
   def test_update
     ActionMailer::Base.deliveries.clear
-    put :update, :id => 2, :user => {:firstname => 'Changed'}, :notification_option => 'all', :pref => {:hide_mail => '1', :comments_sorting => 'desc'}
+    put :update, :id => 2, :user => {:firstname => 'Changed', :mail_notification => 'only_assigned'}, :pref => {:hide_mail => '1', :comments_sorting => 'desc'}
 
     user = User.find(2)
     assert_equal 'Changed', user.firstname
-    assert_equal 'all', user.mail_notification
+    assert_equal 'only_assigned', user.mail_notification
     assert_equal true, user.pref[:hide_mail]
     assert_equal 'desc', user.pref[:comments_sorting]
     assert ActionMailer::Base.deliveries.empty?
   end
+
+  def test_update_with_failure
+    assert_no_difference 'User.count' do
+      put :update, :id => 2, :user => {:firstname => ''}
+    end
+    
+    assert_response :success
+    assert_template 'edit'
+  end
+  
+  def test_update_with_group_ids_should_assign_groups
+    put :update, :id => 2, :user => {:group_ids => ['10']}
+    
+    user = User.find(2)
+    assert_equal [10], user.group_ids
+  end
   
   def test_update_with_activation_should_send_a_notification
     u = User.new(:firstname => 'Foo', :lastname => 'Bar', :mail => 'foo.bar@somenet.foo', :language => 'fr')
@@ -194,13 +238,13 @@
     assert mail.body.include?(ll('fr', :notice_account_activated))
   end
   
-  def test_updat_with_password_change_should_send_a_notification
+  def test_update_with_password_change_should_send_a_notification
     ActionMailer::Base.deliveries.clear
     Setting.bcc_recipients = '1'
     
+    put :update, :id => 2, :user => {:password => 'newpass', :password_confirmation => 'newpass'}, :send_information => '1'
     u = User.find(2)
-    put :update, :id => u.id, :user => {}, :password => 'newpass', :password_confirmation => 'newpass', :send_information => '1'
-    assert_equal User.hash_password('newpass'), u.reload.hashed_password 
+    assert u.check_password?('newpass')
     
     mail = ActionMailer::Base.deliveries.last
     assert_not_nil mail
@@ -214,10 +258,10 @@
     u.auth_source = AuthSource.find(1)
     u.save!
 
-    put :update, :id => u.id, :user => {:auth_source_id => ''}, :password => 'newpass', :password_confirmation => 'newpass'
+    put :update, :id => u.id, :user => {:auth_source_id => '', :password => 'newpass'}, :password_confirmation => 'newpass'
 
     assert_equal nil, u.reload.auth_source
-    assert_equal User.hash_password('newpass'), u.reload.hashed_password
+    assert u.check_password?('newpass')
   end
   
   def test_edit_membership
--- a/test/functional/.svn/text-base/versions_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/versions_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'versions_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/watchers_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/watchers_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'watchers_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/welcome_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/welcome_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'welcome_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/wiki_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/wiki_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'wiki_controller'
 
 # Re-raise errors caught by the controller.
@@ -108,6 +108,52 @@
     assert_equal 1, page.attachments.count
     assert_equal 'testfile.txt', page.attachments.first.filename
   end
+
+  def test_update_page
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => "my comments",
+              :text => "edited",
+              :version => 1
+            }
+        end
+      end
+    end
+    assert_redirected_to '/projects/ecookbook/wiki/Another_page'
+    
+    page = Wiki.find(1).pages.find_by_title('Another_page')
+    assert_equal "edited", page.content.text
+    assert_equal 2, page.content.version
+    assert_equal "my comments", page.content.comments
+  end
+
+  def test_update_page_with_failure
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_no_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => 'a' * 300,  # failure here, comment is too long
+              :text => 'edited',
+              :version => 1
+            }
+          end
+        end
+      end
+    assert_response :success
+    assert_template 'edit'
+    
+    assert_error_tag :descendant => {:content => /Comment is too long/}
+    assert_tag :tag => 'textarea', :attributes => {:id => 'content_text'}, :content => 'edited'
+    assert_tag :tag => 'input', :attributes => {:id => 'content_version', :value => '1'}
+  end
   
   def test_preview
     @request.session[:user_id] = 2
--- a/test/functional/.svn/text-base/wikis_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/wikis_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'wikis_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/.svn/text-base/workflows_controller_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/.svn/text-base/workflows_controller_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'workflows_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/account_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/account_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'account_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/activities_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/activities_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ActivitiesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/admin_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/admin_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'admin_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/application_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/application_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'application_controller'
 
 # Re-raise errors caught by the controller.
@@ -43,4 +43,61 @@
   def test_call_hook_mixed_in
     assert @controller.respond_to?(:call_hook)
   end
+  
+  context "test_api_offset_and_limit" do
+    context "without params" do
+      should "return 0, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({})
+      end
+    end
+    
+    context "with limit" do
+      should "return 0, limit" do
+        assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30})
+      end
+      
+      should "not exceed 100" do
+        assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10})
+      end
+    end
+    
+    context "with offset" do
+      should "return offset, 25" do
+        assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50})
+        end
+      end
+    end
+    
+    context "with page" do
+      should "return offset, 25" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1})
+        assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3})
+      end
+
+      should "not be negative" do
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0})
+        assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2})
+      end
+      
+      context "and limit" do
+        should "return offset, limit" do
+          assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
+          assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
+        end
+      end
+    end
+  end
 end
--- a/test/functional/attachments_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/attachments_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,7 @@
-# redMine - project management software
-# Copyright (C) 2006-2008  Jean-Philippe Lang
+# encoding: utf-8
+#
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -15,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'attachments_controller'
 
 # Re-raise errors caught by the controller.
@@ -35,10 +37,31 @@
   end
   
   def test_show_diff
-    get :show, :id => 5
+    get :show, :id => 14 # 060719210727_changeset_utf8.diff
     assert_response :success
     assert_template 'diff'
     assert_equal 'text/html', @response.content_type
+    
+    assert_tag 'th',
+      :attributes => {:class => /filename/},
+      :content => /issues_controller.rb\t\(révision 1484\)/
+    assert_tag 'td',
+      :attributes => {:class => /line-code/},
+      :content => /Demande créée avec succès/
+  end
+  
+  def test_show_diff_should_strip_non_utf8_content
+    get :show, :id => 5 # 060719210727_changeset_iso8859-1.diff
+    assert_response :success
+    assert_template 'diff'
+    assert_equal 'text/html', @response.content_type
+    
+    assert_tag 'th',
+      :attributes => {:class => /filename/},
+      :content => /issues_controller.rb\t\(rvision 1484\)/
+    assert_tag 'td',
+      :attributes => {:class => /line-code/},
+      :content => /Demande cre avec succs/
   end
   
   def test_show_text_file
--- a/test/functional/auth_sources_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/auth_sources_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AuthSourcesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/auto_completes_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/auto_completes_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AutoCompletesControllerTest < ActionController::TestCase
   fixtures :all
@@ -17,4 +17,18 @@
     assert assigns(:issues).include?(Issue.find(13))
   end
   
+  def test_auto_complete_with_scope_all_and_cross_project_relations
+    Setting.cross_project_issue_relations = '1'
+    get :issues, :project_id => 'ecookbook', :q => '13', :scope => 'all'
+    assert_response :success
+    assert_not_nil assigns(:issues)
+    assert assigns(:issues).include?(Issue.find(13))
+  end
+     
+  def test_auto_complete_with_scope_all_without_cross_project_relations
+    Setting.cross_project_issue_relations = '0'
+    get :issues, :project_id => 'ecookbook', :q => '13', :scope => 'all'
+    assert_response :success
+    assert_equal [], assigns(:issues)
+  end
 end
--- a/test/functional/boards_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/boards_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'boards_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/calendars_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/calendars_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CalendarsControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/comments_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/comments_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CommentsControllerTest < ActionController::TestCase
   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
--- a/test/functional/context_menus_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/context_menus_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ContextMenusControllerTest < ActionController::TestCase
   fixtures :all
@@ -56,26 +56,30 @@
     get :issues, :ids => [1, 2]
     assert_response :success
     assert_template 'context_menu'
+    assert_not_nil assigns(:issues)
+    assert_equal [1, 2], assigns(:issues).map(&:id).sort
+                              
+    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
     assert_tag :tag => 'a', :content => 'Edit',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}",
                                              :class => 'icon-edit' }
     assert_tag :tag => 'a', :content => 'Closed',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bstatus_id%5D=5',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Immediate',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bpriority_id%5D=8',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Dave Lopper',
-                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;ids%5B%5D=2&amp;issue%5Bassigned_to_id%5D=3',
+                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
                                              :class => '' }
     assert_tag :tag => 'a', :content => 'Copy',
-                            :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&amp;ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&amp;#{ids}",
                                              :class => 'icon-copy' }
     assert_tag :tag => 'a', :content => 'Move',
-                            :attributes => { :href => '/issues/move/new?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/move/new?#{ids}",
                                              :class => 'icon-move' }
     assert_tag :tag => 'a', :content => 'Delete',
-                            :attributes => { :href => '/issues/destroy?ids%5B%5D=1&amp;ids%5B%5D=2',
+                            :attributes => { :href => "/issues/destroy?#{ids}",
                                              :class => 'icon-del' }
   end
 
@@ -84,7 +88,10 @@
     get :issues, :ids => [1, 2, 6]
     assert_response :success
     assert_template 'context_menu'
-    ids = "ids%5B%5D=1&amp;ids%5B%5D=2&amp;ids%5B%5D=6"
+    assert_not_nil assigns(:issues)
+    assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
+    
+    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
     assert_tag :tag => 'a', :content => 'Edit',
                             :attributes => { :href => "/issues/bulk_edit?#{ids}",
                                              :class => 'icon-edit' }
@@ -102,4 +109,10 @@
                                              :class => 'icon-del' }
   end
   
+  def test_context_menu_issue_visibility
+    get :issues, :ids => [1, 4]
+    assert_response :success
+    assert_template 'context_menu'
+    assert_equal [1], assigns(:issues).collect(&:id)
+  end
 end
--- a/test/functional/custom_fields_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/custom_fields_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'custom_fields_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/documents_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/documents_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'documents_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/enumerations_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/enumerations_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'enumerations_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/files_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/files_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class FilesControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/gantts_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/gantts_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class GanttsControllerTest < ActionController::TestCase
   fixtures :all
@@ -49,6 +49,18 @@
       assert_nil assigns(:gantt).project
     end
 
+    should "not disclose private projects" do
+      get :show
+      assert_response :success
+      assert_template 'show.html.erb'
+      
+      assert_tag 'a', :content => /eCookbook/
+      # Root private project
+      assert_no_tag 'a', {:content => /OnlineStore/}
+      # Private children of a public project
+      assert_no_tag 'a', :content => /Private child of eCookbook/
+    end
+
     should "export to pdf" do
       get :show, :project_id => 1, :format => 'pdf'
       assert_response :success
--- a/test/functional/groups_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/groups_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'groups_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/issue_categories_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issue_categories_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_categories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/issue_moves_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issue_moves_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueMovesControllerTest < ActionController::TestCase
   fixtures :all
@@ -58,8 +58,8 @@
       post :create, :ids => [1, 2], :notes => 'Moving two issues'
 
       assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook'
-      assert_equal 'Moving two issues', Issue.find(1).journals.last.notes
-      assert_equal 'Moving two issues', Issue.find(2).journals.last.notes
+      assert_equal 'Moving two issues', Issue.find(1).journals.sort_by(&:id).last.notes
+      assert_equal 'Moving two issues', Issue.find(2).journals.sort_by(&:id).last.notes
 
     end
     
--- a/test/functional/issue_relations_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issue_relations_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_relations_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/issue_statuses_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issue_statuses_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issue_statuses_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/issues_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issues_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issues_controller'
 
 # Re-raise errors caught by the controller.
@@ -281,6 +281,9 @@
     get :show, :id => 1
     assert_response :success
     
+    assert_tag :tag => 'a',
+      :content => /Quote/
+    
     assert_tag :tag => 'form',
                :descendant => { :tag => 'fieldset',
                                 :child => { :tag => 'legend', 
@@ -525,6 +528,20 @@
     assert_not_nil issue
     assert_equal Issue.find(2), issue.parent
   end
+
+  def test_post_create_subissue_with_non_numeric_parent_id
+    @request.session[:user_id] = 2
+    
+    assert_difference 'Issue.count' do
+      post :create, :project_id => 1, 
+                 :issue => {:tracker_id => 1,
+                            :subject => 'This is a child issue',
+                            :parent_issue_id => 'ABC'}
+    end
+    issue = Issue.find_by_subject('This is a child issue')
+    assert_not_nil issue
+    assert_nil issue.parent
+  end
   
   def test_post_create_should_send_a_notification
     ActionMailer::Base.deliveries.clear
--- a/test/functional/issues_controller_transaction_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/issues_controller_transaction_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'issues_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/journals_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/journals_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'journals_controller'
 
 # Re-raise errors caught by the controller.
@@ -40,14 +40,20 @@
   
   def test_reply_to_issue
     @request.session[:user_id] = 2
-    get :new, :id => 1
+    get :new, :id => 6
     assert_response :success
     assert_select_rjs :show, "update"
   end
+  
+  def test_reply_to_issue_without_permission
+    @request.session[:user_id] = 7
+    get :new, :id => 6
+    assert_response 403
+  end
 
   def test_reply_to_note
     @request.session[:user_id] = 2
-    get :new, :id => 1, :journal_id => 2
+    get :new, :id => 6, :journal_id => 4
     assert_response :success
     assert_select_rjs :show, "update"
   end
--- a/test/functional/mail_handler_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/mail_handler_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'mail_handler_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/members_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/members_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'members_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/messages_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/messages_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'messages_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/my_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/my_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'my_controller'
 
 # Re-raise errors caught by the controller.
@@ -64,17 +64,24 @@
   end
 
   def test_update_account
-    post :account, :user => {:firstname => "Joe",
-                             :login => "root",
-                             :admin => 1,
-                             :custom_field_values => {"4" => "0100562500"}}
+    post :account,
+      :user => {
+        :firstname => "Joe",
+        :login => "root",
+        :admin => 1,
+        :group_ids => ['10'],
+        :custom_field_values => {"4" => "0100562500"}
+      }
+    
     assert_redirected_to '/my/account'
     user = User.find(2)
     assert_equal user, assigns(:user)
     assert_equal "Joe", user.firstname
     assert_equal "jsmith", user.login
     assert_equal "0100562500", user.custom_value_for(4).value
+    # ignored
     assert !user.admin?
+    assert user.groups.empty?
   end
   
   def test_change_password
--- a/test/functional/news_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/news_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'news_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/previews_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/previews_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class PreviewsControllerTest < ActionController::TestCase
   fixtures :all
--- a/test/functional/project_enumerations_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/project_enumerations_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectEnumerationsControllerTest < ActionController::TestCase
   fixtures :all
@@ -175,7 +175,7 @@
                                              })
     assert project_activity.save
     assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9])
-    assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size
+    assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size
     
     delete :destroy, :project_id => 1
     assert_response :redirect
--- a/test/functional/projects_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/projects_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'projects_controller'
 
 # Re-raise errors caught by the controller.
@@ -144,19 +144,32 @@
       end
       
       should "create a new project" do
-        post :create, :project => { :name => "blog", 
-                                 :description => "weblog",
-                                 :identifier => "blog",
-                                 :is_public => 1,
-                                 :custom_field_values => { '3' => 'Beta' }
-                                }
+        post :create,
+          :project => {
+            :name => "blog", 
+            :description => "weblog",
+            :homepage => 'http://weblog',
+            :identifier => "blog",
+            :is_public => 1,
+            :custom_field_values => { '3' => 'Beta' },
+            :tracker_ids => ['1', '3'],
+            # an issue custom field that is not for all project
+            :issue_custom_field_ids => ['9'],
+            :enabled_module_names => ['issue_tracking', 'news', 'repository']
+          }
         assert_redirected_to '/projects/blog/settings'
         
         project = Project.find_by_name('blog')
         assert_kind_of Project, project
+        assert project.active?
         assert_equal 'weblog', project.description 
+        assert_equal 'http://weblog', project.homepage
         assert_equal true, project.is_public?
         assert_nil project.parent
+        assert_equal 'Beta', project.custom_value_for(3).value
+        assert_equal [1, 3], project.trackers.map(&:id).sort
+        assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
+        assert project.issue_custom_fields.include?(IssueCustomField.find(9))
       end
       
       should "create a new subproject" do
@@ -186,7 +199,9 @@
                                  :description => "weblog",
                                  :identifier => "blog",
                                  :is_public => 1,
-                                 :custom_field_values => { '3' => 'Beta' }
+                                 :custom_field_values => { '3' => 'Beta' },
+                                 :tracker_ids => ['1', '3'],
+                                 :enabled_module_names => ['issue_tracking', 'news', 'repository']
                                 }
         
         assert_redirected_to '/projects/blog/settings'
@@ -195,6 +210,8 @@
         assert_kind_of Project, project
         assert_equal 'weblog', project.description 
         assert_equal true, project.is_public?
+        assert_equal [1, 3], project.trackers.map(&:id).sort
+        assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
         
         # User should be added as a project member
         assert User.find(9).member_of?(project)
@@ -271,6 +288,12 @@
     end
   end
   
+  def test_create_should_not_accept_get
+    @request.session[:user_id] = 1
+    get :create
+    assert_response :method_not_allowed
+  end
+  
   def test_show_by_id
     get :show, :id => 1
     assert_response :success
@@ -348,6 +371,21 @@
     project = Project.find(1)
     assert_equal 'Test changed name', project.name
   end
+
+  def test_modules
+    @request.session[:user_id] = 2
+    Project.find(1).enabled_module_names = ['issue_tracking', 'news']
+    
+    post :modules, :id => 1, :enabled_module_names => ['issue_tracking', 'repository', 'documents']
+    assert_redirected_to '/projects/ecookbook/settings/modules'
+    assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort
+  end
+
+  def test_modules_should_not_allow_get
+    @request.session[:user_id] = 1
+    get :modules, :id => 1
+    assert_response :method_not_allowed
+  end
   
   def test_get_destroy
     @request.session[:user_id] = 1 # admin
@@ -418,7 +456,7 @@
       @request.session[:user_id] = 1 # admin
       post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
       assert_response :redirect
-      assert_redirected_to :controller => 'projects', :action => 'settings'
+      assert_redirected_to :controller => 'projects', :action => 'settings', :id => 'unique-copy'
     end
   end
 
--- a/test/functional/queries_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/queries_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'queries_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/reports_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/reports_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'reports_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/repositories_bazaar_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_bazaar_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/repositories_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/repositories_cvs_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_cvs_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,13 +15,14 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
 class RepositoriesController; def rescue_action(e) raise e end; end
 
 class RepositoriesCvsControllerTest < ActionController::TestCase
+  fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
 
   # No '..' in the repository path
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
--- a/test/functional/repositories_darcs_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_darcs_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/repositories_git_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_git_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -33,9 +33,10 @@
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     User.current = nil
-    Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    @repository = Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    assert @repository
   end
-  
+
   if File.directory?(REPOSITORY_PATH)
     def test_show
       get :show, :id => 3
@@ -126,8 +127,11 @@
       assert_not_nil assigns(:entry)
       assert_equal 'sources', assigns(:entry).name
     end
-    
+
     def test_diff
+      @repository.fetch_changesets
+      @repository.reload
+
       # Full diff of changeset 2f9c0091
       get :diff, :id => 3, :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
       assert_response :success
@@ -138,6 +142,21 @@
                  :sibling => { :tag => 'td', 
                                :attributes => { :class => /diff_out/ },
                                :content => /def remove/ }
+      assert_tag :tag => 'h2', :content => /2f9c0091/
+    end
+
+    def test_diff_two_revs
+      @repository.fetch_changesets
+      @repository.reload
+
+      get :diff, :id => 3, :rev    => '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
+                           :rev_to => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+      assert_response :success
+      assert_template 'diff'
+
+      diff = assigns(:diff)
+      assert_not_nil diff
+      assert_tag :tag => 'h2', :content => /2f9c0091:61b685fb/
     end
 
     def test_annotate
@@ -150,13 +169,33 @@
                  :sibling => { :tag => 'td', :content => /jsmith/ },
                  :sibling => { :tag => 'td', :content => /watcher =/ }
     end
-    
+
     def test_annotate_binary_file
       get :annotate, :id => 3, :path => ['images', 'edit.png']
       assert_response 500
       assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
                                 :content => /can not be annotated/
     end
+
+    def test_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['61b685fbe55ab05b5ac68402d5720c1a6ac973d1', '61b685f'].each do |r|
+        get :revision, :id => 3, :rev => r
+        assert_response :success
+        assert_template 'revision'
+      end
+    end
+
+    def test_empty_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
   else
     puts "Git test repository NOT FOUND. Skipping functional tests !!!"
     def test_fake; assert true end
--- a/test/functional/repositories_mercurial_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_mercurial_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -32,9 +32,10 @@
     @request    = ActionController::TestRequest.new
     @response   = ActionController::TestResponse.new
     User.current = nil
-    Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    @repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+    assert @repository
   end
-  
+
   if File.directory?(REPOSITORY_PATH)
     def test_show
       get :show, :id => 3
@@ -49,10 +50,10 @@
       assert_response :success
       assert_template 'show'
       assert_not_nil assigns(:entries)
-      assert_equal 3, assigns(:entries).size
-      assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
+      assert_equal 4, assigns(:entries).size
+      assert assigns(:entries).detect {|e| e.name == 'images'  && e.kind == 'dir'}
       assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
-      assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
+      assert assigns(:entries).detect {|e| e.name == 'README'  && e.kind == 'file'}
     end
     
     def test_show_directory
@@ -66,15 +67,33 @@
       assert_equal 'file', entry.kind
       assert_equal 'images/edit.png', entry.path
     end
-    
+
     def test_show_at_given_revision
-      get :show, :id => 3, :path => ['images'], :rev => 0
-      assert_response :success
-      assert_template 'show'
-      assert_not_nil assigns(:entries)
-      assert_equal ['delete.png'], assigns(:entries).collect(&:name)
+      [0, '0', '0885933ad4f6'].each do |r1|
+        get :show, :id => 3, :path => ['images'], :rev => r1
+        assert_response :success
+        assert_template 'show'
+        assert_not_nil assigns(:entries)
+        assert_equal ['delete.png'], assigns(:entries).collect(&:name)
+      end
     end
-    
+
+    def test_show_directory_sql_escape_percent
+      [13, '13', '3a330eb32958'].each do |r1|
+        get :show, :id => 3, :path => ['sql_escape', 'percent%dir'], :rev => r1
+        assert_response :success
+        assert_template 'show'
+
+        assert_not_nil assigns(:entries)
+        assert_equal ['percent%file1.txt', 'percentfile1.txt'], assigns(:entries).collect(&:name)
+        changesets = assigns(:changesets)
+
+        ## This is not yet implemented.
+        # assert_not_nil changesets
+        # assert_equal %w(13 11 10 9), changesets.collect(&:revision)
+      end
+    end
+
     def test_changes
       get :changes, :id => 3, :path => ['images', 'edit.png']
       assert_response :success
@@ -86,10 +105,10 @@
       get :entry, :id => 3, :path => ['sources', 'watchers_controller.rb']
       assert_response :success
       assert_template 'entry'
-      # Line 19
+      # Line 10
       assert_tag :tag => 'th',
-                 :content => /10/,
-                 :attributes => { :class => /line-num/ },
+                 :content => '10',
+                 :attributes => { :class => 'line-num' },
                  :sibling => { :tag => 'td', :content => /WITHOUT ANY WARRANTY/ }
     end
     
@@ -109,28 +128,83 @@
     end
     
     def test_diff
-      # Full diff of changeset 4
-      get :diff, :id => 3, :rev => 4
-      assert_response :success
-      assert_template 'diff'
-      # Line 22 removed
-      assert_tag :tag => 'th',
-                 :content => /22/,
-                 :sibling => { :tag => 'td', 
-                               :attributes => { :class => /diff_out/ },
-                               :content => /def remove/ }
+      @repository.fetch_changesets
+      @repository.reload
+
+      [4, '4', 'def6d2f1254a'].each do |r1|
+        # Full diff of changeset 4
+        get :diff, :id => 3, :rev => 4
+        assert_response :success
+        assert_template 'diff'
+
+        if @repository.scm.class.client_version_above?([1, 2])
+          # Line 22 removed
+          assert_tag :tag => 'th',
+                     :content => '22',
+                     :sibling => { :tag => 'td', 
+                                   :attributes => { :class => /diff_out/ },
+                                   :content => /def remove/ }
+          assert_tag :tag => 'h2', :content => /4:def6d2f1254a/
+        end
+      end
     end
-    
+
+    def test_diff_two_revs
+      @repository.fetch_changesets
+      @repository.reload
+
+      [2, '400bb8672109', '400', 400].each do |r1|
+        [4, 'def6d2f1254a'].each do |r2|
+          get :diff, :id => 3, :rev    => r1,
+                               :rev_to => r2
+          assert_response :success
+          assert_template 'diff'
+
+          diff = assigns(:diff)
+          assert_not_nil diff
+          assert_tag :tag => 'h2', :content => /4:def6d2f1254a 2:400bb8672109/
+        end
+      end
+    end
+
     def test_annotate
       get :annotate, :id => 3, :path => ['sources', 'watchers_controller.rb']
       assert_response :success
       assert_template 'annotate'
-      # Line 23, revision 4
-      assert_tag :tag => 'th', :content => /23/,
-                 :sibling => { :tag => 'td', :child => { :tag => 'a', :content => /4/ } },
-                 :sibling => { :tag => 'td', :content => /jsmith/ },
+      # Line 23, revision 4:def6d2f1254a
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
+                 :sibling =>
+                       {
+                         :tag => 'td',
+                         :attributes => { :class => 'revision' },
+                         :child => { :tag => 'a', :content => '4:def6d2f1254a' }
+                       }
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
+                 :sibling =>
+                       {
+                          :tag     => 'td'    ,
+                          :content => 'jsmith' ,
+                          :attributes => { :class   => 'author' },
+                        }
+      assert_tag :tag => 'th',
+                 :content => '23',
+                 :attributes => { :class => 'line-num' },
                  :sibling => { :tag => 'td', :content => /watcher =/ }
     end
+
+    def test_empty_revision
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
   else
     puts "Mercurial test repository NOT FOUND. Skipping functional tests !!!"
     def test_fake; assert true end
--- a/test/functional/repositories_subversion_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/repositories_subversion_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'repositories_controller'
 
 # Re-raise errors caught by the controller.
@@ -166,6 +166,20 @@
                             }
     end
     
+    def test_invalid_revision
+      get :revision, :id => 1, :rev => 'something_weird'
+      assert_response 500
+      assert_error_tag :content => /was not found/
+    end
+
+    def test_empty_revision
+      ['', ' ', nil].each do |r|
+        get :revision, :id => 1, :rev => r
+        assert_response 500
+        assert_error_tag :content => /was not found/
+      end
+    end
+
     def test_revision_with_repository_pointing_to_a_subdirectory
       r = Project.find(1).repository
       # Changes repository url to a subdirectory
@@ -192,6 +206,8 @@
       get :diff, :id => 1, :rev => 3
       assert_response :success
       assert_template 'diff'
+
+      assert_tag :tag => 'h2', :content => /3/
     end
 
     def test_directory_diff
@@ -203,6 +219,8 @@
       assert_not_nil diff
       # 2 files modified
       assert_equal 2, Redmine::UnifiedDiff.new(diff).size
+
+      assert_tag :tag => 'h2', :content => /2:6/
     end
     
     def test_annotate
--- a/test/functional/roles_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/roles_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'roles_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/search_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/search_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'search_controller'
 
 # Re-raise errors caught by the controller.
@@ -83,7 +83,7 @@
     results = assigns(:results)
     assert_not_nil results
     assert_equal 1, results.size
-    assert results.include?(Issue.find(3))
+    assert results.include?(Issue.find(7))
   end
   
   def test_search_all_words
--- a/test/functional/settings_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/settings_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'settings_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/sys_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/sys_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'sys_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/time_entry_reports_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/time_entry_reports_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryReportsControllerTest < ActionController::TestCase
   fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
--- a/test/functional/timelog_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/timelog_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -16,7 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'timelog_controller'
 
 # Re-raise errors caught by the controller.
@@ -94,6 +94,26 @@
     assert_equal i, t.issue
     assert_equal i.project, t.project
   end
+
+  def test_post_create_with_blank_issue
+    # TODO: should POST to issues’ time log instead of project. change form
+    # and routing
+    @request.session[:user_id] = 3
+    post :create, :project_id => 1,
+                :time_entry => {:comments => 'Some work on TimelogControllerTest',
+                                # Not the default activity
+                                :activity_id => '11',
+                                :issue_id => '',
+                                :spent_on => '2008-03-14',
+                                :hours => '7.3'}
+    assert_redirected_to :action => 'index', :project_id => 'ecookbook'
+    
+    t = TimeEntry.find_by_comments('Some work on TimelogControllerTest')
+    assert_not_nil t
+    assert_equal 11, t.activity_id
+    assert_equal 7.3, t.hours
+    assert_equal 3, t.user_id
+  end
   
   def test_update
     entry = TimeEntry.find(1)
--- a/test/functional/trackers_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/trackers_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'trackers_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/users_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/users_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'users_controller'
 
 # Re-raise errors caught by the controller.
@@ -119,64 +119,108 @@
     project_ids = memberships.map(&:project_id)
     assert project_ids.include?(2) #private project admin can see
   end
-
-  context "GET :new" do
-    setup do
-      get :new
+  
+  def test_show_current_should_require_authentication
+    @request.session[:user_id] = nil
+    get :show, :id => 'current'
+    assert_response 302
+  end
+  
+  def test_show_current
+    @request.session[:user_id] = 2
+    get :show, :id => 'current'
+    assert_response :success
+    assert_template 'show'
+    assert_equal User.find(2), assigns(:user)
+  end
+  
+  def test_new
+    get :new
+    
+    assert_response :success
+    assert_template :new
+    assert assigns(:user)
+  end
+  
+  def test_create
+    Setting.bcc_recipients = '1'
+    
+    assert_difference 'User.count' do
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        post :create,
+          :user => {
+            :firstname => 'John',
+            :lastname => 'Doe',
+            :login => 'jdoe',
+            :password => 'secret',
+            :password_confirmation => 'secret',
+            :mail => 'jdoe@gmail.com',
+            :mail_notification => 'none'
+          },
+          :send_information => '1'
+      end
     end
-
-    should_assign_to :user
-    should_respond_with :success
-    should_render_template :new
+    
+    user = User.first(:order => 'id DESC')
+    assert_redirected_to :controller => 'users', :action => 'edit', :id => user.id
+    
+    assert_equal 'John', user.firstname
+    assert_equal 'Doe', user.lastname
+    assert_equal 'jdoe', user.login
+    assert_equal 'jdoe@gmail.com', user.mail
+    assert_equal 'none', user.mail_notification
+    assert user.check_password?('secret')
+    
+    mail = ActionMailer::Base.deliveries.last
+    assert_not_nil mail
+    assert_equal [user.mail], mail.bcc
+    assert mail.body.include?('secret')
+  end
+  
+  def test_create_with_failure
+    assert_no_difference 'User.count' do
+      post :create, :user => {}
+    end
+    
+    assert_response :success
+    assert_template 'new'
   end
 
-  context "POST :create" do
-    context "when successful" do
-      setup do
-        post :create, :user => {
-          :firstname => 'John',
-          :lastname => 'Doe',
-          :login => 'jdoe',
-          :password => 'test',
-          :password_confirmation => 'test',
-          :mail => 'jdoe@gmail.com'
-        },
-        :notification_option => 'none'
-      end
-
-      should_assign_to :user
-      should_respond_with :redirect
-      should_redirect_to('user edit') { {:controller => 'users', :action => 'edit', :id => User.find_by_login('jdoe')}}
-
-      should 'set the users mail notification' do
-        user = User.last
-        assert_equal 'none', user.mail_notification
-      end
-    end
-
-    context "when unsuccessful" do
-      setup do
-        post :create, :user => {}
-      end
-
-      should_assign_to :user
-      should_respond_with :success
-      should_render_template :new
-    end
-
+  def test_edit
+    get :edit, :id => 2
+    
+    assert_response :success
+    assert_template 'edit'
+    assert_equal User.find(2), assigns(:user)
   end
 
   def test_update
     ActionMailer::Base.deliveries.clear
-    put :update, :id => 2, :user => {:firstname => 'Changed'}, :notification_option => 'all', :pref => {:hide_mail => '1', :comments_sorting => 'desc'}
+    put :update, :id => 2, :user => {:firstname => 'Changed', :mail_notification => 'only_assigned'}, :pref => {:hide_mail => '1', :comments_sorting => 'desc'}
 
     user = User.find(2)
     assert_equal 'Changed', user.firstname
-    assert_equal 'all', user.mail_notification
+    assert_equal 'only_assigned', user.mail_notification
     assert_equal true, user.pref[:hide_mail]
     assert_equal 'desc', user.pref[:comments_sorting]
     assert ActionMailer::Base.deliveries.empty?
   end
+
+  def test_update_with_failure
+    assert_no_difference 'User.count' do
+      put :update, :id => 2, :user => {:firstname => ''}
+    end
+    
+    assert_response :success
+    assert_template 'edit'
+  end
+  
+  def test_update_with_group_ids_should_assign_groups
+    put :update, :id => 2, :user => {:group_ids => ['10']}
+    
+    user = User.find(2)
+    assert_equal [10], user.group_ids
+  end
   
   def test_update_with_activation_should_send_a_notification
     u = User.new(:firstname => 'Foo', :lastname => 'Bar', :mail => 'foo.bar@somenet.foo', :language => 'fr')
@@ -194,13 +238,13 @@
     assert mail.body.include?(ll('fr', :notice_account_activated))
   end
   
-  def test_updat_with_password_change_should_send_a_notification
+  def test_update_with_password_change_should_send_a_notification
     ActionMailer::Base.deliveries.clear
     Setting.bcc_recipients = '1'
     
+    put :update, :id => 2, :user => {:password => 'newpass', :password_confirmation => 'newpass'}, :send_information => '1'
     u = User.find(2)
-    put :update, :id => u.id, :user => {}, :password => 'newpass', :password_confirmation => 'newpass', :send_information => '1'
-    assert_equal User.hash_password('newpass'), u.reload.hashed_password 
+    assert u.check_password?('newpass')
     
     mail = ActionMailer::Base.deliveries.last
     assert_not_nil mail
@@ -214,10 +258,10 @@
     u.auth_source = AuthSource.find(1)
     u.save!
 
-    put :update, :id => u.id, :user => {:auth_source_id => ''}, :password => 'newpass', :password_confirmation => 'newpass'
+    put :update, :id => u.id, :user => {:auth_source_id => '', :password => 'newpass'}, :password_confirmation => 'newpass'
 
     assert_equal nil, u.reload.auth_source
-    assert_equal User.hash_password('newpass'), u.reload.hashed_password
+    assert u.check_password?('newpass')
   end
   
   def test_edit_membership
--- a/test/functional/versions_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/versions_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'versions_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/watchers_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/watchers_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'watchers_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/welcome_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/welcome_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'welcome_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/wiki_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/wiki_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'wiki_controller'
 
 # Re-raise errors caught by the controller.
@@ -108,6 +108,52 @@
     assert_equal 1, page.attachments.count
     assert_equal 'testfile.txt', page.attachments.first.filename
   end
+
+  def test_update_page
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => "my comments",
+              :text => "edited",
+              :version => 1
+            }
+        end
+      end
+    end
+    assert_redirected_to '/projects/ecookbook/wiki/Another_page'
+    
+    page = Wiki.find(1).pages.find_by_title('Another_page')
+    assert_equal "edited", page.content.text
+    assert_equal 2, page.content.version
+    assert_equal "my comments", page.content.comments
+  end
+
+  def test_update_page_with_failure
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_no_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => 'a' * 300,  # failure here, comment is too long
+              :text => 'edited',
+              :version => 1
+            }
+          end
+        end
+      end
+    assert_response :success
+    assert_template 'edit'
+    
+    assert_error_tag :descendant => {:content => /Comment is too long/}
+    assert_tag :tag => 'textarea', :attributes => {:id => 'content_text'}, :content => 'edited'
+    assert_tag :tag => 'input', :attributes => {:id => 'content_version', :value => '1'}
+  end
   
   def test_preview
     @request.session[:user_id] = 2
--- a/test/functional/wikis_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/wikis_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'wikis_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/functional/workflows_controller_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/functional/workflows_controller_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'workflows_controller'
 
 # Re-raise errors caught by the controller.
--- a/test/integration/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,47 +1,47 @@
 K 25
 svn:wc:ra_dav:version-url
 V 41
-/svn/!svn/ver/4407/trunk/test/integration
+/svn/!svn/ver/4645/trunk/test/integration
 END
 application_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 61
-/svn/!svn/ver/2779/trunk/test/integration/application_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/application_test.rb
 END
 routing_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/4372/trunk/test/integration/routing_test.rb
+/svn/!svn/ver/4545/trunk/test/integration/routing_test.rb
 END
 admin_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/4231/trunk/test/integration/admin_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/admin_test.rb
 END
 projects_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/4407/trunk/test/integration/projects_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/projects_test.rb
 END
 issues_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/4407/trunk/test/integration/issues_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/issues_test.rb
 END
 account_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/4407/trunk/test/integration/account_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/account_test.rb
 END
 layout_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/3951/trunk/test/integration/layout_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/layout_test.rb
 END
--- a/test/integration/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/integration
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:45:32.457767Z
-4407
+2011-01-06T20:36:31.826591Z
+4645
 jplang
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.435782Z
-8d01b406d4574360e2fc0ca763e457d1
-2009-06-06T10:20:27.327287Z
-2779
-jplang
+2011-01-13T14:09:08.000000Z
+b828e87474858f965d2048f5f15f8e4b
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-1967
+1972
 
 lib
 dir
@@ -69,10 +69,10 @@
 
 
 
-2010-11-19T13:04:46.192843Z
-badebe423de738346d93306b99e49615
-2010-11-06T13:22:23.662480Z
-4372
+2011-01-13T14:09:08.000000Z
+44b47f151144148d8c538e826807e204
+2010-12-20T18:06:14.811909Z
+4545
 jplang
 
 
@@ -95,7 +95,7 @@
 
 
 
-27995
+28652
 
 api_test
 dir
@@ -106,11 +106,11 @@
 
 
 
-2010-11-19T13:04:46.192843Z
-9d09badb144b1e0700cd7996b6582064
-2010-10-04T15:36:16.880272Z
-4231
-edavis10
+2011-01-13T14:09:08.000000Z
+fbd4d2a8c15f4ec209250f3395903604
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -132,7 +132,7 @@
 
 
 
-2097
+2102
 
 projects_test.rb
 file
@@ -140,11 +140,11 @@
 
 
 
-2010-11-19T13:04:46.192843Z
-c93f89c5c055ea2c9f60c8b845b3dc18
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+4b83660bc635b651f2e1d2d8ee50b84b
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -166,7 +166,7 @@
 
 
 
-1555
+1560
 
 issues_test.rb
 file
@@ -174,11 +174,11 @@
 
 
 
-2010-11-19T13:04:46.196712Z
-d074b40a90cba528fe661e18a6e69f23
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+09fa9e6798468c9b7fda21b438e16c5e
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -200,7 +200,7 @@
 
 
 
-4796
+4801
 
 account_test.rb
 file
@@ -208,11 +208,11 @@
 
 
 
-2010-11-19T13:04:46.196712Z
-8241ee2ac85e8c0bd227d80e120c2112
-2010-11-14T16:45:32.457767Z
-4407
-jplang
+2011-01-13T14:09:08.000000Z
+5cdf08841a7442b774036772bb1fc1a7
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -234,7 +234,7 @@
 
 
 
-7134
+7139
 
 layout_test.rb
 file
@@ -242,11 +242,11 @@
 
 
 
-2010-09-23T14:37:45.435782Z
-b7820d068018240701ff34e9ff0a00d9
-2010-08-19T01:28:33.455566Z
-3951
-edavis10
+2011-01-13T14:09:08.000000Z
+ff949103a3bdac892a3372cfb71047f0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -268,5 +268,5 @@
 
 
 
-621
+626
 
--- a/test/integration/.svn/text-base/account_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/account_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 begin
   require 'mocha'
--- a/test/integration/.svn/text-base/admin_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/admin_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class AdminTest < ActionController::IntegrationTest
   fixtures :all
@@ -25,7 +25,7 @@
     get "/users/new"
     assert_response :success
     assert_template "users/new"
-    post "/users/create", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en" }, :password => "psmith09", :password_confirmation => "psmith09"
+    post "/users/create", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en", :password => "psmith09", :password_confirmation => "psmith09" }
     
     user = User.find_by_login("psmith")
     assert_kind_of User, user
--- a/test/integration/.svn/text-base/application_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/application_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class ApplicationTest < ActionController::IntegrationTest
   include Redmine::I18n
--- a/test/integration/.svn/text-base/issues_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/issues_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssuesTest < ActionController::IntegrationTest
   fixtures :projects, 
--- a/test/integration/.svn/text-base/layout_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/layout_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class LayoutTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/.svn/text-base/projects_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/projects_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectsTest < ActionController::IntegrationTest
   fixtures :projects, :users, :members
--- a/test/integration/.svn/text-base/routing_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/.svn/text-base/routing_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class RoutingTest < ActionController::IntegrationTest
   context "activities" do
@@ -285,17 +285,23 @@
 
   context "users" do
     should_route :get, "/users", :controller => 'users', :action => 'index'
+    should_route :get, "/users.xml", :controller => 'users', :action => 'index', :format => 'xml'
     should_route :get, "/users/44", :controller => 'users', :action => 'show', :id => '44'
+    should_route :get, "/users/44.xml", :controller => 'users', :action => 'show', :id => '44', :format => 'xml'
+    should_route :get, "/users/current", :controller => 'users', :action => 'show', :id => 'current'
+    should_route :get, "/users/current.xml", :controller => 'users', :action => 'show', :id => 'current', :format => 'xml'
     should_route :get, "/users/new", :controller => 'users', :action => 'new'
     should_route :get, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444'
     should_route :get, "/users/222/edit/membership", :controller => 'users', :action => 'edit', :id => '222', :tab => 'membership'
 
     should_route :post, "/users", :controller => 'users', :action => 'create'
+    should_route :post, "/users.xml", :controller => 'users', :action => 'create', :format => 'xml'
     should_route :post, "/users/123/memberships", :controller => 'users', :action => 'edit_membership', :id => '123'
     should_route :post, "/users/123/memberships/55", :controller => 'users', :action => 'edit_membership', :id => '123', :membership_id => '55'
     should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12'
 
     should_route :put, "/users/444", :controller => 'users', :action => 'update', :id => '444'
+    should_route :put, "/users/444.xml", :controller => 'users', :action => 'update', :id => '444', :format => 'xml'
   end
 
   # TODO: should they all be scoped under /projects/:project_id ?
--- a/test/integration/account_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/account_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 begin
   require 'mocha'
--- a/test/integration/admin_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/admin_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class AdminTest < ActionController::IntegrationTest
   fixtures :all
@@ -25,7 +25,7 @@
     get "/users/new"
     assert_response :success
     assert_template "users/new"
-    post "/users/create", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en" }, :password => "psmith09", :password_confirmation => "psmith09"
+    post "/users/create", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en", :password => "psmith09", :password_confirmation => "psmith09" }
     
     user = User.find_by_login("psmith")
     assert_kind_of User, user
--- a/test/integration/api_test/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,41 +1,59 @@
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4397/trunk/test/integration/api_test
+/svn/!svn/ver/4645/trunk/test/integration/api_test
 END
 token_authentication_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 79
-/svn/!svn/ver/4358/trunk/test/integration/api_test/token_authentication_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/api_test/token_authentication_test.rb
+END
+users_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/4544/trunk/test/integration/api_test/users_test.rb
+END
+time_entries_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/4509/trunk/test/integration/api_test/time_entries_test.rb
 END
 http_basic_login_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 75
-/svn/!svn/ver/4360/trunk/test/integration/api_test/http_basic_login_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/api_test/http_basic_login_test.rb
 END
 projects_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/4397/trunk/test/integration/api_test/projects_test.rb
+/svn/!svn/ver/4645/trunk/test/integration/api_test/projects_test.rb
 END
 issues_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4397/trunk/test/integration/api_test/issues_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/api_test/issues_test.rb
 END
 http_basic_login_with_api_token_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 90
-/svn/!svn/ver/4363/trunk/test/integration/api_test/http_basic_login_with_api_token_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/api_test/http_basic_login_with_api_token_test.rb
+END
+news_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/!svn/ver/4509/trunk/test/integration/api_test/news_test.rb
 END
 disabled_rest_api_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svn/!svn/ver/4357/trunk/test/integration/api_test/disabled_rest_api_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/api_test/disabled_rest_api_test.rb
 END
--- a/test/integration/api_test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/integration/api_test
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-13T10:05:43.644565Z
-4397
+2011-01-06T20:36:31.826591Z
+4645
 jplang
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-65fbddeb3566ca683746b74e4cbbcedd
-2010-11-01T15:45:03.207475Z
-4358
-edavis10
+2011-01-13T14:09:08.000000Z
+7d38bb393dfe949c081c7e9ee2ea0caa
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -58,7 +58,75 @@
 
 
 
-606
+611
+
+users_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+6905251b1347f6f64707d32fa6c69fdb
+2010-12-20T17:45:09.037597Z
+4544
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9430
+
+time_entries_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+1704d0f93701094c0ebf95183e078b5f
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5254
 
 http_basic_login_test.rb
 file
@@ -66,11 +134,11 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-c8145f134a31604365baa69990b0233f
-2010-11-02T15:52:06.649052Z
-4360
-edavis10
+2011-01-13T14:09:08.000000Z
+92abe10e190b64c60afc90866336aa7c
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -92,7 +160,7 @@
 
 
 
-830
+835
 
 projects_test.rb
 file
@@ -100,10 +168,10 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-925aa948a6a6bcf558ea5270731a93e5
-2010-11-13T10:05:43.644565Z
-4397
+2011-01-13T14:09:08.000000Z
+31d08ba85b57fcdb41e06c1f367de87e
+2011-01-06T20:36:31.826591Z
+4645
 jplang
 has-props
 
@@ -126,7 +194,7 @@
 
 
 
-4223
+9611
 
 issues_test.rb
 file
@@ -134,11 +202,11 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-4d1156dc608214ea129768309dd61963
-2010-11-13T10:05:43.644565Z
-4397
-jplang
+2011-01-13T14:09:08.000000Z
+a4c38f734c93d99d52de27d41a380756
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -160,7 +228,7 @@
 
 
 
-11171
+16817
 
 http_basic_login_with_api_token_test.rb
 file
@@ -168,11 +236,11 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-48bd13d41a1e011f9bdde27bc8cf034c
-2010-11-03T16:48:23.980579Z
-4363
-edavis10
+2011-01-13T14:09:08.000000Z
+445e18c4a9d648b99d948eac4e750480
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -194,7 +262,41 @@
 
 
 
-634
+639
+
+news_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+bee85bcaab5d8fb5f90a64ad4ac32e3c
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2799
 
 disabled_rest_api_test.rb
 file
@@ -202,11 +304,11 @@
 
 
 
-2010-11-19T13:04:46.164708Z
-5294c8d805e67e246bb1535b4fe769d4
-2010-11-01T15:26:05.436106Z
-4357
-edavis10
+2011-01-13T14:09:08.000000Z
+24e8e5b1544016befedeea49b8fb5cb5
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -228,5 +330,5 @@
 
 
 
-3835
+3840
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/prop-base/news_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/prop-base/time_entries_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/prop-base/users_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/test/integration/api_test/.svn/text-base/disabled_rest_api_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/disabled_rest_api_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::DisabledRestApiTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/.svn/text-base/http_basic_login_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/http_basic_login_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::HttpBasicLoginTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/.svn/text-base/http_basic_login_with_api_token_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/http_basic_login_with_api_token_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::HttpBasicLoginWithApiTokenTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/.svn/text-base/issues_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/issues_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::IssuesTest < ActionController::IntegrationTest
   fixtures :projects,
@@ -46,10 +46,60 @@
     Setting.rest_api_enabled = '1'
   end
 
-  # Use a private project to make sure auth is really working and not just
-  # only showing public issues.
   context "/index.xml" do
+    # Use a private project to make sure auth is really working and not just
+    # only showing public issues.
     should_allow_api_authentication(:get, "/projects/private-child/issues.xml")
+    
+    should "contain metadata" do
+      get '/issues.xml'
+      
+      assert_tag :tag => 'issues',
+        :attributes => {
+          :type => 'array',
+          :total_count => assigns(:issue_count),
+          :limit => 25,
+          :offset => 0
+        }
+    end
+    
+    context "with offset and limit" do
+      should "use the params" do
+        get '/issues.xml?offset=2&limit=3'
+        
+        assert_equal 3, assigns(:limit)
+        assert_equal 2, assigns(:offset)
+        assert_tag :tag => 'issues', :children => {:count => 3, :only => {:tag => 'issue'}}
+      end
+    end
+
+    context "with nometa param" do
+      should "not contain metadata" do
+        get '/issues.xml?nometa=1'
+        
+        assert_tag :tag => 'issues',
+          :attributes => {
+            :type => 'array',
+            :total_count => nil,
+            :limit => nil,
+            :offset => nil
+          }
+      end
+    end
+
+    context "with nometa header" do
+      should "not contain metadata" do
+        get '/issues.xml', {}, {'X-Redmine-Nometa' => '1'}
+        
+        assert_tag :tag => 'issues',
+          :attributes => {
+            :type => 'array',
+            :total_count => nil,
+            :limit => nil,
+            :offset => nil
+          }
+      end
+    end
   end
 
   context "/index.json" do
@@ -74,7 +124,7 @@
       get '/issues.json?status_id=5'
 
       json = ActiveSupport::JSON.decode(response.body)
-      status_ids_used = json.collect {|j| j['status_id'] }
+      status_ids_used = json['issues'].collect {|j| j['status']['id'] }
       assert_equal 3, status_ids_used.length
       assert status_ids_used.all? {|id| id == 5 }
     end
@@ -89,6 +139,120 @@
   context "/issues/6.json" do
     should_allow_api_authentication(:get, "/issues/6.json")
   end
+  
+  context "GET /issues/:id" do
+    context "with journals" do
+      context ".xml" do
+        should "display journals" do
+          get '/issues/1.xml?include=journals'
+          
+          assert_tag :tag => 'issue',
+            :child => {
+              :tag => 'journals',
+              :attributes => { :type => 'array' },
+              :child => {
+                :tag => 'journal',
+                :attributes => { :id => '1'},
+                :child => {
+                  :tag => 'details',
+                  :attributes => { :type => 'array' },
+                  :child => {
+                    :tag => 'detail',
+                    :attributes => { :name => 'status_id' },
+                    :child => {
+                      :tag => 'old_value',
+                      :content => '1',
+                      :sibling => {
+                        :tag => 'new_value',
+                        :content => '2'
+                      }
+                    }
+                  }
+                }
+              }
+            }
+        end
+      end
+    end
+    
+    context "with custom fields" do
+      context ".xml" do
+        should "display custom fields" do
+          get '/issues/3.xml'
+          
+          assert_tag :tag => 'issue', 
+            :child => {
+              :tag => 'custom_fields',
+              :attributes => { :type => 'array' },
+              :child => {
+                :tag => 'custom_field',
+                :attributes => { :id => '1'},
+                :child => {
+                  :tag => 'value',
+                  :content => 'MySQL'
+                }
+              }
+            }
+            
+          assert_nothing_raised do
+            Hash.from_xml(response.body).to_xml
+          end
+        end
+      end
+    end
+    
+    context "with subtasks" do
+      setup do
+        @c1 = Issue.generate!(:status_id => 1, :subject => "child c1", :tracker_id => 1, :project_id => 1, :parent_issue_id => 1)
+        @c2 = Issue.generate!(:status_id => 1, :subject => "child c2", :tracker_id => 1, :project_id => 1, :parent_issue_id => 1)
+        @c3 = Issue.generate!(:status_id => 1, :subject => "child c3", :tracker_id => 1, :project_id => 1, :parent_issue_id => @c1.id)
+      end
+      
+      context ".xml" do
+        should "display children" do
+          get '/issues/1.xml?include=children'
+          
+          assert_tag :tag => 'issue', 
+            :child => {
+              :tag => 'children',
+              :children => {:count => 2},
+              :child => {
+                :tag => 'issue',
+                :attributes => {:id => @c1.id.to_s},
+                :child => {
+                  :tag => 'subject',
+                  :content => 'child c1',
+                  :sibling => {
+                    :tag => 'children',
+                    :children => {:count => 1},
+                    :child => {
+                      :tag => 'issue',
+                      :attributes => {:id => @c3.id.to_s}
+                    }
+                  }
+                }
+              }
+            }
+        end
+        
+        context ".json" do
+          should "display children" do
+            get '/issues/1.json?include=children'
+            
+            json = ActiveSupport::JSON.decode(response.body)
+            assert_equal([
+              {
+                'id' => @c1.id, 'subject' => 'child c1', 'tracker' => {'id' => 1, 'name' => 'Bug'},
+                'children' => [{ 'id' => @c3.id, 'subject' => 'child c3', 'tracker' => {'id' => 1, 'name' => 'Bug'} }]
+              },
+              { 'id' => @c2.id, 'subject' => 'child c2', 'tracker' => {'id' => 1, 'name' => 'Bug'} }
+              ],
+              json['issue']['children'])
+          end
+        end
+      end
+    end
+  end
 
   context "POST /issues.xml" do
     should_allow_api_authentication(:post,
@@ -160,7 +324,7 @@
       end
 
       json = ActiveSupport::JSON.decode(response.body)
-      assert_equal "can't be blank", json.first['subject']
+      assert json['errors'].include?(['subject', "can't be blank"])
     end
   end
 
@@ -204,6 +368,23 @@
     
   end
   
+  context "PUT /issues/3.xml with custom fields" do
+    setup do
+      @parameters = {:issue => {:custom_fields => [{'id' => '1', 'value' => 'PostgreSQL' }, {'id' => '2', 'value' => '150'}]}}
+      @headers = { :authorization => credentials('jsmith') }
+    end
+    
+    should "update custom fields" do
+      assert_no_difference('Issue.count') do
+        put '/issues/3.xml', @parameters, @headers
+      end
+      
+      issue = Issue.find(3)
+      assert_equal '150', issue.custom_value_for(2).value
+      assert_equal 'PostgreSQL', issue.custom_value_for(1).value
+    end
+  end
+  
   context "PUT /issues/6.xml with failed update" do
     setup do
       @parameters = {:issue => {:subject => ''}}
@@ -300,7 +481,7 @@
       put '/issues/6.json', @parameters, @headers
 
       json = ActiveSupport::JSON.decode(response.body)
-      assert_equal "can't be blank", json.first['subject']
+      assert json['errors'].include?(['subject', "can't be blank"])
     end
   end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/text-base/news_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,94 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+require 'pp'
+class ApiTest::NewsTest < ActionController::IntegrationTest
+  fixtures :all
+
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+
+  context "GET /news" do
+    context ".xml" do
+      should "return news" do
+        get '/news.xml'
+        
+        assert_tag :tag => 'news',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'news',
+            :child => {
+              :tag => 'id',
+              :content => '2'
+            }
+          }
+      end
+    end
+    
+    context ".json" do
+      should "return news" do
+        get '/news.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['news']
+        assert_kind_of Hash, json['news'].first
+        assert_equal 2, json['news'].first['id']
+      end
+    end
+  end
+
+  context "GET /projects/:project_id/news" do
+    context ".xml" do
+      should_allow_api_authentication(:get, "/projects/onlinestore/news.xml")
+      
+      should "return news" do
+        get '/projects/ecookbook/news.xml'
+        
+        assert_tag :tag => 'news',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'news',
+            :child => {
+              :tag => 'id',
+              :content => '2'
+            }
+          }
+      end
+    end
+    
+    context ".json" do
+      should_allow_api_authentication(:get, "/projects/onlinestore/news.json")
+      
+      should "return news" do
+        get '/projects/ecookbook/news.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['news']
+        assert_kind_of Hash, json['news'].first
+        assert_equal 2, json['news'].first['id']
+      end
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/api_test/.svn/text-base/projects_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/projects_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::ProjectsTest < ActionController::IntegrationTest
   fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
@@ -25,84 +25,234 @@
   def setup
     Setting.rest_api_enabled = '1'
   end
-    
-  def test_index
-    get '/projects.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-  end
-    
-  def test_show
-    get '/projects/1.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-    assert_tag 'custom_field', :attributes => {:name => 'Development status'}, :content => 'Stable'
-  end
-    
-  def test_show_should_not_display_hidden_custom_fields
-    ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
-    get '/projects/1.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-    assert_no_tag 'custom_field', :attributes => {:name => 'Development status'}
-  end
-    
-  def test_create
-    attributes = {:name => 'API test', :identifier => 'api-test'}
-    assert_difference 'Project.count' do
-      post '/projects.xml', {:project => attributes}, :authorization => credentials('admin')
-    end
-    
-    project = Project.first(:order => 'id DESC')
-    attributes.each do |attribute, value|
-      assert_equal value, project.send(attribute)
+  
+  context "GET /projects" do
+    context ".xml" do
+      should "return projects" do
+        get '/projects.xml'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+        
+        assert_tag :tag => 'projects',
+          :child => {:tag => 'project', :child => {:tag => 'id', :content => '1'}}
+      end
     end
 
-    assert_response :created
-    assert_equal 'application/xml', @response.content_type
-    assert_tag 'project', :child => {:tag => 'id', :content => project.id.to_s}
-  end
-  
-  def test_create_failure
-    attributes = {:name => 'API test'}
-    assert_no_difference 'Project.count' do
-      post '/projects.xml', {:project => attributes}, :authorization => credentials('admin')
-    end
-    assert_response :unprocessable_entity
-    assert_equal 'application/xml', @response.content_type
-    assert_tag :errors, :child => {:tag => 'error', :content => "Identifier can't be blank"}
-  end
-    
-  def test_update
-    attributes = {:name => 'API update'}
-    assert_no_difference 'Project.count' do
-      put '/projects/1.xml', {:project => attributes}, :authorization => credentials('jsmith')
-    end
-    assert_response :ok
-    assert_equal 'application/xml', @response.content_type
-    project = Project.find(1)
-    attributes.each do |attribute, value|
-      assert_equal value, project.send(attribute)
+    context ".json" do
+      should "return projects" do
+        get '/projects.json'
+        assert_response :success
+        assert_equal 'application/json', @response.content_type
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['projects']
+        assert_kind_of Hash, json['projects'].first
+        assert json['projects'].first.has_key?('id')
+      end
     end
   end
   
-  def test_update_failure
-    attributes = {:name => ''}
-    assert_no_difference 'Project.count' do
-      put '/projects/1.xml', {:project => attributes}, :authorization => credentials('jsmith')
+  context "GET /projects/:id" do
+    context ".xml" do
+      # TODO: A private project is needed because should_allow_api_authentication
+      # actually tests that authentication is *required*, not just allowed
+      should_allow_api_authentication(:get, "/projects/2.xml")
+    
+      should "return requested project" do
+        get '/projects/1.xml'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+        
+        assert_tag :tag => 'project',
+          :child => {:tag => 'id', :content => '1'}
+        assert_tag :tag => 'custom_field',
+          :attributes => {:name => 'Development status'}, :content => 'Stable'
+      end
+      
+      context "with hidden custom fields" do
+        setup do
+          ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
+        end
+        
+        should "not display hidden custom fields" do
+          get '/projects/1.xml'
+          assert_response :success
+          assert_equal 'application/xml', @response.content_type
+          
+          assert_no_tag 'custom_field',
+            :attributes => {:name => 'Development status'}
+        end
+      end
     end
-    assert_response :unprocessable_entity
-    assert_equal 'application/xml', @response.content_type
-    assert_tag :errors, :child => {:tag => 'error', :content => "Name can't be blank"}
+
+    context ".json" do
+      should_allow_api_authentication(:get, "/projects/2.json")
+      
+      should "return requested project" do
+        get '/projects/1.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Hash, json['project']
+        assert_equal 1, json['project']['id']
+      end
+    end
+  end
+  
+  context "POST /projects" do
+    context "with valid parameters" do
+      setup do
+        Setting.default_projects_modules = ['issue_tracking', 'repository']
+        @parameters = {:project => {:name => 'API test', :identifier => 'api-test'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:post,
+                                        '/projects.xml',
+                                        {:project => {:name => 'API test', :identifier => 'api-test'}},
+                                        {:success_code => :created})
+    
+        
+        should "create a project with the attributes" do
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+    
+          project = Project.first(:order => 'id DESC')
+          assert_equal 'API test', project.name
+          assert_equal 'api-test', project.identifier
+          assert_equal ['issue_tracking', 'repository'], project.enabled_module_names.sort
+          assert_equal Tracker.all.size, project.trackers.size
+      
+          assert_response :created
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'project', :child => {:tag => 'id', :content => project.id.to_s}
+        end
+        
+        should "accept enabled_module_names attribute" do
+          @parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
+          
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          project = Project.first(:order => 'id DESC')
+          assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
+        end
+        
+        should "accept tracker_ids attribute" do
+          @parameters[:project].merge!({:tracker_ids => [1, 3]})
+          
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          project = Project.first(:order => 'id DESC')
+          assert_equal [1, 3], project.trackers.map(&:id).sort
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:project => {:name => 'API test'}}
+      end
+
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Identifier can't be blank"}
+        end
+      end
+    end
   end
     
-  def test_destroy
-    assert_difference 'Project.count', -1 do
-      delete '/projects/2.xml', {}, :authorization => credentials('admin')
+  context "PUT /projects/:id" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:project => {:name => 'API update'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:put,
+                                        '/projects/2.xml',
+                                        {:project => {:name => 'API update'}},
+                                        {:success_code => :ok})
+        
+        should "update the project" do
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('jsmith')
+          end
+          assert_response :ok
+          assert_equal 'application/xml', @response.content_type
+          project = Project.find(2)
+          assert_equal 'API update', project.name
+        end
+        
+        should "accept enabled_module_names attribute" do
+          @parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
+          
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          assert_response :ok
+          project = Project.find(2)
+          assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
+        end
+        
+        should "accept tracker_ids attribute" do
+          @parameters[:project].merge!({:tracker_ids => [1, 3]})
+          
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          assert_response :ok
+          project = Project.find(2)
+          assert_equal [1, 3], project.trackers.map(&:id).sort
+        end
+      end
     end
-    assert_response :ok
-    assert_equal 'application/xml', @response.content_type
-    assert_nil Project.find_by_id(2)
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:project => {:name => ''}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('Project.count') do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
+        end
+      end
+    end
+  end
+  
+  context "DELETE /projects/:id" do
+    context ".xml" do
+      should_allow_api_authentication(:delete,
+                                      '/projects/2.xml',
+                                      {},
+                                      {:success_code => :ok})
+  
+      should "delete the project" do
+        assert_difference('Project.count',-1) do
+          delete '/projects/2.xml', {}, :authorization => credentials('admin')
+        end
+        assert_response :ok
+        assert_nil Project.find_by_id(2)
+      end
+    end
   end
   
   def credentials(user, password=nil)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/text-base/time_entries_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,134 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+
+class ApiTest::TimeEntriesTest < ActionController::IntegrationTest
+  fixtures :all
+  
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+  
+  context "GET /time_entries.xml" do
+    should "return time entries" do
+      get '/time_entries.xml', {}, :authorization => credentials('jsmith')
+      assert_response :success
+      assert_equal 'application/xml', @response.content_type
+      assert_tag :tag => 'time_entries',
+        :child => {:tag => 'time_entry', :child => {:tag => 'id', :content => '2'}}
+    end
+  end
+  
+  context "GET /time_entries/2.xml" do
+    should "return requested time entry" do
+      get '/time_entries/2.xml', {}, :authorization => credentials('jsmith')
+      assert_response :success
+      assert_equal 'application/xml', @response.content_type
+      assert_tag :tag => 'time_entry',
+        :child => {:tag => 'id', :content => '2'}
+    end
+  end
+  
+  context "POST /time_entries.xml" do
+    context "with issue_id" do
+      should "return create time entry" do
+        assert_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:issue_id => '1', :spent_on => '2010-12-02', :hours => '3.5', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :created
+        assert_equal 'application/xml', @response.content_type
+        
+        entry = TimeEntry.first(:order => 'id DESC')
+        assert_equal 'jsmith', entry.user.login
+        assert_equal Issue.find(1), entry.issue
+        assert_equal Project.find(1), entry.project
+        assert_equal Date.parse('2010-12-02'), entry.spent_on
+        assert_equal 3.5, entry.hours
+        assert_equal TimeEntryActivity.find(11), entry.activity
+      end
+    end
+    
+    context "with project_id" do
+      should "return create time entry" do
+        assert_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:project_id => '1', :spent_on => '2010-12-02', :hours => '3.5', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :created
+        assert_equal 'application/xml', @response.content_type
+        
+        entry = TimeEntry.first(:order => 'id DESC')
+        assert_equal 'jsmith', entry.user.login
+        assert_nil entry.issue
+        assert_equal Project.find(1), entry.project
+        assert_equal Date.parse('2010-12-02'), entry.spent_on
+        assert_equal 3.5, entry.hours
+        assert_equal TimeEntryActivity.find(11), entry.activity
+      end
+    end
+    
+    context "with invalid parameters" do
+      should "return errors" do
+        assert_no_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:project_id => '1', :spent_on => '2010-12-02', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :unprocessable_entity
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'errors', :child => {:tag => 'error', :content => "Hours can't be blank"}
+      end
+    end
+  end
+  
+  context "PUT /time_entries/2.xml" do
+    context "with valid parameters" do
+      should "update time entry" do
+        assert_no_difference 'TimeEntry.count' do
+          put '/time_entries/2.xml', {:time_entry => {:comments => 'API Update'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :ok
+        assert_equal 'API Update', TimeEntry.find(2).comments
+      end
+    end
+
+    context "with invalid parameters" do
+      should "return errors" do
+        assert_no_difference 'TimeEntry.count' do
+          put '/time_entries/2.xml', {:time_entry => {:hours => '', :comments => 'API Update'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :unprocessable_entity
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'errors', :child => {:tag => 'error', :content => "Hours can't be blank"}
+      end
+    end
+  end
+  
+  context "DELETE /time_entries/2.xml" do
+    should "destroy time entry" do
+      assert_difference 'TimeEntry.count', -1 do
+        delete '/time_entries/2.xml', {}, :authorization => credentials('jsmith')
+      end
+      assert_response :ok
+      assert_nil TimeEntry.find_by_id(2)
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/api_test/.svn/text-base/token_authentication_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/.svn/text-base/token_authentication_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::TokenAuthenticationTest < ActionController::IntegrationTest
   fixtures :all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/.svn/text-base/users_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,275 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+require 'pp'
+class ApiTest::UsersTest < ActionController::IntegrationTest
+  fixtures :users
+
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+
+  context "GET /users" do
+    should_allow_api_authentication(:get, "/users.xml")
+    should_allow_api_authentication(:get, "/users.json")
+  end
+
+  context "GET /users/2" do
+    context ".xml" do
+      should "return requested user" do
+        get '/users/2.xml'
+        
+        assert_tag :tag => 'user',
+          :child => {:tag => 'id', :content => '2'}
+      end
+    end
+
+    context ".json" do
+      should "return requested user" do
+        get '/users/2.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Hash, json['user']
+        assert_equal 2, json['user']['id']
+      end
+    end
+  end
+  
+  context "GET /users/current" do
+    context ".xml" do
+      should "require authentication" do
+        get '/users/current.xml'
+        
+        assert_response 401
+      end
+      
+      should "return current user" do
+        get '/users/current.xml', {}, :authorization => credentials('jsmith')
+        
+        assert_tag :tag => 'user',
+          :child => {:tag => 'id', :content => '2'}
+      end
+    end
+  end
+
+  context "POST /users" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret', :mail_notification => 'only_assigned'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:post,
+          '/users.xml',
+          {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret'}},
+          {:success_code => :created})
+        
+        should "create a user with the attributes" do
+          assert_difference('User.count') do
+            post '/users.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.first(:order => 'id DESC')
+          assert_equal 'foo', user.login
+          assert_equal 'Firstname', user.firstname
+          assert_equal 'Lastname', user.lastname
+          assert_equal 'foo@example.net', user.mail
+          assert_equal 'only_assigned', user.mail_notification
+          assert !user.admin?
+          assert user.check_password?('secret')
+          
+          assert_response :created
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'user', :child => {:tag => 'id', :content => user.id.to_s}
+        end
+      end
+      
+      context ".json" do
+        should_allow_api_authentication(:post,
+          '/users.json',
+          {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net'}},
+          {:success_code => :created})
+        
+        should "create a user with the attributes" do
+          assert_difference('User.count') do
+            post '/users.json', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.first(:order => 'id DESC')
+          assert_equal 'foo', user.login
+          assert_equal 'Firstname', user.firstname
+          assert_equal 'Lastname', user.lastname
+          assert_equal 'foo@example.net', user.mail
+          assert !user.admin?
+          
+          assert_response :created
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert_kind_of Hash, json['user']
+          assert_equal user.id, json['user']['id']
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'foo', :lastname => 'Lastname', :mail => 'foo'}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            post '/users.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Firstname can't be blank"}
+        end
+      end
+      
+      context ".json" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            post '/users.json', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert json.has_key?('errors')
+          assert_kind_of Array, json['errors']
+        end
+      end
+    end
+  end
+
+  context "PUT /users/2" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:put,
+          '/users/2.xml',
+          {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}},
+          {:success_code => :ok})
+        
+        should "update user with the attributes" do
+          assert_no_difference('User.count') do
+            put '/users/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.find(2)
+          assert_equal 'jsmith', user.login
+          assert_equal 'John', user.firstname
+          assert_equal 'Renamed', user.lastname
+          assert_equal 'jsmith@somenet.foo', user.mail
+          assert !user.admin?
+          
+          assert_response :ok
+        end
+      end
+      
+      context ".json" do
+        should_allow_api_authentication(:put,
+          '/users/2.json',
+          {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}},
+          {:success_code => :ok})
+        
+        should "update user with the attributes" do
+          assert_no_difference('User.count') do
+            put '/users/2.json', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.find(2)
+          assert_equal 'jsmith', user.login
+          assert_equal 'John', user.firstname
+          assert_equal 'Renamed', user.lastname
+          assert_equal 'jsmith@somenet.foo', user.mail
+          assert !user.admin?
+          
+          assert_response :ok
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'jsmith', :firstname => '', :lastname => 'Lastname', :mail => 'foo'}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            put '/users/2.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Firstname can't be blank"}
+        end
+      end
+      
+      context ".json" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            put '/users/2.json', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert json.has_key?('errors')
+          assert_kind_of Array, json['errors']
+        end
+      end
+    end
+    
+    context "DELETE /users/2" do
+      context ".xml" do
+        should "not be allowed" do
+          assert_no_difference('User.count') do
+            delete '/users/2.xml'
+          end
+          
+          assert_response :method_not_allowed
+        end
+      end
+      
+      context ".json" do
+        should "not be allowed" do
+          assert_no_difference('User.count') do
+            delete '/users/2.json'
+          end
+          
+          assert_response :method_not_allowed
+        end
+      end
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/api_test/disabled_rest_api_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/disabled_rest_api_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::DisabledRestApiTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/http_basic_login_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/http_basic_login_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::HttpBasicLoginTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/http_basic_login_with_api_token_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/http_basic_login_with_api_token_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::HttpBasicLoginWithApiTokenTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/api_test/issues_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/issues_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::IssuesTest < ActionController::IntegrationTest
   fixtures :projects,
@@ -46,10 +46,60 @@
     Setting.rest_api_enabled = '1'
   end
 
-  # Use a private project to make sure auth is really working and not just
-  # only showing public issues.
   context "/index.xml" do
+    # Use a private project to make sure auth is really working and not just
+    # only showing public issues.
     should_allow_api_authentication(:get, "/projects/private-child/issues.xml")
+    
+    should "contain metadata" do
+      get '/issues.xml'
+      
+      assert_tag :tag => 'issues',
+        :attributes => {
+          :type => 'array',
+          :total_count => assigns(:issue_count),
+          :limit => 25,
+          :offset => 0
+        }
+    end
+    
+    context "with offset and limit" do
+      should "use the params" do
+        get '/issues.xml?offset=2&limit=3'
+        
+        assert_equal 3, assigns(:limit)
+        assert_equal 2, assigns(:offset)
+        assert_tag :tag => 'issues', :children => {:count => 3, :only => {:tag => 'issue'}}
+      end
+    end
+
+    context "with nometa param" do
+      should "not contain metadata" do
+        get '/issues.xml?nometa=1'
+        
+        assert_tag :tag => 'issues',
+          :attributes => {
+            :type => 'array',
+            :total_count => nil,
+            :limit => nil,
+            :offset => nil
+          }
+      end
+    end
+
+    context "with nometa header" do
+      should "not contain metadata" do
+        get '/issues.xml', {}, {'X-Redmine-Nometa' => '1'}
+        
+        assert_tag :tag => 'issues',
+          :attributes => {
+            :type => 'array',
+            :total_count => nil,
+            :limit => nil,
+            :offset => nil
+          }
+      end
+    end
   end
 
   context "/index.json" do
@@ -74,7 +124,7 @@
       get '/issues.json?status_id=5'
 
       json = ActiveSupport::JSON.decode(response.body)
-      status_ids_used = json.collect {|j| j['status_id'] }
+      status_ids_used = json['issues'].collect {|j| j['status']['id'] }
       assert_equal 3, status_ids_used.length
       assert status_ids_used.all? {|id| id == 5 }
     end
@@ -89,6 +139,120 @@
   context "/issues/6.json" do
     should_allow_api_authentication(:get, "/issues/6.json")
   end
+  
+  context "GET /issues/:id" do
+    context "with journals" do
+      context ".xml" do
+        should "display journals" do
+          get '/issues/1.xml?include=journals'
+          
+          assert_tag :tag => 'issue',
+            :child => {
+              :tag => 'journals',
+              :attributes => { :type => 'array' },
+              :child => {
+                :tag => 'journal',
+                :attributes => { :id => '1'},
+                :child => {
+                  :tag => 'details',
+                  :attributes => { :type => 'array' },
+                  :child => {
+                    :tag => 'detail',
+                    :attributes => { :name => 'status_id' },
+                    :child => {
+                      :tag => 'old_value',
+                      :content => '1',
+                      :sibling => {
+                        :tag => 'new_value',
+                        :content => '2'
+                      }
+                    }
+                  }
+                }
+              }
+            }
+        end
+      end
+    end
+    
+    context "with custom fields" do
+      context ".xml" do
+        should "display custom fields" do
+          get '/issues/3.xml'
+          
+          assert_tag :tag => 'issue', 
+            :child => {
+              :tag => 'custom_fields',
+              :attributes => { :type => 'array' },
+              :child => {
+                :tag => 'custom_field',
+                :attributes => { :id => '1'},
+                :child => {
+                  :tag => 'value',
+                  :content => 'MySQL'
+                }
+              }
+            }
+            
+          assert_nothing_raised do
+            Hash.from_xml(response.body).to_xml
+          end
+        end
+      end
+    end
+    
+    context "with subtasks" do
+      setup do
+        @c1 = Issue.generate!(:status_id => 1, :subject => "child c1", :tracker_id => 1, :project_id => 1, :parent_issue_id => 1)
+        @c2 = Issue.generate!(:status_id => 1, :subject => "child c2", :tracker_id => 1, :project_id => 1, :parent_issue_id => 1)
+        @c3 = Issue.generate!(:status_id => 1, :subject => "child c3", :tracker_id => 1, :project_id => 1, :parent_issue_id => @c1.id)
+      end
+      
+      context ".xml" do
+        should "display children" do
+          get '/issues/1.xml?include=children'
+          
+          assert_tag :tag => 'issue', 
+            :child => {
+              :tag => 'children',
+              :children => {:count => 2},
+              :child => {
+                :tag => 'issue',
+                :attributes => {:id => @c1.id.to_s},
+                :child => {
+                  :tag => 'subject',
+                  :content => 'child c1',
+                  :sibling => {
+                    :tag => 'children',
+                    :children => {:count => 1},
+                    :child => {
+                      :tag => 'issue',
+                      :attributes => {:id => @c3.id.to_s}
+                    }
+                  }
+                }
+              }
+            }
+        end
+        
+        context ".json" do
+          should "display children" do
+            get '/issues/1.json?include=children'
+            
+            json = ActiveSupport::JSON.decode(response.body)
+            assert_equal([
+              {
+                'id' => @c1.id, 'subject' => 'child c1', 'tracker' => {'id' => 1, 'name' => 'Bug'},
+                'children' => [{ 'id' => @c3.id, 'subject' => 'child c3', 'tracker' => {'id' => 1, 'name' => 'Bug'} }]
+              },
+              { 'id' => @c2.id, 'subject' => 'child c2', 'tracker' => {'id' => 1, 'name' => 'Bug'} }
+              ],
+              json['issue']['children'])
+          end
+        end
+      end
+    end
+  end
 
   context "POST /issues.xml" do
     should_allow_api_authentication(:post,
@@ -160,7 +324,7 @@
       end
 
       json = ActiveSupport::JSON.decode(response.body)
-      assert_equal "can't be blank", json.first['subject']
+      assert json['errors'].include?(['subject', "can't be blank"])
     end
   end
 
@@ -204,6 +368,23 @@
     
   end
   
+  context "PUT /issues/3.xml with custom fields" do
+    setup do
+      @parameters = {:issue => {:custom_fields => [{'id' => '1', 'value' => 'PostgreSQL' }, {'id' => '2', 'value' => '150'}]}}
+      @headers = { :authorization => credentials('jsmith') }
+    end
+    
+    should "update custom fields" do
+      assert_no_difference('Issue.count') do
+        put '/issues/3.xml', @parameters, @headers
+      end
+      
+      issue = Issue.find(3)
+      assert_equal '150', issue.custom_value_for(2).value
+      assert_equal 'PostgreSQL', issue.custom_value_for(1).value
+    end
+  end
+  
   context "PUT /issues/6.xml with failed update" do
     setup do
       @parameters = {:issue => {:subject => ''}}
@@ -300,7 +481,7 @@
       put '/issues/6.json', @parameters, @headers
 
       json = ActiveSupport::JSON.decode(response.body)
-      assert_equal "can't be blank", json.first['subject']
+      assert json['errors'].include?(['subject', "can't be blank"])
     end
   end
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/news_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,94 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+require 'pp'
+class ApiTest::NewsTest < ActionController::IntegrationTest
+  fixtures :all
+
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+
+  context "GET /news" do
+    context ".xml" do
+      should "return news" do
+        get '/news.xml'
+        
+        assert_tag :tag => 'news',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'news',
+            :child => {
+              :tag => 'id',
+              :content => '2'
+            }
+          }
+      end
+    end
+    
+    context ".json" do
+      should "return news" do
+        get '/news.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['news']
+        assert_kind_of Hash, json['news'].first
+        assert_equal 2, json['news'].first['id']
+      end
+    end
+  end
+
+  context "GET /projects/:project_id/news" do
+    context ".xml" do
+      should_allow_api_authentication(:get, "/projects/onlinestore/news.xml")
+      
+      should "return news" do
+        get '/projects/ecookbook/news.xml'
+        
+        assert_tag :tag => 'news',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'news',
+            :child => {
+              :tag => 'id',
+              :content => '2'
+            }
+          }
+      end
+    end
+    
+    context ".json" do
+      should_allow_api_authentication(:get, "/projects/onlinestore/news.json")
+      
+      should "return news" do
+        get '/projects/ecookbook/news.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['news']
+        assert_kind_of Hash, json['news'].first
+        assert_equal 2, json['news'].first['id']
+      end
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/api_test/projects_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/projects_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::ProjectsTest < ActionController::IntegrationTest
   fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
@@ -25,84 +25,234 @@
   def setup
     Setting.rest_api_enabled = '1'
   end
-    
-  def test_index
-    get '/projects.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-  end
-    
-  def test_show
-    get '/projects/1.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-    assert_tag 'custom_field', :attributes => {:name => 'Development status'}, :content => 'Stable'
-  end
-    
-  def test_show_should_not_display_hidden_custom_fields
-    ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
-    get '/projects/1.xml'
-    assert_response :success
-    assert_equal 'application/xml', @response.content_type
-    assert_no_tag 'custom_field', :attributes => {:name => 'Development status'}
-  end
-    
-  def test_create
-    attributes = {:name => 'API test', :identifier => 'api-test'}
-    assert_difference 'Project.count' do
-      post '/projects.xml', {:project => attributes}, :authorization => credentials('admin')
-    end
-    
-    project = Project.first(:order => 'id DESC')
-    attributes.each do |attribute, value|
-      assert_equal value, project.send(attribute)
+  
+  context "GET /projects" do
+    context ".xml" do
+      should "return projects" do
+        get '/projects.xml'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+        
+        assert_tag :tag => 'projects',
+          :child => {:tag => 'project', :child => {:tag => 'id', :content => '1'}}
+      end
     end
 
-    assert_response :created
-    assert_equal 'application/xml', @response.content_type
-    assert_tag 'project', :child => {:tag => 'id', :content => project.id.to_s}
-  end
-  
-  def test_create_failure
-    attributes = {:name => 'API test'}
-    assert_no_difference 'Project.count' do
-      post '/projects.xml', {:project => attributes}, :authorization => credentials('admin')
-    end
-    assert_response :unprocessable_entity
-    assert_equal 'application/xml', @response.content_type
-    assert_tag :errors, :child => {:tag => 'error', :content => "Identifier can't be blank"}
-  end
-    
-  def test_update
-    attributes = {:name => 'API update'}
-    assert_no_difference 'Project.count' do
-      put '/projects/1.xml', {:project => attributes}, :authorization => credentials('jsmith')
-    end
-    assert_response :ok
-    assert_equal 'application/xml', @response.content_type
-    project = Project.find(1)
-    attributes.each do |attribute, value|
-      assert_equal value, project.send(attribute)
+    context ".json" do
+      should "return projects" do
+        get '/projects.json'
+        assert_response :success
+        assert_equal 'application/json', @response.content_type
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Array, json['projects']
+        assert_kind_of Hash, json['projects'].first
+        assert json['projects'].first.has_key?('id')
+      end
     end
   end
   
-  def test_update_failure
-    attributes = {:name => ''}
-    assert_no_difference 'Project.count' do
-      put '/projects/1.xml', {:project => attributes}, :authorization => credentials('jsmith')
+  context "GET /projects/:id" do
+    context ".xml" do
+      # TODO: A private project is needed because should_allow_api_authentication
+      # actually tests that authentication is *required*, not just allowed
+      should_allow_api_authentication(:get, "/projects/2.xml")
+    
+      should "return requested project" do
+        get '/projects/1.xml'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+        
+        assert_tag :tag => 'project',
+          :child => {:tag => 'id', :content => '1'}
+        assert_tag :tag => 'custom_field',
+          :attributes => {:name => 'Development status'}, :content => 'Stable'
+      end
+      
+      context "with hidden custom fields" do
+        setup do
+          ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
+        end
+        
+        should "not display hidden custom fields" do
+          get '/projects/1.xml'
+          assert_response :success
+          assert_equal 'application/xml', @response.content_type
+          
+          assert_no_tag 'custom_field',
+            :attributes => {:name => 'Development status'}
+        end
+      end
     end
-    assert_response :unprocessable_entity
-    assert_equal 'application/xml', @response.content_type
-    assert_tag :errors, :child => {:tag => 'error', :content => "Name can't be blank"}
+
+    context ".json" do
+      should_allow_api_authentication(:get, "/projects/2.json")
+      
+      should "return requested project" do
+        get '/projects/1.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Hash, json['project']
+        assert_equal 1, json['project']['id']
+      end
+    end
+  end
+  
+  context "POST /projects" do
+    context "with valid parameters" do
+      setup do
+        Setting.default_projects_modules = ['issue_tracking', 'repository']
+        @parameters = {:project => {:name => 'API test', :identifier => 'api-test'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:post,
+                                        '/projects.xml',
+                                        {:project => {:name => 'API test', :identifier => 'api-test'}},
+                                        {:success_code => :created})
+    
+        
+        should "create a project with the attributes" do
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+    
+          project = Project.first(:order => 'id DESC')
+          assert_equal 'API test', project.name
+          assert_equal 'api-test', project.identifier
+          assert_equal ['issue_tracking', 'repository'], project.enabled_module_names.sort
+          assert_equal Tracker.all.size, project.trackers.size
+      
+          assert_response :created
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'project', :child => {:tag => 'id', :content => project.id.to_s}
+        end
+        
+        should "accept enabled_module_names attribute" do
+          @parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
+          
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          project = Project.first(:order => 'id DESC')
+          assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
+        end
+        
+        should "accept tracker_ids attribute" do
+          @parameters[:project].merge!({:tracker_ids => [1, 3]})
+          
+          assert_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          project = Project.first(:order => 'id DESC')
+          assert_equal [1, 3], project.trackers.map(&:id).sort
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:project => {:name => 'API test'}}
+      end
+
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('Project.count') do
+            post '/projects.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Identifier can't be blank"}
+        end
+      end
+    end
   end
     
-  def test_destroy
-    assert_difference 'Project.count', -1 do
-      delete '/projects/2.xml', {}, :authorization => credentials('admin')
+  context "PUT /projects/:id" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:project => {:name => 'API update'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:put,
+                                        '/projects/2.xml',
+                                        {:project => {:name => 'API update'}},
+                                        {:success_code => :ok})
+        
+        should "update the project" do
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('jsmith')
+          end
+          assert_response :ok
+          assert_equal 'application/xml', @response.content_type
+          project = Project.find(2)
+          assert_equal 'API update', project.name
+        end
+        
+        should "accept enabled_module_names attribute" do
+          @parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
+          
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          assert_response :ok
+          project = Project.find(2)
+          assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
+        end
+        
+        should "accept tracker_ids attribute" do
+          @parameters[:project].merge!({:tracker_ids => [1, 3]})
+          
+          assert_no_difference 'Project.count' do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          assert_response :ok
+          project = Project.find(2)
+          assert_equal [1, 3], project.trackers.map(&:id).sort
+        end
+      end
     end
-    assert_response :ok
-    assert_equal 'application/xml', @response.content_type
-    assert_nil Project.find_by_id(2)
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:project => {:name => ''}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('Project.count') do
+            put '/projects/2.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
+        end
+      end
+    end
+  end
+  
+  context "DELETE /projects/:id" do
+    context ".xml" do
+      should_allow_api_authentication(:delete,
+                                      '/projects/2.xml',
+                                      {},
+                                      {:success_code => :ok})
+  
+      should "delete the project" do
+        assert_difference('Project.count',-1) do
+          delete '/projects/2.xml', {}, :authorization => credentials('admin')
+        end
+        assert_response :ok
+        assert_nil Project.find_by_id(2)
+      end
+    end
   end
   
   def credentials(user, password=nil)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/time_entries_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,134 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+
+class ApiTest::TimeEntriesTest < ActionController::IntegrationTest
+  fixtures :all
+  
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+  
+  context "GET /time_entries.xml" do
+    should "return time entries" do
+      get '/time_entries.xml', {}, :authorization => credentials('jsmith')
+      assert_response :success
+      assert_equal 'application/xml', @response.content_type
+      assert_tag :tag => 'time_entries',
+        :child => {:tag => 'time_entry', :child => {:tag => 'id', :content => '2'}}
+    end
+  end
+  
+  context "GET /time_entries/2.xml" do
+    should "return requested time entry" do
+      get '/time_entries/2.xml', {}, :authorization => credentials('jsmith')
+      assert_response :success
+      assert_equal 'application/xml', @response.content_type
+      assert_tag :tag => 'time_entry',
+        :child => {:tag => 'id', :content => '2'}
+    end
+  end
+  
+  context "POST /time_entries.xml" do
+    context "with issue_id" do
+      should "return create time entry" do
+        assert_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:issue_id => '1', :spent_on => '2010-12-02', :hours => '3.5', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :created
+        assert_equal 'application/xml', @response.content_type
+        
+        entry = TimeEntry.first(:order => 'id DESC')
+        assert_equal 'jsmith', entry.user.login
+        assert_equal Issue.find(1), entry.issue
+        assert_equal Project.find(1), entry.project
+        assert_equal Date.parse('2010-12-02'), entry.spent_on
+        assert_equal 3.5, entry.hours
+        assert_equal TimeEntryActivity.find(11), entry.activity
+      end
+    end
+    
+    context "with project_id" do
+      should "return create time entry" do
+        assert_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:project_id => '1', :spent_on => '2010-12-02', :hours => '3.5', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :created
+        assert_equal 'application/xml', @response.content_type
+        
+        entry = TimeEntry.first(:order => 'id DESC')
+        assert_equal 'jsmith', entry.user.login
+        assert_nil entry.issue
+        assert_equal Project.find(1), entry.project
+        assert_equal Date.parse('2010-12-02'), entry.spent_on
+        assert_equal 3.5, entry.hours
+        assert_equal TimeEntryActivity.find(11), entry.activity
+      end
+    end
+    
+    context "with invalid parameters" do
+      should "return errors" do
+        assert_no_difference 'TimeEntry.count' do
+          post '/time_entries.xml', {:time_entry => {:project_id => '1', :spent_on => '2010-12-02', :activity_id => '11'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :unprocessable_entity
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'errors', :child => {:tag => 'error', :content => "Hours can't be blank"}
+      end
+    end
+  end
+  
+  context "PUT /time_entries/2.xml" do
+    context "with valid parameters" do
+      should "update time entry" do
+        assert_no_difference 'TimeEntry.count' do
+          put '/time_entries/2.xml', {:time_entry => {:comments => 'API Update'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :ok
+        assert_equal 'API Update', TimeEntry.find(2).comments
+      end
+    end
+
+    context "with invalid parameters" do
+      should "return errors" do
+        assert_no_difference 'TimeEntry.count' do
+          put '/time_entries/2.xml', {:time_entry => {:hours => '', :comments => 'API Update'}}, :authorization => credentials('jsmith')
+        end
+        assert_response :unprocessable_entity
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'errors', :child => {:tag => 'error', :content => "Hours can't be blank"}
+      end
+    end
+  end
+  
+  context "DELETE /time_entries/2.xml" do
+    should "destroy time entry" do
+      assert_difference 'TimeEntry.count', -1 do
+        delete '/time_entries/2.xml', {}, :authorization => credentials('jsmith')
+      end
+      assert_response :ok
+      assert_nil TimeEntry.find_by_id(2)
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/api_test/token_authentication_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/api_test/token_authentication_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../../test_helper"
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApiTest::TokenAuthenticationTest < ActionController::IntegrationTest
   fixtures :all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/api_test/users_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,275 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+require 'pp'
+class ApiTest::UsersTest < ActionController::IntegrationTest
+  fixtures :users
+
+  def setup
+    Setting.rest_api_enabled = '1'
+  end
+
+  context "GET /users" do
+    should_allow_api_authentication(:get, "/users.xml")
+    should_allow_api_authentication(:get, "/users.json")
+  end
+
+  context "GET /users/2" do
+    context ".xml" do
+      should "return requested user" do
+        get '/users/2.xml'
+        
+        assert_tag :tag => 'user',
+          :child => {:tag => 'id', :content => '2'}
+      end
+    end
+
+    context ".json" do
+      should "return requested user" do
+        get '/users/2.json'
+        
+        json = ActiveSupport::JSON.decode(response.body)
+        assert_kind_of Hash, json
+        assert_kind_of Hash, json['user']
+        assert_equal 2, json['user']['id']
+      end
+    end
+  end
+  
+  context "GET /users/current" do
+    context ".xml" do
+      should "require authentication" do
+        get '/users/current.xml'
+        
+        assert_response 401
+      end
+      
+      should "return current user" do
+        get '/users/current.xml', {}, :authorization => credentials('jsmith')
+        
+        assert_tag :tag => 'user',
+          :child => {:tag => 'id', :content => '2'}
+      end
+    end
+  end
+
+  context "POST /users" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret', :mail_notification => 'only_assigned'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:post,
+          '/users.xml',
+          {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net', :password => 'secret'}},
+          {:success_code => :created})
+        
+        should "create a user with the attributes" do
+          assert_difference('User.count') do
+            post '/users.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.first(:order => 'id DESC')
+          assert_equal 'foo', user.login
+          assert_equal 'Firstname', user.firstname
+          assert_equal 'Lastname', user.lastname
+          assert_equal 'foo@example.net', user.mail
+          assert_equal 'only_assigned', user.mail_notification
+          assert !user.admin?
+          assert user.check_password?('secret')
+          
+          assert_response :created
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'user', :child => {:tag => 'id', :content => user.id.to_s}
+        end
+      end
+      
+      context ".json" do
+        should_allow_api_authentication(:post,
+          '/users.json',
+          {:user => {:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', :mail => 'foo@example.net'}},
+          {:success_code => :created})
+        
+        should "create a user with the attributes" do
+          assert_difference('User.count') do
+            post '/users.json', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.first(:order => 'id DESC')
+          assert_equal 'foo', user.login
+          assert_equal 'Firstname', user.firstname
+          assert_equal 'Lastname', user.lastname
+          assert_equal 'foo@example.net', user.mail
+          assert !user.admin?
+          
+          assert_response :created
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert_kind_of Hash, json['user']
+          assert_equal user.id, json['user']['id']
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'foo', :lastname => 'Lastname', :mail => 'foo'}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            post '/users.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Firstname can't be blank"}
+        end
+      end
+      
+      context ".json" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            post '/users.json', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert json.has_key?('errors')
+          assert_kind_of Array, json['errors']
+        end
+      end
+    end
+  end
+
+  context "PUT /users/2" do
+    context "with valid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}}
+      end
+      
+      context ".xml" do
+        should_allow_api_authentication(:put,
+          '/users/2.xml',
+          {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}},
+          {:success_code => :ok})
+        
+        should "update user with the attributes" do
+          assert_no_difference('User.count') do
+            put '/users/2.xml', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.find(2)
+          assert_equal 'jsmith', user.login
+          assert_equal 'John', user.firstname
+          assert_equal 'Renamed', user.lastname
+          assert_equal 'jsmith@somenet.foo', user.mail
+          assert !user.admin?
+          
+          assert_response :ok
+        end
+      end
+      
+      context ".json" do
+        should_allow_api_authentication(:put,
+          '/users/2.json',
+          {:user => {:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed', :mail => 'jsmith@somenet.foo'}},
+          {:success_code => :ok})
+        
+        should "update user with the attributes" do
+          assert_no_difference('User.count') do
+            put '/users/2.json', @parameters, :authorization => credentials('admin')
+          end
+          
+          user = User.find(2)
+          assert_equal 'jsmith', user.login
+          assert_equal 'John', user.firstname
+          assert_equal 'Renamed', user.lastname
+          assert_equal 'jsmith@somenet.foo', user.mail
+          assert !user.admin?
+          
+          assert_response :ok
+        end
+      end
+    end
+    
+    context "with invalid parameters" do
+      setup do
+        @parameters = {:user => {:login => 'jsmith', :firstname => '', :lastname => 'Lastname', :mail => 'foo'}}
+      end
+      
+      context ".xml" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            put '/users/2.xml', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/xml', @response.content_type
+          assert_tag 'errors', :child => {:tag => 'error', :content => "Firstname can't be blank"}
+        end
+      end
+      
+      context ".json" do
+        should "return errors" do
+          assert_no_difference('User.count') do
+            put '/users/2.json', @parameters, :authorization => credentials('admin')
+          end
+            
+          assert_response :unprocessable_entity
+          assert_equal 'application/json', @response.content_type
+          json = ActiveSupport::JSON.decode(response.body)
+          assert_kind_of Hash, json
+          assert json.has_key?('errors')
+          assert_kind_of Array, json['errors']
+        end
+      end
+    end
+    
+    context "DELETE /users/2" do
+      context ".xml" do
+        should "not be allowed" do
+          assert_no_difference('User.count') do
+            delete '/users/2.xml'
+          end
+          
+          assert_response :method_not_allowed
+        end
+      end
+      
+      context ".json" do
+        should "not be allowed" do
+          assert_no_difference('User.count') do
+            delete '/users/2.json'
+          end
+          
+          assert_response :method_not_allowed
+        end
+      end
+    end
+  end
+  
+  def credentials(user, password=nil)
+    ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
+  end
+end
--- a/test/integration/application_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/application_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class ApplicationTest < ActionController::IntegrationTest
   include Redmine::I18n
--- a/test/integration/issues_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/issues_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssuesTest < ActionController::IntegrationTest
   fixtures :projects, 
--- a/test/integration/layout_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/layout_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,4 @@
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class LayoutTest < ActionController::IntegrationTest
   fixtures :all
--- a/test/integration/lib/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 45
-/svn/!svn/ver/2855/trunk/test/integration/lib
+/svn/!svn/ver/4560/trunk/test/integration/lib
 END
--- a/test/integration/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/integration/lib
 http://redmine.rubyforge.org/svn
 
 
 
-2009-09-04T03:24:20.372895Z
-2855
-edavis10
+2010-12-23T09:42:33.439630Z
+4560
+jplang
 
 
 
--- a/test/integration/lib/redmine/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/redmine/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,17 @@
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/2855/trunk/test/integration/lib/redmine
+/svn/!svn/ver/4560/trunk/test/integration/lib/redmine
 END
 menu_manager_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 74
-/svn/!svn/ver/2855/trunk/test/integration/lib/redmine/menu_manager_test.rb
+/svn/!svn/ver/4509/trunk/test/integration/lib/redmine/menu_manager_test.rb
 END
+themes_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4560/trunk/test/integration/lib/redmine/themes_test.rb
+END
--- a/test/integration/lib/redmine/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/redmine/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/integration/lib/redmine
 http://redmine.rubyforge.org/svn
 
 
 
-2009-09-04T03:24:20.372895Z
-2855
-edavis10
+2010-12-23T09:42:33.439630Z
+4560
+jplang
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.439778Z
-2a5952348b30cbae983b5e3137b48ff0
-2009-09-04T03:24:20.372895Z
-2855
-edavis10
+2011-01-13T14:09:08.000000Z
+302d4ea0c07530cc9d48b971849df66d
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,5 +58,39 @@
 
 
 
-3892
+3897
 
+themes_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+782f5d377a79dea8a580dcd902121b37
+2010-12-23T09:42:33.439630Z
+4560
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2236
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/lib/redmine/.svn/prop-base/themes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/test/integration/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../../test_helper"
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class MenuManagerTest < ActionController::IntegrationTest
   include Redmine::I18n
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/lib/redmine/.svn/text-base/themes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class ThemesTest < ActionController::IntegrationTest
+  fixtures :all
+  
+  def setup
+    @theme = Redmine::Themes.themes.last
+    Setting.ui_theme = @theme.id
+  end
+  
+  def teardown
+    Setting.ui_theme = ''
+  end
+  
+  def test_application_css
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'link',
+      :attributes => {:href => %r{^/themes/#{@theme.dir}/stylesheets/application.css}}
+  end
+  
+  def test_without_theme_js
+    get '/'
+    
+    assert_response :success
+    assert_no_tag :tag => 'script',
+      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
+  end
+  
+  def test_with_theme_js
+    # Simulates a theme.js
+    @theme.javascripts << 'theme'
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'script',
+      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
+        
+  ensure
+    @theme.javascripts.delete 'theme'
+  end
+  
+  def test_with_sub_uri
+    Redmine::Utils.relative_url_root = '/foo'
+    @theme.javascripts << 'theme'
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'link',
+      :attributes => {:href => %r{^/foo/themes/#{@theme.dir}/stylesheets/application.css}}
+    assert_tag :tag => 'script',
+      :attributes => {:src => %r{^/foo/themes/#{@theme.dir}/javascripts/theme.js}}
+  
+  ensure
+    Redmine::Utils.relative_url_root = ''
+  end
+end
--- a/test/integration/lib/redmine/menu_manager_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/lib/redmine/menu_manager_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../../../test_helper"
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class MenuManagerTest < ActionController::IntegrationTest
   include Redmine::I18n
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/integration/lib/redmine/themes_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,75 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class ThemesTest < ActionController::IntegrationTest
+  fixtures :all
+  
+  def setup
+    @theme = Redmine::Themes.themes.last
+    Setting.ui_theme = @theme.id
+  end
+  
+  def teardown
+    Setting.ui_theme = ''
+  end
+  
+  def test_application_css
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'link',
+      :attributes => {:href => %r{^/themes/#{@theme.dir}/stylesheets/application.css}}
+  end
+  
+  def test_without_theme_js
+    get '/'
+    
+    assert_response :success
+    assert_no_tag :tag => 'script',
+      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
+  end
+  
+  def test_with_theme_js
+    # Simulates a theme.js
+    @theme.javascripts << 'theme'
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'script',
+      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
+        
+  ensure
+    @theme.javascripts.delete 'theme'
+  end
+  
+  def test_with_sub_uri
+    Redmine::Utils.relative_url_root = '/foo'
+    @theme.javascripts << 'theme'
+    get '/'
+    
+    assert_response :success
+    assert_tag :tag => 'link',
+      :attributes => {:href => %r{^/foo/themes/#{@theme.dir}/stylesheets/application.css}}
+    assert_tag :tag => 'script',
+      :attributes => {:src => %r{^/foo/themes/#{@theme.dir}/javascripts/theme.js}}
+  
+  ensure
+    Redmine::Utils.relative_url_root = ''
+  end
+end
--- a/test/integration/projects_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/projects_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectsTest < ActionController::IntegrationTest
   fixtures :projects, :users, :members
--- a/test/integration/routing_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/integration/routing_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require "#{File.dirname(__FILE__)}/../test_helper"
+require File.expand_path('../../test_helper', __FILE__)
 
 class RoutingTest < ActionController::IntegrationTest
   context "activities" do
@@ -285,17 +285,23 @@
 
   context "users" do
     should_route :get, "/users", :controller => 'users', :action => 'index'
+    should_route :get, "/users.xml", :controller => 'users', :action => 'index', :format => 'xml'
     should_route :get, "/users/44", :controller => 'users', :action => 'show', :id => '44'
+    should_route :get, "/users/44.xml", :controller => 'users', :action => 'show', :id => '44', :format => 'xml'
+    should_route :get, "/users/current", :controller => 'users', :action => 'show', :id => 'current'
+    should_route :get, "/users/current.xml", :controller => 'users', :action => 'show', :id => 'current', :format => 'xml'
     should_route :get, "/users/new", :controller => 'users', :action => 'new'
     should_route :get, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444'
     should_route :get, "/users/222/edit/membership", :controller => 'users', :action => 'edit', :id => '222', :tab => 'membership'
 
     should_route :post, "/users", :controller => 'users', :action => 'create'
+    should_route :post, "/users.xml", :controller => 'users', :action => 'create', :format => 'xml'
     should_route :post, "/users/123/memberships", :controller => 'users', :action => 'edit_membership', :id => '123'
     should_route :post, "/users/123/memberships/55", :controller => 'users', :action => 'edit_membership', :id => '123', :membership_id => '55'
     should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12'
 
     should_route :put, "/users/444", :controller => 'users', :action => 'update', :id => '444'
+    should_route :put, "/users/444.xml", :controller => 'users', :action => 'update', :id => '444', :format => 'xml'
   end
 
   # TODO: should they all be scoped under /projects/:project_id ?
--- a/test/mocks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/mocks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/mocks
 http://redmine.rubyforge.org/svn
 
--- a/test/mocks/development/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/mocks/development/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/mocks/development
 http://redmine.rubyforge.org/svn
 
--- a/test/mocks/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/mocks/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/mocks/test
 http://redmine.rubyforge.org/svn
 
--- a/test/test_helper.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/test_helper.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -59,7 +59,7 @@
   end
   
   def uploaded_test_file(name, mime)
-    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime)
+    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime, true)
   end
 
   # Mock out a file
@@ -115,7 +115,7 @@
   end
   
   def assert_error_tag(options={})
-    assert_tag({:tag => 'p', :attributes => { :id => 'errorExplanation' }}.merge(options))
+    assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
   end
 
   # Shoulda macros
@@ -361,6 +361,20 @@
       end
     end
     
+    context "should allow key based auth using X-Redmine-API-Key header for #{http_method} #{url}" do
+      setup do
+        @user = User.generate_with_protected!(:admin => true)
+        @token = Token.generate!(:user => @user, :action => 'api')
+        send(http_method, url, parameters, {'X-Redmine-API-Key' => @token.value.to_s})
+      end
+      
+      should_respond_with success_code
+      should_respond_with_content_type_based_on_url(url)
+      should_be_a_valid_response_string_based_on_url(url)
+      should "login as the user" do
+        assert_equal @user, User.current
+      end
+    end
   end
 
   # Uses should_respond_with_content_type based on what's in the url:
--- a/test/unit/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,341 +1,341 @@
 K 25
 svn:wc:ra_dav:version-url
 V 34
-/svn/!svn/ver/4408/trunk/test/unit
+/svn/!svn/ver/4705/trunk/test/unit
 END
 document_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/3095/trunk/test/unit/document_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/document_test.rb
 END
 token_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/2895/trunk/test/unit/token_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/token_test.rb
 END
 repository_git_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/4189/trunk/test/unit/repository_git_test.rb
+/svn/!svn/ver/4703/trunk/test/unit/repository_git_test.rb
 END
 repository_mercurial_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 63
-/svn/!svn/ver/2887/trunk/test/unit/repository_mercurial_test.rb
+/svn/!svn/ver/4704/trunk/test/unit/repository_mercurial_test.rb
 END
 issue_relation_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/3729/trunk/test/unit/issue_relation_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_relation_test.rb
 END
 version_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4072/trunk/test/unit/version_test.rb
+/svn/!svn/ver/4597/trunk/test/unit/version_test.rb
 END
 enumeration_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 54
-/svn/!svn/ver/3123/trunk/test/unit/enumeration_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/enumeration_test.rb
 END
 board_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/2887/trunk/test/unit/board_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/board_test.rb
 END
 issue_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/4408/trunk/test/unit/issue_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_test.rb
 END
 issue_status_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/3881/trunk/test/unit/issue_status_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_status_test.rb
 END
 time_entry_activity_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/2945/trunk/test/unit/time_entry_activity_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/time_entry_activity_test.rb
 END
 tracker_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/3188/trunk/test/unit/tracker_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/tracker_test.rb
 END
 repository_subversion_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/3800/trunk/test/unit/repository_subversion_test.rb
+/svn/!svn/ver/4703/trunk/test/unit/repository_subversion_test.rb
 END
 repository_bazaar_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 60
-/svn/!svn/ver/2887/trunk/test/unit/repository_bazaar_test.rb
+/svn/!svn/ver/4613/trunk/test/unit/repository_bazaar_test.rb
+END
+changeset_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4613/trunk/test/unit/changeset_test.rb
 END
 role_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/3363/trunk/test/unit/role_test.rb
-END
-changeset_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 52
-/svn/!svn/ver/3466/trunk/test/unit/changeset_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/role_test.rb
 END
 comment_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/2895/trunk/test/unit/comment_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/comment_test.rb
 END
 wiki_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/3632/trunk/test/unit/wiki_test.rb
+/svn/!svn/ver/4680/trunk/test/unit/wiki_test.rb
 END
 calendar_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/2887/trunk/test/unit/calendar_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/calendar_test.rb
 END
 journal_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/2887/trunk/test/unit/journal_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/journal_test.rb
 END
 document_category_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 60
-/svn/!svn/ver/3100/trunk/test/unit/document_category_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/document_category_test.rb
 END
 default_data_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/2887/trunk/test/unit/default_data_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/default_data_test.rb
 END
 user_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/4233/trunk/test/unit/user_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/user_test.rb
+END
+time_entry_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4509/trunk/test/unit/time_entry_test.rb
+END
+repository_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4548/trunk/test/unit/repository_test.rb
 END
 mail_handler_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/4404/trunk/test/unit/mail_handler_test.rb
+/svn/!svn/ver/4576/trunk/test/unit/mail_handler_test.rb
 END
-repository_test.rb
+journal_observer_test.rb
 K 25
 svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/4221/trunk/test/unit/repository_test.rb
+V 59
+/svn/!svn/ver/4509/trunk/test/unit/journal_observer_test.rb
 END
-time_entry_test.rb
+auth_source_ldap_test.rb
 K 25
 svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/4087/trunk/test/unit/time_entry_test.rb
+V 59
+/svn/!svn/ver/4509/trunk/test/unit/auth_source_ldap_test.rb
 END
 principal_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/3152/trunk/test/unit/principal_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/principal_test.rb
 END
-auth_source_ldap_test.rb
+repository_filesystem_test.rb
 K 25
 svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/3492/trunk/test/unit/auth_source_ldap_test.rb
-END
-journal_observer_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/4221/trunk/test/unit/journal_observer_test.rb
+V 64
+/svn/!svn/ver/4509/trunk/test/unit/repository_filesystem_test.rb
 END
 project_nested_set_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 61
-/svn/!svn/ver/3354/trunk/test/unit/project_nested_set_test.rb
-END
-repository_filesystem_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/2887/trunk/test/unit/repository_filesystem_test.rb
+/svn/!svn/ver/4650/trunk/test/unit/project_nested_set_test.rb
 END
 wiki_redirect_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 56
-/svn/!svn/ver/2887/trunk/test/unit/wiki_redirect_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/wiki_redirect_test.rb
 END
 message_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/2887/trunk/test/unit/message_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/message_test.rb
 END
 issue_category_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/2887/trunk/test/unit/issue_category_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_category_test.rb
 END
 attachment_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 53
-/svn/!svn/ver/3773/trunk/test/unit/attachment_test.rb
+/svn/!svn/ver/4598/trunk/test/unit/attachment_test.rb
 END
 issue_priority_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/3123/trunk/test/unit/issue_priority_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_priority_test.rb
 END
 repository_cvs_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/2887/trunk/test/unit/repository_cvs_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/repository_cvs_test.rb
 END
 repository_darcs_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/2887/trunk/test/unit/repository_darcs_test.rb
+/svn/!svn/ver/4608/trunk/test/unit/repository_darcs_test.rb
 END
 activity_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 51
-/svn/!svn/ver/2887/trunk/test/unit/activity_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/activity_test.rb
 END
 group_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/2887/trunk/test/unit/group_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/group_test.rb
 END
 watcher_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/3705/trunk/test/unit/watcher_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/watcher_test.rb
 END
 wiki_content_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/3254/trunk/test/unit/wiki_content_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/wiki_content_test.rb
 END
 enabled_module_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 57
-/svn/!svn/ver/2887/trunk/test/unit/enabled_module_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/enabled_module_test.rb
 END
 wiki_page_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 52
-/svn/!svn/ver/3632/trunk/test/unit/wiki_page_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/wiki_page_test.rb
 END
 issue_nested_set_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3821/trunk/test/unit/issue_nested_set_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/issue_nested_set_test.rb
 END
 query_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 48
-/svn/!svn/ver/4260/trunk/test/unit/query_test.rb
+/svn/!svn/ver/4553/trunk/test/unit/query_test.rb
 END
 search_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/2887/trunk/test/unit/search_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/search_test.rb
 END
 project_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4391/trunk/test/unit/project_test.rb
+/svn/!svn/ver/4615/trunk/test/unit/project_test.rb
 END
 custom_value_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/2905/trunk/test/unit/custom_value_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/custom_value_test.rb
 END
 member_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/3700/trunk/test/unit/member_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/member_test.rb
 END
 mailer_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/4362/trunk/test/unit/mailer_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/mailer_test.rb
 END
 news_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 47
-/svn/!svn/ver/2887/trunk/test/unit/news_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/news_test.rb
 END
 user_preference_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 58
-/svn/!svn/ver/2895/trunk/test/unit/user_preference_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/user_preference_test.rb
 END
 custom_field_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/2887/trunk/test/unit/custom_field_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/custom_field_test.rb
 END
 setting_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/2895/trunk/test/unit/setting_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/setting_test.rb
 END
 testing_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/2930/trunk/test/unit/testing_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/testing_test.rb
 END
--- a/test/unit/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:51:10.651861Z
-4408
-jplang
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-050f600e502bb49c47e831975074cb3e
-2009-11-26T20:12:20.779591Z
-3095
-jplang
+2011-01-13T14:08:14.000000Z
+31100b89782bb9004a5f162375b5192b
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-2145
+2150
 
 token_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-3ba1709e8893abeaa88fb00febcadc05
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:08:14.000000Z
+e89c6342d99d8e32ca9c9d3399641b96
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -92,7 +92,7 @@
 
 
 
-1352
+1357
 
 repository_git_test.rb
 file
@@ -100,11 +100,11 @@
 
 
 
-2010-11-19T13:04:41.337562Z
-7c656f1b1b7984259ebf4d29bdc629a5
-2010-09-26T21:54:52.929683Z
-4189
-edavis10
+2011-01-13T14:08:14.000000Z
+f95988379d5f7fa7f341954a886c6a3e
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -126,7 +126,7 @@
 
 
 
-2877
+4415
 
 repository_mercurial_test.rb
 file
@@ -134,11 +134,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-09835c4db0f8cf952808da70c56f4efd
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:08:14.000000Z
+37d81db20cb50110ac1f7fa44e5ecb40
+2011-01-13T12:04:51.838288Z
+4704
+tmaruyama
 has-props
 
 
@@ -160,7 +160,7 @@
 
 
 
-2740
+6345
 
 issue_relation_test.rb
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-229c99b63f05b560d8db3d2dbcb9e8b8
-2010-05-01T14:07:36.553776Z
-3729
-jplang
+2011-01-13T14:08:14.000000Z
+c385f65a279b76a0c7f1fbfdabb7d062
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-2565
+2979
 
 version_test.rb
 file
@@ -202,11 +202,11 @@
 
 
 
-2010-09-24T12:48:25.787400Z
-81bfed065f741b348305d4d050df10af
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
+2011-01-13T14:08:14.000000Z
+9aa8e8e5f5ef4c0c74c9fcdaba7ada60
+2010-12-31T11:16:03.020751Z
+4597
+jplang
 has-props
 
 
@@ -228,7 +228,7 @@
 
 
 
-9748
+9758
 
 enumeration_test.rb
 file
@@ -236,11 +236,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-c3eca121e6f2d6794e4eeecfa9f165a0
-2009-12-06T10:28:20.099964Z
-3123
-jplang
+2011-01-13T14:08:14.000000Z
+01227adbe16fcf333a7e99f9a7bcc0f6
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -262,7 +262,7 @@
 
 
 
-3380
+3385
 
 board_test.rb
 file
@@ -270,11 +270,11 @@
 
 
 
-2010-09-23T14:37:45.471762Z
-9a7c54f1a9af6217095062f77d08f10e
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:08:14.000000Z
+afdfda5a2d9285920afb8815085ad0ee
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -296,7 +296,7 @@
 
 
 
-899
+1052
 
 issue_test.rb
 file
@@ -304,11 +304,11 @@
 
 
 
-2010-11-19T13:04:41.337562Z
-b66aaf32f10148354e6319cd7ae7ca27
-2010-11-14T16:51:10.651861Z
-4408
-jplang
+2011-01-13T14:08:14.000000Z
+7f4ffe8d6908194e4940f13d53fbdd56
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -330,7 +330,7 @@
 
 
 
-29577
+29582
 
 issue_status_test.rb
 file
@@ -338,11 +338,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-2c2ecec9fc2708d6aacff16c5aa29b87
-2010-07-25T10:48:27.199057Z
-3881
-jplang
+2011-01-13T14:08:14.000000Z
+46bccc51b3aa0bd4b3826318f662f587
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -364,7 +364,7 @@
 
 
 
-3231
+3236
 
 time_entry_activity_test.rb
 file
@@ -372,11 +372,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-773260be3210a157ed033c4d9097572c
-2009-10-21T22:34:22.740755Z
-2945
-edavis10
+2011-01-13T14:08:14.000000Z
+41183297c9b098b67d368c45289eb47f
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -398,7 +398,7 @@
 
 
 
-2982
+2987
 
 tracker_test.rb
 file
@@ -406,11 +406,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-f1aa4fc274b7ab94762c0dbc533a15fb
-2009-12-18T15:41:32.828284Z
-3188
-jplang
+2011-01-13T14:08:14.000000Z
+32e8c8fd522283c8008b2dac1de383dd
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -432,7 +432,7 @@
 
 
 
-1831
+1836
 
 repository_subversion_test.rb
 file
@@ -440,11 +440,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-0d3c13d5aab904f2bb8f1a1750219a81
-2010-06-20T16:08:26.745839Z
-3800
-edavis10
+2011-01-13T14:08:14.000000Z
+fb0636f5bb4d94047ed14879e88f7df7
+2011-01-13T12:04:30.962313Z
+4703
+tmaruyama
 has-props
 
 
@@ -466,7 +466,7 @@
 
 
 
-3814
+5506
 
 repository_bazaar_test.rb
 file
@@ -474,11 +474,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-5334a637f05540a25a9769683dec3fca
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:08:14.000000Z
+b0c66b65fc51cdbf6f9885dddbfe5a23
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
 has-props
 
 
@@ -500,90 +500,90 @@
 
 
 
-3118
+3125
+
+changeset_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+c3cb358e85c7a5ddde50a50e8e8395d9
+2011-01-02T09:45:05.291687Z
+4613
+tmaruyama
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7938
+
+role_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+54e0d5b5ac94a5a9a0649b2af1b030e4
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3054
 
 helpers
 dir
 
-role_test.rb
-file
-
-
-
-
-2010-09-23T14:37:45.507762Z
-01913aeac402c002ff86c6497513c795
-2010-02-03T17:47:47.868223Z
-3363
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3049
-
-changeset_test.rb
-file
-
-
-
-
-2010-09-23T14:37:45.475805Z
-b30a5968570e514baa53fccba66babd6
-2010-02-20T11:24:41.988635Z
-3466
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4805
-
 comment_test.rb
 file
 
 
 
 
-2010-09-23T14:37:45.475805Z
-6bc5dfa26b0c2afd52f79678106a1247
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:08:14.000000Z
+d279aa9cdae195412ec42a41d76bc999
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -605,7 +605,7 @@
 
 
 
-1491
+1496
 
 wiki_test.rb
 file
@@ -613,10 +613,10 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-0187a399b60b9c512b74aa8e2eacbe31
-2010-04-11T12:56:18.077630Z
-3632
+2011-01-13T14:08:14.000000Z
+fe66a05a1301e78c21ab94a101fda6af
+2011-01-10T18:32:04.408692Z
+4680
 jplang
 has-props
 
@@ -639,7 +639,7 @@
 
 
 
-2029
+2392
 
 lib
 dir
@@ -650,11 +650,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-4e8fc1d75ed786b954e18d8bac093daf
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+fadeda4795465dbbbf5873729ddba30a
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -676,7 +676,7 @@
 
 
 
-1772
+1777
 
 journal_test.rb
 file
@@ -684,11 +684,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-dd19b3a0292fa879e0e4b3de171c4e16
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+93378a65c9f444ca160b6681b7435610
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -710,7 +710,7 @@
 
 
 
-1584
+1589
 
 document_category_test.rb
 file
@@ -718,11 +718,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-1457b47330c1f1cc47c0005509687cfa
-2009-11-27T20:49:08.242340Z
-3100
-jplang
+2011-01-13T14:09:08.000000Z
+621cee22436f207cb82915edfe609d42
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -744,7 +744,7 @@
 
 
 
-1366
+1371
 
 default_data_test.rb
 file
@@ -752,11 +752,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-31716c010951f7a1b2d23cc481341cab
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+f1290324d506f8535d74ccf3f878c24f
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -778,7 +778,7 @@
 
 
 
-1713
+1718
 
 user_test.rb
 file
@@ -786,10 +786,10 @@
 
 
 
-2010-11-19T13:04:41.341624Z
-59e73a45159ae21d5dc53098f8e1b637
-2010-10-06T05:08:31.041293Z
-4233
+2011-01-13T14:09:08.000000Z
+db0087b4e4cb135bab750920eed6c000
+2010-12-12T23:24:34.194336Z
+4509
 jbbarth
 has-props
 
@@ -812,7 +812,75 @@
 
 
 
-17550
+17534
+
+mail_handler_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+ccd63941c3776cd520a713f27ed01d08
+2010-12-29T17:38:57.772516Z
+4576
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18979
+
+repository_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+589982cd40cb0ade3eb5ea7d858617b0
+2010-12-20T18:30:36.074382Z
+4548
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6599
 
 time_entry_test.rb
 file
@@ -820,11 +888,11 @@
 
 
 
-2010-09-24T12:48:25.791803Z
-461828d317588aef0b8ee8f85f11c62c
-2010-09-14T19:02:25.847894Z
-4087
-edavis10
+2011-01-13T14:09:08.000000Z
+bf5fb368dee14fd9b233ac14515ed919
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -846,75 +914,75 @@
 
 
 
-3574
+3579
 
-repository_test.rb
+journal_observer_test.rb
 file
 
 
 
 
-2010-11-19T13:04:41.341624Z
-61d46cec13bffa4dce694de6c0fb0c93
-2010-09-28T20:20:00.843023Z
-4221
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6469
+2011-01-13T14:09:08.000000Z
+0a054ecc047ebca7e0cb9fe8aadf51eb
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3959
 
-mail_handler_test.rb
+principal_test.rb
 file
 
 
 
 
-2010-11-19T13:04:41.341624Z
-b5e8191d182e090ce55ccd46b3cc3954
-2010-11-14T13:48:01.671461Z
-4404
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-17912
+2011-01-13T14:09:08.000000Z
+69e70ceb20c56bbb25155e8120146aa3
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2078
 
 auth_source_ldap_test.rb
 file
@@ -922,11 +990,11 @@
 
 
 
-2010-09-23T14:37:45.471762Z
-a39d14a44a0576b6ec4bca546bded4f8
-2010-02-26T09:13:12.187275Z
-3492
-jplang
+2011-01-13T14:09:08.000000Z
+4de167441793151c86bc376e671cc3c1
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -948,75 +1016,7 @@
 
 
 
-2788
-
-principal_test.rb
-file
-
-
-
-
-2010-09-23T14:37:45.503764Z
-f36cb1e2cd1746903fbd8d269179f177
-2009-12-12T06:18:40.500267Z
-3152
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2073
-
-journal_observer_test.rb
-file
-
-
-
-
-2010-11-19T13:04:41.341624Z
-b8ca46992b1064fd7f35c44663a40358
-2010-09-28T20:20:00.843023Z
-4221
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3954
+2793
 
 repository_filesystem_test.rb
 file
@@ -1024,11 +1024,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-abb72953856c404a15739803efb36f1e
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+8d990ac10b1aeee25c74ee1f5cdc9d18
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1050,7 +1050,7 @@
 
 
 
-1935
+1940
 
 project_nested_set_test.rb
 file
@@ -1058,10 +1058,10 @@
 
 
 
-2010-09-23T14:37:45.503764Z
-2113efe7d95f20d9eeaffdc988f35894
-2010-01-31T10:39:42.608434Z
-3354
+2011-01-13T14:09:08.000000Z
+47282cfa59c0817a7936d60b0ac3e16c
+2011-01-06T21:17:08.355137Z
+4650
 jplang
 has-props
 
@@ -1084,7 +1084,7 @@
 
 
 
-2070
+4027
 
 message_test.rb
 file
@@ -1092,11 +1092,11 @@
 
 
 
-2010-09-23T14:37:45.503764Z
-20812440391bc42bd1e4b87f2bb3dbc9
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+6b620c2638af1111d237a35ecba5107d
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1118,7 +1118,7 @@
 
 
 
-4937
+4942
 
 wiki_redirect_test.rb
 file
@@ -1126,11 +1126,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-bb58e8be92cdf18494b20d79275f4c65
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+f4be42a1985df0fc471331477246eea7
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1152,7 +1152,7 @@
 
 
 
-2724
+2787
 
 issue_category_test.rb
 file
@@ -1160,11 +1160,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-3356be5d35b57347f74d7efcfca2ea4b
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+fb1799532feba53a1df0355271636ce7
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1186,7 +1186,7 @@
 
 
 
-1421
+1426
 
 attachment_test.rb
 file
@@ -1194,11 +1194,11 @@
 
 
 
-2010-09-23T14:37:45.471762Z
-e1a50ba850106db6963584c8b99fd74c
-2010-06-19T03:54:23.298445Z
-3773
-edavis10
+2011-01-13T14:09:08.000000Z
+e8fef8d0f3de527136fabe2c2195be9e
+2010-12-31T15:24:42.140175Z
+4598
+jplang
 has-props
 
 
@@ -1220,7 +1220,7 @@
 
 
 
-3656
+3619
 
 issue_priority_test.rb
 file
@@ -1228,11 +1228,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-8dd5e3817f0e2e9e8c8a8a88e03fd090
-2009-12-06T10:28:20.099964Z
-3123
-jplang
+2011-01-13T14:09:08.000000Z
+23d11bc7cfedc1a4d419928eb81d5c64
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1254,7 +1254,7 @@
 
 
 
-1324
+1329
 
 repository_cvs_test.rb
 file
@@ -1262,11 +1262,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-68dda2425484afbc3289b19b0af6c11b
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+c57bd5b650a9fa0627831717134ceeb2
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1288,7 +1288,7 @@
 
 
 
-2537
+2542
 
 repository_darcs_test.rb
 file
@@ -1296,11 +1296,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-d7f9177ff34693e1a7cfecd0cbe54a4d
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+ae2d97f344e9c59bb09648e9e333db84
+2011-01-01T22:01:28.805978Z
+4608
+tmaruyama
 has-props
 
 
@@ -1322,7 +1322,7 @@
 
 
 
-2538
+2596
 
 activity_test.rb
 file
@@ -1330,11 +1330,11 @@
 
 
 
-2010-09-23T14:37:45.471762Z
-3f0d1a0fc3ebcd10386f704f30411caa
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+f2227b773374d5366d6ee7e26f7f977e
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1356,7 +1356,7 @@
 
 
 
-3259
+3264
 
 group_test.rb
 file
@@ -1364,11 +1364,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-68e58d510faac50d9e774a3b231e6bd0
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+50cc3fd88223d69f74e1b11991989bbc
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1390,7 +1390,7 @@
 
 
 
-2593
+2598
 
 watcher_test.rb
 file
@@ -1398,11 +1398,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-ea14acc0bf5df9331263c24aa933a721
-2010-04-30T11:02:27.973988Z
-3705
-jplang
+2011-01-13T14:09:08.000000Z
+3665052c1291d40753ee1ab4c61cd237
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1424,7 +1424,7 @@
 
 
 
-3415
+3420
 
 wiki_content_test.rb
 file
@@ -1432,11 +1432,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-8aa3dd069d03e45cf6a40befaf3ac91f
-2009-12-27T11:57:13.519273Z
-3254
-jplang
+2011-01-13T14:09:08.000000Z
+5f0c8e09595f6c8f6a95def9d4ff3833
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1458,7 +1458,7 @@
 
 
 
-3104
+3109
 
 enabled_module_test.rb
 file
@@ -1466,11 +1466,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-530c6c79db914598316f923400031643
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+870052407719f2a360e8e95f0498130f
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1492,7 +1492,7 @@
 
 
 
-1589
+1594
 
 wiki_page_test.rb
 file
@@ -1500,11 +1500,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-e2e9a2270cda1fc763b02ca60e6758a3
-2010-04-11T12:56:18.077630Z
-3632
-jplang
+2011-01-13T14:09:08.000000Z
+2b51ebfe6e4e23011d9b29f08028d832
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1526,7 +1526,7 @@
 
 
 
-3898
+3903
 
 issue_nested_set_test.rb
 file
@@ -1534,11 +1534,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-5985280247858f77d45d21b26e65c846
-2010-06-30T02:45:34.835470Z
-3821
-edavis10
+2011-01-13T14:09:08.000000Z
+bdd4058358d08008a7597d544590d561
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1560,7 +1560,7 @@
 
 
 
-13657
+13662
 
 query_test.rb
 file
@@ -1568,11 +1568,11 @@
 
 
 
-2010-11-19T13:04:41.341624Z
-e84894671a39a3e44cd69ad6e4d6f9d9
-2010-10-16T00:00:23.359489Z
-4260
-edavis10
+2011-01-13T14:09:08.000000Z
+25fe3c9e8b257bd7f2ce5b8a28f8f508
+2010-12-21T21:46:54.984442Z
+4553
+jplang
 has-props
 
 
@@ -1594,7 +1594,7 @@
 
 
 
-20090
+20770
 
 search_test.rb
 file
@@ -1602,11 +1602,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-32ca2cd3b7eedfa62d9b87754e4273ca
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+7c10ed0c6e700b4bfe67499ced7f9129
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1628,7 +1628,7 @@
 
 
 
-4656
+4661
 
 project_test.rb
 file
@@ -1636,10 +1636,10 @@
 
 
 
-2010-11-19T13:04:41.341624Z
-5cb6742ca68637e837794c7a912a1c71
-2010-11-11T13:39:14.764400Z
-4391
+2011-01-13T14:09:08.000000Z
+d50e8af60d440f2f3c60a31031b79830
+2011-01-02T11:38:35.152085Z
+4615
 jplang
 has-props
 
@@ -1662,7 +1662,7 @@
 
 
 
-37951
+39071
 
 custom_value_test.rb
 file
@@ -1670,11 +1670,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-e08bf636b0f3ecc54432d0bb395c2a5d
-2009-10-10T10:16:00.250819Z
-2905
-jplang
+2011-01-13T14:09:08.000000Z
+e012f89814e1a9ddec5e1fd550c6b5e1
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1696,7 +1696,7 @@
 
 
 
-3672
+3677
 
 member_test.rb
 file
@@ -1704,11 +1704,11 @@
 
 
 
-2010-09-23T14:37:45.503764Z
-ed7eec76d8a869dfce4215fc249607bf
-2010-04-30T09:57:58.536766Z
-3700
-jplang
+2011-01-13T14:09:08.000000Z
+ef906b6b6bdeaa8d627ff66390dd31ab
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1730,7 +1730,7 @@
 
 
 
-4178
+4183
 
 mailer_test.rb
 file
@@ -1738,11 +1738,11 @@
 
 
 
-2010-11-19T13:04:41.341624Z
-59e4140b58e03b066b15f7213c23fc6d
-2010-11-02T19:00:36.834304Z
-4362
-edavis10
+2011-01-13T14:09:08.000000Z
+2f98e8acd7868617728cd08702411096
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1764,7 +1764,7 @@
 
 
 
-13954
+14555
 
 news_test.rb
 file
@@ -1772,11 +1772,11 @@
 
 
 
-2010-09-23T14:37:45.503764Z
-6b43ef906ed80cc6a8e878c03d52ff53
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+759e3cea9ff889147937b83bcc137e4b
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1798,7 +1798,7 @@
 
 
 
-2925
+2742
 
 user_preference_test.rb
 file
@@ -1806,11 +1806,11 @@
 
 
 
-2010-09-23T14:37:45.511762Z
-7bcef4f9729fe09696f6ef878c6989dd
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:09:08.000000Z
+eab02ac34d43f18f1bc929dd62d6ee9a
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1832,7 +1832,7 @@
 
 
 
-1522
+1527
 
 custom_field_test.rb
 file
@@ -1840,11 +1840,11 @@
 
 
 
-2010-09-23T14:37:45.475805Z
-c2e6042c8a03b41f1b6efe0e0b1c8df1
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+59b08ad686160723b5b83df2cb5f8ee1
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1866,7 +1866,7 @@
 
 
 
-1753
+1758
 
 setting_test.rb
 file
@@ -1874,11 +1874,11 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-b53999e1c089a0c5bbc8dfedb77cf761
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:09:08.000000Z
+8a4fd1977e88faed5d7ebca9ac40d037
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -1900,7 +1900,7 @@
 
 
 
-1812
+1817
 
 testing_test.rb
 file
@@ -1908,31 +1908,31 @@
 
 
 
-2010-09-23T14:37:45.507762Z
-27440b61f82014e00e991b4f00595ae5
-2009-10-18T22:25:00.956502Z
-2930
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1349
+2011-01-13T14:09:08.000000Z
+8f6032e2276c7077ad1716c67634c17e
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1354
 
--- a/test/unit/.svn/text-base/activity_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/activity_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ActivityTest < ActiveSupport::TestCase
   fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
--- a/test/unit/.svn/text-base/attachment_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/attachment_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AttachmentTest < ActiveSupport::TestCase
   fixtures :issues, :users
@@ -34,7 +34,7 @@
     assert_equal 59, a.filesize
     assert_equal 'text/plain', a.content_type
     assert_equal 0, a.downloads
-    assert_equal Digest::MD5.hexdigest(uploaded_test_file("testfile.txt", "text/plain").read), a.digest
+    assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest
     assert File.exist?(a.diskfile)
   end
   
--- a/test/unit/.svn/text-base/auth_source_ldap_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/auth_source_ldap_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AuthSourceLdapTest < ActiveSupport::TestCase
   fixtures :auth_sources
--- a/test/unit/.svn/text-base/board_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/board_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class BoardTest < ActiveSupport::TestCase
-  fixtures :projects, :boards, :messages
+  fixtures :projects, :boards, :messages, :attachments, :watchers
 
   def setup
     @project = Project.find(1)
@@ -23,8 +23,13 @@
   
   def test_destroy
     board = Board.find(1)
-    assert board.destroy
-    # make sure that the associated messages are removed
+    assert_difference 'Message.count', -6 do
+      assert_difference 'Attachment.count', -1 do
+        assert_difference 'Watcher.count', -1 do
+          assert board.destroy
+        end
+      end
+    end
     assert_equal 0, Message.count(:conditions => {:board_id => 1})
   end
 end
--- a/test/unit/.svn/text-base/calendar_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/calendar_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CalendarTest < ActiveSupport::TestCase
   
--- a/test/unit/.svn/text-base/changeset_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/changeset_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ChangesetTest < ActiveSupport::TestCase
   fixtures :projects, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :users, :members, :member_roles, :trackers
@@ -44,6 +44,76 @@
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
   
+  def test_ref_keywords
+    Setting.commit_ref_keywords = 'refs'
+    Setting.commit_fix_keywords = ''
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'Ignores #2. Refs #1')
+    c.scan_comment_for_issue_ids
+    
+    assert_equal [1], c.issue_ids.sort
+  end
+  
+  def test_ref_keywords_any_only
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_fix_keywords = ''
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'Ignores #2. Refs #1')
+    c.scan_comment_for_issue_ids
+    
+    assert_equal [1, 2], c.issue_ids.sort
+  end
+  
+  def test_ref_keywords_any_with_timelog
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_logtime_enabled = '1'
+
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => 24.hours.ago,
+                      :comments => 'Worked on this issue #1 @2h',
+                      :revision => '520',
+                      :user => User.find(2))
+    assert_difference 'TimeEntry.count' do
+      c.scan_comment_for_issue_ids
+    end
+    assert_equal [1], c.issue_ids.sort
+    
+    time = TimeEntry.first(:order => 'id desc')
+    assert_equal 1, time.issue_id
+    assert_equal 1, time.project_id
+    assert_equal 2, time.user_id
+    assert_equal 2.0, time.hours
+    assert_equal Date.yesterday, time.spent_on
+    assert time.activity.is_default?
+    assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
+  end
+  
+  def test_ref_keywords_closing_with_timelog
+    Setting.commit_fix_status_id = IssueStatus.find(:first, :conditions => ["is_closed = ?", true]).id
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_fix_keywords = 'fixes , closes'
+    Setting.commit_logtime_enabled = '1'
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'This is a comment. Fixes #1 @2.5, #2 @1',
+                      :user => User.find(2))
+    assert_difference 'TimeEntry.count', 2 do
+      c.scan_comment_for_issue_ids
+    end
+    
+    assert_equal [1, 2], c.issue_ids.sort
+    assert Issue.find(1).closed?
+    assert Issue.find(2).closed?
+
+    times = TimeEntry.all(:order => 'id desc', :limit => 2)
+    assert_equal [1, 2], times.collect(&:issue_id).sort
+  end
+  
   def test_ref_keywords_any_line_start
     Setting.commit_ref_keywords = '*'
 
@@ -99,6 +169,21 @@
     assert_equal [2], c.issue_ids.sort
     assert c.issues.first.project != c.project
   end
+  
+  def test_text_tag_revision
+    c = Changeset.new(:revision => '520')
+    assert_equal 'r520', c.text_tag
+  end
+  
+  def test_text_tag_hash
+    c = Changeset.new(:scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518')
+    assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
+  end
+
+  def test_text_tag_hash_all_number
+    c = Changeset.new(:scmid => '0123456789', :revision => '0123456789')
+    assert_equal 'commit:0123456789', c.text_tag
+  end
 
   def test_previous
     changeset = Changeset.find_by_revision('3')
@@ -133,4 +218,9 @@
     c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
     assert_equal "Texte encod en ISO-8859-1.", c.comments
   end
+
+  def test_identifier
+    c = Changeset.find_by_revision('1')
+    assert_equal c.revision, c.identifier
+  end
 end
--- a/test/unit/.svn/text-base/comment_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/comment_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CommentTest < ActiveSupport::TestCase
   fixtures :users, :news, :comments
--- a/test/unit/.svn/text-base/custom_field_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/custom_field_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CustomFieldTest < ActiveSupport::TestCase
   fixtures :custom_fields
--- a/test/unit/.svn/text-base/custom_value_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/custom_value_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CustomValueTest < ActiveSupport::TestCase
   fixtures :custom_fields, :custom_values, :users
--- a/test/unit/.svn/text-base/default_data_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/default_data_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DefaultDataTest < ActiveSupport::TestCase
   include Redmine::I18n
--- a/test/unit/.svn/text-base/document_category_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/document_category_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DocumentCategoryTest < ActiveSupport::TestCase
   fixtures :enumerations, :documents, :issues
--- a/test/unit/.svn/text-base/document_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/document_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DocumentTest < ActiveSupport::TestCase
   fixtures :projects, :enumerations, :documents, :attachments
--- a/test/unit/.svn/text-base/enabled_module_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/enabled_module_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class EnabledModuleTest < ActiveSupport::TestCase
   fixtures :projects, :wikis
--- a/test/unit/.svn/text-base/enumeration_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/enumeration_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class EnumerationTest < ActiveSupport::TestCase
   fixtures :enumerations, :issues, :custom_fields, :custom_values
--- a/test/unit/.svn/text-base/group_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/group_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class GroupTest < ActiveSupport::TestCase
   fixtures :all
--- a/test/unit/.svn/text-base/issue_category_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_category_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueCategoryTest < ActiveSupport::TestCase
   fixtures :issue_categories, :issues
--- a/test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueNestedSetTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles,
--- a/test/unit/.svn/text-base/issue_priority_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_priority_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssuePriorityTest < ActiveSupport::TestCase
   fixtures :enumerations, :issues
--- a/test/unit/.svn/text-base/issue_relation_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_relation_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueRelationTest < ActiveSupport::TestCase
   fixtures :issue_relations, :issues
@@ -63,4 +63,14 @@
     assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type_for(from)
     assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type_for(to)
   end
+  
+  def test_set_issue_to_dates_without_issue_to
+    r = IssueRelation.new(:issue_from => Issue.new(:start_date => Date.today), :relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
+    assert_nil r.set_issue_to_dates
+  end
+  
+  def test_set_issue_to_dates_without_issues
+    r = IssueRelation.new(:relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
+    assert_nil r.set_issue_to_dates
+  end
 end
--- a/test/unit/.svn/text-base/issue_status_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_status_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueStatusTest < ActiveSupport::TestCase
   fixtures :issue_statuses, :issues
--- a/test/unit/.svn/text-base/issue_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/issue_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles,
--- a/test/unit/.svn/text-base/journal_observer_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/journal_observer_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class JournalObserverTest < ActiveSupport::TestCase
   fixtures :issues, :issue_statuses, :journals, :journal_details
--- a/test/unit/.svn/text-base/journal_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/journal_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class JournalTest < ActiveSupport::TestCase
   fixtures :issues, :issue_statuses, :journals, :journal_details
--- a/test/unit/.svn/text-base/mail_handler_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/mail_handler_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MailHandlerTest < ActiveSupport::TestCase
   fixtures :users, :projects, 
@@ -36,6 +36,7 @@
                    :issue_categories,
                    :custom_fields,
                    :custom_fields_trackers,
+                   :custom_fields_projects,
                    :boards,
                    :messages
   
@@ -53,9 +54,10 @@
     assert issue.is_a?(Issue)
     assert !issue.new_record?
     issue.reload
+    assert_equal Project.find(2), issue.project
+    assert_equal issue.project.trackers.first, issue.tracker
     assert_equal 'New ticket on a given project', issue.subject
     assert_equal User.find_by_login('jsmith'), issue.author
-    assert_equal Project.find(2), issue.project
     assert_equal IssueStatus.find_by_name('Resolved'), issue.status
     assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.')
     assert_equal '2010-01-01', issue.start_date.to_s
@@ -64,6 +66,7 @@
     assert_equal Version.find_by_name('alpha'), issue.fixed_version
     assert_equal 2.5, issue.estimated_hours
     assert_equal 30, issue.done_ratio
+    assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
     # keywords should be removed from the email body
     assert !issue.description.match(/^Project:/i)
     assert !issue.description.match(/^Status:/i)
@@ -72,6 +75,15 @@
     assert_not_nil mail
     assert mail.subject.include?('New ticket on a given project')
   end
+  
+  def test_add_issue_with_default_tracker
+    # This email contains: 'Project: onlinestore'
+    issue = submit_email('ticket_on_given_project.eml', :issue => {:tracker => 'Support request'})
+    assert issue.is_a?(Issue)
+    assert !issue.new_record?
+    issue.reload
+    assert_equal 'Support request', issue.tracker.name
+  end
 
   def test_add_issue_with_status
     # This email contains: 'Project: onlinestore' and 'Status: Resolved'
@@ -201,6 +213,7 @@
         assert issue.is_a?(Issue)
         assert issue.author.anonymous?
         assert !issue.project.is_public?
+        assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
       end
     end
   end
@@ -288,6 +301,7 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
   end
 
   def test_add_issue_note_with_attribute_changes
@@ -298,11 +312,12 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
     assert_equal IssueStatus.find_by_name("Resolved"), issue.status
     assert_equal '2010-01-01', issue.start_date.to_s
     assert_equal '2010-12-31', issue.due_date.to_s
     assert_equal User.find_by_login('jsmith'), issue.assigned_to
-    assert_equal 'Updated custom value', issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
+    assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value
   end
 
   def test_add_issue_note_should_send_email_notification
@@ -312,6 +327,14 @@
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
   
+  def test_add_issue_note_should_not_set_defaults
+    journal = submit_email('ticket_reply.eml', :issue => {:tracker => 'Support request', :priority => 'High'})
+    assert journal.is_a?(Journal)
+    assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
+    assert_equal 'Normal', journal.issue.priority.name
+  end
+  
   def test_reply_to_a_message
     m = submit_email('message_reply.eml')
     assert m.is_a?(Message)
--- a/test/unit/.svn/text-base/mailer_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/mailer_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MailerTest < ActiveSupport::TestCase
   include Redmine::I18n
@@ -305,6 +305,26 @@
     end
   end
   
+  def test_wiki_content_added
+    content = WikiContent.find(:first)
+    valid_languages.each do |lang|
+      Setting.default_language = lang.to_s
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        assert Mailer.deliver_wiki_content_added(content)
+      end
+    end
+  end
+  
+  def test_wiki_content_updated
+    content = WikiContent.find(:first)
+    valid_languages.each do |lang|
+      Setting.default_language = lang.to_s
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        assert Mailer.deliver_wiki_content_updated(content)
+      end
+    end
+  end
+  
   def test_account_information
     user = User.find(2)
     valid_languages.each do |lang|
--- a/test/unit/.svn/text-base/member_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/member_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MemberTest < ActiveSupport::TestCase
   fixtures :all
--- a/test/unit/.svn/text-base/message_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/message_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MessageTest < ActiveSupport::TestCase
   fixtures :projects, :roles, :members, :member_roles, :boards, :messages, :users, :watchers
--- a/test/unit/.svn/text-base/news_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/news_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class NewsTest < ActiveSupport::TestCase
   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news
@@ -46,9 +46,8 @@
   end
   
   def test_should_not_include_news_for_projects_with_news_disabled
-    # The projects_002 (OnlineStore) doesn't have the news module enabled, use that project for this test
-    project = projects(:projects_002)
-    assert ! project.enabled_modules.any?{ |em| em.name == 'news' }
+    EnabledModule.delete_all(["project_id = ? AND name = ?", 2, 'news'])
+    project = Project.find(2)
 
     # Add a piece of news to the project
     news = project.news.create(valid_news)
@@ -58,8 +57,7 @@
   end
   
   def test_should_only_include_news_from_projects_visibly_to_the_user
-    # users_001 has no memberships so can only get news from public project
-    assert News.latest(users(:users_001)).all? { |news| news.project.is_public? } 
+    assert News.latest(User.anonymous).all? { |news| news.project.is_public? } 
   end
   
   def test_should_limit_the_amount_of_returned_news
--- a/test/unit/.svn/text-base/principal_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/principal_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class PrincipalTest < ActiveSupport::TestCase
 
--- a/test/unit/.svn/text-base/project_nested_set_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/project_nested_set_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,44 +15,104 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectNestedSetTest < ActiveSupport::TestCase
   
-  def setup
-    Project.delete_all
+  context "nested set" do
+    setup do
+      Project.delete_all
+
+      @a = Project.create!(:name => 'Project A', :identifier => 'projecta')
+      @a1 = Project.create!(:name => 'Project A1', :identifier => 'projecta1')
+      @a1.set_parent!(@a)
+      @a2 = Project.create!(:name => 'Project A2', :identifier => 'projecta2')
+      @a2.set_parent!(@a)
+      
+      @b = Project.create!(:name => 'Project B', :identifier => 'projectb')
+      @b1 = Project.create!(:name => 'Project B1', :identifier => 'projectb1')
+      @b1.set_parent!(@b)
+      @b11 = Project.create!(:name => 'Project B11', :identifier => 'projectb11')
+      @b11.set_parent!(@b1)
+      @b2 = Project.create!(:name => 'Project B2', :identifier => 'projectb2')
+      @b2.set_parent!(@b)
+      
+      @c = Project.create!(:name => 'Project C', :identifier => 'projectc')
+      @c1 = Project.create!(:name => 'Project C1', :identifier => 'projectc1')
+      @c1.set_parent!(@c)
+      
+      [@a, @a1, @a2, @b, @b1, @b11, @b2, @c, @c1].each(&:reload)
+    end
+    
+    context "#create" do
+      should "build valid tree" do
+        assert_nested_set_values({
+          @a   => [nil,   1,  6],
+          @a1  => [@a.id, 2,  3],
+          @a2  => [@a.id, 4,  5],
+          @b   => [nil,   7, 14],
+          @b1  => [@b.id, 8, 11],
+          @b11 => [@b1.id,9, 10],
+          @b2  => [@b.id,12, 13],
+          @c   => [nil,  15, 18],
+          @c1  => [@c.id,16, 17]
+        })
+      end
+    end
+    
+    context "#set_parent!" do
+      should "keep valid tree" do
+        assert_no_difference 'Project.count' do
+          Project.find_by_name('Project B1').set_parent!(Project.find_by_name('Project A2'))
+        end
+        assert_nested_set_values({
+          @a   => [nil,   1, 10],
+          @a2  => [@a.id, 4,  9],
+          @b1  => [@a2.id,5,  8],
+          @b11 => [@b1.id,6,  7],
+          @b   => [nil,  11, 14],
+          @c   => [nil,  15, 18]
+        })
+      end
+    end
+  
+    context "#destroy" do
+      context "a root with children" do
+        should "not mess up the tree" do
+          assert_difference 'Project.count', -4 do
+            Project.find_by_name('Project B').destroy
+          end
+          assert_nested_set_values({
+            @a  => [nil,   1,  6],
+            @a1 => [@a.id, 2,  3],
+            @a2 => [@a.id, 4,  5],
+            @c  => [nil,   7, 10],
+            @c1 => [@c.id, 8,  9]
+          })
+        end
+      end
+      
+      context "a child with children" do
+        should "not mess up the tree" do
+          assert_difference 'Project.count', -2 do
+            Project.find_by_name('Project B1').destroy
+          end
+          assert_nested_set_values({
+            @a  => [nil,   1,  6],
+            @b  => [nil,   7, 10],
+            @b2 => [@b.id, 8,  9],
+            @c  => [nil,  11, 14]
+          })
+        end
+      end
+    end
   end
   
-  def test_destroy_root_and_chldren_should_not_mess_up_the_tree
-    a = Project.create!(:name => 'Project A', :identifier => 'projecta')
-    a1 = Project.create!(:name => 'Project A1', :identifier => 'projecta1')
-    a2 = Project.create!(:name => 'Project A2', :identifier => 'projecta2')
-    a1.set_parent!(a)
-    a2.set_parent!(a)
-    b = Project.create!(:name => 'Project B', :identifier => 'projectb')
-    b1 = Project.create!(:name => 'Project B1', :identifier => 'projectb1')
-    b1.set_parent!(b)
-    
-    a.reload
-    a1.reload
-    a2.reload
-    b.reload
-    b1.reload
-    
-    assert_equal [nil, 1, 6], [a.parent_id, a.lft, a.rgt]
-    assert_equal [a.id, 2, 3], [a1.parent_id, a1.lft, a1.rgt]
-    assert_equal [a.id, 4, 5], [a2.parent_id, a2.lft, a2.rgt]
-    assert_equal [nil, 7, 10], [b.parent_id, b.lft, b.rgt]
-    assert_equal [b.id, 8, 9], [b1.parent_id, b1.lft, b1.rgt]
-    
-    assert_difference 'Project.count', -3 do
-      a.destroy
+  def assert_nested_set_values(h)
+    assert Project.valid?
+    h.each do |project, expected|
+      project.reload
+      assert_equal expected, [project.parent_id, project.lft, project.rgt], "Unexpected nested set values for #{project.name}"
     end
-    
-    b.reload
-    b1.reload
-
-    assert_equal [nil, 1, 4], [b.parent_id, b.lft, b.rgt]
-    assert_equal [b.id, 2, 3], [b1.parent_id, b1.lft, b1.rgt]
   end
-end
\ No newline at end of file
+end
--- a/test/unit/.svn/text-base/project_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/project_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectTest < ActiveSupport::TestCase
   fixtures :all
@@ -60,6 +60,35 @@
     assert_equal "eCookbook", @ecookbook.name
   end
   
+  def test_default_attributes
+    with_settings :default_projects_public => '1' do
+      assert_equal true, Project.new.is_public
+      assert_equal false, Project.new(:is_public => false).is_public
+    end
+
+    with_settings :default_projects_public => '0' do
+      assert_equal false, Project.new.is_public
+      assert_equal true, Project.new(:is_public => true).is_public
+    end
+
+    with_settings :sequential_project_identifiers => '1' do
+      assert !Project.new.identifier.blank?
+      assert Project.new(:identifier => '').identifier.blank?
+    end
+
+    with_settings :sequential_project_identifiers => '0' do
+      assert Project.new.identifier.blank?
+      assert !Project.new(:identifier => 'test').blank?
+    end
+
+    with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
+      assert_equal ['issue_tracking', 'repository'], Project.new.enabled_module_names
+    end
+    
+    assert_equal Tracker.all, Project.new.trackers
+    assert_equal Tracker.find(1, 3), Project.new(:tracker_ids => [1, 3]).trackers
+  end
+  
   def test_update
     assert_equal "eCookbook", @ecookbook.name
     @ecookbook.name = "eCook"
@@ -741,6 +770,22 @@
         assert_equal @project, membership.project
       end
     end
+    
+    should "copy memberships with groups and additional roles" do
+      group = Group.create!(:lastname => "Copy group")
+      user = User.find(7) 
+      group.users << user
+      # group role
+      Member.create!(:project_id => @source_project.id, :principal => group, :role_ids => [2])
+      member = Member.find_by_user_id_and_project_id(user.id, @source_project.id)
+      # additional role
+      member.role_ids = [1]
+
+      assert @project.copy(@source_project)
+      member = Member.find_by_user_id_and_project_id(user.id, @project.id)
+      assert_not_nil member
+      assert_equal [1, 2], member.role_ids.sort
+    end
 
     should "copy project specific queries" do
       assert @project.valid?
@@ -853,14 +898,6 @@
     should "be nil if there are no issues on the project" do
       assert_nil @project.start_date
     end
-
-    should "be nil if issue tracking is disabled" do
-      Issue.generate_for_project!(@project, :start_date => Date.today)
-      @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
-      @project.reload
-      
-      assert_nil @project.start_date
-    end
     
     should "be tested when issues have no start date"
 
@@ -884,14 +921,6 @@
     should "be nil if there are no issues on the project" do
       assert_nil @project.due_date
     end
-
-    should "be nil if issue tracking is disabled" do
-      Issue.generate_for_project!(@project, :due_date => Date.today)
-      @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
-      @project.reload
-      
-      assert_nil @project.due_date
-    end
     
     should "be tested when issues have no due date"
 
--- a/test/unit/.svn/text-base/query_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/query_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class QueryTest < ActiveSupport::TestCase
   fixtures :projects, :enabled_modules, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :watchers, :custom_fields, :custom_values, :versions, :queries
@@ -235,6 +235,22 @@
     q = Query.new
     assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn}
   end
+
+  def test_grouped_with_valid_column
+    q = Query.new(:group_by => 'status')
+    assert q.grouped?
+    assert_not_nil q.group_by_column
+    assert_equal :status, q.group_by_column.name
+    assert_not_nil q.group_by_statement
+    assert_equal 'status', q.group_by_statement
+  end
+  
+  def test_grouped_with_invalid_column
+    q = Query.new(:group_by => 'foo')
+    assert !q.grouped?
+    assert_nil q.group_by_column
+    assert_nil q.group_by_statement
+  end
   
   def test_default_sort
     q = Query.new
@@ -382,6 +398,12 @@
       assert users[:values].map{|u|u[1]}.include?("3")
     end
 
+    should "include visible projects in cross-project view" do
+      projects = @query.available_filters["project_id"]
+      assert_not_nil projects
+      assert projects[:values].map{|u|u[1]}.include?("1")
+    end
+
     context "'member_of_group' filter" do
       should "be present" do
         assert @query.available_filters.keys.include?("member_of_group")
--- a/test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryBazaarTest < ActiveSupport::TestCase
   fixtures :projects
@@ -77,7 +77,7 @@
     def test_annotate
       annotate = @repository.scm.annotate('doc-mkdir.txt')
       assert_equal 17, annotate.lines.size
-      assert_equal 1, annotate.revisions[0].identifier
+      assert_equal '1', annotate.revisions[0].identifier
       assert_equal 'jsmith@', annotate.revisions[0].author
       assert_equal 'mkdir', annotate.lines[0]
     end
--- a/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'pp'
 class RepositoryCvsTest < ActiveSupport::TestCase
   fixtures :projects
--- a/test/unit/.svn/text-base/repository_darcs_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_darcs_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryDarcsTest < ActiveSupport::TestCase
   fixtures :projects
@@ -54,12 +54,14 @@
       assert entries.detect {|e| e.name == 'watchers_controller.rb'}
       assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
     end
-    
+
     def test_cat
-      @repository.fetch_changesets
-      cat = @repository.cat("sources/welcome_controller.rb", 2)
-      assert_not_nil cat
-      assert cat.include?('class WelcomeController < ApplicationController')
+      if @repository.scm.supports_cat?
+        @repository.fetch_changesets
+        cat = @repository.cat("sources/welcome_controller.rb", 2)
+        assert_not_nil cat
+        assert cat.include?('class WelcomeController < ApplicationController')
+      end
     end
   else
     puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
--- a/test/unit/.svn/text-base/repository_filesystem_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_filesystem_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryFilesystemTest < ActiveSupport::TestCase
   fixtures :projects
--- a/test/unit/.svn/text-base/repository_git_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_git_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryGitTest < ActiveSupport::TestCase
-  fixtures :projects
+  fixtures :projects, :repositories, :enabled_modules, :users, :roles 
   
   # No '..' in the repository path
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
@@ -62,6 +62,47 @@
       @repository.fetch_changesets
       assert_equal 15, @repository.changesets.count
     end
+
+    def test_find_changeset_by_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['7234cb2750b63f47bff735edc50a1c0a433c2518', '7234cb2750b'].each do |r|
+        assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518',
+                     @repository.find_changeset_by_name(r).revision
+      end
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('7234cb2750b63f47bff735edc50a1c0a433c2518')
+      assert_equal c.scmid, c.identifier
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('7234cb2750b63f47bff735edc50a1c0a433c2518')
+      assert_equal '7234cb27', c.format_identifier
+    end
+
+    def test_activities
+      c = Changeset.new(:repository => @repository,
+                        :committed_on => Time.now,
+                        :revision => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
+                        :scmid    => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
+                        :comments => 'test')
+      assert c.event_title.include?('abc7234c:')
+      assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
+    end
   else
     puts "Git test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryMercurialTest < ActiveSupport::TestCase
   fixtures :projects
@@ -33,9 +33,10 @@
       @repository.fetch_changesets
       @repository.reload
       
-      assert_equal 6, @repository.changesets.count
-      assert_equal 11, @repository.changes.count
-      assert_equal "Initial import.\nThe repository contains 3 files.", @repository.changesets.find_by_revision('0').comments
+      assert_equal 17, @repository.changesets.count
+      assert_equal 25, @repository.changes.count
+      assert_equal "Initial import.\nThe repository contains 3 files.",
+                   @repository.changesets.find_by_revision('0').comments
     end
     
     def test_fetch_changesets_incremental
@@ -46,28 +47,130 @@
       assert_equal 3, @repository.changesets.count
       
       @repository.fetch_changesets
-      assert_equal 6, @repository.changesets.count
+      assert_equal 17, @repository.changesets.count
     end
     
     def test_entries
       assert_equal 2, @repository.entries("sources", 2).size
+      assert_equal 2, @repository.entries("sources", '400bb8672109').size
       assert_equal 1, @repository.entries("sources", 3).size
+      assert_equal 1, @repository.entries("sources", 'b3a615152df8').size
     end
 
     def test_locate_on_outdated_repository
-      # Change the working dir state
-      %x{hg -R #{REPOSITORY_PATH} up -r 0}
       assert_equal 1, @repository.entries("images", 0).size
       assert_equal 2, @repository.entries("images").size
       assert_equal 2, @repository.entries("images", 2).size
     end
 
-
-    def test_cat
-      assert @repository.scm.cat("sources/welcome_controller.rb", 2)
-      assert_nil @repository.scm.cat("sources/welcome_controller.rb")
+    def test_isodatesec
+      # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
+      if @repository.scm.class.client_version_above?([1, 0])
+        @repository.fetch_changesets
+        @repository.reload
+        rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
+        assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
+      end
     end
 
+    def test_changeset_order_by_revision
+      @repository.fetch_changesets
+      @repository.reload
+
+      c0 = @repository.latest_changeset
+      c1 = @repository.changesets.find_by_revision('0')
+      # sorted by revision (id), not by date
+      assert c0.revision.to_i > c1.revision.to_i
+      assert c0.committed_on  < c1.committed_on
+    end
+
+    def test_latest_changesets
+      @repository.fetch_changesets
+      @repository.reload
+
+      # with_limit
+      changesets = @repository.latest_changesets('', nil, 2)
+      assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
+
+      # with_filepath
+      changesets = @repository.latest_changesets('/sql_escape/percent%dir/percent%file1.txt', nil)
+      assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+      changesets = @repository.latest_changesets('/sql_escape/underscore_dir/understrike_file.txt', nil)
+      assert_equal %w|12 9|, changesets.collect(&:revision)
+    end
+
+    def test_copied_files
+      @repository.fetch_changesets
+      @repository.reload
+
+      cs1 = @repository.changesets.find_by_revision('13')
+      assert_not_nil cs1
+      c1  = cs1.changes.sort_by(&:path)
+      assert_equal 2, c1.size
+
+      assert_equal 'A', c1[0].action
+      assert_equal '/sql_escape/percent%dir/percentfile1.txt',  c1[0].path
+      assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
+
+      assert_equal 'A', c1[1].action
+      assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
+      assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
+
+      cs2 = @repository.changesets.find_by_revision('15')
+      c2  = cs2.changes
+      assert_equal 1, c2.size
+
+      assert_equal 'A', c2[0].action
+      assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
+      assert_equal '/README', c2[0].from_path
+    end
+
+    def test_find_changeset_by_name
+      @repository.fetch_changesets
+      @repository.reload
+      %w|2 400bb8672109 400|.each do |r|
+        assert_equal '2', @repository.find_changeset_by_name(r).revision
+      end
+    end
+
+    def test_find_changeset_by_invalid_name
+      @repository.fetch_changesets
+      @repository.reload
+      assert_nil @repository.find_changeset_by_name('100000')
+    end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('2')
+      assert_equal c.scmid, c.identifier
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('2')
+      assert_equal '2:400bb8672109', c.format_identifier
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_activities
+      c = Changeset.new(:repository   => @repository,
+                        :committed_on => Time.now,
+                        :revision     => '123',
+                        :scmid        => 'abc400bb8672',
+                        :comments     => 'test')
+      assert c.event_title.include?('123:abc400bb8672:')
+      assert_equal 'abc400bb8672', c.event_url[:rev]
+    end
   else
     puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/.svn/text-base/repository_subversion_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_subversion_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositorySubversionTest < ActiveSupport::TestCase
-  fixtures :projects, :repositories
+  fixtures :projects, :repositories, :enabled_modules, :users, :roles 
   
   def setup
     @project = Project.find(1)
@@ -88,6 +88,54 @@
       assert_equal 1, entries.size, 'Expect a single entry'
       assert_equal 'README.txt', entries.first.name
     end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('1')
+      assert_equal c.revision, c.identifier
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_identifier_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert_equal c.identifier, c.revision
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('1')
+      assert_equal c.format_identifier, c.revision
+    end
+
+    def test_format_identifier_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert_equal c.format_identifier, c.revision
+    end
+
+    def test_activities
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '1', :comments => 'test')
+      assert c.event_title.include?('1:')
+      assert_equal '1', c.event_url[:rev]
+    end
+
+    def test_activities_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert c.event_title.include?('123456789:')
+      assert_equal '123456789', c.event_url[:rev]
+    end
   else
     puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/.svn/text-base/repository_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/repository_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,18 +15,23 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryTest < ActiveSupport::TestCase
   fixtures :projects,
            :trackers,
            :projects_trackers,
+           :enabled_modules,
            :repositories,
            :issues,
            :issue_statuses,
+           :issue_categories,
            :changesets,
            :changes,
            :users,
+           :members,
+           :member_roles,
+           :roles,
            :enumerations
   
   def setup
--- a/test/unit/.svn/text-base/role_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/role_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RoleTest < ActiveSupport::TestCase
   fixtures :roles, :workflows
--- a/test/unit/.svn/text-base/search_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/search_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class SearchTest < ActiveSupport::TestCase
   fixtures :users,
--- a/test/unit/.svn/text-base/setting_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/setting_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class SettingTest < ActiveSupport::TestCase
   
--- a/test/unit/.svn/text-base/testing_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/testing_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 # Test case that checks that the testing infrastructure is setup correctly.
 class TestingTest < ActiveSupport::TestCase
--- a/test/unit/.svn/text-base/time_entry_activity_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/time_entry_activity_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryActivityTest < ActiveSupport::TestCase
   fixtures :enumerations, :time_entries
--- a/test/unit/.svn/text-base/time_entry_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/time_entry_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryTest < ActiveSupport::TestCase
   fixtures :issues, :projects, :users, :time_entries
--- a/test/unit/.svn/text-base/token_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/token_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TokenTest < ActiveSupport::TestCase
   fixtures :tokens
--- a/test/unit/.svn/text-base/tracker_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/tracker_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TrackerTest < ActiveSupport::TestCase
   fixtures :trackers, :workflows, :issue_statuses, :roles
--- a/test/unit/.svn/text-base/user_preference_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/user_preference_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class UserPreferenceTest < ActiveSupport::TestCase
   fixtures :users, :user_preferences
--- a/test/unit/.svn/text-base/user_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/user_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class UserTest < ActiveSupport::TestCase
   fixtures :users, :members, :projects, :roles, :member_roles, :auth_sources
@@ -115,12 +115,19 @@
     assert Member.find_all_by_user_id(2).empty?
   end
   
-  def test_validate
+  def test_validate_login_presence
     @admin.login = ""
     assert !@admin.save
     assert_equal 1, @admin.errors.count
   end
   
+  def test_validate_mail_notification_inclusion
+    u = User.new
+    u.mail_notification = 'foo'
+    u.save
+    assert_not_nil u.errors.on(:mail_notification)
+  end
+  
   context "User#try_to_login" do
     should "fall-back to case-insensitive if user login is not found as-typed." do
       user = User.try_to_login("AdMin", "admin")
@@ -437,55 +444,49 @@
       end
 
       should "be true for a user with :all" do
-        @author.update_attribute(:mail_notification, :all)
+        @author.update_attribute(:mail_notification, 'all')
         assert @author.notify_about?(@issue)
       end
       
       should "be false for a user with :none" do
-        @author.update_attribute(:mail_notification, :none)
+        @author.update_attribute(:mail_notification, 'none')
         assert ! @author.notify_about?(@issue)
       end
       
       should "be false for a user with :only_my_events and isn't an author, creator, or assignee" do
-        @user = User.generate_with_protected!(:mail_notification => :only_my_events)
+        @user = User.generate_with_protected!(:mail_notification => 'only_my_events')
         assert ! @user.notify_about?(@issue)
       end
       
       should "be true for a user with :only_my_events and is the author" do
-        @author.update_attribute(:mail_notification, :only_my_events)
+        @author.update_attribute(:mail_notification, 'only_my_events')
         assert @author.notify_about?(@issue)
       end
       
       should "be true for a user with :only_my_events and is the assignee" do
-        @assignee.update_attribute(:mail_notification, :only_my_events)
+        @assignee.update_attribute(:mail_notification, 'only_my_events')
         assert @assignee.notify_about?(@issue)
       end
       
       should "be true for a user with :only_assigned and is the assignee" do
-        @assignee.update_attribute(:mail_notification, :only_assigned)
+        @assignee.update_attribute(:mail_notification, 'only_assigned')
         assert @assignee.notify_about?(@issue)
       end
       
       should "be false for a user with :only_assigned and is not the assignee" do
-        @author.update_attribute(:mail_notification, :only_assigned)
+        @author.update_attribute(:mail_notification, 'only_assigned')
         assert ! @author.notify_about?(@issue)
       end
       
       should "be true for a user with :only_owner and is the author" do
-        @author.update_attribute(:mail_notification, :only_owner)
+        @author.update_attribute(:mail_notification, 'only_owner')
         assert @author.notify_about?(@issue)
       end
       
       should "be false for a user with :only_owner and is not the author" do
-        @assignee.update_attribute(:mail_notification, :only_owner)
+        @assignee.update_attribute(:mail_notification, 'only_owner')
         assert ! @assignee.notify_about?(@issue)
       end
-      
-      should "be false if the mail_notification is anything else" do
-        @assignee.update_attribute(:mail_notification, :somthing_else)
-        assert ! @assignee.notify_about?(@issue)
-      end
-      
     end
 
     context "other events" do
--- a/test/unit/.svn/text-base/version_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/version_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class VersionTest < ActiveSupport::TestCase
   fixtures :projects, :users, :issues, :issue_statuses, :trackers, :enumerations, :versions
@@ -190,7 +190,7 @@
     # Separate hierarchy
     project_1_issue = Issue.find(1)
     project_1_issue.fixed_version = @version
-    assert project_1_issue.save, project_1_issue.errors.full_messages
+    assert project_1_issue.save, project_1_issue.errors.full_messages.to_s
     
     project_5_issue = Issue.find(6)
     project_5_issue.fixed_version = @version
--- a/test/unit/.svn/text-base/watcher_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/watcher_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WatcherTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules,
--- a/test/unit/.svn/text-base/wiki_content_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/wiki_content_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiContentTest < ActiveSupport::TestCase
   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :users
--- a/test/unit/.svn/text-base/wiki_page_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/wiki_page_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiPageTest < ActiveSupport::TestCase
   fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
--- a/test/unit/.svn/text-base/wiki_redirect_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/wiki_redirect_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiRedirectTest < ActiveSupport::TestCase
-  fixtures :projects, :wikis
+  fixtures :projects, :wikis, :wiki_pages
 
   def setup
     @wiki = Wiki.find(1)
@@ -33,6 +33,7 @@
     assert_equal 'New_title', @original.title
     assert @wiki.redirects.find_by_title('Original_title')
     assert @wiki.find_page('Original title')
+    assert @wiki.find_page('ORIGINAL title')
   end
   
   def test_update_redirect
--- a/test/unit/.svn/text-base/wiki_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/.svn/text-base/wiki_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiTest < ActiveSupport::TestCase
   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
@@ -39,6 +39,18 @@
     assert_equal "Another start page", @wiki.start_page
   end
   
+  def test_find_page
+    wiki = Wiki.find(1)
+    page = WikiPage.find(2)
+    
+    assert_equal page, wiki.find_page('Another_page')
+    assert_equal page, wiki.find_page('Another page')
+    assert_equal page, wiki.find_page('ANOTHER page')
+    
+    page = WikiPage.find(10)
+    assert_equal page, wiki.find_page('Этика_менеджмента')
+  end
+  
   def test_titleize
     assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
     assert_equal 'テスト', Wiki.titleize('テスト')
--- a/test/unit/activity_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/activity_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ActivityTest < ActiveSupport::TestCase
   fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
--- a/test/unit/attachment_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/attachment_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AttachmentTest < ActiveSupport::TestCase
   fixtures :issues, :users
@@ -34,7 +34,7 @@
     assert_equal 59, a.filesize
     assert_equal 'text/plain', a.content_type
     assert_equal 0, a.downloads
-    assert_equal Digest::MD5.hexdigest(uploaded_test_file("testfile.txt", "text/plain").read), a.digest
+    assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest
     assert File.exist?(a.diskfile)
   end
   
--- a/test/unit/auth_source_ldap_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/auth_source_ldap_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class AuthSourceLdapTest < ActiveSupport::TestCase
   fixtures :auth_sources
--- a/test/unit/board_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/board_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class BoardTest < ActiveSupport::TestCase
-  fixtures :projects, :boards, :messages
+  fixtures :projects, :boards, :messages, :attachments, :watchers
 
   def setup
     @project = Project.find(1)
@@ -23,8 +23,13 @@
   
   def test_destroy
     board = Board.find(1)
-    assert board.destroy
-    # make sure that the associated messages are removed
+    assert_difference 'Message.count', -6 do
+      assert_difference 'Attachment.count', -1 do
+        assert_difference 'Watcher.count', -1 do
+          assert board.destroy
+        end
+      end
+    end
     assert_equal 0, Message.count(:conditions => {:board_id => 1})
   end
 end
--- a/test/unit/calendar_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/calendar_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CalendarTest < ActiveSupport::TestCase
   
--- a/test/unit/changeset_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/changeset_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ChangesetTest < ActiveSupport::TestCase
   fixtures :projects, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :users, :members, :member_roles, :trackers
@@ -44,6 +44,76 @@
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
   
+  def test_ref_keywords
+    Setting.commit_ref_keywords = 'refs'
+    Setting.commit_fix_keywords = ''
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'Ignores #2. Refs #1')
+    c.scan_comment_for_issue_ids
+    
+    assert_equal [1], c.issue_ids.sort
+  end
+  
+  def test_ref_keywords_any_only
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_fix_keywords = ''
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'Ignores #2. Refs #1')
+    c.scan_comment_for_issue_ids
+    
+    assert_equal [1, 2], c.issue_ids.sort
+  end
+  
+  def test_ref_keywords_any_with_timelog
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_logtime_enabled = '1'
+
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => 24.hours.ago,
+                      :comments => 'Worked on this issue #1 @2h',
+                      :revision => '520',
+                      :user => User.find(2))
+    assert_difference 'TimeEntry.count' do
+      c.scan_comment_for_issue_ids
+    end
+    assert_equal [1], c.issue_ids.sort
+    
+    time = TimeEntry.first(:order => 'id desc')
+    assert_equal 1, time.issue_id
+    assert_equal 1, time.project_id
+    assert_equal 2, time.user_id
+    assert_equal 2.0, time.hours
+    assert_equal Date.yesterday, time.spent_on
+    assert time.activity.is_default?
+    assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
+  end
+  
+  def test_ref_keywords_closing_with_timelog
+    Setting.commit_fix_status_id = IssueStatus.find(:first, :conditions => ["is_closed = ?", true]).id
+    Setting.commit_ref_keywords = '*'
+    Setting.commit_fix_keywords = 'fixes , closes'
+    Setting.commit_logtime_enabled = '1'
+    
+    c = Changeset.new(:repository => Project.find(1).repository,
+                      :committed_on => Time.now,
+                      :comments => 'This is a comment. Fixes #1 @2.5, #2 @1',
+                      :user => User.find(2))
+    assert_difference 'TimeEntry.count', 2 do
+      c.scan_comment_for_issue_ids
+    end
+    
+    assert_equal [1, 2], c.issue_ids.sort
+    assert Issue.find(1).closed?
+    assert Issue.find(2).closed?
+
+    times = TimeEntry.all(:order => 'id desc', :limit => 2)
+    assert_equal [1, 2], times.collect(&:issue_id).sort
+  end
+  
   def test_ref_keywords_any_line_start
     Setting.commit_ref_keywords = '*'
 
@@ -99,6 +169,21 @@
     assert_equal [2], c.issue_ids.sort
     assert c.issues.first.project != c.project
   end
+  
+  def test_text_tag_revision
+    c = Changeset.new(:revision => '520')
+    assert_equal 'r520', c.text_tag
+  end
+  
+  def test_text_tag_hash
+    c = Changeset.new(:scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518')
+    assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
+  end
+
+  def test_text_tag_hash_all_number
+    c = Changeset.new(:scmid => '0123456789', :revision => '0123456789')
+    assert_equal 'commit:0123456789', c.text_tag
+  end
 
   def test_previous
     changeset = Changeset.find_by_revision('3')
@@ -133,4 +218,9 @@
     c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
     assert_equal "Texte encod en ISO-8859-1.", c.comments
   end
+
+  def test_identifier
+    c = Changeset.find_by_revision('1')
+    assert_equal c.revision, c.identifier
+  end
 end
--- a/test/unit/comment_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/comment_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CommentTest < ActiveSupport::TestCase
   fixtures :users, :news, :comments
--- a/test/unit/custom_field_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/custom_field_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CustomFieldTest < ActiveSupport::TestCase
   fixtures :custom_fields
--- a/test/unit/custom_value_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/custom_value_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class CustomValueTest < ActiveSupport::TestCase
   fixtures :custom_fields, :custom_values, :users
--- a/test/unit/default_data_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/default_data_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DefaultDataTest < ActiveSupport::TestCase
   include Redmine::I18n
--- a/test/unit/document_category_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/document_category_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DocumentCategoryTest < ActiveSupport::TestCase
   fixtures :enumerations, :documents, :issues
--- a/test/unit/document_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/document_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class DocumentTest < ActiveSupport::TestCase
   fixtures :projects, :enumerations, :documents, :attachments
--- a/test/unit/enabled_module_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/enabled_module_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class EnabledModuleTest < ActiveSupport::TestCase
   fixtures :projects, :wikis
--- a/test/unit/enumeration_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/enumeration_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class EnumerationTest < ActiveSupport::TestCase
   fixtures :enumerations, :issues, :custom_fields, :custom_values
--- a/test/unit/group_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/group_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class GroupTest < ActiveSupport::TestCase
   fixtures :all
--- a/test/unit/helpers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,19 +1,19 @@
 K 25
 svn:wc:ra_dav:version-url
 V 42
-/svn/!svn/ver/4377/trunk/test/unit/helpers
+/svn/!svn/ver/4696/trunk/test/unit/helpers
 END
 custom_fields_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 71
-/svn/!svn/ver/2541/trunk/test/unit/helpers/custom_fields_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/custom_fields_helper_test.rb
 END
 timelog_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/2948/trunk/test/unit/helpers/timelog_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/timelog_helper_test.rb
 END
 issue_moves_helper_test.rb
 K 25
@@ -25,29 +25,29 @@
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/4377/trunk/test/unit/helpers/application_helper_test.rb
+/svn/!svn/ver/4696/trunk/test/unit/helpers/application_helper_test.rb
 END
 search_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/2910/trunk/test/unit/helpers/search_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/search_helper_test.rb
 END
 sort_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/2895/trunk/test/unit/helpers/sort_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/sort_helper_test.rb
 END
 projects_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 66
-/svn/!svn/ver/3140/trunk/test/unit/helpers/projects_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/projects_helper_test.rb
 END
 issues_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/3552/trunk/test/unit/helpers/issues_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/helpers/issues_helper_test.rb
 END
--- a/test/unit/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/helpers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T18:52:07.556711Z
-4377
-jplang
+2011-01-11T16:03:24.486964Z
+4696
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-2539cee92860ac8ec7abe2016b90b951
-2009-03-01T10:00:52.175090Z
-2541
-jplang
+2011-01-13T14:08:13.000000Z
+0091346b4a944910faf5733e2ed88a76
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-1118
+1123
 
 timelog_helper_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-f0de9a2559bb9dcfdf3c35436c737ee8
-2009-10-21T22:34:39.509319Z
-2948
-edavis10
+2011-01-13T14:08:13.000000Z
+ac087c4ae8e6354c77ef7189351ce220
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -92,7 +92,7 @@
 
 
 
-2451
+2456
 
 issue_moves_helper_test.rb
 file
@@ -134,11 +134,11 @@
 
 
 
-2010-11-19T13:04:41.233647Z
-93e1fbbe347fd0b1526df779b0244489
-2010-11-06T18:52:07.556711Z
-4377
-jplang
+2011-01-13T14:08:13.000000Z
+29c11d5b78186bda781c09791622a62f
+2011-01-11T16:03:24.486964Z
+4696
+tmaruyama
 has-props
 
 
@@ -160,7 +160,7 @@
 
 
 
-29154
+33335
 
 search_helper_test.rb
 file
@@ -168,11 +168,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-09734417b458d837868bbd714ae2e011
-2009-10-10T15:00:28.619200Z
-2910
-jplang
+2011-01-13T14:08:13.000000Z
+9eb29557d249537fed237c15e1b1b65b
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -194,7 +194,7 @@
 
 
 
-1954
+1959
 
 sort_helper_test.rb
 file
@@ -202,11 +202,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-204d96fe44cd80c7a1e4cbbd9de39cea
-2009-09-20T14:06:57.257282Z
-2895
-jplang
+2011-01-13T14:08:13.000000Z
+fd65c7c018eb59b2d8697ebeb6b7ba71
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -228,7 +228,7 @@
 
 
 
-2650
+2655
 
 projects_helper_test.rb
 file
@@ -236,11 +236,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-576e6ed0c8e4b7e69440c1f99b0b91a4
-2009-12-09T09:22:16.985172Z
-3140
-jplang
+2011-01-13T14:08:13.000000Z
+93f6f6ca679f5c32988254776b6d09ae
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -262,7 +262,7 @@
 
 
 
-2286
+2291
 
 issues_helper_test.rb
 file
@@ -270,11 +270,11 @@
 
 
 
-2010-09-23T14:37:45.483825Z
-8ef7e3dfba1c93a07802c7fa579b6013
-2010-03-08T16:47:47.660186Z
-3552
-edavis10
+2011-01-13T14:08:13.000000Z
+b26d2e82551d9f01c0394400ffd85136
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -296,5 +296,5 @@
 
 
 
-5777
+5782
 
--- a/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApplicationHelperTest < ActionView::TestCase
   
@@ -147,7 +147,7 @@
     }
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
   end
-  
+
   def test_redmine_links
     issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, 
                                :class => 'issue status-1 priority-1 overdue', :title => 'Error 281 when updating a recipe (New)')
@@ -224,7 +224,89 @@
     @project = Project.find(1)
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
   end
-  
+
+  def test_redmine_links_git_commit
+    changeset_link = link_to('abcd',
+                               {
+                                 :controller => 'repositories',
+                                 :action     => 'revision',
+                                 :id         => 'subproject1',
+                                 :rev        => 'abcd',
+                                },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'commit:abcd' => changeset_link,
+     }
+    @project = Project.find(3)
+    r = Repository::Git.create!(:project => @project, :url => '/tmp/test/git')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => 'abcd',
+                      :scmid => 'abcd',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
+  # TODO: Bazaar commit id contains mail address, so it contains '@' and '_'.
+  def test_redmine_links_darcs_commit
+    changeset_link = link_to('20080308225258-98289-abcd456efg.gz',
+                               {
+                                 :controller => 'repositories',
+                                 :action     => 'revision',
+                                 :id         => 'subproject1',
+                                 :rev        => '123',
+                                },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'commit:20080308225258-98289-abcd456efg.gz' => changeset_link,
+     }
+    @project = Project.find(3)
+    r = Repository::Darcs.create!(:project => @project, :url => '/tmp/test/darcs')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => '123',
+                      :scmid => '20080308225258-98289-abcd456efg.gz',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
+  def test_redmine_links_mercurial_commit
+    changeset_link_rev = link_to('r123',
+                                  {
+                                     :controller => 'repositories',
+                                     :action     => 'revision',
+                                     :id         => 'subproject1',
+                                     :rev        => '123' ,
+                                  },
+                              :class => 'changeset', :title => 'test commit')
+    changeset_link_commit = link_to('abcd',
+                                  {
+                                        :controller => 'repositories',
+                                        :action     => 'revision',
+                                        :id         => 'subproject1',
+                                        :rev        => 'abcd' ,
+                                  },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'r123' => changeset_link_rev,
+      'commit:abcd' => changeset_link_commit,
+     }
+    @project = Project.find(3)
+    r = Repository::Mercurial.create!(:project => @project, :url => '/tmp/test')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => '123',
+                      :scmid => 'abcd',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
   def test_attachment_links
     attachment_link = link_to('error281.txt', {:controller => 'attachments', :action => 'download', :id => '1'}, :class => 'attachment')
     to_test = {
@@ -275,7 +357,13 @@
       "<!-- opening comment" => "<p>&lt;!-- opening comment</p>",
       # remove attributes except class
       "<pre class='foo'>some text</pre>" => "<pre class='foo'>some text</pre>",
+      '<pre class="foo">some text</pre>' => '<pre class="foo">some text</pre>',
+      "<pre class='foo bar'>some text</pre>" => "<pre class='foo bar'>some text</pre>",
+      '<pre class="foo bar">some text</pre>' => '<pre class="foo bar">some text</pre>',
       "<pre onmouseover='alert(1)'>some text</pre>" => "<pre>some text</pre>",
+      # xss
+      '<pre><code class=""onmouseover="alert(1)">text</code></pre>' => '<pre><code>text</code></pre>',
+      '<pre class=""onmouseover="alert(1)">text</pre>' => '<pre>text</pre>',
     }
     to_test.each { |text, result| assert_equal result, textilizable(text) }
   end
@@ -422,7 +510,11 @@
 h2. Subtitle with [[Wiki|another Wiki]] link
 
 h2. Subtitle with %{color:red}red text%
-    
+
+<pre>
+some code
+</pre>
+
 h3. Subtitle with *some* _modifiers_
 
 h1. Another title
@@ -458,7 +550,7 @@
                '</ul>'
 
     @project = Project.find(1)
-    assert textilizable(raw).gsub("\n", "").include?(expected)
+    assert textilizable(raw).gsub("\n", "").include?(expected), textilizable(raw)
   end
   
   def test_table_of_content_should_contain_included_page_headings
@@ -600,6 +692,7 @@
                 Date.today - 100 => 'about 3 months late',
                 Date.today - 20000 => 'over 54 years late',
                }
+    ::I18n.locale = :en
     to_test.each do |date, expected|
       assert_equal expected, due_date_distance_in_words(date)
     end
--- a/test/unit/helpers/.svn/text-base/custom_fields_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/custom_fields_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class CustomFieldsHelperTest < HelperTestCase
   include CustomFieldsHelper
--- a/test/unit/helpers/.svn/text-base/issues_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/issues_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class IssuesHelperTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/helpers/.svn/text-base/projects_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/projects_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ProjectsHelperTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/helpers/.svn/text-base/search_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/search_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class SearchHelperTest < HelperTestCase
   include SearchHelper
--- a/test/unit/helpers/.svn/text-base/sort_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/sort_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class SortHelperTest < HelperTestCase
   include SortHelper
--- a/test/unit/helpers/.svn/text-base/timelog_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/.svn/text-base/timelog_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class TimelogHelperTest < HelperTestCase
   include TimelogHelper
--- a/test/unit/helpers/application_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/application_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ApplicationHelperTest < ActionView::TestCase
   
@@ -147,7 +147,7 @@
     }
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
   end
-  
+
   def test_redmine_links
     issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, 
                                :class => 'issue status-1 priority-1 overdue', :title => 'Error 281 when updating a recipe (New)')
@@ -224,7 +224,89 @@
     @project = Project.find(1)
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
   end
-  
+
+  def test_redmine_links_git_commit
+    changeset_link = link_to('abcd',
+                               {
+                                 :controller => 'repositories',
+                                 :action     => 'revision',
+                                 :id         => 'subproject1',
+                                 :rev        => 'abcd',
+                                },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'commit:abcd' => changeset_link,
+     }
+    @project = Project.find(3)
+    r = Repository::Git.create!(:project => @project, :url => '/tmp/test/git')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => 'abcd',
+                      :scmid => 'abcd',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
+  # TODO: Bazaar commit id contains mail address, so it contains '@' and '_'.
+  def test_redmine_links_darcs_commit
+    changeset_link = link_to('20080308225258-98289-abcd456efg.gz',
+                               {
+                                 :controller => 'repositories',
+                                 :action     => 'revision',
+                                 :id         => 'subproject1',
+                                 :rev        => '123',
+                                },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'commit:20080308225258-98289-abcd456efg.gz' => changeset_link,
+     }
+    @project = Project.find(3)
+    r = Repository::Darcs.create!(:project => @project, :url => '/tmp/test/darcs')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => '123',
+                      :scmid => '20080308225258-98289-abcd456efg.gz',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
+  def test_redmine_links_mercurial_commit
+    changeset_link_rev = link_to('r123',
+                                  {
+                                     :controller => 'repositories',
+                                     :action     => 'revision',
+                                     :id         => 'subproject1',
+                                     :rev        => '123' ,
+                                  },
+                              :class => 'changeset', :title => 'test commit')
+    changeset_link_commit = link_to('abcd',
+                                  {
+                                        :controller => 'repositories',
+                                        :action     => 'revision',
+                                        :id         => 'subproject1',
+                                        :rev        => 'abcd' ,
+                                  },
+                              :class => 'changeset', :title => 'test commit')
+    to_test = {
+      'r123' => changeset_link_rev,
+      'commit:abcd' => changeset_link_commit,
+     }
+    @project = Project.find(3)
+    r = Repository::Mercurial.create!(:project => @project, :url => '/tmp/test')
+    assert r
+    c = Changeset.new(:repository => r,
+                      :committed_on => Time.now,
+                      :revision => '123',
+                      :scmid => 'abcd',
+                      :comments => 'test commit')
+    assert( c.save )
+    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
+  end
+
   def test_attachment_links
     attachment_link = link_to('error281.txt', {:controller => 'attachments', :action => 'download', :id => '1'}, :class => 'attachment')
     to_test = {
@@ -275,7 +357,13 @@
       "<!-- opening comment" => "<p>&lt;!-- opening comment</p>",
       # remove attributes except class
       "<pre class='foo'>some text</pre>" => "<pre class='foo'>some text</pre>",
+      '<pre class="foo">some text</pre>' => '<pre class="foo">some text</pre>',
+      "<pre class='foo bar'>some text</pre>" => "<pre class='foo bar'>some text</pre>",
+      '<pre class="foo bar">some text</pre>' => '<pre class="foo bar">some text</pre>',
       "<pre onmouseover='alert(1)'>some text</pre>" => "<pre>some text</pre>",
+      # xss
+      '<pre><code class=""onmouseover="alert(1)">text</code></pre>' => '<pre><code>text</code></pre>',
+      '<pre class=""onmouseover="alert(1)">text</pre>' => '<pre>text</pre>',
     }
     to_test.each { |text, result| assert_equal result, textilizable(text) }
   end
@@ -422,7 +510,11 @@
 h2. Subtitle with [[Wiki|another Wiki]] link
 
 h2. Subtitle with %{color:red}red text%
-    
+
+<pre>
+some code
+</pre>
+
 h3. Subtitle with *some* _modifiers_
 
 h1. Another title
@@ -458,7 +550,7 @@
                '</ul>'
 
     @project = Project.find(1)
-    assert textilizable(raw).gsub("\n", "").include?(expected)
+    assert textilizable(raw).gsub("\n", "").include?(expected), textilizable(raw)
   end
   
   def test_table_of_content_should_contain_included_page_headings
@@ -600,6 +692,7 @@
                 Date.today - 100 => 'about 3 months late',
                 Date.today - 20000 => 'over 54 years late',
                }
+    ::I18n.locale = :en
     to_test.each do |date, expected|
       assert_equal expected, due_date_distance_in_words(date)
     end
--- a/test/unit/helpers/custom_fields_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/custom_fields_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class CustomFieldsHelperTest < HelperTestCase
   include CustomFieldsHelper
--- a/test/unit/helpers/issues_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/issues_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class IssuesHelperTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/helpers/projects_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/projects_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class ProjectsHelperTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/helpers/search_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/search_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class SearchHelperTest < HelperTestCase
   include SearchHelper
--- a/test/unit/helpers/sort_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/sort_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class SortHelperTest < HelperTestCase
   include SortHelper
--- a/test/unit/helpers/timelog_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/helpers/timelog_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 class TimelogHelperTest < HelperTestCase
   include TimelogHelper
--- a/test/unit/issue_category_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_category_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueCategoryTest < ActiveSupport::TestCase
   fixtures :issue_categories, :issues
--- a/test/unit/issue_nested_set_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_nested_set_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueNestedSetTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles,
--- a/test/unit/issue_priority_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_priority_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssuePriorityTest < ActiveSupport::TestCase
   fixtures :enumerations, :issues
--- a/test/unit/issue_relation_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_relation_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueRelationTest < ActiveSupport::TestCase
   fixtures :issue_relations, :issues
@@ -63,4 +63,14 @@
     assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type_for(from)
     assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type_for(to)
   end
+  
+  def test_set_issue_to_dates_without_issue_to
+    r = IssueRelation.new(:issue_from => Issue.new(:start_date => Date.today), :relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
+    assert_nil r.set_issue_to_dates
+  end
+  
+  def test_set_issue_to_dates_without_issues
+    r = IssueRelation.new(:relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
+    assert_nil r.set_issue_to_dates
+  end
 end
--- a/test/unit/issue_status_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_status_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueStatusTest < ActiveSupport::TestCase
   fixtures :issue_statuses, :issues
--- a/test/unit/issue_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/issue_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles,
--- a/test/unit/journal_observer_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/journal_observer_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class JournalObserverTest < ActiveSupport::TestCase
   fixtures :issues, :issue_statuses, :journals, :journal_details
--- a/test/unit/journal_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/journal_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class JournalTest < ActiveSupport::TestCase
   fixtures :issues, :issue_statuses, :journals, :journal_details
--- a/test/unit/lib/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 38
-/svn/!svn/ver/4388/trunk/test/unit/lib
+/svn/!svn/ver/4705/trunk/test/unit/lib
 END
 redmine_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 54
-/svn/!svn/ver/4388/trunk/test/unit/lib/redmine_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine_test.rb
 END
--- a/test/unit/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T22:38:10.728638Z
-4388
-jplang
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
@@ -35,11 +35,11 @@
 
 
 
-2010-11-19T13:04:41.321681Z
-8adb9955639998853d35f1a1181cd654
-2010-11-07T22:38:10.728638Z
-4388
-jplang
+2011-01-13T14:09:08.000000Z
+eec42202798f1936d0e12c27f43f9add
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -61,5 +61,5 @@
 
 
 
-3430
+3435
 
--- a/test/unit/lib/.svn/text-base/redmine_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/.svn/text-base/redmine_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 module RedmineMenuTestHelper
   # Assertions
--- a/test/unit/lib/redmine/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,59 +1,71 @@
 K 25
 svn:wc:ra_dav:version-url
 V 46
-/svn/!svn/ver/4376/trunk/test/unit/lib/redmine
+/svn/!svn/ver/4705/trunk/test/unit/lib/redmine
 END
 menu_manager_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3926/trunk/test/unit/lib/redmine/menu_manager_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/menu_manager_test.rb
 END
 plugin_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 61
-/svn/!svn/ver/3175/trunk/test/unit/lib/redmine/plugin_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/plugin_test.rb
 END
 wiki_formatting.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/3446/trunk/test/unit/lib/redmine/wiki_formatting.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting.rb
 END
 i18n_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4183/trunk/test/unit/lib/redmine/i18n_test.rb
+/svn/!svn/ver/4679/trunk/test/unit/lib/redmine/i18n_test.rb
 END
 hook_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3211/trunk/test/unit/lib/redmine/hook_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/hook_test.rb
 END
 access_control_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 69
-/svn/!svn/ver/2887/trunk/test/unit/lib/redmine/access_control_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/access_control_test.rb
+END
+safe_attributes_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/safe_attributes_test.rb
+END
+themes_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/themes_test.rb
 END
 mime_type_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/2887/trunk/test/unit/lib/redmine/mime_type_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/mime_type_test.rb
 END
 unified_diff_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 67
-/svn/!svn/ver/3028/trunk/test/unit/lib/redmine/unified_diff_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/unified_diff_test.rb
 END
 notifiable_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 65
-/svn/!svn/ver/4222/trunk/test/unit/lib/redmine/notifiable_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/notifiable_test.rb
 END
--- a/test/unit/lib/redmine/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T17:47:27.890964Z
-4376
-jplang
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
@@ -26,16 +26,164 @@
 
 e93f8b46-1217-0410-a6f0-8f06a7374b81
 
+i18n_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+9aeca8ed785b33fdf901312133798b8b
+2011-01-10T18:25:12.105765Z
+4679
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4202
+
+scm
+dir
+
+safe_attributes_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+761d6ebcd277ba4a1d0a2216a7fe8925
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2988
+
+themes_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+2e952466cca65bea9ea095ad2ec01811
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1822
+
+mime_type_test.rb
+file
+
+
+
+
+2011-01-13T14:08:14.000000Z
+161e4b78a0d1cdfd67d5bd54f6480726
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2014
+
+wiki_formatting
+dir
+
+views
+dir
+
+menu_manager
+dir
+
 menu_manager_test.rb
 file
 
 
 
 
-2010-09-23T14:37:45.495799Z
-ac6fa3504bb54b2f4279e3fb031b8366
-2010-08-08T07:07:38.841875Z
-3926
+2011-01-13T14:09:08.000000Z
+1a6043d0994b5fb4a09f3962ab5542ce
+2010-12-12T23:24:34.194336Z
+4509
 jbbarth
 
 
@@ -58,7 +206,7 @@
 
 
 
-1039
+1044
 
 plugin_test.rb
 file
@@ -66,11 +214,11 @@
 
 
 
-2010-09-23T14:37:45.495799Z
-e77b70f296a1c5879f34d10c097bb45c
-2009-12-16T02:07:46.084185Z
-3175
-edavis10
+2011-01-13T14:09:08.000000Z
+d2f2e4457ed4eda1b5efb8a41a3de255
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -92,7 +240,7 @@
 
 
 
-4163
+4168
 
 wiki_formatting.rb
 file
@@ -100,11 +248,11 @@
 
 
 
-2010-09-23T14:37:45.499807Z
-720444ae100b378352bff8ea8494b96f
-2010-02-17T20:47:50.603139Z
-3446
-jplang
+2011-01-13T14:09:08.000000Z
+22afe4f1981d3d856beef3275f95f243
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -126,41 +274,7 @@
 
 
 
-1961
-
-i18n_test.rb
-file
-
-
-
-
-2010-11-19T13:04:41.309564Z
-a134c7beb75336db19db53dcfdb95250
-2010-09-26T17:13:52.794850Z
-4183
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3798
+1966
 
 hook_test.rb
 file
@@ -168,11 +282,11 @@
 
 
 
-2010-09-23T14:37:45.491768Z
-6fea1c3686a222539646f8c8efd7084b
-2009-12-21T02:24:56.260725Z
-3211
-edavis10
+2011-01-13T14:09:08.000000Z
+6b610cfc1e3e51f457eea06a6e6fb9a0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -194,10 +308,7 @@
 
 
 
-5736
-
-scm
-dir
+5741
 
 access_control_test.rb
 file
@@ -205,11 +316,11 @@
 
 
 
-2010-09-23T14:37:45.491768Z
-199d1a545256f49d0ac0dd5daa732322
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
+2011-01-13T14:09:08.000000Z
+6682bde90d30369ef1d27b806391134f
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -231,56 +342,22 @@
 
 
 
-1796
+1801
 
 helpers
 dir
 
-mime_type_test.rb
-file
-
-
-
-
-2010-09-23T14:37:45.495799Z
-48babd3529b798dd5170d1214e8c732a
-2009-09-13T17:14:35.707881Z
-2887
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2009
-
 unified_diff_test.rb
 file
 
 
 
 
-2010-09-23T14:37:45.499807Z
-a17bdd131369acd640ce61013ce4233b
-2009-11-11T13:25:53.648186Z
-3028
-jplang
+2011-01-13T14:09:08.000000Z
+247766b1dcc53d063207850027e6f78d
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -302,10 +379,7 @@
 
 
 
-1918
-
-wiki_formatting
-dir
+1923
 
 notifiable_test.rb
 file
@@ -313,11 +387,11 @@
 
 
 
-2010-11-19T13:04:41.309564Z
-5bcb90581762b7478b6fd175746846e7
-2010-09-28T21:09:06.467392Z
-4222
-edavis10
+2011-01-13T14:09:08.000000Z
+562f9308fbaa71c0ef605a5cfe24d3a5
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -339,8 +413,5 @@
 
 
 
-1323
+1328
 
-menu_manager
-dir
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/prop-base/safe_attributes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/prop-base/themes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- a/test/unit/lib/redmine/.svn/text-base/access_control_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/access_control_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::AccessControlTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/.svn/text-base/hook_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/hook_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::Hook::ManagerTest < ActiveSupport::TestCase
 
--- a/test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::I18nTest < ActiveSupport::TestCase
   include Redmine::I18n
@@ -29,7 +29,7 @@
     set_language_if_valid 'en'
     today = Date.today
     Setting.date_format = ''    
-    assert_equal I18n.l(today, :count => today.strftime('%d')), format_date(today)
+    assert_equal I18n.l(today), format_date(today)
   end
   
   def test_date_format
@@ -47,7 +47,7 @@
         format_date(Date.today)
         format_time(Time.now)
         format_time(Time.now, false)
-        assert_not_equal 'default', ::I18n.l(Date.today, :count => Date.today.strftime('%d'), :format => :default), "date.formats.default missing in #{lang}"
+        assert_not_equal 'default', ::I18n.l(Date.today, :format => :default), "date.formats.default missing in #{lang}"
         assert_not_equal 'time',    ::I18n.l(Time.now, :format => :time),      "time.formats.time missing in #{lang}"
       end
       assert l('date.day_names').is_a?(Array)
@@ -63,8 +63,8 @@
     now = Time.now
     Setting.date_format = ''
     Setting.time_format = ''    
-    assert_equal I18n.l(now, :count => now.strftime('%d')), format_time(now)
-    assert_equal I18n.l(now, :count => now.strftime('%d'), :format => :time), format_time(now, false)
+    assert_equal I18n.l(now), format_time(now)
+    assert_equal I18n.l(now, :format => :time), format_time(now, false)
   end
   
   def test_time_format
@@ -109,4 +109,18 @@
     
     to_test.each {|lang, expected| assert_equal expected, find_language(lang)}
   end
+  
+  def test_fallback
+    ::I18n.backend.store_translations(:en, {:untranslated => "Untranslated string"})
+    ::I18n.locale = 'en'
+    assert_equal "Untranslated string", l(:untranslated)
+    ::I18n.locale = 'fr'
+    assert_equal "Untranslated string", l(:untranslated)
+    
+    ::I18n.backend.store_translations(:fr, {:untranslated => "Pas de traduction"})
+    ::I18n.locale = 'en'
+    assert_equal "Untranslated string", l(:untranslated)
+    ::I18n.locale = 'fr'
+    assert_equal "Pas de traduction", l(:untranslated)
+  end
 end
--- a/test/unit/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/menu_manager_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::MenuManagerTest < ActiveSupport::TestCase
   context "MenuManager#map" do
--- a/test/unit/lib/redmine/.svn/text-base/mime_type_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/mime_type_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::MimeTypeTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/.svn/text-base/notifiable_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/notifiable_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::NotifiableTest < ActiveSupport::TestCase
   def setup
--- a/test/unit/lib/redmine/.svn/text-base/plugin_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/plugin_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::PluginTest < ActiveSupport::TestCase
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/safe_attributes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,87 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::SafeAttributesTest < ActiveSupport::TestCase
+  
+  class Base
+    def attributes=(attrs)
+      attrs.each do |key, value|
+        send("#{key}=", value)
+      end
+    end
+  end
+  
+  class Person < Base
+    attr_accessor :firstname, :lastname, :login
+    include Redmine::SafeAttributes
+    safe_attributes :firstname, :lastname
+    safe_attributes :login, :if => lambda {|person, user| user.admin?}
+  end
+  
+  class Book < Base
+    attr_accessor :title
+    include Redmine::SafeAttributes
+    safe_attributes :title
+  end
+  
+  def test_safe_attribute_names
+    p = Person.new
+    assert_equal ['firstname', 'lastname'], p.safe_attribute_names(User.anonymous)
+    assert_equal ['firstname', 'lastname', 'login'], p.safe_attribute_names(User.find(1))
+  end
+  
+  def test_safe_attribute_names_without_user
+    p = Person.new
+    User.current = nil
+    assert_equal ['firstname', 'lastname'], p.safe_attribute_names
+    User.current = User.find(1)
+    assert_equal ['firstname', 'lastname', 'login'], p.safe_attribute_names
+  end
+  
+  def test_set_safe_attributes
+    p = Person.new
+    p.send('safe_attributes=', {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}, User.anonymous)
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_nil p.login
+
+    p = Person.new
+    User.current = User.find(1)
+    p.send('safe_attributes=', {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}, User.find(1))
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_equal 'jsmith', p.login
+  end
+  
+  def test_set_safe_attributes_without_user
+    p = Person.new
+    User.current = nil
+    p.safe_attributes = {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_nil p.login
+
+    p = Person.new
+    User.current = User.find(1)
+    p.safe_attributes = {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_equal 'jsmith', p.login
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/themes_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,59 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::ThemesTest < ActiveSupport::TestCase
+  
+  def test_themes
+    themes = Redmine::Themes.themes
+    assert_kind_of Array, themes
+    assert_kind_of Redmine::Themes::Theme, themes.first
+  end
+  
+  def test_rescan
+    Redmine::Themes.themes.pop
+    
+    assert_difference 'Redmine::Themes.themes.size' do
+      Redmine::Themes.rescan
+    end
+  end
+  
+  def test_theme_loaded
+    theme = Redmine::Themes.themes.last
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id)
+  end
+  
+  def test_theme_loaded_without_rescan
+    theme = Redmine::Themes.themes.last
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id, :rescan => false)
+  end
+  
+  def test_theme_not_loaded
+    theme = Redmine::Themes.themes.pop
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id)
+  end
+  
+  def test_theme_not_loaded_without_rescan
+    theme = Redmine::Themes.themes.pop
+    
+    assert_nil Redmine::Themes.theme(theme.id, :rescan => false)
+  end
+end
--- a/test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::UnifiedDiffTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/.svn/text-base/wiki_formatting.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/wiki_formatting.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormattingTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/access_control_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/access_control_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::AccessControlTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/helpers/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/helpers/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 54
-/svn/!svn/ver/4072/trunk/test/unit/lib/redmine/helpers
+/svn/!svn/ver/4582/trunk/test/unit/lib/redmine/helpers
 END
 gantt_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 68
-/svn/!svn/ver/4072/trunk/test/unit/lib/redmine/helpers/gantt_test.rb
+/svn/!svn/ver/4582/trunk/test/unit/lib/redmine/helpers/gantt_test.rb
 END
--- a/test/unit/lib/redmine/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/helpers
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
+2010-12-29T20:29:42.467534Z
+4582
+jplang
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-24T12:48:25.702613Z
-1c573df96cc30534c8f3b66be599cce6
-2010-09-10T03:09:02.311267Z
-4072
-edavis10
+2011-01-13T14:09:08.000000Z
+1d6b4373836fef676ab3a28235c140b8
+2010-12-29T20:29:42.467534Z
+4582
+jplang
 
 
 
@@ -58,5 +58,5 @@
 
 
 
-25186
+28117
 
--- a/test/unit/lib/redmine/helpers/.svn/text-base/gantt_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/helpers/.svn/text-base/gantt_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
   # Utility methods and classes so assert_select can be used.
@@ -53,14 +53,14 @@
   end
 
   # Creates a Gantt chart for a 4 week span
-  def create_gantt(project=Project.generate!)
+  def create_gantt(project=Project.generate!, options={})
     @project = project
-    @gantt = Redmine::Helpers::Gantt.new
+    @gantt = Redmine::Helpers::Gantt.new(options)
     @gantt.project = @project
     @gantt.query = Query.generate_default!(:project => @project)
     @gantt.view = build_view
-    @gantt.instance_variable_set('@date_from', 2.weeks.ago.to_date)
-    @gantt.instance_variable_set('@date_to', 2.weeks.from_now.to_date)
+    @gantt.instance_variable_set('@date_from', options[:date_from] || 2.weeks.ago.to_date)
+    @gantt.instance_variable_set('@date_to', options[:date_to] || 2.weeks.from_now.to_date)
   end
 
   context "#number_of_rows" do
@@ -73,6 +73,22 @@
       should "return the total number of rows for all the projects, resursively"
     end
 
+    should "not exceed max_rows option" do
+      p = Project.generate!
+      5.times do
+        Issue.generate_for_project!(p)
+      end
+      
+      create_gantt(p)
+      @gantt.render
+      assert_equal 6, @gantt.number_of_rows
+      assert !@gantt.truncated
+
+      create_gantt(p, :max_rows => 3)
+      @gantt.render
+      assert_equal 3, @gantt.number_of_rows
+      assert @gantt.truncated
+    end
   end
 
   context "#number_of_rows_on_project" do
@@ -142,39 +158,63 @@
                                :done_ratio => 30,
                                :start_date => Date.yesterday,
                                :due_date => 1.week.from_now.to_date)
-      @project.issues << @issue
-
-      @response.body = @gantt.subjects
+      @project.issues << @issue      
     end
-
+  
     context "project" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.project-name a", /#{@project.name}/
       end
-
+  
       should "have an indent of 4" do
+        @response.body = @gantt.subjects
         assert_select "div.project-name[style*=left:4px]"
       end
     end
-
+  
     context "version" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.version-name a", /#{@version.name}/
       end
-
+  
       should "be indented 24 (one level)" do
+        @response.body = @gantt.subjects
         assert_select "div.version-name[style*=left:24px]"
       end
     end
-
+  
     context "issue" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.issue-subject", /#{@issue.subject}/
       end
-
+  
       should "be indented 44 (two levels)" do
+        @response.body = @gantt.subjects
         assert_select "div.issue-subject[style*=left:44px]"
       end
+      
+      context "with subtasks" do
+        setup do
+          attrs = {:project => @project, :tracker => @tracker, :fixed_version => @version}
+          @child1 = Issue.generate!(attrs.merge(:subject => 'child1', :parent_issue_id => @issue.id, :start_date => Date.yesterday, :due_date => 2.day.from_now.to_date))
+          @child2 = Issue.generate!(attrs.merge(:subject => 'child2', :parent_issue_id => @issue.id, :start_date => Date.today, :due_date => 1.week.from_now.to_date))
+          @grandchild = Issue.generate!(attrs.merge(:subject => 'grandchild', :parent_issue_id => @child1.id, :start_date => Date.yesterday, :due_date => 2.day.from_now.to_date))
+        end
+        
+        should "indent subtasks" do
+          @response.body = @gantt.subjects
+          # parent task 44px
+          assert_select "div.issue-subject[style*=left:44px]", /#{@issue.subject}/
+          # children 64px
+          assert_select "div.issue-subject[style*=left:64px]", /child1/
+          assert_select "div.issue-subject[style*=left:64px]", /child2/
+          # grandchild 84px
+          assert_select "div.issue-subject[style*=left:84px]", /grandchild/, @response.body
+        end
+      end
     end
   end
 
@@ -200,26 +240,26 @@
 
     context "project" do
       should "be rendered" do
-        assert_select "div.project_todo"
-        assert_select "div.project-line.starting"
-        assert_select "div.project-line.ending"
-        assert_select "div.label.project-name", /#{@project.name}/
+        assert_select "div.project.task_todo"
+        assert_select "div.project.starting"
+        assert_select "div.project.ending"
+        assert_select "div.label.project", /#{@project.name}/
       end
     end
 
     context "version" do
       should "be rendered" do
-        assert_select "div.milestone_todo"
-        assert_select "div.milestone.starting"
-        assert_select "div.milestone.ending"
-        assert_select "div.label.version-name", /#{@version.name}/
+        assert_select "div.version.task_todo"
+        assert_select "div.version.starting"
+        assert_select "div.version.ending"
+        assert_select "div.label.version", /#{@version.name}/
       end
     end
 
     context "issue" do
       should "be rendered" do
         assert_select "div.task_todo"
-        assert_select "div.label.issue-name", /#{@issue.done_ratio}/
+        assert_select "div.task.label", /#{@issue.done_ratio}/
         assert_select "div.tooltip", /#{@issue.subject}/
       end
     end
@@ -294,7 +334,7 @@
                                          :tracker => @tracker,
                                          :project => @project,
                                          :done_ratio => 30,
-                                         :start_date => Date.yesterday,
+                                         :start_date => 1.week.ago.to_date,
                                          :due_date => 1.week.from_now.to_date)
     end
 
@@ -302,37 +342,37 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_todo[style*=left:52px]"
+          assert_select "div.project.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the project" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_todo[style*=width:31px]"
+          assert_select "div.project.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
 
       context "late line" do
-        should "start from the starting point on the left" do
+        should_eventually "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_late[style*=left:52px]"
+          assert_select "div.project.task_late[style*=left:28px]", true, @response.body
         end
 
-        should "be the total delayed width of the project" do
+        should_eventually "be the total delayed width of the project" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_late[style*=width:6px]"
+          assert_select "div.project.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
-        should "start from the starting point on the left" do
+        should_eventually "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_done[style*=left:52px]"
+          assert_select "div.project.task_done[style*=left:28px]", true, @response.body
         end
 
-        should "Be the total done width of the project"  do
+        should_eventually "Be the total done width of the project"  do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_done[style*=left:52px]"
+          assert_select "div.project.task_done[style*=width:18px]", true, @response.body
         end
       end
 
@@ -342,12 +382,12 @@
           @gantt.instance_variable_set('@date_from', Date.today)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.starting", false
+          assert_select "div.project.starting", false, @response.body
         end
 
         should "appear at the starting point" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.starting[style*=left:52px]"
+          assert_select "div.project.starting[style*=left:28px]", true, @response.body
         end
       end
 
@@ -357,13 +397,13 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.ending", false
+          assert_select "div.project.ending", false, @response.body
 
         end
 
         should "appear at the end of the date range" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.ending[style*=left:84px]"
+          assert_select "div.project.ending[style*=left:88px]", true, @response.body
         end
       end
       
@@ -372,17 +412,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /#{@project.name}/
+          assert_select "div.project.label", /#{@project.name}/
         end
 
         should "show the project name" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /#{@project.name}/
+          assert_select "div.project.label", /#{@project.name}/
         end
 
-        should "show the percent complete" do
+        should_eventually "show the percent complete" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /0%/
+          assert_select "div.project.label", /0%/
         end
       end
     end
@@ -461,7 +501,7 @@
                                          :tracker => @tracker,
                                          :project => @project,
                                          :done_ratio => 30,
-                                         :start_date => Date.yesterday,
+                                         :start_date => 1.week.ago.to_date,
                                          :due_date => 1.week.from_now.to_date)
     end
 
@@ -469,12 +509,12 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_todo[style*=left:52px]"
+          assert_select "div.version.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the version" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_todo[style*=width:31px]"
+          assert_select "div.version.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
@@ -482,24 +522,24 @@
       context "late line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_late[style*=left:52px]"
+          assert_select "div.version.task_late[style*=left:28px]", true, @response.body
         end
 
         should "be the total delayed width of the version" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_late[style*=width:6px]"
+          assert_select "div.version.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_done[style*=left:52px]"
+          assert_select "div.version.task_done[style*=left:28px]", true, @response.body
         end
 
         should "Be the total done width of the version"  do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_done[style*=left:52px]"
+          assert_select "div.version.task_done[style*=width:18px]", true, @response.body
         end
       end
 
@@ -509,12 +549,12 @@
           @gantt.instance_variable_set('@date_from', Date.today)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.starting", false
+          assert_select "div.version.starting", false
         end
 
         should "appear at the starting point" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.starting[style*=left:52px]"
+          assert_select "div.version.starting[style*=left:28px]", true, @response.body
         end
       end
 
@@ -524,13 +564,13 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.ending", false
+          assert_select "div.version.ending", false
 
         end
 
         should "appear at the end of the date range" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.ending[style*=left:84px]"
+          assert_select "div.version.ending[style*=left:88px]", true, @response.body
         end
       end
       
@@ -539,17 +579,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /#{@version.name}/
+          assert_select "div.version.label", /#{@version.name}/
         end
 
         should "show the version name" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /#{@version.name}/
+          assert_select "div.version.label", /#{@version.name}/
         end
 
         should "show the percent complete" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /30%/
+          assert_select "div.version.label", /30%/
         end
       end
     end
@@ -620,7 +660,7 @@
                                :tracker => @tracker,
                                :project => @project,
                                :done_ratio => 30,
-                               :start_date => Date.yesterday,
+                               :start_date => 1.week.ago.to_date,
                                :due_date => 1.week.from_now.to_date)
       @project.issues << @issue
     end
@@ -629,12 +669,12 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_todo[style*=left:52px]"
+          assert_select "div.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the issue" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_todo[style*=width:34px]"
+          assert_select "div.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
@@ -642,24 +682,32 @@
       context "late line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_late[style*=left:52px]"
+          assert_select "div.task_late[style*=left:28px]", true, @response.body
         end
 
         should "be the total delayed width of the issue" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_late[style*=width:6px]"
+          assert_select "div.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_done[style*=left:52px]"
+          assert_select "div.task_done[style*=left:28px]", true, @response.body
         end
 
         should "Be the total done width of the issue"  do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_done[style*=left:52px]"
+          assert_select "div.task_done[style*=width:18px]", true, @response.body
+        end
+
+        should "not be the total done width if the chart starts after issue start date"  do
+          create_gantt(@project, :date_from => 5.days.ago.to_date)
+          
+          @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
+          assert_select "div.task_done[style*=left:0px]", true, @response.body
+          assert_select "div.task_done[style*=width:10px]", true, @response.body
         end
       end
 
@@ -668,17 +716,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name"
+          assert_select "div.task.label", true, @response.body
         end
 
         should "show the issue status" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name", /#{@issue.status.name}/
+          assert_select "div.task.label", /#{@issue.status.name}/
         end
 
         should "show the percent complete" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name", /30%/
+          assert_select "div.task.label", /30%/
         end
       end
     end
--- a/test/unit/lib/redmine/helpers/gantt_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/helpers/gantt_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
   # Utility methods and classes so assert_select can be used.
@@ -53,14 +53,14 @@
   end
 
   # Creates a Gantt chart for a 4 week span
-  def create_gantt(project=Project.generate!)
+  def create_gantt(project=Project.generate!, options={})
     @project = project
-    @gantt = Redmine::Helpers::Gantt.new
+    @gantt = Redmine::Helpers::Gantt.new(options)
     @gantt.project = @project
     @gantt.query = Query.generate_default!(:project => @project)
     @gantt.view = build_view
-    @gantt.instance_variable_set('@date_from', 2.weeks.ago.to_date)
-    @gantt.instance_variable_set('@date_to', 2.weeks.from_now.to_date)
+    @gantt.instance_variable_set('@date_from', options[:date_from] || 2.weeks.ago.to_date)
+    @gantt.instance_variable_set('@date_to', options[:date_to] || 2.weeks.from_now.to_date)
   end
 
   context "#number_of_rows" do
@@ -73,6 +73,22 @@
       should "return the total number of rows for all the projects, resursively"
     end
 
+    should "not exceed max_rows option" do
+      p = Project.generate!
+      5.times do
+        Issue.generate_for_project!(p)
+      end
+      
+      create_gantt(p)
+      @gantt.render
+      assert_equal 6, @gantt.number_of_rows
+      assert !@gantt.truncated
+
+      create_gantt(p, :max_rows => 3)
+      @gantt.render
+      assert_equal 3, @gantt.number_of_rows
+      assert @gantt.truncated
+    end
   end
 
   context "#number_of_rows_on_project" do
@@ -142,39 +158,63 @@
                                :done_ratio => 30,
                                :start_date => Date.yesterday,
                                :due_date => 1.week.from_now.to_date)
-      @project.issues << @issue
-
-      @response.body = @gantt.subjects
+      @project.issues << @issue      
     end
-
+  
     context "project" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.project-name a", /#{@project.name}/
       end
-
+  
       should "have an indent of 4" do
+        @response.body = @gantt.subjects
         assert_select "div.project-name[style*=left:4px]"
       end
     end
-
+  
     context "version" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.version-name a", /#{@version.name}/
       end
-
+  
       should "be indented 24 (one level)" do
+        @response.body = @gantt.subjects
         assert_select "div.version-name[style*=left:24px]"
       end
     end
-
+  
     context "issue" do
       should "be rendered" do
+        @response.body = @gantt.subjects
         assert_select "div.issue-subject", /#{@issue.subject}/
       end
-
+  
       should "be indented 44 (two levels)" do
+        @response.body = @gantt.subjects
         assert_select "div.issue-subject[style*=left:44px]"
       end
+      
+      context "with subtasks" do
+        setup do
+          attrs = {:project => @project, :tracker => @tracker, :fixed_version => @version}
+          @child1 = Issue.generate!(attrs.merge(:subject => 'child1', :parent_issue_id => @issue.id, :start_date => Date.yesterday, :due_date => 2.day.from_now.to_date))
+          @child2 = Issue.generate!(attrs.merge(:subject => 'child2', :parent_issue_id => @issue.id, :start_date => Date.today, :due_date => 1.week.from_now.to_date))
+          @grandchild = Issue.generate!(attrs.merge(:subject => 'grandchild', :parent_issue_id => @child1.id, :start_date => Date.yesterday, :due_date => 2.day.from_now.to_date))
+        end
+        
+        should "indent subtasks" do
+          @response.body = @gantt.subjects
+          # parent task 44px
+          assert_select "div.issue-subject[style*=left:44px]", /#{@issue.subject}/
+          # children 64px
+          assert_select "div.issue-subject[style*=left:64px]", /child1/
+          assert_select "div.issue-subject[style*=left:64px]", /child2/
+          # grandchild 84px
+          assert_select "div.issue-subject[style*=left:84px]", /grandchild/, @response.body
+        end
+      end
     end
   end
 
@@ -200,26 +240,26 @@
 
     context "project" do
       should "be rendered" do
-        assert_select "div.project_todo"
-        assert_select "div.project-line.starting"
-        assert_select "div.project-line.ending"
-        assert_select "div.label.project-name", /#{@project.name}/
+        assert_select "div.project.task_todo"
+        assert_select "div.project.starting"
+        assert_select "div.project.ending"
+        assert_select "div.label.project", /#{@project.name}/
       end
     end
 
     context "version" do
       should "be rendered" do
-        assert_select "div.milestone_todo"
-        assert_select "div.milestone.starting"
-        assert_select "div.milestone.ending"
-        assert_select "div.label.version-name", /#{@version.name}/
+        assert_select "div.version.task_todo"
+        assert_select "div.version.starting"
+        assert_select "div.version.ending"
+        assert_select "div.label.version", /#{@version.name}/
       end
     end
 
     context "issue" do
       should "be rendered" do
         assert_select "div.task_todo"
-        assert_select "div.label.issue-name", /#{@issue.done_ratio}/
+        assert_select "div.task.label", /#{@issue.done_ratio}/
         assert_select "div.tooltip", /#{@issue.subject}/
       end
     end
@@ -294,7 +334,7 @@
                                          :tracker => @tracker,
                                          :project => @project,
                                          :done_ratio => 30,
-                                         :start_date => Date.yesterday,
+                                         :start_date => 1.week.ago.to_date,
                                          :due_date => 1.week.from_now.to_date)
     end
 
@@ -302,37 +342,37 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_todo[style*=left:52px]"
+          assert_select "div.project.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the project" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_todo[style*=width:31px]"
+          assert_select "div.project.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
 
       context "late line" do
-        should "start from the starting point on the left" do
+        should_eventually "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_late[style*=left:52px]"
+          assert_select "div.project.task_late[style*=left:28px]", true, @response.body
         end
 
-        should "be the total delayed width of the project" do
+        should_eventually "be the total delayed width of the project" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_late[style*=width:6px]"
+          assert_select "div.project.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
-        should "start from the starting point on the left" do
+        should_eventually "start from the starting point on the left" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_done[style*=left:52px]"
+          assert_select "div.project.task_done[style*=left:28px]", true, @response.body
         end
 
-        should "Be the total done width of the project"  do
+        should_eventually "Be the total done width of the project"  do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project_done[style*=left:52px]"
+          assert_select "div.project.task_done[style*=width:18px]", true, @response.body
         end
       end
 
@@ -342,12 +382,12 @@
           @gantt.instance_variable_set('@date_from', Date.today)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.starting", false
+          assert_select "div.project.starting", false, @response.body
         end
 
         should "appear at the starting point" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.starting[style*=left:52px]"
+          assert_select "div.project.starting[style*=left:28px]", true, @response.body
         end
       end
 
@@ -357,13 +397,13 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.ending", false
+          assert_select "div.project.ending", false, @response.body
 
         end
 
         should "appear at the end of the date range" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-line.ending[style*=left:84px]"
+          assert_select "div.project.ending[style*=left:88px]", true, @response.body
         end
       end
       
@@ -372,17 +412,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /#{@project.name}/
+          assert_select "div.project.label", /#{@project.name}/
         end
 
         should "show the project name" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /#{@project.name}/
+          assert_select "div.project.label", /#{@project.name}/
         end
 
-        should "show the percent complete" do
+        should_eventually "show the percent complete" do
           @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4})
-          assert_select "div.project-name", /0%/
+          assert_select "div.project.label", /0%/
         end
       end
     end
@@ -461,7 +501,7 @@
                                          :tracker => @tracker,
                                          :project => @project,
                                          :done_ratio => 30,
-                                         :start_date => Date.yesterday,
+                                         :start_date => 1.week.ago.to_date,
                                          :due_date => 1.week.from_now.to_date)
     end
 
@@ -469,12 +509,12 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_todo[style*=left:52px]"
+          assert_select "div.version.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the version" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_todo[style*=width:31px]"
+          assert_select "div.version.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
@@ -482,24 +522,24 @@
       context "late line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_late[style*=left:52px]"
+          assert_select "div.version.task_late[style*=left:28px]", true, @response.body
         end
 
         should "be the total delayed width of the version" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_late[style*=width:6px]"
+          assert_select "div.version.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_done[style*=left:52px]"
+          assert_select "div.version.task_done[style*=left:28px]", true, @response.body
         end
 
         should "Be the total done width of the version"  do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone_done[style*=left:52px]"
+          assert_select "div.version.task_done[style*=width:18px]", true, @response.body
         end
       end
 
@@ -509,12 +549,12 @@
           @gantt.instance_variable_set('@date_from', Date.today)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.starting", false
+          assert_select "div.version.starting", false
         end
 
         should "appear at the starting point" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.starting[style*=left:52px]"
+          assert_select "div.version.starting[style*=left:28px]", true, @response.body
         end
       end
 
@@ -524,13 +564,13 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.ending", false
+          assert_select "div.version.ending", false
 
         end
 
         should "appear at the end of the date range" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.milestone.ending[style*=left:84px]"
+          assert_select "div.version.ending[style*=left:88px]", true, @response.body
         end
       end
       
@@ -539,17 +579,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /#{@version.name}/
+          assert_select "div.version.label", /#{@version.name}/
         end
 
         should "show the version name" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /#{@version.name}/
+          assert_select "div.version.label", /#{@version.name}/
         end
 
         should "show the percent complete" do
           @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
-          assert_select "div.version-name", /30%/
+          assert_select "div.version.label", /30%/
         end
       end
     end
@@ -620,7 +660,7 @@
                                :tracker => @tracker,
                                :project => @project,
                                :done_ratio => 30,
-                               :start_date => Date.yesterday,
+                               :start_date => 1.week.ago.to_date,
                                :due_date => 1.week.from_now.to_date)
       @project.issues << @issue
     end
@@ -629,12 +669,12 @@
       context "todo line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_todo[style*=left:52px]"
+          assert_select "div.task_todo[style*=left:28px]", true, @response.body
         end
 
         should "be the total width of the issue" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_todo[style*=width:34px]"
+          assert_select "div.task_todo[style*=width:58px]", true, @response.body
         end
 
       end
@@ -642,24 +682,32 @@
       context "late line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_late[style*=left:52px]"
+          assert_select "div.task_late[style*=left:28px]", true, @response.body
         end
 
         should "be the total delayed width of the issue" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_late[style*=width:6px]"
+          assert_select "div.task_late[style*=width:30px]", true, @response.body
         end
       end
 
       context "done line" do
         should "start from the starting point on the left" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_done[style*=left:52px]"
+          assert_select "div.task_done[style*=left:28px]", true, @response.body
         end
 
         should "Be the total done width of the issue"  do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.task_done[style*=left:52px]"
+          assert_select "div.task_done[style*=width:18px]", true, @response.body
+        end
+
+        should "not be the total done width if the chart starts after issue start date"  do
+          create_gantt(@project, :date_from => 5.days.ago.to_date)
+          
+          @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
+          assert_select "div.task_done[style*=left:0px]", true, @response.body
+          assert_select "div.task_done[style*=width:10px]", true, @response.body
         end
       end
 
@@ -668,17 +716,17 @@
           @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date)
 
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name"
+          assert_select "div.task.label", true, @response.body
         end
 
         should "show the issue status" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name", /#{@issue.status.name}/
+          assert_select "div.task.label", /#{@issue.status.name}/
         end
 
         should "show the percent complete" do
           @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
-          assert_select "div.issue-name", /30%/
+          assert_select "div.task.label", /30%/
         end
       end
     end
--- a/test/unit/lib/redmine/hook_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/hook_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::Hook::ManagerTest < ActiveSupport::TestCase
 
--- a/test/unit/lib/redmine/i18n_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/i18n_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::I18nTest < ActiveSupport::TestCase
   include Redmine::I18n
@@ -29,7 +29,7 @@
     set_language_if_valid 'en'
     today = Date.today
     Setting.date_format = ''    
-    assert_equal I18n.l(today, :count => today.strftime('%d')), format_date(today)
+    assert_equal I18n.l(today), format_date(today)
   end
   
   def test_date_format
@@ -47,7 +47,7 @@
         format_date(Date.today)
         format_time(Time.now)
         format_time(Time.now, false)
-        assert_not_equal 'default', ::I18n.l(Date.today, :count => Date.today.strftime('%d'), :format => :default), "date.formats.default missing in #{lang}"
+        assert_not_equal 'default', ::I18n.l(Date.today, :format => :default), "date.formats.default missing in #{lang}"
         assert_not_equal 'time',    ::I18n.l(Time.now, :format => :time),      "time.formats.time missing in #{lang}"
       end
       assert l('date.day_names').is_a?(Array)
@@ -63,8 +63,8 @@
     now = Time.now
     Setting.date_format = ''
     Setting.time_format = ''    
-    assert_equal I18n.l(now, :count => now.strftime('%d')), format_time(now)
-    assert_equal I18n.l(now, :count => now.strftime('%d'), :format => :time), format_time(now, false)
+    assert_equal I18n.l(now), format_time(now)
+    assert_equal I18n.l(now, :format => :time), format_time(now, false)
   end
   
   def test_time_format
@@ -109,4 +109,18 @@
     
     to_test.each {|lang, expected| assert_equal expected, find_language(lang)}
   end
+  
+  def test_fallback
+    ::I18n.backend.store_translations(:en, {:untranslated => "Untranslated string"})
+    ::I18n.locale = 'en'
+    assert_equal "Untranslated string", l(:untranslated)
+    ::I18n.locale = 'fr'
+    assert_equal "Untranslated string", l(:untranslated)
+    
+    ::I18n.backend.store_translations(:fr, {:untranslated => "Pas de traduction"})
+    ::I18n.locale = 'en'
+    assert_equal "Untranslated string", l(:untranslated)
+    ::I18n.locale = 'fr'
+    assert_equal "Pas de traduction", l(:untranslated)
+  end
 end
--- a/test/unit/lib/redmine/menu_manager/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,23 +1,23 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/3926/trunk/test/unit/lib/redmine/menu_manager
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/menu_manager
 END
 menu_item_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 77
-/svn/!svn/ver/3926/trunk/test/unit/lib/redmine/menu_manager/menu_item_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/menu_manager/menu_item_test.rb
 END
 menu_helper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 79
-/svn/!svn/ver/3092/trunk/test/unit/lib/redmine/menu_manager/menu_helper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/menu_manager/menu_helper_test.rb
 END
 mapper_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 74
-/svn/!svn/ver/3447/trunk/test/unit/lib/redmine/menu_manager/mapper_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/menu_manager/mapper_test.rb
 END
--- a/test/unit/lib/redmine/menu_manager/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/menu_manager
 http://redmine.rubyforge.org/svn
 
 
 
-2010-08-08T07:07:38.841875Z
-3926
+2010-12-12T23:24:34.194336Z
+4509
 jbbarth
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-09-23T14:37:45.495799Z
-f711293b27708be59b9a214afebd2301
-2010-08-08T07:07:38.841875Z
-3926
+2011-01-13T14:09:07.000000Z
+fdf6a6902bb3de694d7a4fabbdfe2798
+2010-12-12T23:24:34.194336Z
+4509
 jbbarth
 
 
@@ -58,7 +58,7 @@
 
 
 
-4418
+4423
 
 menu_helper_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-09-23T14:37:45.495799Z
-39fc6bb354951d8a63ce60d7a8c6f3b9
-2009-11-25T05:36:56.757796Z
-3092
-edavis10
+2011-01-13T14:09:07.000000Z
+fdde38850555e88b18c742d7d15be035
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -92,7 +92,7 @@
 
 
 
-10654
+10659
 
 mapper_test.rb
 file
@@ -100,11 +100,11 @@
 
 
 
-2010-09-23T14:37:45.495799Z
-36bcd70d121e19e4c51ee3b66120bd7a
-2010-02-18T05:01:39.440573Z
-3447
-edavis10
+2011-01-13T14:09:07.000000Z
+18c96ac64de73c38eb9d766226b34ca7
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -126,5 +126,5 @@
 
 
 
-7891
+7896
 
--- a/test/unit/lib/redmine/menu_manager/.svn/text-base/mapper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/text-base/mapper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::MenuManager::MapperTest < ActiveSupport::TestCase
   context "Mapper#initialize" do
--- a/test/unit/lib/redmine/menu_manager/.svn/text-base/menu_helper_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/text-base/menu_helper_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 
 
--- a/test/unit/lib/redmine/menu_manager/.svn/text-base/menu_item_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/text-base/menu_item_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 module RedmineMenuTestHelper
   # Helpers
--- a/test/unit/lib/redmine/menu_manager/mapper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/mapper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::MenuManager::MapperTest < ActiveSupport::TestCase
   context "Mapper#initialize" do
--- a/test/unit/lib/redmine/menu_manager/menu_helper_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/menu_helper_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 
 
--- a/test/unit/lib/redmine/menu_manager/menu_item_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager/menu_item_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 module RedmineMenuTestHelper
   # Helpers
--- a/test/unit/lib/redmine/menu_manager_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/menu_manager_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::MenuManagerTest < ActiveSupport::TestCase
   context "MenuManager#map" do
--- a/test/unit/lib/redmine/mime_type_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/mime_type_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::MimeTypeTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/notifiable_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/notifiable_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::NotifiableTest < ActiveSupport::TestCase
   def setup
--- a/test/unit/lib/redmine/plugin_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/plugin_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::PluginTest < ActiveSupport::TestCase
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/safe_attributes_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,87 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::SafeAttributesTest < ActiveSupport::TestCase
+  
+  class Base
+    def attributes=(attrs)
+      attrs.each do |key, value|
+        send("#{key}=", value)
+      end
+    end
+  end
+  
+  class Person < Base
+    attr_accessor :firstname, :lastname, :login
+    include Redmine::SafeAttributes
+    safe_attributes :firstname, :lastname
+    safe_attributes :login, :if => lambda {|person, user| user.admin?}
+  end
+  
+  class Book < Base
+    attr_accessor :title
+    include Redmine::SafeAttributes
+    safe_attributes :title
+  end
+  
+  def test_safe_attribute_names
+    p = Person.new
+    assert_equal ['firstname', 'lastname'], p.safe_attribute_names(User.anonymous)
+    assert_equal ['firstname', 'lastname', 'login'], p.safe_attribute_names(User.find(1))
+  end
+  
+  def test_safe_attribute_names_without_user
+    p = Person.new
+    User.current = nil
+    assert_equal ['firstname', 'lastname'], p.safe_attribute_names
+    User.current = User.find(1)
+    assert_equal ['firstname', 'lastname', 'login'], p.safe_attribute_names
+  end
+  
+  def test_set_safe_attributes
+    p = Person.new
+    p.send('safe_attributes=', {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}, User.anonymous)
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_nil p.login
+
+    p = Person.new
+    User.current = User.find(1)
+    p.send('safe_attributes=', {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}, User.find(1))
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_equal 'jsmith', p.login
+  end
+  
+  def test_set_safe_attributes_without_user
+    p = Person.new
+    User.current = nil
+    p.safe_attributes = {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_nil p.login
+
+    p = Person.new
+    User.current = User.find(1)
+    p.safe_attributes = {'firstname' => 'John', 'lastname' => 'Smith', 'login' => 'jsmith'}
+    assert_equal 'John', p.firstname
+    assert_equal 'Smith', p.lastname
+    assert_equal 'jsmith', p.login
+  end
+end
--- a/test/unit/lib/redmine/scm/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 50
-/svn/!svn/ver/4189/trunk/test/unit/lib/redmine/scm
+/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm
 END
--- a/test/unit/lib/redmine/scm/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-26T21:54:52.929683Z
-4189
-edavis10
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
--- a/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,29 +1,29 @@
 K 25
 svn:wc:ra_dav:version-url
 V 59
-/svn/!svn/ver/4189/trunk/test/unit/lib/redmine/scm/adapters
+/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm/adapters
 END
 subversion_adapter_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 86
-/svn/!svn/ver/3720/trunk/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
 END
 git_adapter_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 79
-/svn/!svn/ver/4189/trunk/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
+/svn/!svn/ver/4510/trunk/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
 END
 mercurial_adapter_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 85
-/svn/!svn/ver/3551/trunk/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
+/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
 END
 filesystem_adapter_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 86
-/svn/!svn/ver/3551/trunk/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb
 END
--- a/test/unit/lib/redmine/scm/adapters/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm/adapters
 http://redmine.rubyforge.org/svn
 
 
 
-2010-09-26T21:54:52.929683Z
-4189
-edavis10
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-09-23T14:37:45.499807Z
-bd8ceadd53ed4a3d051d65e88c7c9915
-2010-05-01T08:32:21.345847Z
-3720
-jplang
+2011-01-13T14:08:13.000000Z
+765ef194c70144742d0b8bfcb99f6627
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-1216
+1221
 
 git_adapter_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-11-19T13:04:41.277281Z
-e02110174147a44bc84b41d56c9bde65
-2010-09-26T21:54:52.929683Z
-4189
-edavis10
+2011-01-13T14:08:13.000000Z
+2e3d6f99dd454ee396770a707ea169db
+2010-12-12T23:24:45.195624Z
+4510
+jbbarth
 has-props
 
 
@@ -92,7 +92,7 @@
 
 
 
-2992
+3016
 
 mercurial_adapter_test.rb
 file
@@ -100,11 +100,11 @@
 
 
 
-2010-09-23T14:37:45.499807Z
-5f323b405262d8aea1c3696721de1b46
-2010-03-06T20:35:38.939541Z
-3551
-jplang
+2011-01-13T14:08:13.000000Z
+7af2ec05aa23ebf083f7aa58bca43f95
+2011-01-13T12:05:11.734883Z
+4705
+tmaruyama
 has-props
 
 
@@ -126,7 +126,7 @@
 
 
 
-1782
+6096
 
 filesystem_adapter_test.rb
 file
@@ -134,11 +134,11 @@
 
 
 
-2010-09-23T14:37:45.499807Z
-9c84d86c3d7bdffa6d44a88bc3889baf
-2010-03-06T20:35:38.939541Z
-3551
-jplang
+2011-01-13T14:08:13.000000Z
+61cf9f9a3628f6766845641d99adaa83
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -160,5 +160,5 @@
 
 
 
-1444
+1449
 
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 
 class FilesystemAdapterTest < ActiveSupport::TestCase
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,6 @@
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+# encoding: utf-8
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 class GitAdapterTest < ActiveSupport::TestCase
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -1,53 +1,156 @@
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 begin
   require 'mocha'
-  
+
   class MercurialAdapterTest < ActiveSupport::TestCase
-    
+
     TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
     TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
     TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION
-    
+
     REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
-    
-    def test_hgversion
-      to_test = { "0.9.5" => [0,9,5],
-                  "1.0" => [1,0],
-                  "1e4ddc9ac9f7+20080325" => nil,
-                  "1.0.1+20080525" => [1,0,1],
-                  "1916e629a29d" => nil}
-      
-      to_test.each do |s, v|
-        test_hgversion_for(s, v)
+
+    if File.directory?(REPOSITORY_PATH)
+      def setup
+        @adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
       end
-    end
-    
-    def test_template_path
-      to_test = { [0,9,5] => "0.9.5",
-                  [1,0] => "1.0",
-                  [] => "1.0",
-                  [1,0,1] => "1.0"}
-      
-      to_test.each do |v, template|
-        test_template_path_for(v, template)
+
+      def test_hgversion
+        to_test = { "Mercurial Distributed SCM (version 0.9.5)\n"  => [0,9,5],
+                    "Mercurial Distributed SCM (1.0)\n"            => [1,0],
+                    "Mercurial Distributed SCM (1e4ddc9ac9f7+20080325)\n" => nil,
+                    "Mercurial Distributed SCM (1.0.1+20080525)\n" => [1,0,1],
+                    "Mercurial Distributed SCM (1916e629a29d)\n"   => nil,
+                    "Mercurial SCM Distribuito (versione 0.9.5)\n" => [0,9,5],
+                    "(1.6)\n(1.7)\n(1.8)"                          => [1,6],
+                    "(1.7.1)\r\n(1.8.1)\r\n(1.9.1)"                => [1,7,1]}
+
+        to_test.each do |s, v|
+          test_hgversion_for(s, v)
+        end
       end
-    end
-    
-    private
-    
-    def test_hgversion_for(hgversion, version)
-      Redmine::Scm::Adapters::MercurialAdapter.expects(:hgversion_from_command_line).returns(hgversion)
-      adapter = Redmine::Scm::Adapters::MercurialAdapter
-      assert_equal version, adapter.hgversion
-    end
-    
-    def test_template_path_for(version, template)
-      adapter = Redmine::Scm::Adapters::MercurialAdapter
-      assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}", adapter.template_path_for(version)
-      assert File.exist?(adapter.template_path_for(version))
+
+      def test_template_path
+        to_test = { [0,9,5]  => "0.9.5",
+                    [1,0]    => "1.0",
+                    []       => "1.0",
+                    [1,0,1]  => "1.0",
+                    [1,7]    => "1.0",
+                    [1,7,1]  => "1.0" }
+        to_test.each do |v, template|
+          test_template_path_for(v, template)
+        end
+      end
+
+      def test_diff
+        if @adapter.class.client_version_above?([1, 2])
+          assert_nil @adapter.diff(nil, '100000')
+        end
+        assert_nil @adapter.diff(nil, '100000', '200000')
+        [2, '400bb8672109', '400', 400].each do |r1|
+          diff1 = @adapter.diff(nil, r1)
+          if @adapter.class.client_version_above?([1, 2])
+            assert_equal 28, diff1.size
+            buf = diff1[24].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+    return true unless klass.respond_to?('watched_by')", buf
+          else
+            assert_equal 0, diff1.size
+          end
+          [4, 'def6d2f1254a'].each do |r2|
+            diff2 = @adapter.diff(nil,r1,r2)
+            assert_equal 49, diff2.size
+            buf =  diff2[41].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+class WelcomeController < ApplicationController", buf
+            diff3 = @adapter.diff('sources/watchers_controller.rb', r1, r2)
+            assert_equal 20, diff3.size
+            buf =  diff3[12].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+    @watched.remove_watcher(user)", buf
+          end
+        end
+      end
+
+      def test_cat
+        [2, '400bb8672109', '400', 400].each do |r|
+          buf = @adapter.cat('sources/welcome_controller.rb', r)
+          assert buf
+          lines = buf.split("\r\n")
+          assert_equal 25, lines.length
+          assert_equal 'class WelcomeController < ApplicationController', lines[17]
+        end
+        assert_nil @adapter.cat('sources/welcome_controller.rb')
+      end
+
+      def test_annotate
+        assert_equal [], @adapter.annotate("sources/welcome_controller.rb").lines
+        [2, '400bb8672109', '400', 400].each do |r|
+          ann = @adapter.annotate('sources/welcome_controller.rb', r)
+          assert ann
+          assert_equal '1', ann.revisions[17].revision
+          assert_equal '9d5b5b004199', ann.revisions[17].identifier
+          assert_equal 'jsmith', ann.revisions[0].author
+          assert_equal 25, ann.lines.length
+          assert_equal 'class WelcomeController < ApplicationController', ann.lines[17]
+        end
+      end
+
+      # TODO filesize etc.
+      def test_entries
+        assert_nil @adapter.entries(nil, '100000')
+        [2, '400bb8672109', '400', 400].each do |r|
+          entries1 = @adapter.entries(nil, r)
+          assert entries1
+          assert_equal 3, entries1.size
+          assert_equal 'sources', entries1[1].name
+          assert_equal 'sources', entries1[1].path
+          assert_equal 'dir', entries1[1].kind
+          assert_equal 'README', entries1[2].name
+          assert_equal 'README', entries1[2].path
+          assert_equal 'file', entries1[2].kind
+
+          entries2 = @adapter.entries('sources', r)
+          assert entries2
+          assert_equal 2, entries2.size
+          assert_equal 'watchers_controller.rb', entries2[0].name
+          assert_equal 'sources/watchers_controller.rb', entries2[0].path
+          assert_equal 'file', entries2[0].kind
+          assert_equal 'welcome_controller.rb', entries2[1].name
+          assert_equal 'sources/welcome_controller.rb', entries2[1].path
+          assert_equal 'file', entries2[1].kind
+        end
+      end
+
+      def test_access_by_nodeid
+        path = 'sources/welcome_controller.rb'
+        assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400bb8672109')
+      end
+
+      def test_access_by_fuzzy_nodeid
+        path = 'sources/welcome_controller.rb'
+        # falls back to nodeid
+        assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400')
+      end
+
+      private
+
+      def test_hgversion_for(hgversion, version)
+        @adapter.class.expects(:hgversion_from_command_line).returns(hgversion)
+        assert_equal version, @adapter.class.hgversion
+      end
+
+      def test_template_path_for(version, template)
+        assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
+                     @adapter.class.template_path_for(version)
+        assert File.exist?(@adapter.class.template_path_for(version))
+      end
+    else
+      puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
+      def test_fake; assert true end
     end
   end
-  
+
 rescue LoadError
-  def test_fake; assert(false, "Requires mocha to run those tests")  end
+  class MercurialMochaFake < ActiveSupport::TestCase
+    def test_fake; assert(false, "Requires mocha to run those tests")  end
+  end
 end
+
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 class SubversionAdapterTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 
 class FilesystemAdapterTest < ActiveSupport::TestCase
--- a/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,4 +1,6 @@
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+# encoding: utf-8
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 class GitAdapterTest < ActiveSupport::TestCase
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
--- a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -1,53 +1,156 @@
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 begin
   require 'mocha'
-  
+
   class MercurialAdapterTest < ActiveSupport::TestCase
-    
+
     TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
     TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
     TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION
-    
+
     REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
-    
-    def test_hgversion
-      to_test = { "0.9.5" => [0,9,5],
-                  "1.0" => [1,0],
-                  "1e4ddc9ac9f7+20080325" => nil,
-                  "1.0.1+20080525" => [1,0,1],
-                  "1916e629a29d" => nil}
-      
-      to_test.each do |s, v|
-        test_hgversion_for(s, v)
+
+    if File.directory?(REPOSITORY_PATH)
+      def setup
+        @adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
       end
-    end
-    
-    def test_template_path
-      to_test = { [0,9,5] => "0.9.5",
-                  [1,0] => "1.0",
-                  [] => "1.0",
-                  [1,0,1] => "1.0"}
-      
-      to_test.each do |v, template|
-        test_template_path_for(v, template)
+
+      def test_hgversion
+        to_test = { "Mercurial Distributed SCM (version 0.9.5)\n"  => [0,9,5],
+                    "Mercurial Distributed SCM (1.0)\n"            => [1,0],
+                    "Mercurial Distributed SCM (1e4ddc9ac9f7+20080325)\n" => nil,
+                    "Mercurial Distributed SCM (1.0.1+20080525)\n" => [1,0,1],
+                    "Mercurial Distributed SCM (1916e629a29d)\n"   => nil,
+                    "Mercurial SCM Distribuito (versione 0.9.5)\n" => [0,9,5],
+                    "(1.6)\n(1.7)\n(1.8)"                          => [1,6],
+                    "(1.7.1)\r\n(1.8.1)\r\n(1.9.1)"                => [1,7,1]}
+
+        to_test.each do |s, v|
+          test_hgversion_for(s, v)
+        end
       end
-    end
-    
-    private
-    
-    def test_hgversion_for(hgversion, version)
-      Redmine::Scm::Adapters::MercurialAdapter.expects(:hgversion_from_command_line).returns(hgversion)
-      adapter = Redmine::Scm::Adapters::MercurialAdapter
-      assert_equal version, adapter.hgversion
-    end
-    
-    def test_template_path_for(version, template)
-      adapter = Redmine::Scm::Adapters::MercurialAdapter
-      assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}", adapter.template_path_for(version)
-      assert File.exist?(adapter.template_path_for(version))
+
+      def test_template_path
+        to_test = { [0,9,5]  => "0.9.5",
+                    [1,0]    => "1.0",
+                    []       => "1.0",
+                    [1,0,1]  => "1.0",
+                    [1,7]    => "1.0",
+                    [1,7,1]  => "1.0" }
+        to_test.each do |v, template|
+          test_template_path_for(v, template)
+        end
+      end
+
+      def test_diff
+        if @adapter.class.client_version_above?([1, 2])
+          assert_nil @adapter.diff(nil, '100000')
+        end
+        assert_nil @adapter.diff(nil, '100000', '200000')
+        [2, '400bb8672109', '400', 400].each do |r1|
+          diff1 = @adapter.diff(nil, r1)
+          if @adapter.class.client_version_above?([1, 2])
+            assert_equal 28, diff1.size
+            buf = diff1[24].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+    return true unless klass.respond_to?('watched_by')", buf
+          else
+            assert_equal 0, diff1.size
+          end
+          [4, 'def6d2f1254a'].each do |r2|
+            diff2 = @adapter.diff(nil,r1,r2)
+            assert_equal 49, diff2.size
+            buf =  diff2[41].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+class WelcomeController < ApplicationController", buf
+            diff3 = @adapter.diff('sources/watchers_controller.rb', r1, r2)
+            assert_equal 20, diff3.size
+            buf =  diff3[12].gsub(/\r\n|\r|\n/, "")
+            assert_equal "+    @watched.remove_watcher(user)", buf
+          end
+        end
+      end
+
+      def test_cat
+        [2, '400bb8672109', '400', 400].each do |r|
+          buf = @adapter.cat('sources/welcome_controller.rb', r)
+          assert buf
+          lines = buf.split("\r\n")
+          assert_equal 25, lines.length
+          assert_equal 'class WelcomeController < ApplicationController', lines[17]
+        end
+        assert_nil @adapter.cat('sources/welcome_controller.rb')
+      end
+
+      def test_annotate
+        assert_equal [], @adapter.annotate("sources/welcome_controller.rb").lines
+        [2, '400bb8672109', '400', 400].each do |r|
+          ann = @adapter.annotate('sources/welcome_controller.rb', r)
+          assert ann
+          assert_equal '1', ann.revisions[17].revision
+          assert_equal '9d5b5b004199', ann.revisions[17].identifier
+          assert_equal 'jsmith', ann.revisions[0].author
+          assert_equal 25, ann.lines.length
+          assert_equal 'class WelcomeController < ApplicationController', ann.lines[17]
+        end
+      end
+
+      # TODO filesize etc.
+      def test_entries
+        assert_nil @adapter.entries(nil, '100000')
+        [2, '400bb8672109', '400', 400].each do |r|
+          entries1 = @adapter.entries(nil, r)
+          assert entries1
+          assert_equal 3, entries1.size
+          assert_equal 'sources', entries1[1].name
+          assert_equal 'sources', entries1[1].path
+          assert_equal 'dir', entries1[1].kind
+          assert_equal 'README', entries1[2].name
+          assert_equal 'README', entries1[2].path
+          assert_equal 'file', entries1[2].kind
+
+          entries2 = @adapter.entries('sources', r)
+          assert entries2
+          assert_equal 2, entries2.size
+          assert_equal 'watchers_controller.rb', entries2[0].name
+          assert_equal 'sources/watchers_controller.rb', entries2[0].path
+          assert_equal 'file', entries2[0].kind
+          assert_equal 'welcome_controller.rb', entries2[1].name
+          assert_equal 'sources/welcome_controller.rb', entries2[1].path
+          assert_equal 'file', entries2[1].kind
+        end
+      end
+
+      def test_access_by_nodeid
+        path = 'sources/welcome_controller.rb'
+        assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400bb8672109')
+      end
+
+      def test_access_by_fuzzy_nodeid
+        path = 'sources/welcome_controller.rb'
+        # falls back to nodeid
+        assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400')
+      end
+
+      private
+
+      def test_hgversion_for(hgversion, version)
+        @adapter.class.expects(:hgversion_from_command_line).returns(hgversion)
+        assert_equal version, @adapter.class.hgversion
+      end
+
+      def test_template_path_for(version, template)
+        assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
+                     @adapter.class.template_path_for(version)
+        assert File.exist?(@adapter.class.template_path_for(version))
+      end
+    else
+      puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
+      def test_fake; assert true end
     end
   end
-  
+
 rescue LoadError
-  def test_fake; assert(false, "Requires mocha to run those tests")  end
+  class MercurialMochaFake < ActiveSupport::TestCase
+    def test_fake; assert(false, "Requires mocha to run those tests")  end
+  end
 end
+
--- a/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../../test_helper'
+require File.expand_path('../../../../../../test_helper', __FILE__)
 
 class SubversionAdapterTest < ActiveSupport::TestCase
   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/themes_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,59 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::ThemesTest < ActiveSupport::TestCase
+  
+  def test_themes
+    themes = Redmine::Themes.themes
+    assert_kind_of Array, themes
+    assert_kind_of Redmine::Themes::Theme, themes.first
+  end
+  
+  def test_rescan
+    Redmine::Themes.themes.pop
+    
+    assert_difference 'Redmine::Themes.themes.size' do
+      Redmine::Themes.rescan
+    end
+  end
+  
+  def test_theme_loaded
+    theme = Redmine::Themes.themes.last
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id)
+  end
+  
+  def test_theme_loaded_without_rescan
+    theme = Redmine::Themes.themes.last
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id, :rescan => false)
+  end
+  
+  def test_theme_not_loaded
+    theme = Redmine::Themes.themes.pop
+    
+    assert_equal theme, Redmine::Themes.theme(theme.id)
+  end
+  
+  def test_theme_not_loaded_without_rescan
+    theme = Redmine::Themes.themes.pop
+    
+    assert_nil Redmine::Themes.theme(theme.id, :rescan => false)
+  end
+end
--- a/test/unit/lib/redmine/unified_diff_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/unified_diff_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::UnifiedDiffTest < ActiveSupport::TestCase
   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/views
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,31 @@
+10
+
+dir
+4707
+http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/views
+http://redmine.rubyforge.org/svn
+
+
+
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+builders
+dir
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/views/builders
+END
+xml_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/views/builders/xml_test.rb
+END
+json_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/views/builders/json_test.rb
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,96 @@
+10
+
+dir
+4707
+http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/views/builders
+http://redmine.rubyforge.org/svn
+
+
+
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+xml_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+0eb241e5c91856b3340cf4d848c39119
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1883
+
+json_test.rb
+file
+
+
+
+
+2011-01-13T14:09:08.000000Z
+aed14e6bc3e5bb08380fe6954d273a6c
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2807
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/prop-base/json_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/prop-base/xml_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/text-base/json_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,81 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
+
+class Redmine::Views::Builders::JsonTest < HelperTestCase
+  
+  def test_hash
+    assert_json_output({'person' => {'name' => 'Ryan', 'age' => 32}}) do |b|
+      b.person do
+        b.name 'Ryan'
+        b.age  32
+      end
+    end
+  end
+  
+  def test_hash_hash
+    assert_json_output({'person' => {'name' => 'Ryan', 'birth' => {'city' => 'London', 'country' => 'UK'}}}) do |b|
+      b.person do
+        b.name 'Ryan'
+        b.birth :city => 'London', :country => 'UK'
+      end
+    end
+    
+    assert_json_output({'person' => {'id' => 1, 'name' => 'Ryan', 'birth' => {'city' => 'London', 'country' => 'UK'}}}) do |b|
+      b.person :id => 1 do
+        b.name 'Ryan'
+        b.birth :city => 'London', :country => 'UK'
+      end
+    end
+  end
+  
+  def test_array
+    assert_json_output({'books' => [{'title' => 'Book 1', 'author' => 'B. Smith'}, {'title' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1', :author => 'B. Smith'
+        b.book :title => 'Book 2', :author => 'G. Cooper'
+      end
+    end
+
+    assert_json_output({'books' => [{'title' => 'Book 1', 'author' => 'B. Smith'}, {'title' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1' do
+          b.author 'B. Smith'
+        end
+        b.book :title => 'Book 2' do
+          b.author 'G. Cooper'
+        end
+      end
+    end
+  end
+  
+  def test_array_with_content_tags
+    assert_json_output({'books' => [{'value' => 'Book 1', 'author' => 'B. Smith'}, {'value' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book 'Book 1', :author => 'B. Smith'
+        b.book 'Book 2', :author => 'G. Cooper'
+      end
+    end
+  end
+  
+  def assert_json_output(expected, &block)
+    builder = Redmine::Views::Builders::Json.new
+    block.call(builder)
+    assert_equal(expected, ActiveSupport::JSON.decode(builder.output))
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/text-base/xml_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,54 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
+
+class Redmine::Views::Builders::XmlTest < HelperTestCase
+  
+  def test_hash
+    assert_xml_output('<person><name>Ryan</name><age>32</age></person>') do |b|
+      b.person do
+        b.name 'Ryan'
+        b.age  32
+      end
+    end
+  end
+  
+  def test_array
+    assert_xml_output('<books type="array"><book title="Book 1"/><book title="Book 2"/></books>') do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1'
+        b.book :title => 'Book 2'
+      end
+    end
+  end
+  
+  def test_array_with_content_tags
+    assert_xml_output('<books type="array"><book author="B. Smith">Book 1</book><book author="G. Cooper">Book 2</book></books>') do |b|
+      b.array :books do |b|
+        b.book 'Book 1', :author => 'B. Smith'
+        b.book 'Book 2', :author => 'G. Cooper'
+      end
+    end
+  end
+  
+  def assert_xml_output(expected, &block)
+    builder = Redmine::Views::Builders::Xml.new
+    block.call(builder)
+    assert_equal('<?xml version="1.0" encoding="UTF-8"?>' + expected, builder.output)
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/json_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,81 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
+
+class Redmine::Views::Builders::JsonTest < HelperTestCase
+  
+  def test_hash
+    assert_json_output({'person' => {'name' => 'Ryan', 'age' => 32}}) do |b|
+      b.person do
+        b.name 'Ryan'
+        b.age  32
+      end
+    end
+  end
+  
+  def test_hash_hash
+    assert_json_output({'person' => {'name' => 'Ryan', 'birth' => {'city' => 'London', 'country' => 'UK'}}}) do |b|
+      b.person do
+        b.name 'Ryan'
+        b.birth :city => 'London', :country => 'UK'
+      end
+    end
+    
+    assert_json_output({'person' => {'id' => 1, 'name' => 'Ryan', 'birth' => {'city' => 'London', 'country' => 'UK'}}}) do |b|
+      b.person :id => 1 do
+        b.name 'Ryan'
+        b.birth :city => 'London', :country => 'UK'
+      end
+    end
+  end
+  
+  def test_array
+    assert_json_output({'books' => [{'title' => 'Book 1', 'author' => 'B. Smith'}, {'title' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1', :author => 'B. Smith'
+        b.book :title => 'Book 2', :author => 'G. Cooper'
+      end
+    end
+
+    assert_json_output({'books' => [{'title' => 'Book 1', 'author' => 'B. Smith'}, {'title' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1' do
+          b.author 'B. Smith'
+        end
+        b.book :title => 'Book 2' do
+          b.author 'G. Cooper'
+        end
+      end
+    end
+  end
+  
+  def test_array_with_content_tags
+    assert_json_output({'books' => [{'value' => 'Book 1', 'author' => 'B. Smith'}, {'value' => 'Book 2', 'author' => 'G. Cooper'}]}) do |b|
+      b.array :books do |b|
+        b.book 'Book 1', :author => 'B. Smith'
+        b.book 'Book 2', :author => 'G. Cooper'
+      end
+    end
+  end
+  
+  def assert_json_output(expected, &block)
+    builder = Redmine::Views::Builders::Json.new
+    block.call(builder)
+    assert_equal(expected, ActiveSupport::JSON.decode(builder.output))
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/views/builders/xml_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -0,0 +1,54 @@
+# Redmine - project management software
+# Copyright (C) 2006-2010  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../../../../../../test_helper', __FILE__)
+
+class Redmine::Views::Builders::XmlTest < HelperTestCase
+  
+  def test_hash
+    assert_xml_output('<person><name>Ryan</name><age>32</age></person>') do |b|
+      b.person do
+        b.name 'Ryan'
+        b.age  32
+      end
+    end
+  end
+  
+  def test_array
+    assert_xml_output('<books type="array"><book title="Book 1"/><book title="Book 2"/></books>') do |b|
+      b.array :books do |b|
+        b.book :title => 'Book 1'
+        b.book :title => 'Book 2'
+      end
+    end
+  end
+  
+  def test_array_with_content_tags
+    assert_xml_output('<books type="array"><book author="B. Smith">Book 1</book><book author="G. Cooper">Book 2</book></books>') do |b|
+      b.array :books do |b|
+        b.book 'Book 1', :author => 'B. Smith'
+        b.book 'Book 2', :author => 'G. Cooper'
+      end
+    end
+  end
+  
+  def assert_xml_output(expected, &block)
+    builder = Redmine::Views::Builders::Xml.new
+    block.call(builder)
+    assert_equal('<?xml version="1.0" encoding="UTF-8"?>' + expected, builder.output)
+  end
+end
--- a/test/unit/lib/redmine/wiki_formatting.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../test_helper'
+require File.expand_path('../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormattingTest < ActiveSupport::TestCase
   
--- a/test/unit/lib/redmine/wiki_formatting/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,17 +1,17 @@
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svn/!svn/ver/4376/trunk/test/unit/lib/redmine/wiki_formatting
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting
 END
 textile_formatter_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 88
-/svn/!svn/ver/4374/trunk/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
 END
 macros_test.rb
 K 25
 svn:wc:ra_dav:version-url
 V 77
-/svn/!svn/ver/4376/trunk/test/unit/lib/redmine/wiki_formatting/macros_test.rb
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting/macros_test.rb
 END
--- a/test/unit/lib/redmine/wiki_formatting/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,15 +1,15 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/wiki_formatting
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-06T17:47:27.890964Z
-4376
-jplang
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 
 
 
@@ -32,11 +32,11 @@
 
 
 
-2010-11-19T13:04:41.297604Z
-b45c5a45c4f044bae05fc85dba330c90
-2010-11-06T13:29:23.489999Z
-4374
-jplang
+2011-01-13T14:09:07.000000Z
+5acd95498f8f2e52e8ad2b70961a21ad
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -58,7 +58,7 @@
 
 
 
-3468
+3473
 
 macros_test.rb
 file
@@ -66,11 +66,11 @@
 
 
 
-2010-11-19T13:04:41.297604Z
-b78c91f5e9e344345217756cb443e096
-2010-11-06T17:47:27.890964Z
-4376
-jplang
+2011-01-13T14:09:07.000000Z
+41000dcb1febd4ce59305bb36a369cf0
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
 has-props
 
 
@@ -92,5 +92,5 @@
 
 
 
-4117
+4122
 
--- a/test/unit/lib/redmine/wiki_formatting/.svn/text-base/macros_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/text-base/macros_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormatting::MacrosTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/lib/redmine/wiki_formatting/.svn/text-base/textile_formatter_test.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/text-base/textile_formatter_test.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormatting::TextileFormatterTest < HelperTestCase
 
--- a/test/unit/lib/redmine/wiki_formatting/macros_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/macros_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormatting::MacrosTest < HelperTestCase
   include ApplicationHelper
--- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../../../test_helper'
+require File.expand_path('../../../../../test_helper', __FILE__)
 
 class Redmine::WikiFormatting::TextileFormatterTest < HelperTestCase
 
--- a/test/unit/lib/redmine_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/lib/redmine_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../../test_helper'
+require File.expand_path('../../../test_helper', __FILE__)
 
 module RedmineMenuTestHelper
   # Assertions
--- a/test/unit/mail_handler_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/mail_handler_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MailHandlerTest < ActiveSupport::TestCase
   fixtures :users, :projects, 
@@ -36,6 +36,7 @@
                    :issue_categories,
                    :custom_fields,
                    :custom_fields_trackers,
+                   :custom_fields_projects,
                    :boards,
                    :messages
   
@@ -53,9 +54,10 @@
     assert issue.is_a?(Issue)
     assert !issue.new_record?
     issue.reload
+    assert_equal Project.find(2), issue.project
+    assert_equal issue.project.trackers.first, issue.tracker
     assert_equal 'New ticket on a given project', issue.subject
     assert_equal User.find_by_login('jsmith'), issue.author
-    assert_equal Project.find(2), issue.project
     assert_equal IssueStatus.find_by_name('Resolved'), issue.status
     assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.')
     assert_equal '2010-01-01', issue.start_date.to_s
@@ -64,6 +66,7 @@
     assert_equal Version.find_by_name('alpha'), issue.fixed_version
     assert_equal 2.5, issue.estimated_hours
     assert_equal 30, issue.done_ratio
+    assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
     # keywords should be removed from the email body
     assert !issue.description.match(/^Project:/i)
     assert !issue.description.match(/^Status:/i)
@@ -72,6 +75,15 @@
     assert_not_nil mail
     assert mail.subject.include?('New ticket on a given project')
   end
+  
+  def test_add_issue_with_default_tracker
+    # This email contains: 'Project: onlinestore'
+    issue = submit_email('ticket_on_given_project.eml', :issue => {:tracker => 'Support request'})
+    assert issue.is_a?(Issue)
+    assert !issue.new_record?
+    issue.reload
+    assert_equal 'Support request', issue.tracker.name
+  end
 
   def test_add_issue_with_status
     # This email contains: 'Project: onlinestore' and 'Status: Resolved'
@@ -201,6 +213,7 @@
         assert issue.is_a?(Issue)
         assert issue.author.anonymous?
         assert !issue.project.is_public?
+        assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
       end
     end
   end
@@ -288,6 +301,7 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
   end
 
   def test_add_issue_note_with_attribute_changes
@@ -298,11 +312,12 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
     assert_equal IssueStatus.find_by_name("Resolved"), issue.status
     assert_equal '2010-01-01', issue.start_date.to_s
     assert_equal '2010-12-31', issue.due_date.to_s
     assert_equal User.find_by_login('jsmith'), issue.assigned_to
-    assert_equal 'Updated custom value', issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
+    assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value
   end
 
   def test_add_issue_note_should_send_email_notification
@@ -312,6 +327,14 @@
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
   
+  def test_add_issue_note_should_not_set_defaults
+    journal = submit_email('ticket_reply.eml', :issue => {:tracker => 'Support request', :priority => 'High'})
+    assert journal.is_a?(Journal)
+    assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
+    assert_equal 'Normal', journal.issue.priority.name
+  end
+  
   def test_reply_to_a_message
     m = submit_email('message_reply.eml')
     assert m.is_a?(Message)
--- a/test/unit/mailer_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/mailer_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MailerTest < ActiveSupport::TestCase
   include Redmine::I18n
@@ -305,6 +305,26 @@
     end
   end
   
+  def test_wiki_content_added
+    content = WikiContent.find(:first)
+    valid_languages.each do |lang|
+      Setting.default_language = lang.to_s
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        assert Mailer.deliver_wiki_content_added(content)
+      end
+    end
+  end
+  
+  def test_wiki_content_updated
+    content = WikiContent.find(:first)
+    valid_languages.each do |lang|
+      Setting.default_language = lang.to_s
+      assert_difference 'ActionMailer::Base.deliveries.size' do
+        assert Mailer.deliver_wiki_content_updated(content)
+      end
+    end
+  end
+  
   def test_account_information
     user = User.find(2)
     valid_languages.each do |lang|
--- a/test/unit/member_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/member_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MemberTest < ActiveSupport::TestCase
   fixtures :all
--- a/test/unit/message_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/message_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MessageTest < ActiveSupport::TestCase
   fixtures :projects, :roles, :members, :member_roles, :boards, :messages, :users, :watchers
--- a/test/unit/news_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/news_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class NewsTest < ActiveSupport::TestCase
   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news
@@ -46,9 +46,8 @@
   end
   
   def test_should_not_include_news_for_projects_with_news_disabled
-    # The projects_002 (OnlineStore) doesn't have the news module enabled, use that project for this test
-    project = projects(:projects_002)
-    assert ! project.enabled_modules.any?{ |em| em.name == 'news' }
+    EnabledModule.delete_all(["project_id = ? AND name = ?", 2, 'news'])
+    project = Project.find(2)
 
     # Add a piece of news to the project
     news = project.news.create(valid_news)
@@ -58,8 +57,7 @@
   end
   
   def test_should_only_include_news_from_projects_visibly_to_the_user
-    # users_001 has no memberships so can only get news from public project
-    assert News.latest(users(:users_001)).all? { |news| news.project.is_public? } 
+    assert News.latest(User.anonymous).all? { |news| news.project.is_public? } 
   end
   
   def test_should_limit_the_amount_of_returned_news
--- a/test/unit/principal_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/principal_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class PrincipalTest < ActiveSupport::TestCase
 
--- a/test/unit/project_nested_set_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/project_nested_set_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,44 +15,104 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectNestedSetTest < ActiveSupport::TestCase
   
-  def setup
-    Project.delete_all
+  context "nested set" do
+    setup do
+      Project.delete_all
+
+      @a = Project.create!(:name => 'Project A', :identifier => 'projecta')
+      @a1 = Project.create!(:name => 'Project A1', :identifier => 'projecta1')
+      @a1.set_parent!(@a)
+      @a2 = Project.create!(:name => 'Project A2', :identifier => 'projecta2')
+      @a2.set_parent!(@a)
+      
+      @b = Project.create!(:name => 'Project B', :identifier => 'projectb')
+      @b1 = Project.create!(:name => 'Project B1', :identifier => 'projectb1')
+      @b1.set_parent!(@b)
+      @b11 = Project.create!(:name => 'Project B11', :identifier => 'projectb11')
+      @b11.set_parent!(@b1)
+      @b2 = Project.create!(:name => 'Project B2', :identifier => 'projectb2')
+      @b2.set_parent!(@b)
+      
+      @c = Project.create!(:name => 'Project C', :identifier => 'projectc')
+      @c1 = Project.create!(:name => 'Project C1', :identifier => 'projectc1')
+      @c1.set_parent!(@c)
+      
+      [@a, @a1, @a2, @b, @b1, @b11, @b2, @c, @c1].each(&:reload)
+    end
+    
+    context "#create" do
+      should "build valid tree" do
+        assert_nested_set_values({
+          @a   => [nil,   1,  6],
+          @a1  => [@a.id, 2,  3],
+          @a2  => [@a.id, 4,  5],
+          @b   => [nil,   7, 14],
+          @b1  => [@b.id, 8, 11],
+          @b11 => [@b1.id,9, 10],
+          @b2  => [@b.id,12, 13],
+          @c   => [nil,  15, 18],
+          @c1  => [@c.id,16, 17]
+        })
+      end
+    end
+    
+    context "#set_parent!" do
+      should "keep valid tree" do
+        assert_no_difference 'Project.count' do
+          Project.find_by_name('Project B1').set_parent!(Project.find_by_name('Project A2'))
+        end
+        assert_nested_set_values({
+          @a   => [nil,   1, 10],
+          @a2  => [@a.id, 4,  9],
+          @b1  => [@a2.id,5,  8],
+          @b11 => [@b1.id,6,  7],
+          @b   => [nil,  11, 14],
+          @c   => [nil,  15, 18]
+        })
+      end
+    end
+  
+    context "#destroy" do
+      context "a root with children" do
+        should "not mess up the tree" do
+          assert_difference 'Project.count', -4 do
+            Project.find_by_name('Project B').destroy
+          end
+          assert_nested_set_values({
+            @a  => [nil,   1,  6],
+            @a1 => [@a.id, 2,  3],
+            @a2 => [@a.id, 4,  5],
+            @c  => [nil,   7, 10],
+            @c1 => [@c.id, 8,  9]
+          })
+        end
+      end
+      
+      context "a child with children" do
+        should "not mess up the tree" do
+          assert_difference 'Project.count', -2 do
+            Project.find_by_name('Project B1').destroy
+          end
+          assert_nested_set_values({
+            @a  => [nil,   1,  6],
+            @b  => [nil,   7, 10],
+            @b2 => [@b.id, 8,  9],
+            @c  => [nil,  11, 14]
+          })
+        end
+      end
+    end
   end
   
-  def test_destroy_root_and_chldren_should_not_mess_up_the_tree
-    a = Project.create!(:name => 'Project A', :identifier => 'projecta')
-    a1 = Project.create!(:name => 'Project A1', :identifier => 'projecta1')
-    a2 = Project.create!(:name => 'Project A2', :identifier => 'projecta2')
-    a1.set_parent!(a)
-    a2.set_parent!(a)
-    b = Project.create!(:name => 'Project B', :identifier => 'projectb')
-    b1 = Project.create!(:name => 'Project B1', :identifier => 'projectb1')
-    b1.set_parent!(b)
-    
-    a.reload
-    a1.reload
-    a2.reload
-    b.reload
-    b1.reload
-    
-    assert_equal [nil, 1, 6], [a.parent_id, a.lft, a.rgt]
-    assert_equal [a.id, 2, 3], [a1.parent_id, a1.lft, a1.rgt]
-    assert_equal [a.id, 4, 5], [a2.parent_id, a2.lft, a2.rgt]
-    assert_equal [nil, 7, 10], [b.parent_id, b.lft, b.rgt]
-    assert_equal [b.id, 8, 9], [b1.parent_id, b1.lft, b1.rgt]
-    
-    assert_difference 'Project.count', -3 do
-      a.destroy
+  def assert_nested_set_values(h)
+    assert Project.valid?
+    h.each do |project, expected|
+      project.reload
+      assert_equal expected, [project.parent_id, project.lft, project.rgt], "Unexpected nested set values for #{project.name}"
     end
-    
-    b.reload
-    b1.reload
-
-    assert_equal [nil, 1, 4], [b.parent_id, b.lft, b.rgt]
-    assert_equal [b.id, 2, 3], [b1.parent_id, b1.lft, b1.rgt]
   end
-end
\ No newline at end of file
+end
--- a/test/unit/project_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/project_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class ProjectTest < ActiveSupport::TestCase
   fixtures :all
@@ -60,6 +60,35 @@
     assert_equal "eCookbook", @ecookbook.name
   end
   
+  def test_default_attributes
+    with_settings :default_projects_public => '1' do
+      assert_equal true, Project.new.is_public
+      assert_equal false, Project.new(:is_public => false).is_public
+    end
+
+    with_settings :default_projects_public => '0' do
+      assert_equal false, Project.new.is_public
+      assert_equal true, Project.new(:is_public => true).is_public
+    end
+
+    with_settings :sequential_project_identifiers => '1' do
+      assert !Project.new.identifier.blank?
+      assert Project.new(:identifier => '').identifier.blank?
+    end
+
+    with_settings :sequential_project_identifiers => '0' do
+      assert Project.new.identifier.blank?
+      assert !Project.new(:identifier => 'test').blank?
+    end
+
+    with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
+      assert_equal ['issue_tracking', 'repository'], Project.new.enabled_module_names
+    end
+    
+    assert_equal Tracker.all, Project.new.trackers
+    assert_equal Tracker.find(1, 3), Project.new(:tracker_ids => [1, 3]).trackers
+  end
+  
   def test_update
     assert_equal "eCookbook", @ecookbook.name
     @ecookbook.name = "eCook"
@@ -741,6 +770,22 @@
         assert_equal @project, membership.project
       end
     end
+    
+    should "copy memberships with groups and additional roles" do
+      group = Group.create!(:lastname => "Copy group")
+      user = User.find(7) 
+      group.users << user
+      # group role
+      Member.create!(:project_id => @source_project.id, :principal => group, :role_ids => [2])
+      member = Member.find_by_user_id_and_project_id(user.id, @source_project.id)
+      # additional role
+      member.role_ids = [1]
+
+      assert @project.copy(@source_project)
+      member = Member.find_by_user_id_and_project_id(user.id, @project.id)
+      assert_not_nil member
+      assert_equal [1, 2], member.role_ids.sort
+    end
 
     should "copy project specific queries" do
       assert @project.valid?
@@ -853,14 +898,6 @@
     should "be nil if there are no issues on the project" do
       assert_nil @project.start_date
     end
-
-    should "be nil if issue tracking is disabled" do
-      Issue.generate_for_project!(@project, :start_date => Date.today)
-      @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
-      @project.reload
-      
-      assert_nil @project.start_date
-    end
     
     should "be tested when issues have no start date"
 
@@ -884,14 +921,6 @@
     should "be nil if there are no issues on the project" do
       assert_nil @project.due_date
     end
-
-    should "be nil if issue tracking is disabled" do
-      Issue.generate_for_project!(@project, :due_date => Date.today)
-      @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
-      @project.reload
-      
-      assert_nil @project.due_date
-    end
     
     should "be tested when issues have no due date"
 
--- a/test/unit/query_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/query_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class QueryTest < ActiveSupport::TestCase
   fixtures :projects, :enabled_modules, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :watchers, :custom_fields, :custom_values, :versions, :queries
@@ -235,6 +235,22 @@
     q = Query.new
     assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn}
   end
+
+  def test_grouped_with_valid_column
+    q = Query.new(:group_by => 'status')
+    assert q.grouped?
+    assert_not_nil q.group_by_column
+    assert_equal :status, q.group_by_column.name
+    assert_not_nil q.group_by_statement
+    assert_equal 'status', q.group_by_statement
+  end
+  
+  def test_grouped_with_invalid_column
+    q = Query.new(:group_by => 'foo')
+    assert !q.grouped?
+    assert_nil q.group_by_column
+    assert_nil q.group_by_statement
+  end
   
   def test_default_sort
     q = Query.new
@@ -382,6 +398,12 @@
       assert users[:values].map{|u|u[1]}.include?("3")
     end
 
+    should "include visible projects in cross-project view" do
+      projects = @query.available_filters["project_id"]
+      assert_not_nil projects
+      assert projects[:values].map{|u|u[1]}.include?("1")
+    end
+
     context "'member_of_group' filter" do
       should "be present" do
         assert @query.available_filters.keys.include?("member_of_group")
--- a/test/unit/repository_bazaar_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_bazaar_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryBazaarTest < ActiveSupport::TestCase
   fixtures :projects
@@ -77,7 +77,7 @@
     def test_annotate
       annotate = @repository.scm.annotate('doc-mkdir.txt')
       assert_equal 17, annotate.lines.size
-      assert_equal 1, annotate.revisions[0].identifier
+      assert_equal '1', annotate.revisions[0].identifier
       assert_equal 'jsmith@', annotate.revisions[0].author
       assert_equal 'mkdir', annotate.lines[0]
     end
--- a/test/unit/repository_cvs_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_cvs_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 require 'pp'
 class RepositoryCvsTest < ActiveSupport::TestCase
   fixtures :projects
--- a/test/unit/repository_darcs_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_darcs_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryDarcsTest < ActiveSupport::TestCase
   fixtures :projects
@@ -54,12 +54,14 @@
       assert entries.detect {|e| e.name == 'watchers_controller.rb'}
       assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
     end
-    
+
     def test_cat
-      @repository.fetch_changesets
-      cat = @repository.cat("sources/welcome_controller.rb", 2)
-      assert_not_nil cat
-      assert cat.include?('class WelcomeController < ApplicationController')
+      if @repository.scm.supports_cat?
+        @repository.fetch_changesets
+        cat = @repository.cat("sources/welcome_controller.rb", 2)
+        assert_not_nil cat
+        assert cat.include?('class WelcomeController < ApplicationController')
+      end
     end
   else
     puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
--- a/test/unit/repository_filesystem_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_filesystem_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryFilesystemTest < ActiveSupport::TestCase
   fixtures :projects
--- a/test/unit/repository_git_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_git_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryGitTest < ActiveSupport::TestCase
-  fixtures :projects
+  fixtures :projects, :repositories, :enabled_modules, :users, :roles 
   
   # No '..' in the repository path
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
@@ -62,6 +62,47 @@
       @repository.fetch_changesets
       assert_equal 15, @repository.changesets.count
     end
+
+    def test_find_changeset_by_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['7234cb2750b63f47bff735edc50a1c0a433c2518', '7234cb2750b'].each do |r|
+        assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518',
+                     @repository.find_changeset_by_name(r).revision
+      end
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('7234cb2750b63f47bff735edc50a1c0a433c2518')
+      assert_equal c.scmid, c.identifier
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('7234cb2750b63f47bff735edc50a1c0a433c2518')
+      assert_equal '7234cb27', c.format_identifier
+    end
+
+    def test_activities
+      c = Changeset.new(:repository => @repository,
+                        :committed_on => Time.now,
+                        :revision => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
+                        :scmid    => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
+                        :comments => 'test')
+      assert c.event_title.include?('abc7234c:')
+      assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
+    end
   else
     puts "Git test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/repository_mercurial_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_mercurial_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryMercurialTest < ActiveSupport::TestCase
   fixtures :projects
@@ -33,9 +33,10 @@
       @repository.fetch_changesets
       @repository.reload
       
-      assert_equal 6, @repository.changesets.count
-      assert_equal 11, @repository.changes.count
-      assert_equal "Initial import.\nThe repository contains 3 files.", @repository.changesets.find_by_revision('0').comments
+      assert_equal 17, @repository.changesets.count
+      assert_equal 25, @repository.changes.count
+      assert_equal "Initial import.\nThe repository contains 3 files.",
+                   @repository.changesets.find_by_revision('0').comments
     end
     
     def test_fetch_changesets_incremental
@@ -46,28 +47,130 @@
       assert_equal 3, @repository.changesets.count
       
       @repository.fetch_changesets
-      assert_equal 6, @repository.changesets.count
+      assert_equal 17, @repository.changesets.count
     end
     
     def test_entries
       assert_equal 2, @repository.entries("sources", 2).size
+      assert_equal 2, @repository.entries("sources", '400bb8672109').size
       assert_equal 1, @repository.entries("sources", 3).size
+      assert_equal 1, @repository.entries("sources", 'b3a615152df8').size
     end
 
     def test_locate_on_outdated_repository
-      # Change the working dir state
-      %x{hg -R #{REPOSITORY_PATH} up -r 0}
       assert_equal 1, @repository.entries("images", 0).size
       assert_equal 2, @repository.entries("images").size
       assert_equal 2, @repository.entries("images", 2).size
     end
 
-
-    def test_cat
-      assert @repository.scm.cat("sources/welcome_controller.rb", 2)
-      assert_nil @repository.scm.cat("sources/welcome_controller.rb")
+    def test_isodatesec
+      # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
+      if @repository.scm.class.client_version_above?([1, 0])
+        @repository.fetch_changesets
+        @repository.reload
+        rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
+        assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
+      end
     end
 
+    def test_changeset_order_by_revision
+      @repository.fetch_changesets
+      @repository.reload
+
+      c0 = @repository.latest_changeset
+      c1 = @repository.changesets.find_by_revision('0')
+      # sorted by revision (id), not by date
+      assert c0.revision.to_i > c1.revision.to_i
+      assert c0.committed_on  < c1.committed_on
+    end
+
+    def test_latest_changesets
+      @repository.fetch_changesets
+      @repository.reload
+
+      # with_limit
+      changesets = @repository.latest_changesets('', nil, 2)
+      assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
+
+      # with_filepath
+      changesets = @repository.latest_changesets('/sql_escape/percent%dir/percent%file1.txt', nil)
+      assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+      changesets = @repository.latest_changesets('/sql_escape/underscore_dir/understrike_file.txt', nil)
+      assert_equal %w|12 9|, changesets.collect(&:revision)
+    end
+
+    def test_copied_files
+      @repository.fetch_changesets
+      @repository.reload
+
+      cs1 = @repository.changesets.find_by_revision('13')
+      assert_not_nil cs1
+      c1  = cs1.changes.sort_by(&:path)
+      assert_equal 2, c1.size
+
+      assert_equal 'A', c1[0].action
+      assert_equal '/sql_escape/percent%dir/percentfile1.txt',  c1[0].path
+      assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
+
+      assert_equal 'A', c1[1].action
+      assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
+      assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
+
+      cs2 = @repository.changesets.find_by_revision('15')
+      c2  = cs2.changes
+      assert_equal 1, c2.size
+
+      assert_equal 'A', c2[0].action
+      assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
+      assert_equal '/README', c2[0].from_path
+    end
+
+    def test_find_changeset_by_name
+      @repository.fetch_changesets
+      @repository.reload
+      %w|2 400bb8672109 400|.each do |r|
+        assert_equal '2', @repository.find_changeset_by_name(r).revision
+      end
+    end
+
+    def test_find_changeset_by_invalid_name
+      @repository.fetch_changesets
+      @repository.reload
+      assert_nil @repository.find_changeset_by_name('100000')
+    end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('2')
+      assert_equal c.scmid, c.identifier
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('2')
+      assert_equal '2:400bb8672109', c.format_identifier
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_activities
+      c = Changeset.new(:repository   => @repository,
+                        :committed_on => Time.now,
+                        :revision     => '123',
+                        :scmid        => 'abc400bb8672',
+                        :comments     => 'test')
+      assert c.event_title.include?('123:abc400bb8672:')
+      assert_equal 'abc400bb8672', c.event_url[:rev]
+    end
   else
     puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/repository_subversion_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_subversion_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositorySubversionTest < ActiveSupport::TestCase
-  fixtures :projects, :repositories
+  fixtures :projects, :repositories, :enabled_modules, :users, :roles 
   
   def setup
     @project = Project.find(1)
@@ -88,6 +88,54 @@
       assert_equal 1, entries.size, 'Expect a single entry'
       assert_equal 'README.txt', entries.first.name
     end
+
+    def test_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('1')
+      assert_equal c.revision, c.identifier
+    end
+
+    def test_find_changeset_by_empty_name
+      @repository.fetch_changesets
+      @repository.reload
+      ['', ' ', nil].each do |r|
+        assert_nil @repository.find_changeset_by_name(r)
+      end
+    end
+
+    def test_identifier_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert_equal c.identifier, c.revision
+    end
+
+    def test_format_identifier
+      @repository.fetch_changesets
+      @repository.reload
+      c = @repository.changesets.find_by_revision('1')
+      assert_equal c.format_identifier, c.revision
+    end
+
+    def test_format_identifier_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert_equal c.format_identifier, c.revision
+    end
+
+    def test_activities
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '1', :comments => 'test')
+      assert c.event_title.include?('1:')
+      assert_equal '1', c.event_url[:rev]
+    end
+
+    def test_activities_nine_digit
+      c = Changeset.new(:repository => @repository, :committed_on => Time.now,
+                        :revision => '123456789', :comments => 'test')
+      assert c.event_title.include?('123456789:')
+      assert_equal '123456789', c.event_url[:rev]
+    end
   else
     puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
--- a/test/unit/repository_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/repository_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,18 +15,23 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RepositoryTest < ActiveSupport::TestCase
   fixtures :projects,
            :trackers,
            :projects_trackers,
+           :enabled_modules,
            :repositories,
            :issues,
            :issue_statuses,
+           :issue_categories,
            :changesets,
            :changes,
            :users,
+           :members,
+           :member_roles,
+           :roles,
            :enumerations
   
   def setup
--- a/test/unit/role_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/role_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class RoleTest < ActiveSupport::TestCase
   fixtures :roles, :workflows
--- a/test/unit/search_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/search_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class SearchTest < ActiveSupport::TestCase
   fixtures :users,
--- a/test/unit/setting_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/setting_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class SettingTest < ActiveSupport::TestCase
   
--- a/test/unit/testing_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/testing_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 # Test case that checks that the testing infrastructure is setup correctly.
 class TestingTest < ActiveSupport::TestCase
--- a/test/unit/time_entry_activity_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/time_entry_activity_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryActivityTest < ActiveSupport::TestCase
   fixtures :enumerations, :time_entries
--- a/test/unit/time_entry_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/time_entry_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TimeEntryTest < ActiveSupport::TestCase
   fixtures :issues, :projects, :users, :time_entries
--- a/test/unit/token_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/token_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TokenTest < ActiveSupport::TestCase
   fixtures :tokens
--- a/test/unit/tracker_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/tracker_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class TrackerTest < ActiveSupport::TestCase
   fixtures :trackers, :workflows, :issue_statuses, :roles
--- a/test/unit/user_preference_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/user_preference_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class UserPreferenceTest < ActiveSupport::TestCase
   fixtures :users, :user_preferences
--- a/test/unit/user_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/user_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class UserTest < ActiveSupport::TestCase
   fixtures :users, :members, :projects, :roles, :member_roles, :auth_sources
@@ -115,12 +115,19 @@
     assert Member.find_all_by_user_id(2).empty?
   end
   
-  def test_validate
+  def test_validate_login_presence
     @admin.login = ""
     assert !@admin.save
     assert_equal 1, @admin.errors.count
   end
   
+  def test_validate_mail_notification_inclusion
+    u = User.new
+    u.mail_notification = 'foo'
+    u.save
+    assert_not_nil u.errors.on(:mail_notification)
+  end
+  
   context "User#try_to_login" do
     should "fall-back to case-insensitive if user login is not found as-typed." do
       user = User.try_to_login("AdMin", "admin")
@@ -437,55 +444,49 @@
       end
 
       should "be true for a user with :all" do
-        @author.update_attribute(:mail_notification, :all)
+        @author.update_attribute(:mail_notification, 'all')
         assert @author.notify_about?(@issue)
       end
       
       should "be false for a user with :none" do
-        @author.update_attribute(:mail_notification, :none)
+        @author.update_attribute(:mail_notification, 'none')
         assert ! @author.notify_about?(@issue)
       end
       
       should "be false for a user with :only_my_events and isn't an author, creator, or assignee" do
-        @user = User.generate_with_protected!(:mail_notification => :only_my_events)
+        @user = User.generate_with_protected!(:mail_notification => 'only_my_events')
         assert ! @user.notify_about?(@issue)
       end
       
       should "be true for a user with :only_my_events and is the author" do
-        @author.update_attribute(:mail_notification, :only_my_events)
+        @author.update_attribute(:mail_notification, 'only_my_events')
         assert @author.notify_about?(@issue)
       end
       
       should "be true for a user with :only_my_events and is the assignee" do
-        @assignee.update_attribute(:mail_notification, :only_my_events)
+        @assignee.update_attribute(:mail_notification, 'only_my_events')
         assert @assignee.notify_about?(@issue)
       end
       
       should "be true for a user with :only_assigned and is the assignee" do
-        @assignee.update_attribute(:mail_notification, :only_assigned)
+        @assignee.update_attribute(:mail_notification, 'only_assigned')
         assert @assignee.notify_about?(@issue)
       end
       
       should "be false for a user with :only_assigned and is not the assignee" do
-        @author.update_attribute(:mail_notification, :only_assigned)
+        @author.update_attribute(:mail_notification, 'only_assigned')
         assert ! @author.notify_about?(@issue)
       end
       
       should "be true for a user with :only_owner and is the author" do
-        @author.update_attribute(:mail_notification, :only_owner)
+        @author.update_attribute(:mail_notification, 'only_owner')
         assert @author.notify_about?(@issue)
       end
       
       should "be false for a user with :only_owner and is not the author" do
-        @assignee.update_attribute(:mail_notification, :only_owner)
+        @assignee.update_attribute(:mail_notification, 'only_owner')
         assert ! @assignee.notify_about?(@issue)
       end
-      
-      should "be false if the mail_notification is anything else" do
-        @assignee.update_attribute(:mail_notification, :somthing_else)
-        assert ! @assignee.notify_about?(@issue)
-      end
-      
     end
 
     context "other events" do
--- a/test/unit/version_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/version_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class VersionTest < ActiveSupport::TestCase
   fixtures :projects, :users, :issues, :issue_statuses, :trackers, :enumerations, :versions
@@ -190,7 +190,7 @@
     # Separate hierarchy
     project_1_issue = Issue.find(1)
     project_1_issue.fixed_version = @version
-    assert project_1_issue.save, project_1_issue.errors.full_messages
+    assert project_1_issue.save, project_1_issue.errors.full_messages.to_s
     
     project_5_issue = Issue.find(6)
     project_5_issue.fixed_version = @version
--- a/test/unit/watcher_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/watcher_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WatcherTest < ActiveSupport::TestCase
   fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules,
--- a/test/unit/wiki_content_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/wiki_content_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiContentTest < ActiveSupport::TestCase
   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :users
--- a/test/unit/wiki_page_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/wiki_page_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,7 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiPageTest < ActiveSupport::TestCase
   fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
--- a/test/unit/wiki_redirect_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/wiki_redirect_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiRedirectTest < ActiveSupport::TestCase
-  fixtures :projects, :wikis
+  fixtures :projects, :wikis, :wiki_pages
 
   def setup
     @wiki = Wiki.find(1)
@@ -33,6 +33,7 @@
     assert_equal 'New_title', @original.title
     assert @wiki.redirects.find_by_title('Original_title')
     assert @wiki.find_page('Original title')
+    assert @wiki.find_page('ORIGINAL title')
   end
   
   def test_update_redirect
--- a/test/unit/wiki_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/wiki_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class WikiTest < ActiveSupport::TestCase
   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
@@ -39,6 +39,18 @@
     assert_equal "Another start page", @wiki.start_page
   end
   
+  def test_find_page
+    wiki = Wiki.find(1)
+    page = WikiPage.find(2)
+    
+    assert_equal page, wiki.find_page('Another_page')
+    assert_equal page, wiki.find_page('Another page')
+    assert_equal page, wiki.find_page('ANOTHER page')
+    
+    page = WikiPage.find(10)
+    assert_equal page, wiki.find_page('Этика_менеджмента')
+  end
+  
   def test_titleize
     assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
     assert_equal 'テスト', Wiki.titleize('テスト')
--- a/tmp/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/tmp/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/tmp
 http://redmine.rubyforge.org/svn
 
--- a/tmp/cache/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/tmp/cache/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/tmp/cache
 http://redmine.rubyforge.org/svn
 
--- a/tmp/sessions/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/tmp/sessions/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/tmp/sessions
 http://redmine.rubyforge.org/svn
 
--- a/tmp/sockets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/tmp/sockets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/tmp/sockets
 http://redmine.rubyforge.org/svn
 
--- a/tmp/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/tmp/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/tmp/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 31
-/svn/!svn/ver/4406/trunk/vendor
+/svn/!svn/ver/4602/trunk/vendor
 END
--- a/vendor/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:24:21.989522Z
-4406
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 has-props
 
--- a/vendor/gems/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/gems/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/gems
 http://redmine.rubyforge.org/svn
 
--- a/vendor/gems/rubytree-0.5.2/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/gems/rubytree-0.5.2/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2
 http://redmine.rubyforge.org/svn
 
--- a/vendor/gems/rubytree-0.5.2/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib/tree
 http://redmine.rubyforge.org/svn
 
--- a/vendor/gems/rubytree-0.5.2/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/gems/rubytree-0.5.2/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,5 +1,5 @@
 K 25
 svn:wc:ra_dav:version-url
 V 39
-/svn/!svn/ver/4406/trunk/vendor/plugins
+/svn/!svn/ver/4602/trunk/vendor/plugins
 END
--- a/vendor/plugins/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-14T16:24:21.989522Z
-4406
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 
 
--- a/vendor/plugins/acts_as_activity_provider/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_activity_provider/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_activity_provider/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_activity_provider/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_attachable/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_attachable/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_attachable/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_attachable/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_customizable/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 60
-/svn/!svn/ver/4382/trunk/vendor/plugins/acts_as_customizable
+/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable
 END
 init.rb
 K 25
--- a/vendor/plugins/acts_as_customizable/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T14:15:01.891476Z
-4382
+2010-12-10T10:48:16.342425Z
+4481
 jplang
 
 
--- a/vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,11 +1,11 @@
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svn/!svn/ver/4382/trunk/vendor/plugins/acts_as_customizable/lib
+/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable/lib
 END
 acts_as_customizable.rb
 K 25
 svn:wc:ra_dav:version-url
 V 88
-/svn/!svn/ver/4382/trunk/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
+/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
 END
--- a/vendor/plugins/acts_as_customizable/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable/lib
 http://redmine.rubyforge.org/svn
 
 
 
-2010-11-07T14:15:01.891476Z
-4382
+2010-12-10T10:48:16.342425Z
+4481
 jplang
 
 
@@ -32,10 +32,10 @@
 
 
 
-2010-11-19T13:04:50.920916Z
-1b80419ad25063ffc8725be3174c8fb8
-2010-11-07T14:15:01.891476Z
-4382
+2011-01-13T14:09:38.000000Z
+cef2f70b94f09391acec6dea08160454
+2010-12-10T10:48:16.342425Z
+4481
 jplang
 has-props
 
@@ -58,5 +58,5 @@
 
 
 
-3825
+4418
 
--- a/vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -50,6 +50,21 @@
                                  :order => 'position')
         end
         
+        # Sets the values of the object's custom fields
+        # values is an array like [{'id' => 1, 'value' => 'foo'}, {'id' => 2, 'value' => 'bar'}]
+        def custom_fields=(values)
+          values_to_hash = values.inject({}) do |hash, v|
+            v = v.stringify_keys
+            if v['id'] && v.has_key?('value')
+              hash[v['id']] = v['value']
+            end
+            hash
+          end
+          self.custom_field_values = values_to_hash
+        end
+
+        # Sets the values of the object's custom fields
+        # values is a hash like {'1' => 'foo', 2 => 'bar'}
         def custom_field_values=(values)
           @custom_field_values_changed = true
           values = values.stringify_keys
--- a/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -50,6 +50,21 @@
                                  :order => 'position')
         end
         
+        # Sets the values of the object's custom fields
+        # values is an array like [{'id' => 1, 'value' => 'foo'}, {'id' => 2, 'value' => 'bar'}]
+        def custom_fields=(values)
+          values_to_hash = values.inject({}) do |hash, v|
+            v = v.stringify_keys
+            if v['id'] && v.has_key?('value')
+              hash[v['id']] = v['value']
+            end
+            hash
+          end
+          self.custom_field_values = values_to_hash
+        end
+
+        # Sets the values of the object's custom fields
+        # values is a hash like {'1' => 'foo', 2 => 'bar'}
         def custom_field_values=(values)
           @custom_field_values_changed = true
           values = values.stringify_keys
--- a/vendor/plugins/acts_as_event/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_event/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_event/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_event/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_list/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_list/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_list/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_list/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_list/lib/active_record/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record/acts
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_list/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_list/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_searchable/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_searchable/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_searchable/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_searchable/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record/acts
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test/fixtures
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_versioned/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_versioned/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_versioned/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_versioned/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_versioned/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_versioned/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures/migrations
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_watchable/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_watchable/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/acts_as_watchable/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/acts_as_watchable/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/rails/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/rails/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/rails
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/awesome_nested_set
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/test/db/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/test/db/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/db
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/fixtures
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/classic_pagination/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/classic_pagination/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/classic_pagination/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/classic_pagination/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/classic_pagination/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/classic_pagination/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/classic_pagination/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/classic_pagination/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test/fixtures
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders
 http://redmine.rubyforge.org/svn
 
@@ -162,6 +162,40 @@
 
 835
 
+lines_of_code.rb
+file
+
+
+
+
+2010-09-23T14:37:45.647759Z
+966e154458fb6c665b6d62aa90d07e18
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2395
+
 count.rb
 file
 
@@ -196,40 +230,6 @@
 
 230
 
-lines_of_code.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-966e154458fb6c665b6d62aa90d07e18
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2395
-
 xml.rb
 file
 
@@ -298,9 +298,6 @@
 
 236
 
-html
-dir
-
 yaml.rb
 file
 
@@ -335,6 +332,9 @@
 
 264
 
+html
+dir
+
 html.rb
 file
 
@@ -369,6 +369,74 @@
 
 7856
 
+term.rb
+file
+
+
+
+
+2010-09-23T14:37:45.647759Z
+422a51cd181de3cc0a55aba7f9915c18
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4324
+
+statistic.rb
+file
+
+
+
+
+2010-09-23T14:37:45.647759Z
+49017735ef679f73dd65795e30d8e5c7
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1800
+
 comment_filter.rb
 file
 
@@ -403,74 +471,6 @@
 
 808
 
-statistic.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-49017735ef679f73dd65795e30d8e5c7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1800
-
-term.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-422a51cd181de3cc0a55aba7f9915c18
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4324
-
 json.rb
 file
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners
 http://redmine.rubyforge.org/svn
 
@@ -26,11 +26,79 @@
 
 e93f8b46-1217-0410-a6f0-8f06a7374b81
 
+java
+dir
+
 ruby
 dir
 
-java
-dir
+java.rb
+file
+
+
+
+
+2010-09-23T14:37:45.671759Z
+c812fce5db1da4af753e919407494271
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5046
+
+python.rb
+file
+
+
+
+
+2010-09-23T14:37:45.675761Z
+939e009d9b197cb6437646be82c02982
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9190
 
 ruby.rb
 file
@@ -66,14 +134,14 @@
 
 13715
 
-python.rb
+cpp.rb
 file
 
 
 
 
-2010-09-23T14:37:45.675761Z
-939e009d9b197cb6437646be82c02982
+2010-09-23T14:37:45.667815Z
+afc4a4b0842e5efdafe98f6c5a10810e
 2010-03-16T20:29:12.319937Z
 3592
 jplang
@@ -98,41 +166,7 @@
 
 
 
-9190
-
-java.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-c812fce5db1da4af753e919407494271
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5046
+6286
 
 c.rb
 file
@@ -168,40 +202,6 @@
 
 5408
 
-cpp.rb
-file
-
-
-
-
-2010-09-23T14:37:45.667815Z
-afc4a4b0842e5efdafe98f6c5a10810e
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6286
-
 groovy.rb
 file
 
@@ -236,6 +236,40 @@
 
 8521
 
+debug.rb
+file
+
+
+
+
+2010-09-23T14:37:45.671759Z
+94bdd6c948cb9c3d21ef94a5cec19e05
+2010-03-16T20:29:12.319937Z
+3592
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1281
+
 rhtml.rb
 file
 
@@ -270,40 +304,6 @@
 
 1526
 
-debug.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-94bdd6c948cb9c3d21ef94a5cec19e05
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1281
-
 php.rb
 file
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/generators/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/generators/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/generators/plugin_migration/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration/templates
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/lib/engines/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/lib/engines/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/lib/engines/plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/lib/engines/plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/rails_extensions
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/tasks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/tasks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/tasks
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/helpers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/helpers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/helpers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/models
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/things/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/things/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/things
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/app_and_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace/app_and_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/notify_mail
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/plugin_mail
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/functional/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/functional/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/functional
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/models
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/locales
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/models
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/locales
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin/public
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/assets
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public/subfolder
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app/things
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_load_path
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_migration/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db/migrate
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_routing/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/config
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_testing/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/app
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/fixtures
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/unit
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/unit/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/unit/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/engines/test/unit/test_testing/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/engines/test/unit/test_testing/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit/test_testing
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/gravatar/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/gravatar/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/gravatar/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/gravatar/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/gravatar/spec/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/gravatar/spec/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/spec
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/generators/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/generators/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib/open_id_authentication
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/tasks/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/tasks/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/tasks
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/open_id_authentication/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/open_id_authentication/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/prepend_engine_views/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/prepend_engine_views/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/prepend_engine_views
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/rfpdf/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 45
-/svn/!svn/ver/3389/trunk/vendor/plugins/rfpdf
+/svn/!svn/ver/4602/trunk/vendor/plugins/rfpdf
 END
 init.rb
 K 25
--- a/vendor/plugins/rfpdf/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf
 http://redmine.rubyforge.org/svn
 
 
 
-2010-02-07T12:30:44.486359Z
-3389
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 
 
--- a/vendor/plugins/rfpdf/lib/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 49
-/svn/!svn/ver/3389/trunk/vendor/plugins/rfpdf/lib
+/svn/!svn/ver/4602/trunk/vendor/plugins/rfpdf/lib
 END
 rfpdf.rb
 K 25
--- a/vendor/plugins/rfpdf/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib
 http://redmine.rubyforge.org/svn
 
 
 
-2010-02-07T12:30:44.486359Z
-3389
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 
 
--- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/all-wcprops	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/all-wcprops	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 55
-/svn/!svn/ver/3389/trunk/vendor/plugins/rfpdf/lib/rfpdf
+/svn/!svn/ver/4602/trunk/vendor/plugins/rfpdf/lib/rfpdf
 END
 chinese.rb
 K 25
@@ -12,8 +12,8 @@
 fpdf.rb
 K 25
 svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/67/trunk/vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb
+V 63
+/svn/!svn/ver/4602/trunk/vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb
 END
 korean.rb
 K 25
--- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,14 +1,14 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib/rfpdf
 http://redmine.rubyforge.org/svn
 
 
 
-2010-02-07T12:30:44.486359Z
-3389
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 
 
@@ -66,10 +66,10 @@
 
 
 
-2010-09-23T14:37:45.851779Z
-69406d6105df50a9552702d133889fd6
-2006-11-21T18:34:04.275680Z
-49
+2011-01-13T14:09:38.000000Z
+a2f702c9c8177f01521aa9eb5d6f9313
+2011-01-01T11:45:12.617336Z
+4602
 jplang
 
 
@@ -92,7 +92,7 @@
 
 
 
-59472
+59677
 
 korean.rb
 file
--- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/text-base/fpdf.rb.svn-base	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/text-base/fpdf.rb.svn-base	Thu Jan 13 14:12:06 2011 +0000
@@ -378,13 +378,21 @@
         end
         @ColorFlag=(@FillColor!=@TextColor)
     end
+    
+    def GetCharWidth(widths, index)
+      if index.is_a?(String)
+        widths[index.ord]
+      else
+        widths[index]
+      end
+    end
 
     def GetStringWidth(s)
         # Get width of a string in the current font
         cw=@CurrentFont['cw']
         w=0
         s.each_byte do |c|
-            w=w+cw[c]
+            w=w+GetCharWidth(cw, c)
         end
         w*@FontSize/1000.0
     end
@@ -707,7 +715,7 @@
                     ls=l
                     ns=ns+1
                 end
-                l=l+cw[c[0]]
+                l=l+GetCharWidth(cw, c[0])
                 if l>wmax
                     # Automatic line break
                     if sep==-1
@@ -786,7 +794,7 @@
                 sep=i
                 ls=l
             end
-            l=l+cw[c];
+            l=l+GetCharWidth(cw, c);
             if l>wmax
                 # Automatic line break
                 if sep==-1
@@ -1079,7 +1087,7 @@
                 cw=font['cw']
                 s='['
                 32.upto(255) do |i|
-                    s << cw[i].to_s+' '
+                    s << GetCharWidth(cw, i).to_s + ' '
                 end
                 out(s+']')
                 out('endobj')
--- a/vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/fpdf.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -378,13 +378,21 @@
         end
         @ColorFlag=(@FillColor!=@TextColor)
     end
+    
+    def GetCharWidth(widths, index)
+      if index.is_a?(String)
+        widths[index.ord]
+      else
+        widths[index]
+      end
+    end
 
     def GetStringWidth(s)
         # Get width of a string in the current font
         cw=@CurrentFont['cw']
         w=0
         s.each_byte do |c|
-            w=w+cw[c]
+            w=w+GetCharWidth(cw, c)
         end
         w*@FontSize/1000.0
     end
@@ -707,7 +715,7 @@
                     ls=l
                     ns=ns+1
                 end
-                l=l+cw[c[0]]
+                l=l+GetCharWidth(cw, c[0])
                 if l>wmax
                     # Automatic line break
                     if sep==-1
@@ -786,7 +794,7 @@
                 sep=i
                 ls=l
             end
-            l=l+cw[c];
+            l=l+GetCharWidth(cw, c);
             if l>wmax
                 # Automatic line break
                 if sep==-1
@@ -1079,7 +1087,7 @@
                 cw=font['cw']
                 s='['
                 32.upto(255) do |i|
-                    s << cw[i].to_s+' '
+                    s << GetCharWidth(cw, i).to_s + ' '
                 end
                 out(s+']')
                 out('endobj')
--- a/vendor/plugins/rfpdf/test/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/rfpdf/test/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/test
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap
 http://redmine.rubyforge.org/svn
 
--- a/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries	Fri Nov 19 14:05:24 2010 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries	Thu Jan 13 14:12:06 2011 +0000
@@ -1,7 +1,7 @@
 10
 
 dir
-4411
+4707
 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/tests
 http://redmine.rubyforge.org/svn