diff --git a/app/controllers/authentication_controller.rb b/app/controllers/authentication_controller.rb index f3bb25bddf..0dc527c786 100644 --- a/app/controllers/authentication_controller.rb +++ b/app/controllers/authentication_controller.rb @@ -28,7 +28,7 @@ #++ class AuthenticationController < ApplicationController - before_action :require_login + before_action :require_admin layout 'admin' menu_item :authentication_settings diff --git a/app/controllers/users_settings_controller.rb b/app/controllers/users_settings_controller.rb index 3160a7c7fa..9e1c20ee9b 100644 --- a/app/controllers/users_settings_controller.rb +++ b/app/controllers/users_settings_controller.rb @@ -30,6 +30,7 @@ class UsersSettingsController < ::ApplicationController layout 'admin' + before_action :require_admin menu_item :user_settings def index diff --git a/app/controllers/work_packages/settings_controller.rb b/app/controllers/work_packages/settings_controller.rb index 07282151fa..8e6d7edcc3 100644 --- a/app/controllers/work_packages/settings_controller.rb +++ b/app/controllers/work_packages/settings_controller.rb @@ -30,6 +30,7 @@ class WorkPackages::SettingsController < ::ApplicationController layout 'admin' + before_action :require_admin current_menu_item :index do :work_packages_setting end diff --git a/app/uploaders/fog_file_uploader.rb b/app/uploaders/fog_file_uploader.rb index bde1916211..65a55297fd 100644 --- a/app/uploaders/fog_file_uploader.rb +++ b/app/uploaders/fog_file_uploader.rb @@ -60,7 +60,7 @@ class FogFileUploader < CarrierWave::Uploader::Base ## # This is necessary for carrierwave to set the Content-Type in the S3 metadata for instance. def fog_attributes - content_type = model.content_type + content_type = model.respond_to?(:content_type) ? model.content_type : "" return super if content_type.blank? diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index 4c5d0de623..4cfe3274d1 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -63,16 +63,16 @@ ja: main-menu-bg-color: "左サイドメニューの背景色。" theme_warning: テーマを変更した場合、カスタムスタイルが上書きされ、失われます。本当に続けますか? enterprise: - upgrade_to_ee: "Upgrade to the Enterprise Edition" + upgrade_to_ee: "エンタープライズ版にアップグレード" add_token: "エンタープライズ版サポートのトークンをアップロード" replace_token: "現在のサポート トークンを置き換え" order: "エンタープライズ版を注文" paste: "エンタープライズ版サポートのトークンを貼り付け" required_for_feature: "この機能は、アクティブなエンタープライズ版のサポート トークンでのみ利用可能です。" enterprise_link: "詳細については、ここをクリックしてください。" - start_trial: 'Start free trial' - book_now: 'Book now' - get_quote: 'Get a quote' + start_trial: '無料トライアルを開始' + book_now: '今すぐ予約' + get_quote: '見積もりの入手' announcements: show_until: までを表示 is_active: 現在表示されています @@ -113,16 +113,17 @@ ja: OpenProject は、このサブツリー内の指定されたユーザー名のみをフィルタリングします。 例: ou=users,dc=example,dc=com filter_string: | - Add an optional RFC4515 filter to apply to the results returned for users filtered in the LDAP. - This can be used to restrict the set of users that are found by OpenProject for authentication and group synchronization. + LDAPでフィルタされたユーザーに対して返された結果に適用するオプションのRFC4515フィルタを追加します。 + これは、OpenProjectによって検出された認証とグループ同期のためのユーザーのセットを制限するために使用することができます。 filter_string_concat: | - OpenProject will always filter for the login attribute provided by the user to identify the record. If you provide a filter here, - it will be concatenated with an AND. By default, a catch-all (objectClass=*) will be used as a filter. + + OpenProjectはレコードを識別するために、ユーザーが提供するログイン属性を常にフィルタリングします。ここにフィルタを指定すると、 + ANDで連結されます。デフォルトではキャッチオール(objectClass = *)がフィルタとして使用されます。 onthefly_register: | チェックを入れると、OpenProjectは初回認証時に自動的にLDAPエントリーに新規ユーザー登録します。LDAPの既存ユーザーのみ許可する場合はチェックを外してください。 onthefly_group_sync: | - If you enable group synchronization for this LDAP connection, users will also be automatically created - in OpenProject for synchronized groups. Without it, only existing accounts in OpenProject will be added to groups. + この LDAP 接続のグループ同期を有効にすると、同期されたグループのユーザーも OpenProject に自動的に作成されます。 + これがなければ OpenProjec 内tの既存のアカウントのみがグループに追加されます。 connection_encryption: '接続の暗号化' system_account: 'システムアカウント' system_account_legend: | @@ -201,7 +202,7 @@ ja: index: open_as_gantt: 'ガントビューとして開く' open_as_gantt_title: "このボタンを使用して、このページに表示されているプロジェクトのワークパッケージをフィルタリングするガントビューを生成します。" - open_as_gantt_title_admin: "You can modify the view settings (such as selected work package types) in the administration under project settings." + open_as_gantt_title_admin: "プロジェクト設定で、表示設定 (選択した作業項目の種類など) を変更できます。" no_results_title_text: 現在、プロジェクトはありません no_results_content_text: プロジェクトを新規作成 settings: @@ -236,8 +237,8 @@ ja: no_results_content_text: ニュース項目を追加 users: groups: - member_in_these_groups: 'This user is currently a member of the following groups:' - no_results_title_text: This user is currently not a member in any group. + member_in_these_groups: 'このユーザーは現在以下のグループのメンバーです:' + no_results_title_text: このユーザーは現在どのグループのメンバーでもありません。 memberships: no_results_title_text: このユーザは現在プロジェクトのメンバーではありません。 prioritiies: @@ -279,7 +280,7 @@ ja: overview: no_results_title_text: このバージョンに割り当てられている作業項目はありません。 wiki: - page_not_editable_index: The requested page does not (yet) exist. You have been redirected to the index of all wiki pages. + page_not_editable_index: 要求されたページは (まだ) 存在しません。すべてのwikiページの索引にリダイレクトされました。 no_results_title_text: 現在、Wikiページはありません。 index: no_results_content_text: 新しいWikiページを追加 @@ -362,7 +363,7 @@ ja: attr_mail: "メール" base_dn: "ベースDN" host: "ホスト" - onthefly: "Automatic user creation" + onthefly: "ユーザーの自動作成" port: "ポート番号" changeset: repository: "リポジトリ" @@ -487,7 +488,7 @@ ja: parent_work_package: "親項目" priority: "優先度" progress: "進行状況 (%)" - schedule_manually: "Manual scheduling" + schedule_manually: "手動スケジュール" spent_hours: "作業時間の記録" spent_time: "作業時間の記録" subproject: "子プロジェクト" @@ -513,7 +514,7 @@ ja: cant_link_a_work_package_with_a_descendant: "親子関係にある作業項目間で関連設定できません。" circular_dependency: "この関係は循環依存になります。" confirmation: "は%{attribute} と一致しません。" - could_not_be_copied: "%{dependency} could not be (fully) copied." + could_not_be_copied: "%{dependency} を(完全に)コピーできませんでした。" does_not_exist: "は存在しません。" error_unauthorized: "アクセスできません。" error_readonly: "書けませんでした。" @@ -530,7 +531,7 @@ ja: invalid_url: 'は有効な URL ではありません。' invalid_url_scheme: 'はサポートされたプロトコルではありません (可能: %{allowed_schemes})。' less_than_or_equal_to: "は%{count}以下の値にしてください。" - not_current_user: "is not the current user." + not_current_user: "現在のユーザーではありません。" not_a_date: "は有効な日付ではありません。" not_a_datetime: "は有効な日時ではありません。" not_a_number: "は数値にしてください。" @@ -610,7 +611,7 @@ ja: queries/filters/base: attributes: values: - inclusion: "filter has invalid values." + inclusion: "フィルタの値が無効です" format: "%{message}" relation: typed_dag: @@ -695,7 +696,7 @@ ja: version: undeletable_work_packages_attached: "作業パッケージが添付されているため、バージョンを削除できません。" status: - readonly_default_exlusive: "can not be activated for statuses that are marked default." + readonly_default_exlusive: "デフォルトとしてマークされている状態では有効にできません。" template: body: "次のフィールドをチェックしてください:" header: @@ -750,9 +751,9 @@ ja: date: "日付" default_columns: "既定の列" description: "説明" - derived_due_date: "Derived finish date" - derived_estimated_time: "Derived estimated time" - derived_start_date: "Derived start date" + derived_due_date: "派生終了日" + derived_estimated_time: "派生予定工数" + derived_start_date: "派生開始日" display_sums: "合計を表示" due_date: "終了日" estimated_hours: "予定工数" @@ -1079,7 +1080,7 @@ ja: error_cookie_missing: 'OpenProject のcookieが見つかりません。cookieが有効であることを確認してください。そうしないとこのアプリケーションは正しく動作しません。' error_custom_option_not_found: "オプションが存在しません。" error_enterprise_activation_user_limit: "あなたのアカウントを有効にすることができませんでした(ユーザー制限に達しました)。アクセスするには管理者に連絡してください。" - error_enterprise_token_invalid_domain: "The Enterprise Edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})." + error_enterprise_token_invalid_domain: "Enterprise Edition がアクティブではありません。Enterprise トークンのドメイン (%{actual}) がシステムのホスト名(%{expected}) と一致しません。" error_failed_to_delete_entry: 'このエントリを削除できませんでした。' error_in_dependent: "依存オブジェクトを変更しようとしてエラーが発生しました: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" error_invalid_selected_value: "選択された値が無効です。" @@ -1095,7 +1096,7 @@ ja: error_no_default_work_package_status: "作業項目の既定のステータスが定義されていません。 設定をご確認してください(管理→作業項目ステータス)。" error_no_type_in_project: "このプロジェクトには関連付けている作業項目の型がありません。プロジェクトの設定をご確認してください。" error_omniauth_registration_timed_out: "外部認証プロバイダーを経由して登録がタイムアウトしました。もう一度やり直してください。" - error_omniauth_invalid_auth: "The authentication information returned from the identity provider was invalid. Please contact your administrator for further help." + error_omniauth_invalid_auth: "IDプロバイダーから返された認証情報が無効です。詳細については管理者に連絡してください" error_scm_command_failed: "「%{value}」リポジトリにアクセスしようとしてエラーが発生しました。" error_scm_not_found: "リポジトリに、エントリ/リビジョンが存在しません。" error_unable_delete_status: "一つ以上の作業項目によって使用されているため、作業項目のステータスを削除できません。" @@ -1123,8 +1124,8 @@ ja: work_package_edit: '仕事項目が編集されました。' work_package_note: '仕事項目の注記が追加されました。' export: - your_work_packages_export: "Your work packages export" - succeeded: "The export has completed successfully." + your_work_packages_export: "作業項目をエクスポート" + succeeded: "エクスポートが正常に完了しました。" format: atom: "Atom" csv: "CSV" @@ -1179,10 +1180,10 @@ ja: image_conversion: imagemagick: 'Imagemagick' journals: - changes_retracted: "The changes were retracted." + changes_retracted: "変更は取り下げられました。" links: configuration_guide: '設定ガイド' - get_in_touch: "You have questions? Get in touch with us." + get_in_touch: "ご質問がありますか?ご連絡ください。" instructions_after_registration: "%{signin}をクリックして、アカウントが有効された後にログインできます。" instructions_after_logout: "%{signin}をクリックして再びログインできます。" instructions_after_error: "%{signin} をクリックして再びログインを試行できます。エラーが解決しない場合は、管理者にお問い合わせください。" @@ -1321,7 +1322,7 @@ ja: label_delete_project: "プロジェクトを削除" label_deleted: "削除された" label_deleted_custom_field: "(削除されたカスタムフィールド)" - label_deleted_custom_option: "(deleted option)" + label_deleted_custom_option: "(削除されたオプション)" label_descending: "降順" label_details: "詳細" label_development_roadmap: "開発ロードマップ" @@ -1339,7 +1340,7 @@ ja: label_duplicate: "重複" label_duplicates: "次と重複" label_edit: "編集" - label_edit_x: "Edit: %{x}" + label_edit_x: "編集: %{x}" label_enable_multi_select: "複数選択の切り替え" label_enabled_project_custom_fields: '有効なカスタム フィールド' label_enabled_project_modules: '有効なモジュール' @@ -1760,15 +1761,15 @@ ja: mail_body_account_information: "アカウント情報" mail_body_account_information_external: "%{value} アカウントを使ってログインできます。" mail_body_lost_password: "パスワードを変更するには、以下のリンクをクリックしてください:" - mail_body_register: "Welcome to OpenProject. Please activate your account by clicking on this link:" - mail_body_register_header_title: "Project member invitation email" - mail_body_register_user: "Dear %{name}, " + mail_body_register: "OpenProjectへようこそ。このリンクをクリックしてアカウントを有効化してください:" + mail_body_register_header_title: "プロジェクトへの招待メール" + mail_body_register_user: "%{name}さん" mail_body_register_links_html: | Please feel free to browse our youtube channel (%{youtube_link}) where we provide a webinar (%{webinar_link}) and “Get started” videos (%{get_started_link}) to make your first steps in OpenProject as easy as possible.
If you have any further questions, consult our documentation (%{documentation_link}) or contact us (%{contact_us_link}). - mail_body_register_closing: "Your OpenProject team" + mail_body_register_closing: "あなたのOpenProjectチーム" mail_body_register_ending: "Stay connected! Kind regards," mail_body_reminder: "担当している%{count}件の作業項目が%{days}日内に予定日になっています:" mail_body_group_reminder: "グループ \"%{group}\" に割り当てられた%{count}件の作業項目が%{days}日内に期限が到来します:" @@ -1923,7 +1924,7 @@ ja: permission_manage_project_activities: "プロジェクト活動の管理" permission_manage_public_queries: "公開ビューの管理" permission_manage_repository: "リポジトリの管理" - permission_manage_subtasks: "Manage work package hierarchies" + permission_manage_subtasks: "作業項目階層の管理" permission_manage_versions: "バージョンの管理" permission_manage_wiki: "Wiki の管理" permission_manage_wiki_menu: "Wikiメニューの管理" @@ -1962,8 +1963,8 @@ ja: copying: > Your project is being created from the selected template project. You will be notified by mail as soon as the project is available. use_template: 'テンプレートを使用' - make_template: 'Set as template' - remove_from_templates: 'Remove from templates' + make_template: 'テンプレートとして設定' + remove_from_templates: 'テンプレートから削除' archive: are_you_sure: "プロジェクト '%{name}' をアーカイブしてもよろしいですか?" archived: "アーカイブ済み" @@ -1983,7 +1984,7 @@ ja: assigned_to_role: "担当者のロール" member_of_group: "担当者のグループ" assignee_or_group: "割り当てまたは所属するグループ" - subproject_id: "Including Subproject" + subproject_id: "サブプロジェクトを含む" only_subproject_id: "サブプロジェクトのみ" name_or_identifier: "名前または ID" repositories: @@ -2141,7 +2142,7 @@ ja: setting_emails_header: "電子メールのヘッダー" setting_email_login: "メールアドレスをログインに使用する" setting_enabled_scm: "使用するバージョン管理システム" - setting_enabled_projects_columns: "Visible in project list" + setting_enabled_projects_columns: "プロジェクトリストに表示する" setting_feeds_enabled: "フィードを有効にする" setting_feeds_limit: "フィードの項目数の上限" setting_file_max_size_displayed: "画面表示するテキストファイルの最大サイズ" @@ -2172,8 +2173,8 @@ ja: setting_per_page_options: "オプションページごとの項目数" setting_plain_text_mail: "テキストメール(HTMLなし)" setting_protocol: "プロトコル" - setting_project_gantt_query: "Project portfolio Gantt view" - setting_project_gantt_query_text: "You can modify the query that is used to display Gantt chart from the project overview page." + setting_project_gantt_query: "プロジェクトポートフォリオガントビュー" + setting_project_gantt_query_text: "プロジェクトの概要ページからガントチャートを表示するために使用するクエリを変更できます。" setting_security_badge_displayed: "セキュリティバッジを表示する" setting_registration_footer: "登録フッター" setting_repositories_automatic_managed_vendor: "自動リポジトリ ベンダー種類" @@ -2214,7 +2215,7 @@ ja: brute_force_prevention: "自動的にユーザをロック" projects: section_new_projects: "新規プロジェクトの設定" - section_project_overview: "Settings for project overview list" + section_project_overview: "プロジェクト概要リストの設定" user: default_preferences: "デフォルト設定" deletion: "削除" @@ -2545,7 +2546,7 @@ ja: mail_self_notified: "自分自身による変更の通知を希望" status_user_and_brute_force: "%{user}かつ%{brute_force}" status_change: "ステータスの変更" - text_change_disabled_for_provider_login: "The name is set by your login provider and can thus not be changed." + text_change_disabled_for_provider_login: "名前はログインプロバイダーによって設定されるため、変更できません。" unlock: "ロックを解除" unlock_and_reset_failed_logins: "ロックを解除して、失敗したログイン数をリセットする" version_status_closed: "完了" diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index efa299fc8b..6aef5d964a 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -77,7 +77,7 @@ ja: button_export-atom: "Atomをダウンロード" calendar: title: 'カレンダー' - too_many: '光景で %{count} の作業項目がありますが %{max} のみ表示されます。' + too_many: '合計 %{count} の作業項目がありますが %{max} のみ表示されます。' card: add_new: '新規カード追加' highlighting: @@ -119,11 +119,11 @@ ja: manual: 'Markdownソースに切り替える' wysiwyg: 'WYSIWYGエディタに切り替えます' macro: - error: 'Cannot expand macro: %{message}' + error: 'マクロを展開できません: %{message}' attribute_reference: - macro_help_tooltip: 'This text segment is being dynamically rendered by a macro.' - not_found: 'Requested resource could not be found' - invalid_attribute: "The selected attribute '%{name}' does not exist." + macro_help_tooltip: 'このテキストセグメントはマクロによって動的にレンダリングされています。' + not_found: '要求されたリソースが見つかりませんでした' + invalid_attribute: "選択した属性 '%{name}' は存在しません。" child_pages: button: '子ページへのリンク' include_parent: '親を含める' @@ -174,58 +174,58 @@ ja: reset_to_defaults: 'デフォルトに戻す' enterprise: trial: - confirmation: "Confirmation of email address" + confirmation: "メールアドレスの確認" confirmation_info: > - We sent you an email on %{date} to %{email}. Please check your inbox and click the confirmation link provided to start your 14 days trial. + %{date} に %{email} へメールを送信しました。 14日間のトライアルを開始するには、受信トレイを確認し、確認リンクをクリックしてください。 form: general_consent: > - I agree with the terms of service and the privacy policy. - invalid_email: "Invalid email address" - label_company: "Company" + 利用規約プライバシー ポリシーに同意します。 + invalid_email: "無効なメールアドレス" + label_company: "会社名" label_first_name: "名前" label_last_name: "苗字" label_email: "電子メールアドレス" - label_domain: "Domain" + label_domain: "ドメイン" label_subscriber: "購入者" label_maximum_users: "アクティブなユーザーの最大数" - label_starts_at: "Starts at" + label_starts_at: "開始" label_expires_at: "有効期限" - receive_newsletter: I want to receive the OpenProject newsletter. - taken_domain: There can only be one active trial per domain. - taken_email: Each user can only create one trial. - email_not_received: "You did not receive an email? You can resend the email with the link on the right." - try_another_email: "Or try it with another email address." - next_steps: "Next steps" + receive_newsletter: OpenProject ニュースレター を受け取りたい。 + taken_domain: 有効なトライアルはドメインごとに1つしかありません。 + taken_email: 各ユーザーはトライアルを1回のみ作成できます。 + email_not_received: "メールが届きませんでしたか?右側のリンクでメールを再送信できます。" + try_another_email: "または別のメールアドレスでお試しください。" + next_steps: "次のステップ" resend_link: "再送信" - resend_success: "Email has been resent. Please check your emails and click the confirmation link provided." - resend_warning: "Could not resend email." - session_timeout: "Your session timed out. Please try to reload the page or resend email." - status_label: "Status:" - status_confirmed: "confirmed" - status_waiting: "email sent - waiting for confirmation" - test_ee: "Test the Enterprise Edition 14 days for free" + resend_success: "メールが再送信されました。メールを確認し、確認リンクをクリックしてください。" + resend_warning: "メールを再送信できませんでした。" + session_timeout: "セッションがタイムアウトしました。ページを再読み込みするか、メールを再送信してください。" + status_label: "ステータス:" + status_confirmed: "確認済み" + status_waiting: "メールが送信されました - 確認待ちです" + test_ee: "エンタープライズ版を14日間無料でテストする" quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise Edition." upsale: become_hero: "ヒーローになる!" benefits: description: "メリットは何ですか?" - high_security: "Security features" - high_security_text: "Single sign on (SAML, OpenID Connect, CAS), two-factor authentication and automatic sync of LDAP groups." - installation: "Installation support" + high_security: "セキュリティ機能" + high_security_text: "シングルサインオン(SAML、OpenID Connect、CAS)、2要素認証、LDAPグループの自動同期。" + installation: "インストールサポート" installation_text: "Experienced software engineers guide you through the complete installation and setup process in your own infrastructure." - premium_features: "Premium features" + premium_features: "プレミアム機能" premium_features_text: "Agile boards, custom theme and logo, graphs, intelligent workflows with custom actions, full text search for work package attachments and multi-select custom fields." professional_support: "プロフェッショナルサポート" professional_support_text: "Get reliable, high-touch support from senior support engineers with expert knowledge about running OpenProject in business-critical environments." - button_start_trial: "Start free trial" - button_book_now: "Book now" + button_start_trial: "無料トライアルを開始" + button_book_now: "今すぐ予約" confidence: > - We deliver the confidence of a tested and supported enterprise-class project management software - with Open Source and an open mind. - link_quote: "Get a quote" + テストおよびサポートされているエンタープライズクラスのプロジェクト管理ソフトウェアの信頼性を提供します。オープンソースとオープンマインドとともに。 + link_quote: "見積もりの入手" text: > - The OpenProject Enterprise Edition builds on top of the Community Edition. It includes premium features and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject. - unlimited: "Unlimited" - you_contribute: "Developers need to pay their bills, too. With the Enterprise Edition, you substantially contribute to this Open Source community effort." + OpenProject Enterprise Edition は、Community Edition の上に構築されます。 OpenProjectでビジネスクリティカルなプロジェクトを管理する10人以上のユーザーを抱える組織を中心としたプレミアム機能とプロフェッショナルサポートが含まれています。 + unlimited: "無制限" + you_contribute: "開発者も請求書を支払う必要があります。Enterprise Edition では、このオープンソースコミュニティの取り組みに実質的に貢献します。" custom_actions: date: specific: 'オン' @@ -289,7 +289,7 @@ ja: label_add_row_before: "前に行を追加" label_add_selected_columns: "選択した列を追加" label_added_by: "追加した人" - label_added_time_by: "Added by %{author} at %{age}" + label_added_time_by: "%{author} によって %{age}に追加されました" label_ago: "○日前" label_all: "全て" label_all_work_packages: "全ての作業項目" @@ -330,7 +330,7 @@ ja: label_expand_all: "全てを展開" label_expand_project_menu: "プロジェクトメニューを展開" label_export: "外部出力" - label_export_preparing: "The export is being prepared and will be downloaded shortly." + label_export_preparing: "エクスポートは準備中です。まもなくダウンロードされます。" label_filename: "ファイル" label_filesize: "サイズ" label_general: "概要" @@ -364,7 +364,7 @@ ja: label_next: "次へ" label_no_color: "色なし" label_no_data: "表示できるデータがありません。" - label_no_due_date: "no finish date" + label_no_due_date: "終了日なし" label_no_start_date: "開始日なし" label_no_value: "値なし" label_none: "なし" @@ -406,7 +406,7 @@ ja: label_sum_for: "合計" label_subject: "題名" label_this_week: "今週" - label_today: "Today" + label_today: "今日" label_time_entry_plural: "作業時間の記録" label_up: "アップ" label_user_plural: "ユーザ" @@ -416,10 +416,10 @@ ja: label_total_amount: "合計: %{amount}" label_updated_on: "更新日時" label_value_derived_from_children: "(子から派生した値)" - label_children_derived_duration: "Work package's children derived duration" + label_children_derived_duration: "子作業項目のの派生期間" label_warning: "注意" label_work_package: "ワーク パッケージ" - label_work_package_parent: "Parent work package" + label_work_package_parent: "親の作業項目" label_work_package_plural: "作業項目" label_watch: "ウォッチする" label_watch_work_package: "作業項目をウォッチ" @@ -506,7 +506,7 @@ ja: context: 'プロジェクトのコンテキスト' work_package_belongs_to: 'このワークパッケージは、プロジェクト %{projectname} に属しています。' click_to_switch_context: 'このワークパッケージをそのプロジェクトで開きます。' - confirm_template_load: 'Switching the template will reload the page and you will lose all input to this form. Continue?' + confirm_template_load: 'テンプレートを切り替えるとページが再読み込みされ、すべての入力が失われます。続行しますか?' autocompleter: label: 'プロジェクト名の入力補完' text_are_you_sure: "よろしいですか?" @@ -530,7 +530,7 @@ ja: time_entry: project: 'プロジェクト' work_package: 'ワーク パッケージ' - work_package_required: 'Requires selecting a work package first.' + work_package_required: '最初に作業項目を選択する必要があります。' activity: '活動' comment: 'コメント' duration: '期間' @@ -598,8 +598,8 @@ ja: field_value_enter_prompt: "'%{field}'の値を入力" project_menu_details: "詳細" scheduling: - manual: 'Manual scheduling' - automatic: 'Automatic scheduling' + manual: '手動スケジュール' + automatic: '自動スケジュール' sort: sorted_asc: '昇順の並べ替えを適用しました。 ' sorted_dsc: '降順の並べ替えを適用しました。 ' @@ -812,8 +812,8 @@ ja: duplicate_query_title: "このビューの名前は既に存在します。 とにかく変更しますか?" text_no_results: "一致するビューは見つかりませんでした。" scheduling: - is_parent: "The dates of this work package are automatically deduced from its children. Activate 'Manual scheduling' to set the dates." - is_switched_from_manual_to_automatic: "The dates of this work package may need to be recalculated after switching from manual to automatic scheduling due to relationships with other work packages." + is_parent: "この作業項目の日付は、その子から自動的に推定されます。日付を設定するには、「手動スケジューリング」を有効にします。" + is_switched_from_manual_to_automatic: "他の作業項目との関連により、手動スケジューリングから自動スケジューリングに切り替えた後に、このワークパッケージの日付を再計算する必要がある場合があります。" table: configure_button: 'ワークパッケージテーブルを設定する' summary: "作業項目の行と、作業項目の属性の列から成る表。" @@ -847,13 +847,13 @@ ja: automatic: '自動' manually: '手動' warning: '自動並び替えモードをアクティブにすると、以前のソートが失われます。' - columns_help_text: "Use the input above to add columns to your table view. You can drag and drop the columns to reorder them." + columns_help_text: "上記の入力を使用して、テーブルビューに列を追加します。列をドラッグアンドドロップして並べ替えることができます。" upsale: attribute_highlighting: '全体から目立つように特定の作業項目が必要ですか?' relation_columns: 'ワークパッケージリストに関係を表示する必要がありますか?' check_out_link: 'エンタープライズ版をチェックしてください。' relation_filters: - filter_work_packages_by_relation_type: 'Filter work packages by relation type' + filter_work_packages_by_relation_type: '関係タイプで作業項目をフィルタ' tabs: overview: 概要 activity: 活動 @@ -903,8 +903,8 @@ ja: confirm_deletion_children: "列挙された作業項目のすべての子孫が再帰的に削除されることを承認します。" deletes_children: "すべての子作業項目とその子孫も再帰的に削除されます。" destroy_time_entry: - title: "Confirm deletion of time entry" - text: "Are you sure you want to delete the following time entry?" + title: "タイムエントリの削除を確認" + text: "次のタイムエントリを削除してもよろしいですか?" notice_no_results_to_display: "表示結果はありません。" notice_successful_create: "正常に作成しました。" notice_successful_delete: "正常に削除しました。" diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml index c9e150fe10..e226644fed 100644 --- a/config/locales/crowdin/js-no.yml +++ b/config/locales/crowdin/js-no.yml @@ -297,9 +297,9 @@ label_author: "Author: %{user}" label_avatar: "Profilbilde" label_between: "mellom" - label_board: "Board" + label_board: "Tavle" label_board_locked: "Låst" - label_board_plural: "Boards" + label_board_plural: "Tavler" label_board_sticky: "Sticky" label_create: "Opprett" label_create_work_package: "Opprett ny arbeidspakke" @@ -320,7 +320,7 @@ label_committed_at: "%{committed_revision_link} at %{date}" label_committed_link: "committed revision %{revision_identifier}" label_contains: "inneholder" - label_created_on: "created on" + label_created_on: "Opprettet" label_edit_comment: "Edit this comment" label_edit_status: "Edit the status of the work package" label_equals: "er" @@ -347,7 +347,7 @@ label_incoming_emails: "Inkommende e-post" label_information_plural: "Informasjon" label_import: "Importer" - label_latest_activity: "Latest activity" + label_latest_activity: "Siste aktivitet" label_last_updated_on: "Sist oppdatert" label_learn_more_link: "Mer informasjon" label_less_or_equal: "<=" @@ -398,7 +398,7 @@ label_sort_lower: "Flytt ned" label_sorting: "Sortering" label_spent_time: "Tid brukt" - label_star_query: "Favored" + label_star_query: "Favorittisert" label_press_enter_to_save: "Press enter to save." label_public_query: "Offentlig" label_sum: "Sum" @@ -428,9 +428,9 @@ label_unwatch: "Stopp overvåking" label_unwatch_work_package: "Stopp overvåking av arbeidspakke" label_uploaded_by: "Opplastet av" - label_default_queries: "Default views" - label_starred_queries: "Favorite views" - label_global_queries: "Public views" + label_default_queries: "Standardvisninger" + label_starred_queries: "Favorittvisninger" + label_global_queries: "Offentlige visninger" label_custom_queries: "Private views" label_columns: "Kolonner" label_attachments: Filer @@ -769,11 +769,11 @@ versionName: "Versjon" version: "Versjon" default_queries: - latest_activity: "Latest activity" - created_by_me: "Created by me" - assigned_to_me: "Assigned to me" - recently_created: "Recently created" - all_open: "All open" + latest_activity: "Siste aktivitet" + created_by_me: "Opprettet av meg" + assigned_to_me: "Tildelt meg" + recently_created: "Nylig opprettet" + all_open: "Alle åpne" summary: "Sammendrag" jump_marks: pagination: "Jump to table pagination" @@ -800,7 +800,7 @@ confirm_edit_cancel: "Are you sure you want to cancel editing the name of this view? Title will be set back to previous value." click_to_edit_query_name: "Click to edit title of this view." rename_query_placeholder: "Name of this view" - star_text: "Mark this view as favorite and add to the saved views sidebar on the left." + star_text: "Marker denne visningen som favoritt og legg til i visnings meny på venstre side." public_text: > Publish this view, allowing other users to access your view. Users with the 'Manage public views' permission can modify or remove public query. This does not affect the visibility of work package results in that view and depending on their permissions, users may see different results. errors: diff --git a/config/locales/crowdin/js-sl.yml b/config/locales/crowdin/js-sl.yml index 2e21317c33..a84ee0e908 100644 --- a/config/locales/crowdin/js-sl.yml +++ b/config/locales/crowdin/js-sl.yml @@ -272,11 +272,11 @@ sl: standard: learn_about_link: https://www.openproject.org/openproject-11-1-release current_new_feature_html: > - The release contains various new features and improvements:
+ Verzija vsebuje veliko novih funkcij in izboljšav:br> bim: learn_about_link: https://www.openproject.org/openproject-11-0-release current_new_feature_html: > - The release contains various new features and improvements:
+ Verzija vsebuje veliko novih funkcij in izboljšav:br> label_activate: "Aktiviraj" label_add_column_after: "Dodaj stolpec za" label_add_column_before: "Dodaj stolpec pred" @@ -332,7 +332,7 @@ sl: label_filename: "Datoteka" label_filesize: "Velikost" label_general: "Splošno" - label_global_roles: "Globalna pravila" + label_global_roles: "Globalne vloge" label_greater_or_equal: ">=" label_group: 'Skupina' label_group_by: "Razvrsti po" diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index 17ad207995..2a61759eb5 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -598,7 +598,7 @@ project: error_not_found: "not found" public: - error_unauthorized: "- The user has no permission to create public views." + error_unauthorized: "- Brukeren har ikke tillatelse til å opprette offentlige visninger." group_by: invalid: "Kan ikke gruppere av: %{value}" format: "%{message}" @@ -1240,7 +1240,7 @@ label_all: "alle" label_all_time: "alle tidspunkt" label_all_words: "Alle ord" - label_all_open_wps: "All open" + label_all_open_wps: "Alle åpne" label_always_visible: "Vises alltid" label_announcement: "Kunngjøring" label_api_access_key: "API adgangsnøkkel" @@ -1947,7 +1947,7 @@ permission_manage_members: "Administrere medlemmer" permission_manage_news: "Administrere nyheter" permission_manage_project_activities: "Administrere prosjektaktiviteter" - permission_manage_public_queries: "Manage public views" + permission_manage_public_queries: "Administrer offentlige visninger" permission_manage_repository: "Administrere pakkebrønner" permission_manage_subtasks: "Manage work package hierarchies" permission_manage_versions: "Administrere versjoner" diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 06a1525e5a..a901c03654 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -37,12 +37,12 @@ sl: primary-color-dark: "Primarna (temna)" header-bg-color: "Ozadje glave" header-item-bg-hover-color: "Ozadje glave, ko smo z miško na vsebini" - header-item-font-color: "Font glave" + header-item-font-color: "Pisava glave" header-item-font-hover-color: "pisava glave, ko smo z miško na vsebini" header-border-bottom-color: "Rob glave" main-menu-bg-color: "Ozadje glavnega menija" - main-menu-bg-selected-background: "Glavni meni, ko se izbere" - main-menu-bg-hover-background: "Glavni meni ob nastavitvi kazalca" + main-menu-bg-selected-background: "Glavni meni, ko je izbran" + main-menu-bg-hover-background: "Glavni meni, ko smo z miško na vsebini" main-menu-font-color: "Pisava glavnega menija" main-menu-selected-font-color: "Pisava glavnega menija, ko je izbrana" main-menu-hover-font-color: "Pisava glavnega menija, ko z miško lebdimo nad vsebino" @@ -57,11 +57,11 @@ sl: primary-color: "Glavna barva." primary-color-dark: "Običajno temnejša različica glavne barve, ki se uporablja za učinke lebdenja." header-item-bg-hover-color: "Barva ozadja enot v glavi katere je mogoče klikniti, ko se z miško premaknete na njih." - header-item-font-color: "Barva pisave klikajočih enot v glavi." - header-item-font-hover-color: "Barva pisave klikajočih elementov v glavi, ko se z miško premaknemo na njih." + header-item-font-color: "Barva pisave enot v glavi, na katere lahko kliknemo." + header-item-font-hover-color: "Barva pisave elementov v glavi, na katere lahko kliknemo, ko se z miško premaknemo na njih." header-border-bottom-color: "Tanka črta pod glavo. Pustite to polje prazno, če ne želite črte." main-menu-bg-color: "Barva ozadja levega menija." - theme_warning: "Sprememba teme bo nadomestilo vaš slog po meri. Oblikovanje bo tkao izgubljeno. Ali ste prepričani, da bi radi nadaljevali?\n" + theme_warning: "Sprememba teme bo nadomestilo vaš slog po meri. Oblikovanje bo tako izgubljeno. Ali ste prepričani, da bi radi nadaljevali?\n" enterprise: upgrade_to_ee: "Nadgradite v Enterprise Edition" add_token: "Naloži Enterprise Edition podporni žeton" @@ -79,7 +79,7 @@ sl: is_inactive: trenutno ni prikazano attribute_help_texts: note_public: 'Any text and images you add to this field is publically visible to all logged in users!' - text_overview: 'V tem pogledu lahko ustvarite besedila pomoči po meri za pogled atributov. Ko je definirano, lahko ta besedila prikažemo s klikom ikone pomoči poleg pripadajočega atributa.' + text_overview: 'V tem pogledu lahko ustvarite besedila pomoči po meri za pogled atributov. Ob definiciji lahko ta besedila prikažemo s klikom ikone pomoči poleg pripadajočega atributa.' label_plural: 'Tekst pomoči atributa' show_preview: 'Predogled besedila' add_new: 'Dodajte besedilo pomoči' @@ -536,7 +536,7 @@ sl: invalid_url: 'ni veljaven URL. ' invalid_url_scheme: 'ni podprt protokol (dovoljeno:%{allowed_schemes}).' less_than_or_equal_to: "mora biti manjše ali enako %{count}. " - not_current_user: "is not the current user." + not_current_user: "ni trenutni uporabnik" not_a_date: "ni veljaven datum" not_a_datetime: "ni veljaven datum." not_a_number: "ni število." @@ -1791,7 +1791,7 @@ sl: label_yesterday: "včeraj" label_role_type: "Vrsta" label_member_role: "Projektne vloge" - label_global_role: "Globalne vloge" + label_global_role: "Globalna vloga" label_not_changeable: "(ne spremenljivo)" label_global: "Globalno" auth_source: diff --git a/docs/development/report-a-bug/README.md b/docs/development/report-a-bug/README.md index c541d671f6..03ccab82c4 100644 --- a/docs/development/report-a-bug/README.md +++ b/docs/development/report-a-bug/README.md @@ -9,13 +9,13 @@ keywords: bug report, bug, error, not working If you find a bug please create a bug report. -1. Login to or register at the [OpenProject community platform](https://community.openproject.com/login). It's fast and free. +1. Login to or register at the [OpenProject community platform](https://community.openproject.org/login). It's fast and free. 2. Look for an existing bug report using the search bar in the header navigation on top. If there's one, please leave a comment or add additional information. Otherwise: -3. Open the [bug form](https://community.openproject.com/projects/openproject/work_packages/new?type=1). +3. Open the [bug form](https://community.openproject.org/projects/openproject/work_packages/new?type=1). 4. Add a precise subject. -5. Add a detailed description. +5. Add a detailed description using the template. 6. Attach a file (optional). -7. Press Create. +7. Press **Create**. # Information you should add to the bug description diff --git a/docs/development/submit-feature-idea/README.md b/docs/development/submit-feature-idea/README.md index 049efe725f..89f1bb13ad 100644 --- a/docs/development/submit-feature-idea/README.md +++ b/docs/development/submit-feature-idea/README.md @@ -9,13 +9,13 @@ keywords: feature requests, ideas, open feature request ## How to submit a feature idea? -1. Login to or register at the [OpenProject community platform](https://community.openproject.com/login). It's fast and free. +1. Login to or register at the [OpenProject community platform](https://community.openproject.org/login). It's fast and free. 2. Use the search bar in the header navigation on top to look for similar feature requests. If there's one, please leave a comment or add additional information. Otherwise: -3. Open the [feature create form](https://community.openproject.com/projects/openproject/work_packages/create_new?type=6). -4. Add a subject and detailed description. +3. Open the [feature create form](https://community.openproject.org/projects/openproject/work_packages/new?type=6). +4. Add a subject and detailed description using the template. 5. Attach a file (optional). 6. Set version to "Wish List". -7. Press Create. +7. Press **Create**. ## Feature idea guideline diff --git a/docs/system-admin-guide/users-permissions/users/README.md b/docs/system-admin-guide/users-permissions/users/README.md index d59fd0197a..aa6bdf8f38 100644 --- a/docs/system-admin-guide/users-permissions/users/README.md +++ b/docs/system-admin-guide/users-permissions/users/README.md @@ -7,150 +7,178 @@ robots: index, follow keywords: manage users, lock, unlock, invite, language --- -# Manage Users +# Manage users -The users list provides an overview of all users in OpenProject. You can create new users, make changes to existing user accounts, block or delete users from the system. The number of users for your subscription is thus not bound to names. For example, if you block a user you can add a new one without upgrading. +The users list provides an overview of all users in OpenProject. You can create new users, make changes to existing user accounts, block or delete users from the system. The number of users for your subscription is thus not bound to names. For example, if you block a user you can add a new one without upgrading. To manage users click on your avatar (top right corner) and select *Administration*. Select *Users and Permissions -> Users*. The list of current users is shown.
-**User** is defined as a person (described by an identifier) who uses OpenProject. New users can be created in the admin settings. Users can become project members by assigning them a role and adding them via the project settings. +**User** is defined as a person (described by an identifier) who uses OpenProject. Users can become project members by assigning them a role and adding them via the project settings.
+In the Community Edition there is no limit to the number of users. In Enterprise editions (cloud and on-premises) the user limit is based on your subscription. | Topic | Content | | ----------------------------------------------- | ------------------------------------------------------------ | | [User list](#user-list) | Manage all users in OpenProject. | -| [Lock and unlock users](#lock-and-unlock-users) | Block a user permanently in the system or unlock a user. | | [Filter users](#filter-users) | Filter users in the list. | -| [Invite new users](#invite-new-users) | Add new users to your OpenProject and invite them via email. Resend and delete user invitations. | -| [Manage user settings](#manage-user-settings) | Manage user settings, e.g. language, projects, groups, global roles, rate history, avatar, two-factor authentication. | +| [Lock and unlock users](#lock-and-unlock-users) | Block a user permanently in the system or unlock a user. | +| [Create users](#create-users) | Create new users. | +| [Manage user settings](#manage-user-settings) | Manage user details. | +| [Authentication](#authentication) | Set and use authentication methods. | | [Delete users](#delete-users) | Delete a user from the system. | ## User list -You will see the list of all users in your OpenProject with detailed information, such as user name, first name, last name, e-mail address. +The User List is where users are managed. They can be added, edited or deleted from this list, which can be filtered if required. + +![user list](image-20200211141841492.png) -You will also see if a user is an Administrator in the system. +Column headers can be clicked to toggle sort direction. Arrows indicate sort order, up for ascending (a-z/0-9) and down for descending (z-a/9-0). Paging controls are shown at the bottom of the list. You will also see whether a user is a system administrator in OpenProject. -Also, you get the information when the user has been created, and when the user had his last login. +## Filter users -![user list](image-20200211141841492.png) +At the top of the user list is a filter box. Filter by Status or Name, then click the blue **Apply** button to filter the list. Click the **Clear** button to reset the filter fields and refresh the list. + +* **Status** - select from Active, All or Locked Temporarily. Each selection shows the number of users. +* **Name** - enter any text; this can contain a "%" wild card for 0 or more characters. The filter applies to username, first name, last name and email address. + +![filter users](image-20200115155456033.png) ## Lock and unlock users -If you want to **block users permanently** in the system, you can click the **Lock permanently** link next to a user. +Handling locked users is also done from the list. To disable a user's access click the **Lock permanently** link next to a user. Use the **Unlock** link to restore the user's access. -If you are using [Enterprise cloud](../../../cloud-edition-guide) or [Enterprise on-premises](../../../enterprise-edition-guide) you will then have a new user available to add to the system within your booked plan. +If you are using [Enterprise cloud](../../../cloud-edition-guide) or [Enterprise on-premises](../../../enterprise-edition-guide) locking a user will make a new user available to add to the system within your booked plan. ![System-admin-guide_lock-users](System-admin-guide_lock-users.png) -The way to unlock users is basically the same. Use the **Unlock** link at the right. -Here you can also **unlock users who have been locked temporarily due to multiple failed login attempts**. +If a user has repeated failed logins the user will be locked and a "Reset failed logins" link is shown in the user list. Click the link to unlock it now, or wait and it will be unlocked automatically. See [Other authentication settings](../../authentication/authentication-settings/#other-authentication-settings) for failed attempts and time blocked. -## Filter users +## Create users -Especiall if you have a very long user list, it is essential to filter in this list. +New users can be created and configured by an administrator, a single user or multiple users. A person can create their own user from the home page by clicking on the "Sign in" button (top right), then on the "Create a new account" link in the sign in box. -At the top of the list, you can choose to filter for all, altive, or locked users. -You can then search for the name or email of a user. Click the blue **Apply** button to filter the list. +### Create user (Sign in link) -![filter users](image-20200115155456033.png) +Click the "Create a new account" link in the sign in box. In the "Create a new account" window, enter values in all fields (they cannot be left blank). The Email field must be a valid email address that is not used in this system. Click the **Create** button. Your account is created but must be activated by the administrator. -## Invite new users +### Create user (Administration) -To invite new users to your system, click the green **+ User** button at the top right. +From the user list, click the "+User" button to open the "New user" form. -![Sys-admin-add-users](Sys-admin-add-users.png) +![new user](image-20200115155855409.png) -Enter the Email address, first name, and last name of the new user. Check whether the new user should get system administration rights. +Enter the Email address, First name, and Last name of the new user. Tick the box to make them an administrator user. -Click the blue **Create** button in order to invite the new user via email. +Note: the Email field must be a valid format and be unique or it will be rejected on clicking the button. -![new user](image-20200115155855409.png) +Click the **Create** button to add the user and show that users details page. Click the **Create and continue** button to add the user and stay on the new user form to add another user. When adding the last of multiple users you can click on **Create** or click the **Users** link. The users list is shown. Click each user in turn to edit their details. -The **Create and continue** button will bring you to the form to add another new user. +### Set initial details -### Resend user invitation via email +You can edit the details of a newly created user. Useful fields might be **Username**, **Language** and **Time zone**. You might also fill **Projects**, **Groups** and **Rates**, or leave these to the "Project creator". -If a user did not receive the email invitation, you can send the invitation to the user again if needed. In the user list, click on the user name to whom you want to resend the email with the invitation link to the system. +Also consider the **[authentication](#authentication) settings**. See [Manage user settings](#manage-user-settings) for full details. -In the top right, click the **Send invitation** button in order to send the email once again. +### Activate users -![Sys-admin-resend-invitation](Sys-admin-resend-invitation.png) +Open the user list. If a user has created their own account it is shown in the list with an "Activate" link on the right. Click this link and continue to add details to this user as above. There is also an "Activate" button at the top of the user details page. + +## Manage user settings + +You can manage individual user details if you click on the user name in the list. These settings will overwrite the individual user's settings set in their My Account settings. + +### General settings -### Delete user invitations -To invalidate or revoke a user's invitation click on the user name and then on **Delete** in the upper right corner. This will prevent the invited user from logging in. -Please note: This only works for users who haven't logged in yet. If the user is already active this will delete his/her whole profile and account. Deleting users can't be easily revoked. +On the General tab the following fields are shown: -## View user profile +* **Status** - this is set by the system. +* **Username** - this defaults to the email address for a new user (unless the user used the self registration). It can be changed on this page. Users cannot change their own username. +* **First name**, **Last name**, **Email** - these fields are filled from the new user page. Users can change them on their Profile page; they are mandatory. +* **Language** - this defaults from the [user settings](../settings/#default-preferences). Users can change this on their Profile page. +* **Administrator** - Activate or deactivate this global role. Users cannot change this. +* **Custom Fields** - if these have been created they are shown here. +* **User consent** - if this has been [configured](../settings/#user-consent) the consent status is shown here. +* **Authentication** - the content of this section depends on the type of [authentication method](#authentication) being used. +* **Email notifications** - this defaults from the [Email notification settings](../../email/#email-notifications-settings). Users can change this on their Profile page. +* **Preferences** - users can change these on their Profile page. Time zone defaults from chosen language. -If you want to see the user profile, click on the user name in the user list to display the activities across all projects from a certain user. Click the **Profile** button on the top right of a user. +Do not forget to **Save** your changes. -![Sys-admin-profile](Sys-admin-profile.png) +![Sys-admin-user-settings](Sys-admin-user-settings.png) +### Add users to a project +In order to see and work in a project, a user has to be a member of a project and needs to be added with a certain role to this project. -You will see all the Activities across all projects from this user, as well as the amount of reported work packages in the system. +On the **Projects** tab, select the new project from the drop-down list, choose the **roles** for this project and click the blue **Add** button. -![user profile](image-20200115162109669.png) +![Sys-admin-add-project](Sys-admin-add-project.gif) -## Manage user settings +### Add users to groups -### General settings +On the **Groups** tab you can see the groups the user belongs to. If a group is shown, click a group name link. If no groups are shown, click the **Manage groups** link to [edit groups](../groups). -You can manage individual user settings if you click on the user name in the list. The settings will overwrite the individual user settings set in the [My Account settings](../../../getting-started/my-account/). +![add users to a group](image-20200115165406439.png) -(1) Change username, first name, last name, email address or language. Activate or deactivate **Administrator** permission. +### Global roles -(2) See user based custom fields. +In order to add a global role to a user, at least [one global role needs to be created](../roles-permissions) in the system (a role with the "Global role" field ticked). -(3) Display last given [user consent](../settings/#user-consent). +On the **Global roles** tab, select or de-select the global role(s) for this user. Click the **Add** button. -(4) Display **authentication provider**. +### Rate history -(5) Change e-mail **notification** settings. +The rate history shows the hourly rates that have been defined for the user. The "Default rate" is applied to projects with no rate defined. All projects that the user is a member of are listed with the user's rates. -(6) Set **preferences** for time zone and display of comments. +### Avatar -(7) Do not forget to **Save** your changes. +The **Avatar** tab shows the default icon to be shown for this user. A custom image can be uploaded as the avatar. In addition, the users can also use their [Gravatar](https://en.wikipedia.org/wiki/Gravatar). The user can manage this in their Profile. These features can be disabled in the [avatar settings](../avatars). -![Sys-admin-user-settings](Sys-admin-user-settings.png) +## Authentication -### Add users to a project +The available authentication methods affect the content of the Authentication section in the user details. See [authentication settings](../../authentication/authentication-settings/) for details. -In order to see and work in a project, a user has to be a member of a project and needs to be added with a certain role to this project. +Use the **self-registration** field to give the following controls over a new user's access. -On the **Projects** tab, select the new project from the drop-down list, choose a **role** for this project and click the blue **Add** button. +### Manual account activation -![Sys-admin-add-project](Sys-admin-add-project.gif) +The user details Authentication section has fields **Assign random password**, **Password**, **Confirmation** and **Enforce password change**. -### Add users to groups +* If you are near the new user, you can enter a password and confirmation then tell the user what it is. They can then sign in. It is recommended that you also tick the enforce password change tickbox, so that the user is prompted to change their password after they sign in. +* You can phone the new user or send them an email, not using OpenProject, to give them the password. In this case it is more important to tick the enforce password change tickbox. +* Tick the Assign random password, and probably the enforce password change tickbox. When the details are saved OpenProject will send an email to the new user with their password. -In order to add a user to a group, at least [one group needs to be created](../groups) in the system. +### Account activation by email -Select or de-select the groups a user should be a member of. Click the blue **Save** button. +Leave all fields blank. When the details are saved OpenProject will send an email to the new user with a link inviting the user to OpenProject. They click the link to get the registration page to complete creating their account. -![add users to a group](image-20200115165406439.png) +### Resend user invitation via email +If a user did not receive the email invitation, you can send the invitation to the user again if needed. In the user list, click on the user name to whom you want to resend the email with the invitation link to the system. +In the top right, click the **Send invitation** button in order to send the email once again. -## Delete users +![Sys-admin-resend-invitation](Sys-admin-resend-invitation.png) -In order to delete users from the system, open the [user list](#user-list). +## Delete users -Click on the **user name** of the user which you want to delete. +Two [settings](../settings/#user-deletion/) allow users to be deleted from the system: +* **User accounts deletable by admins** - if ticked, a "Delete" button is shown on the user details page. +* **Users allowed to delete their accounts** - if ticked, a "Delete account" menu entry is shown in the "My Account" page. -To delete a user permanently from the system, press the **Delete** button at the top right. +To delete another user's account open the [user list](#user-list). Click on the **user name** of the user which you want to delete. Click the **Delete** button at the top right. ![Sys-admin-delete-user](Sys-admin-delete-user.png) -You will then be asked to type in the user's email address in order to delete the user permanently from the system. +You will then be asked to type in the username in order to delete the user permanently from the system, then confirm this with your password. ![delete user](image-20200115162533470.png) diff --git a/lib/api/helpers/attachment_renderer.rb b/lib/api/helpers/attachment_renderer.rb index 1e1f9cc612..81d8dd706c 100644 --- a/lib/api/helpers/attachment_renderer.rb +++ b/lib/api/helpers/attachment_renderer.rb @@ -43,9 +43,7 @@ module API get do attachment = instance_exec(&block) - # Cache that value at max 604799 seconds, which is the max - # allowed expiry time for AWS generated links - respond_with_attachment attachment, cache_seconds: max_aws_cache_seconds + respond_with_attachment attachment, cache_seconds: fog_cache_seconds end } end @@ -100,8 +98,11 @@ module API end end - def max_aws_cache_seconds - 604799 + def fog_cache_seconds + [ + 0, + OpenProject::Configuration.fog_download_url_expires_in.to_i - 10 + ].max end def avatar_link_expires_in diff --git a/lib/open_project/version.rb b/lib/open_project/version.rb index 01aea555e0..3bd6fd8848 100644 --- a/lib/open_project/version.rb +++ b/lib/open_project/version.rb @@ -34,7 +34,7 @@ module OpenProject module VERSION #:nodoc: MAJOR = 11 MINOR = 1 - PATCH = 3 + PATCH = 4 TINY = PATCH # Redmine compat class << self diff --git a/modules/backlogs/config/locales/crowdin/sl.yml b/modules/backlogs/config/locales/crowdin/sl.yml index 4ff2082441..a324899ec5 100644 --- a/modules/backlogs/config/locales/crowdin/sl.yml +++ b/modules/backlogs/config/locales/crowdin/sl.yml @@ -27,14 +27,14 @@ sl: remaining_hours: "Preostale ure" remaining_time: "Preostale ure" story_points: "Točke v zgodbi" - backlogs_work_package_type: "Backlog tip" + backlogs_work_package_type: "Tip opravila na čakanju" errors: models: work_package: attributes: blocks_ids: - can_only_contain_work_packages_of_current_sprint: "izberete lahko samo opravila iz trenutnega sprinta" - must_block_at_least_one_work_package: "vsebovati mora ID vsaj enega opravila" + can_only_contain_work_packages_of_current_sprint: "izberete lahko samo delovne pakete iz trenutnega teka" + must_block_at_least_one_work_package: "vsebovati mora ID vsaj enega zahtevka" parent_id: parent_child_relationship_across_projects: "je neveljaven, ker je delovni paket '%{work_package_name}' opravilo zaostankov in zato ne more imeti nadrejenega zunaj trenutnega projekta." type_must_be_one_of_the_following: "Dovoljeni tipi so sledeči: %{type_names}" @@ -44,22 +44,22 @@ sl: cannot_end_before_it_starts: "Tek se ne mora končati preden se začne" backlogs: add_new_story: "Nova zgodba" - any: "katerkoli" - backlog_settings: "Backlog nastavitve" + any: "katerikoli" + backlog_settings: "Nastavitve opravil na čakanju" burndown_graph: "Graf burndown" - card_paper_size: "Velikost papirja za tiskanje" + card_paper_size: "Velikost papirja za tiskanje kartic" chart_options: "Možnosti grafikona" close: "Zapri" column_width: "Širina stolpca" date: "Dan" - definition_of_done: "Definicija izrazov" + definition_of_done: "Opredelitev opravljenega" generating_chart: "Generiranje grafa" hours: "Ure" impediment: "Ovira" - label_versions_default_fold_state: "Prikazne različice so zložene." - work_package_is_closed: "Opravilo je končano ko" + label_versions_default_fold_state: "Pokaži različice zložene" + work_package_is_closed: "Delovni paket je končan, ko" label_is_done_status: "Status %{status_name} pomeni zaključeno" - no_burndown_data: "Podatkov o zagonu ni na voljo. Potrebno je določiti začetne in končne datume sprinta." + no_burndown_data: "Podatkov o zagonu ni na voljo. Potrebno je določiti začetne in končne datume teka." points: "Točke" positions_could_not_be_rebuilt: "Položajev ni bilo mogoče obnoviti" positions_rebuilt_successfully: "Položaj je uspešno spremenjen!" @@ -77,18 +77,18 @@ sl: unassigned: "Nedodeljeno" x_more: "%{count} več..." backlogs_active: "aktiven" - backlogs_any: "katerkoli" + backlogs_any: "katerikoli" backlogs_card_specification: "Vrste nalepk za tiskanje kartic" backlogs_inactive: "Na projektu ni aktivnosti" backlogs_points_burn_direction: "Točke gorijo gor/dol" backlogs_product_backlog: "Priotiziran seznam vseh funkcij ter funkcionalnosti, ki so potrebne, da se projekt zaključi." - backlogs_product_backlog_is_empty: "Priotiziran seznam vseh funkcij ter funkcionalnosti, ki so potrebne, da se projekt zaključi je prazen" + backlogs_product_backlog_is_empty: "Priotiziran seznam vseh funkcij ter funkcionalnosti, ki so potrebne, da se projekt zaključi, je prazen" backlogs_product_backlog_unsized: "Vrh priotiziranega seznama vseh funkcij ter funkcionalnosti, ki so potrebne, da se projekt zaključi ima nerazširjene zgodbe" backlogs_sizing_inconsistent: "Velikosti zgodb se razlikujejo glede na njihove ocene" - backlogs_sprint_notes_missing: "Zaprti šprinti brez retrospektivnih / preglednih opomb\n" - backlogs_sprint_unestimated: "Zaprti ali aktivni šprinti z neocenjenimi zgodbami" - backlogs_sprint_unsized: "Projekt ima zgodbe o aktivnih ali nedavno zaprtih šprintih, ki niso bili zajeti" - backlogs_sprints: "Tek" + backlogs_sprint_notes_missing: "Zaprti teki brez retrospektivnih / preglednih opomb\n" + backlogs_sprint_unestimated: "Zaprti ali aktivni teki z neocenjenimi zgodbami" + backlogs_sprint_unsized: "Projekt ima zgodbe o aktivnih ali nedavno zaprtih tekih, ki niso bili zajeti" + backlogs_sprints: "Teki" backlogs_story: "Zgodba" backlogs_story_type: "Vrsta zgodbe" backlogs_task: "Opravilo" diff --git a/modules/bim/config/locales/crowdin/ja.yml b/modules/bim/config/locales/crowdin/ja.yml index a7a90275b1..78cd1acfe1 100644 --- a/modules/bim/config/locales/crowdin/ja.yml +++ b/modules/bim/config/locales/crowdin/ja.yml @@ -22,7 +22,7 @@ ja: export: '外部出力' import_update_comment: '(BCF インポートで更新済)' import_failed: 'BCF ファイルをインポートできません: %{error}' - import_failed_unsupported_bcf_version: 'Failed to read the BCF file: The BCF version is not supported. Please ensure the version is at least %{minimal_version} or higher.' + import_failed_unsupported_bcf_version: 'BCF ファイルの読み取りに失敗しました: BCF バージョンはサポートされていません。少なくとも %{minimal_version} 以上のバージョンであることを確認してください。' import_successful: '%{count} BCF チケットをインポートしました' import_canceled: 'BCF-XML インポートをキャンセルしました。' type_not_active: "チケットの形式がこのプロジェクトで有効になっていません。" @@ -30,7 +30,7 @@ ja: num_issues_found: '%{x_bcf_issues} は BCF-XML ファイルに含まれています。詳細は下に一覧表示されます。' button_prepare: 'インポートの準備' button_perform_import: 'インポートの確認' - button_proceed: 'Proceed with import' + button_proceed: 'インポートを続ける' button_back_to_list: 'リストに戻る' no_permission_to_add_members: 'プロジェクトにメンバーとして追加するための十分な権限がありません。' contact_project_admin: 'プロジェクト管理者に連絡してメンバーとして追加し、このインポートをもう一度開始してください。' @@ -56,7 +56,7 @@ ja: import_as_system_user: 'それらを "システム" ユーザーとしてインポート' what_to_do: "どれかを選択して下さい。" work_package_has_newer_changes: "期限切れです! サーバー上の前回の変更がインポートされたトピックの「更新日付」よりも新しいため、このトピックは更新されませんでした。 ただし、トピックへのコメントはインポートされました。" - bcf_file_not_found: "Failed to locate BCF file. Please start the upload process again." + bcf_file_not_found: "BCFファイルが見つかりませんでした。再度アップロードを開始してください。" export: format: bcf: "BCF-XML" diff --git a/modules/bim/config/locales/crowdin/js-ja.yml b/modules/bim/config/locales/crowdin/js-ja.yml index ecb2c2a54b..471ce57de4 100644 --- a/modules/bim/config/locales/crowdin/js-ja.yml +++ b/modules/bim/config/locales/crowdin/js-ja.yml @@ -4,24 +4,24 @@ ja: bcf: label_bcf: 'BCF' import: 'インポート' - import_bcf_xml_file: 'Import BCF XML file (BCF version 2.1)' + import_bcf_xml_file: 'BCF XML ファイルをインポート (BCF バージョン 2.1)' export: '外部出力' - export_bcf_xml_file: 'Export BCF XML file (BCF version 2.1)' - viewpoint: 'Viewpoint' - add_viewpoint: 'Add viewpoint' - show_viewpoint: 'Show viewpoint' - delete_viewpoint: 'Delete viewpoint' - management: 'BCF management' + export_bcf_xml_file: 'BCF XML ファイルをエクスポート (BCF バージョン 2.1)' + viewpoint: 'ビューポイント' + add_viewpoint: 'ビューポイントを追加' + show_viewpoint: 'ビューポイントを表示' + delete_viewpoint: 'ビューポイントを削除' + management: 'BCF 管理' ifc_models: - empty_warning: "This project does not yet have any IFC models." - use_this_link_to_manage: "Use this link to upload and manage your IFC models" - keyboard_input_disabled: "Viewer does not have keyboard controls. Click on the viewer to give keyboard control to the viewer." + empty_warning: "このプロジェクトにはまだIFCモデルはありません。" + use_this_link_to_manage: "リンクを使用して IFC モデルをアップロードして管理します" + keyboard_input_disabled: "ビューアにはキーボードコントロールがありません。ビューアをクリックするとキーボードコントロールが表示されます。" models: ifc_models: 'IFCモデル' views: - viewer: 'Viewer' - split: 'Viewer and table' - split_cards: 'Viewer and cards' + viewer: 'ビューア' + split: 'ビューアとテーブル' + split_cards: 'ビューアーとカード' revit: - revit_add_in: "Revit Add-In" - revit_add_in_settings: "Revit Add-In settings" + revit_add_in: "アドインを編集" + revit_add_in_settings: "アドインの設定を変更する" diff --git a/modules/bim/spec/requests/api/bcf/v2_1/viewpoints_api_spec.rb b/modules/bim/spec/requests/api/bcf/v2_1/viewpoints_api_spec.rb index 7a09250250..f4fb6e81b6 100644 --- a/modules/bim/spec/requests/api/bcf/v2_1/viewpoints_api_spec.rb +++ b/modules/bim/spec/requests/api/bcf/v2_1/viewpoints_api_spec.rb @@ -204,13 +204,15 @@ describe 'BCF 2.1 viewpoints resource', type: :request, content_type: :json, wit expect(subject.status).to eq 200 expect(subject.headers['Content-Type']).to eq 'image/jpeg' - expect(subject.headers["Cache-Control"]).to eq "public, max-age=604799" + max_age = OpenProject::Configuration.fog_download_url_expires_in - 10 + + expect(subject.headers["Cache-Control"]).to eq "public, max-age=#{max_age}" expect(subject.headers["Expires"]).to be_present expires_time = Time.parse response.headers["Expires"] - expect(expires_time < Time.now.utc + 604799).to be_truthy - expect(expires_time > Time.now.utc + 604799 - 60).to be_truthy + expect(expires_time < Time.now.utc + max_age).to be_truthy + expect(expires_time > Time.now.utc + max_age - 60).to be_truthy end end diff --git a/modules/boards/config/locales/crowdin/js-ja.yml b/modules/boards/config/locales/crowdin/js-ja.yml index f9f008d72d..a9e51579ef 100644 --- a/modules/boards/config/locales/crowdin/js-ja.yml +++ b/modules/boards/config/locales/crowdin/js-ja.yml @@ -24,60 +24,60 @@ ja: locked: 'ロックされている' closed: '終了' new_board: '新しいボード' - add_list: 'Add list to board' + add_list: 'ボードにリストを追加' add_card: 'カードを追加' error_attribute_not_writable: "作業項目を移動できません。 %{attribute} は書き込みできません。" error_loading_the_list: "リストの読み込み中にエラーが発生しました: %{error_message}" error_permission_missing: "公開クエリを作成するアクセス許可が見つかりません。" - error_cannot_move_into_self: "You can not move a work package into its own column." + error_cannot_move_into_self: "作業項目を自身の列に移動することはできません。" click_to_remove_list: "クリックしてこのリストを削除" board_type: text: 'ボードの形式' - free: 'basic' - select_board_type: 'Please choose the type of board you need.' + free: '基本' + select_board_type: '必要なボードの種類を選択してください。' free_text: > - Start from scratch with a blank board. Manually add cards and columns to this board. + 空白のボードで一からスタートします。カードと列を手動で追加します。 action: 'アクションボード' action_by_attribute: 'アクションボード (%{attribute})' action_text: > - A board with filtered lists on %{attribute} attribute. Moving work packages to other lists will update their attribute. + %{attribute} 属性のリストをフィルタリングしたボード。作業項目を他のリストに移動すると、それらの属性が更新されます。 action_text_subprojects: > - Board with automated columns for subprojects. Dragging work packages to other lists updates the (sub-)project accordingly. + サブプロジェクトの列が自動化されたボード。作業項目を他のリストにドラッグすると、それに応じて(サブ)プロジェクトが更新されます。 action_text_subtasks: > Board with automated columns for sub-elements. Dragging work packages to other lists updates the parent accordingly. action_text_status: > - Basic kanban style board with columns for status such as To Do, In Progress, Done. + To Do、進行中、完了などのステータスの列を持つ基本的なカンバンスタイルボード。 action_text_assignee: > Board with automated columns based on assigned users. Ideal for dispatching work packages. action_text_version: > Board with automated columns based on the version attribute. Ideal for planning product development. action_type: - assignee: assignee - status: status - version: version - subproject: subproject - subtasks: parent-child + assignee: 担当者 + status: ステータス + version: バージョン + subproject: サブプロジェクト + subtasks: 親子 board_type_title: assignee: 担当者 status: ステータス version: バージョン subproject: 子プロジェクト - subtasks: Parent-Child - basic: Basic + subtasks: 親子 + basic: 基本 select_attribute: "アクション属性" add_list_modal: labels: - assignee: Select user to add as a new assignee list - status: Select status to add as a new list - version: Select version to add as a new list - subproject: Select subproject to add as a new list - subtasks: Select work package to add as a new list + assignee: 新しい担当者リストとして追加するユーザーを選択します + status: 新しいリストとして追加するステータスを選択 + version: 新しいリストとして追加するバージョンを選択してください + subproject: 新しいリストとして追加するサブプロジェクトを選択します + subtasks: 新しいリストとして追加する作業項目を選択 warning: status: | 利用可能な状態ではありません。
または、既にボードに追加されています。 - assignee: There isn't any member matched with your filter value.
- no_member: This project currently does not have any members that can be added.
+ assignee: フィルター値と一致するメンバーがいません。
+ no_member: このプロジェクトには現在追加できるメンバーはいません。
add_members: プロジェクトに新規メンバーを追加し 、再度ユーザーを選択してください。 configuration_modal: title: 'このボードの設定' diff --git a/modules/boards/config/locales/crowdin/js-no.yml b/modules/boards/config/locales/crowdin/js-no.yml index 1dd879665f..e1d5f0aa36 100644 --- a/modules/boards/config/locales/crowdin/js-no.yml +++ b/modules/boards/config/locales/crowdin/js-no.yml @@ -4,7 +4,7 @@ boards: label_unnamed_board: 'Unnamed board' label_unnamed_list: 'Unnamed list' - label_board_type: 'Board type' + label_board_type: 'Tavle type' upsale: teaser_text: 'Improve your agile project management with this flexible Boards view. Create as many boards as you like for anything you would like to keep track of.' upgrade_to_ee_text: 'Boards is an Enterprise feature. Please upgrade to a paid plan.' @@ -32,7 +32,7 @@ error_cannot_move_into_self: "You can not move a work package into its own column." click_to_remove_list: "Click to remove this list" board_type: - text: 'Board type' + text: 'Tavle type' free: 'basic' select_board_type: 'Please choose the type of board you need.' free_text: > diff --git a/modules/boards/config/locales/crowdin/no.yml b/modules/boards/config/locales/crowdin/no.yml index ff0810d536..066602513e 100644 --- a/modules/boards/config/locales/crowdin/no.yml +++ b/modules/boards/config/locales/crowdin/no.yml @@ -2,7 +2,7 @@ "no": permission_show_board_views: "View boards" permission_manage_board_views: "Manage boards" - project_module_board_view: "Boards" + project_module_board_view: "Tavler" boards: - label_board: "Board" - label_boards: "Boards" + label_board: "Tavle" + label_boards: "Tavler" diff --git a/modules/boards/config/locales/crowdin/sl.yml b/modules/boards/config/locales/crowdin/sl.yml index 656754f8f5..0c4ed0e8bd 100644 --- a/modules/boards/config/locales/crowdin/sl.yml +++ b/modules/boards/config/locales/crowdin/sl.yml @@ -1,7 +1,7 @@ #English strings go here sl: - permission_show_board_views: "Prikaži deske" - permission_manage_board_views: "Upravljaj deske" + permission_show_board_views: "Prikaži tabele" + permission_manage_board_views: "Upravljaj tabele" project_module_board_view: "Boardi" boards: label_board: "Board" diff --git a/modules/budgets/config/locales/crowdin/ja.yml b/modules/budgets/config/locales/crowdin/ja.yml index 8f4acf33b5..91ceb9b08e 100644 --- a/modules/budgets/config/locales/crowdin/ja.yml +++ b/modules/budgets/config/locales/crowdin/ja.yml @@ -60,7 +60,7 @@ ja: label_budget_plural: "予算" label_budget_id: "予算 #%{id}" label_deliverable: "予算" - label_example_placeholder: 'e.g., %{decimal}' + label_example_placeholder: '例: %{decimal}' label_view_all_budgets: "全ての予算を表示" label_yes: "はい" notice_budget_conflict: "作業項目は同一プロジェクトである必要があります。" diff --git a/modules/budgets/config/locales/crowdin/sl.yml b/modules/budgets/config/locales/crowdin/sl.yml index cb74c71a1d..e50ded79fe 100644 --- a/modules/budgets/config/locales/crowdin/sl.yml +++ b/modules/budgets/config/locales/crowdin/sl.yml @@ -49,7 +49,7 @@ sl: caption_labor: "Delo" caption_labor_costs: "Dejanski stroški dela" caption_material_costs: "Dejanski stroški enote" - budgets_title: "Proračun" + budgets_title: "Proračuni" events: budget: "Proračun urejen" help_click_to_edit: "Kliknite tukaj, za urejanje" @@ -57,7 +57,7 @@ sl: help_override_rate: "Vnesite vrednost, da nadomestite privzeto stopnjo." label_budget: "Proračun" label_budget_new: "Nov proračun" - label_budget_plural: "Proračun" + label_budget_plural: "Proračuni" label_budget_id: "Proračun #%{id}" label_deliverable: "Proračun" label_example_placeholder: 'npr., %{decimal}' @@ -67,4 +67,4 @@ sl: notice_no_budgets_available: "Proračuni niso na voljo." permission_edit_budgets: "Uredi proračun" permission_view_budgets: "Oglejte si proračune" - project_module_budgets: "Proračun" + project_module_budgets: "Proračuni" diff --git a/modules/costs/config/locales/crowdin/ja.yml b/modules/costs/config/locales/crowdin/ja.yml index c019500d94..6a7edc051a 100644 --- a/modules/costs/config/locales/crowdin/ja.yml +++ b/modules/costs/config/locales/crowdin/ja.yml @@ -79,7 +79,7 @@ ja: label_costlog: "単価を記録" label_cost_plural: "コスト" label_cost_type_plural: "コスト種類" - label_cost_type_specific: "Cost type #%{id}: %{name}" + label_cost_type_specific: "コスト種類 #%{id}: %{name}" label_costs_per_page: "1ページあたりのコスト" label_currency: "通貨" label_currency_format: "通貨の形式" diff --git a/modules/grids/config/locales/crowdin/ja.yml b/modules/grids/config/locales/crowdin/ja.yml index 11df3c164f..197cc3123b 100644 --- a/modules/grids/config/locales/crowdin/ja.yml +++ b/modules/grids/config/locales/crowdin/ja.yml @@ -1,6 +1,6 @@ ja: grids: - label_widget_in_grid: "Widget contained in Grid %{grid_name}" + label_widget_in_grid: "グリッド %{grid_name} に含まれるウィジェット" activerecord: attributes: grids/grid: diff --git a/modules/grids/config/locales/crowdin/js-ja.yml b/modules/grids/config/locales/crowdin/js-ja.yml index a45cc13932..d144c92804 100644 --- a/modules/grids/config/locales/crowdin/js-ja.yml +++ b/modules/grids/config/locales/crowdin/js-ja.yml @@ -3,7 +3,7 @@ ja: grid: add_widget: 'ウィジェットを追加' remove: 'ウィジェットを削除' - configure: 'Configure widget' + configure: 'ウィジェットの設定' upsale: text: "作業項目グラフウィジェットなどの一部のウィジェットは、次のみ利用可能です " link: 'エンタープライズ版。' @@ -40,7 +40,7 @@ ja: no_results: '子プロジェクトはありません。' time_entries_current_user: title: '自分の作業時間' - displayed_days: 'Days displayed in the widget:' + displayed_days: 'ウィジェットに表示される日数:' time_entries_list: title: '経過時間(過去7日)' no_results: '過去7日間の時間エントリはありません。' diff --git a/modules/grids/config/locales/crowdin/js-no.yml b/modules/grids/config/locales/crowdin/js-no.yml index db780fb677..55f5be8703 100644 --- a/modules/grids/config/locales/crowdin/js-no.yml +++ b/modules/grids/config/locales/crowdin/js-no.yml @@ -49,7 +49,7 @@ work_packages_assigned: title: 'Arbeidspakker tildelt meg' work_packages_created: - title: 'Work packages created by me' + title: 'Arbeidspakker laget av meg' work_packages_watched: title: 'Work packages watched by me' work_packages_table: diff --git a/modules/grids/config/locales/crowdin/js-sl.yml b/modules/grids/config/locales/crowdin/js-sl.yml index 983b38403c..3f1388801d 100644 --- a/modules/grids/config/locales/crowdin/js-sl.yml +++ b/modules/grids/config/locales/crowdin/js-sl.yml @@ -39,7 +39,7 @@ sl: title: 'Podprojekti' no_results: 'Ni podprojektov. ' time_entries_current_user: - title: 'Poglej porabljen čas' + title: 'Moj porabljen čas' displayed_days: 'Days displayed in the widget:' time_entries_list: title: 'Porabljen čas (zadnjih 7 dni) ' diff --git a/modules/job_status/config/locales/crowdin/js-ja.yml b/modules/job_status/config/locales/crowdin/js-ja.yml index fc68fd94c8..21ed1f00a3 100644 --- a/modules/job_status/config/locales/crowdin/js-ja.yml +++ b/modules/job_status/config/locales/crowdin/js-ja.yml @@ -1,17 +1,17 @@ ja: js: job_status: - download_starts: 'The download should start automatically.' - click_to_download: 'Or click here to download.' - title: 'Background job status' - redirect: 'You are being redirected.' + download_starts: 'ダウンロードは自動的に開始されます。' + click_to_download: 'またはここをクリックしてダウンロードしてください。' + title: 'バックグラウンドジョブの状態' + redirect: 'リダイレクトされています。' redirect_link: '続行するにはここをクリックしてください。' redirect_errors: 'これらのエラーのため、自動的にリダイレクトされません。' errors: 'エラーが発生しました。' generic_messages: - not_found: 'This job could not be found.' - in_queue: 'The job has been queued and will be processed shortly.' - in_process: 'The job is currently being processed.' - error: 'The job has failed to complete.' - cancelled: 'The job has been cancelled due to an error.' - success: 'The job completed successfully.' + not_found: 'ジョブが見つかりませんでした。' + in_queue: 'ジョブはキューに追加されました。まもなく実行されます。' + in_process: 'ジョブは現在実行中です。' + error: 'ジョブは失敗しました。' + cancelled: 'エラーのためジョブがキャンセルされました。' + success: 'ジョブは正常終了しました。' diff --git a/modules/ldap_groups/config/locales/crowdin/ja.yml b/modules/ldap_groups/config/locales/crowdin/ja.yml index 19c09db6d1..cf6c951806 100644 --- a/modules/ldap_groups/config/locales/crowdin/ja.yml +++ b/modules/ldap_groups/config/locales/crowdin/ja.yml @@ -5,31 +5,31 @@ ja: dn: 'DN' auth_source: 'LDAP 接続' ldap_groups/synchronized_filter: - filter_string: 'LDAP filter' + filter_string: 'LDAPフィルタ' auth_source: 'LDAP 接続' - group_name_attribute: "Group name attribute" + group_name_attribute: "グループ名属性" models: ldap_groups/synchronized_group: '同期済 LDAP グループ' - ldap_groups/synchronized_filter: 'LDAP Group synchronization filter' + ldap_groups/synchronized_filter: 'LDAP グループ同期フィルター' ldap_groups: label_menu_item: 'LDAP グループの同期' label_group_key: 'LDAP グループ フィルターキー' - label_synchronize: 'Synchronize' + label_synchronize: '同期する' settings: - name_attribute: 'LDAP groups name attribute' - name_attribute_text: 'The LDAP attribute used for naming the OpenProject group when created by a filter' + name_attribute: 'LDAPグループ名属性' + name_attribute_text: 'フィルタによって作成されたときに OpenProject グループに名前を付けるために使用されるLDAP属性' synchronized_filters: - add_new: 'Add synchronized LDAP filter' - singular: 'LDAP Group synchronization filter' - plural: 'LDAP Group synchronization filters' + add_new: '同期LDAPフィルタを追加' + singular: 'LDAP グループ同期フィルター' + plural: 'LDAP グループ同期フィルタ' destroy: - title: 'Remove synchronized filter %{name}' - confirmation: "If you continue, the synchronized filter %{name} and all groups %{groups_count} created through it will be removed." - removed_groups: "Warning: This will remove the following groups from OpenProject and remove it from all projects!" - verification: "Enter the filter name %{name} to verify the deletion." + title: '同期されたフィルター %{name} を削除' + confirmation: "続行すると、同期フィルター %{name} とそれを通して作成されたすべてのグループ %{groups_count} が削除されます。" + removed_groups: "警告: 以下のグループを OpenProject から削除し、すべてのプロジェクトから削除します!" + verification: "確認のため、削;除するフィルタ名 %{name} を入力します。" form: - group_name_attribute_text: 'Enter the attribute of the LDAP group used for setting the OpenProject group name.' - filter_string_text: 'Enter the RFC4515 LDAP filter that returns groups in your LDAP to synchronize with OpenProject.' + group_name_attribute_text: 'OpenProject グループ名の設定に使用する LDAP グループの属性を入力します。' + filter_string_text: 'OpenProject と同期するための LDAP グループを返すRFC4515 LDAP フィルタを入力します。' synchronized_groups: add_new: '同期済 LDAP グループを追加' destroy: @@ -38,17 +38,17 @@ ja: info: "注: OpenProject グループ自体と、この LDAP 同期外で追加されたメンバーは削除されません。" verification: "削除を確認するため、グループの名前 %{name} を入力してください。" help_text_html: | - This module allows you to set up a synchronization between LDAP and OpenProject groups. - It depends on LDAP groups need to use the groupOfNames / memberOf attribute set to be working with OpenProject. + このモジュールは LDAP グループと Op​​enProject グループ間の同期を可能にします。 + これは LDAPグループ が OpenProject で動作するように設定された groupOfNames / memberOf 属性を使用する必要があるかどうかに依存します。
- Groups are synchronized hourly through a cron job. - Please see our documentation on this topic. + グループは、cronジョブを介して1時間ごとに同期されます。 + このトピックに関するドキュメントを参照下さい。 no_results: '同期されたグループが見つかりません。' no_members: 'このグループはまだ同期済のメンバーがありません。' plural: '同期済 LDAP グループ' singular: '同期済 LDAP グループ' form: - auth_source_text: 'Select which LDAP connection should be used.' - dn_text: 'Enter the full DN of the group in LDAP' + auth_source_text: '使用するLDAP接続を選択します。' + dn_text: 'グループの完全な DN をLDAP に入力します。' group_text: 'LDAP グループのメンバーを同期する既存の OpenProject グループを選択' diff --git a/modules/meeting/config/locales/crowdin/ja.yml b/modules/meeting/config/locales/crowdin/ja.yml index 8b46e93772..962ba36481 100644 --- a/modules/meeting/config/locales/crowdin/ja.yml +++ b/modules/meeting/config/locales/crowdin/ja.yml @@ -74,14 +74,14 @@ ja: permission_send_meeting_agendas_notification: "議題のレビュー通知を送信する" permission_create_meeting_minutes: "議事録の管理" permission_send_meeting_minutes_notification: "議事録のレビュー通知を送信する" - permission_meetings_send_invite: "Invite users to meetings" - permission_send_meeting_agendas_icalendar: "Send meeting agenda as calendar entry" + permission_meetings_send_invite: "ユーザーを会議に招待する" + permission_send_meeting_agendas_icalendar: "カレンダーエントリとして議題を送信する" project_module_meetings: "会議" text_duration_in_hours: "期間(時間)" text_in_hours: "数時間以内" text_meeting_agenda_for_meeting: '会議の議題 "%{meeting}"' text_meeting_closing_are_you_sure: "会議を終了してもよろしいですか?" - text_meeting_agenda_open_are_you_sure: "This will overwrite all changes in the minutes! Do you want to continue?" + text_meeting_agenda_open_are_you_sure: "数分内のすべての変更が上書きされます!続けますか?" text_meeting_minutes_for_meeting: '会議の議事録 "%{meeting}"' text_review_meeting_agenda: "%{author} はレビューのために %{link} をアップしました。" text_review_meeting_minutes: "%{author} はレビューのために %{link} をアップしました。" diff --git a/modules/meeting/config/locales/crowdin/sl.yml b/modules/meeting/config/locales/crowdin/sl.yml index 6207bacb96..0f2405a379 100644 --- a/modules/meeting/config/locales/crowdin/sl.yml +++ b/modules/meeting/config/locales/crowdin/sl.yml @@ -75,13 +75,13 @@ sl: permission_create_meeting_minutes: "Uredi minute" permission_send_meeting_minutes_notification: "Pošlji obvestilo o pregledu minut" permission_meetings_send_invite: "Povabite uporabnike na sestanke" - permission_send_meeting_agendas_icalendar: "ošlji dnevni red sestanka kot vnos v koledar" + permission_send_meeting_agendas_icalendar: "Pošlji dnevni red sestanka kot vnos v koledar" project_module_meetings: "Sestanki" text_duration_in_hours: "Trajanje v urah" text_in_hours: "v urah" text_meeting_agenda_for_meeting: 'dnevni red za sestanek "%{meeting}"' text_meeting_closing_are_you_sure: "Ali ste prepričani, da želite zapreti sestanek?" - text_meeting_agenda_open_are_you_sure: "To bo prepisalo vse spremembe v minutah! Ali želite nadaljevati?" + text_meeting_agenda_open_are_you_sure: "To bo prepisalo vse spremembe v zapisniku! Ali želite nadaljevati?" text_meeting_minutes_for_meeting: 'minute za sestanek "%{meeting}"' text_review_meeting_agenda: "%{author} je dal %{link} v pregled." text_review_meeting_minutes: "%{author} je dal %{link} v pregled." diff --git a/modules/overviews/config/locales/crowdin/ja.yml b/modules/overviews/config/locales/crowdin/ja.yml index 998abc04b8..27ae8d5855 100644 --- a/modules/overviews/config/locales/crowdin/ja.yml +++ b/modules/overviews/config/locales/crowdin/ja.yml @@ -1,4 +1,4 @@ ja: overviews: label: '概要' - permission_manage_overview: 'Manage overview page' + permission_manage_overview: '概要ページの管理' diff --git a/spec/requests/api/v3/attachments/attachment_resource_shared_examples.rb b/spec/requests/api/v3/attachments/attachment_resource_shared_examples.rb index 1f3a1af56c..dbdee3a3e1 100644 --- a/spec/requests/api/v3/attachments/attachment_resource_shared_examples.rb +++ b/spec/requests/api/v3/attachments/attachment_resource_shared_examples.rb @@ -415,13 +415,15 @@ shared_examples 'an APIv3 attachment resource', type: :request, content_type: :j expect(subject.headers['Content-Type']) .to eql mock_file.content_type - expect(subject.headers["Cache-Control"]).to eq "public, max-age=604799" + max_age = OpenProject::Configuration.fog_download_url_expires_in.to_i - 10 + + expect(subject.headers["Cache-Control"]).to eq "public, max-age=#{max_age}" expect(subject.headers["Expires"]).to be_present expires_time = Time.parse response.headers["Expires"] - expect(expires_time < Time.now.utc + 604799).to be_truthy - expect(expires_time > Time.now.utc + 604799 - 60).to be_truthy + expect(expires_time < Time.now.utc + max_age).to be_truthy + expect(expires_time > Time.now.utc + max_age - 60).to be_truthy end it 'sends the file in binary' do @@ -472,13 +474,15 @@ shared_examples 'an APIv3 attachment resource', type: :request, content_type: :j expect(subject.headers['Location']) .to eql external_url - expect(subject.headers["Cache-Control"]).to eq "public, max-age=604799" + max_age = OpenProject::Configuration.fog_download_url_expires_in.to_i - 10 + + expect(subject.headers["Cache-Control"]).to eq "public, max-age=#{max_age}" expect(subject.headers["Expires"]).to be_present expires_time = Time.parse response.headers["Expires"] - expect(expires_time < Time.now.utc + 604799).to be_truthy - expect(expires_time > Time.now.utc + 604799 - 60).to be_truthy + expect(expires_time < Time.now.utc + max_age).to be_truthy + expect(expires_time > Time.now.utc + max_age - 60).to be_truthy end end end diff --git a/spec/support/pages/projects/destroy.rb b/spec/support/pages/projects/destroy.rb index 2e5c163016..d4d7d18720 100644 --- a/spec/support/pages/projects/destroy.rb +++ b/spec/support/pages/projects/destroy.rb @@ -25,6 +25,7 @@ # # See docs/COPYRIGHT.rdoc for more details. #++ +require_relative '../page' module Pages module Projects